| |
| |
Introduction | |
| |
| |
| |
XML and ASP.NET Development | |
| |
| |
XML's Ancestor--SGML | |
| |
| |
Why Do We Need XML? | |
| |
| |
X Is for eXtensible | |
| |
| |
Differences Between XML and HTML | |
| |
| |
Presentation Versus Description | |
| |
| |
Closing Tags | |
| |
| |
Element Nesting | |
| |
| |
Quoted Attributes | |
| |
| |
Case Sensitivity | |
| |
| |
MSXML3 Versus the .NET Platform's System.Xml Assembly | |
| |
| |
How Can XML Be Used by an ASP.NET Developer? | |
| |
| |
Summary | |
| |
| |
| |
XML for ASP.NET Basics | |
| |
| |
What's in an XML Document? | |
| |
| |
Well-Formed XML Documents | |
| |
| |
The Root Element | |
| |
| |
[left angle bracket]br[right angle bracket] Versus [left angle bracket]br/[right angle bracket] | |
| |
| |
Nesting No-No's | |
| |
| |
Other Rules | |
| |
| |
Valid XML Documents | |
| |
| |
The XML Declaration | |
| |
| |
The xml Keyword | |
| |
| |
The XML Document Version | |
| |
| |
The Encoding Type | |
| |
| |
The standalone Keyword | |
| |
| |
XML Elements | |
| |
| |
XML Attributes | |
| |
| |
XML Namespaces | |
| |
| |
Namespace Structure | |
| |
| |
Default Namespaces | |
| |
| |
Qualified Namespaces | |
| |
| |
XML Processing Instructions | |
| |
| |
XML Comments | |
| |
| |
XML Entities | |
| |
| |
Standard Entities | |
| |
| |
Using ASP.NET Objects to Generate XML | |
| |
| |
Character Entities | |
| |
| |
Internal, External, and Parameter Entities | |
| |
| |
CDATA Sections | |
| |
| |
Dealing with Whitespace | |
| |
| |
The Relationship of XML to XHTML | |
| |
| |
Using ASP.NET Objects to Generate XML | |
| |
| |
Application Specifics | |
| |
| |
Application Summary | |
| |
| |
Summary | |
| |
| |
| |
XPath, XPointer, and XLink | |
| |
| |
Meet a Few of XML's Relatives | |
| |
| |
XPath--The SQL of XML | |
| |
| |
XPath Basics | |
| |
| |
XPath Functions | |
| |
| |
XPath Abbreviation Examples | |
| |
| |
XPointer--Accessing XML Document Fragments | |
| |
| |
XPointer Basics | |
| |
| |
XPointer Examples | |
| |
| |
XLink--Resource Relationship Management | |
| |
| |
XLink Basics | |
| |
| |
XLink Keyword Definitions | |
| |
| |
XLink Attributes | |
| |
| |
The XLink Simple Link | |
| |
| |
XLink Extended Links | |
| |
| |
Linkbases and External Linksets | |
| |
| |
Putting XLink Together | |
| |
| |
Summary | |
| |
| |
| |
Understanding DTDs and XML Schemas | |
| |
| |
Why Use DTDs or Schemas? | |
| |
| |
Do I Really Need to Validate? | |
| |
| |
DTD Basics | |
| |
| |
The DTD DOCTYPE | |
| |
| |
DTD Elements | |
| |
| |
DTD Attributes | |
| |
| |
DTD Entities | |
| |
| |
DTD Notations | |
| |
| |
Summing Up DTDs | |
| |
| |
XML Schemas--Looks a Lot Like XML! | |
| |
| |
A Sample XML-DR Schema and Its DTD Counterpart | |
| |
| |
Using the Schema Keyword with Namespaces in XML-DR Schemas | |
| |
| |
XML-DR Elements, Groups and Attributes | |
| |
| |
XML Data Types | |
| |
| |
XML-DR Description Element | |
| |
| |
XML-DR Summary | |
| |
| |
The W3C XML Schema | |
| |
| |
W3C Schma Elements and Attributes | |
| |
| |
Data Type Definitions | |
| |
| |
Creating Unique Fields, Keys, and Relationship | |
| |
| |
Namespace Support in XML Schemas | |
| |
| |
Referencing XML Schemas from Within XML Documents | |
| |
| |
XML Schema Summary | |
| |
| |
Summary | |
| |
| |
| |
Using the XmlTextReader and XmlTextWriter Classes in ASP.NET | |
| |
| |
Introducing the System.Xml Assembly | |
| |
| |
In Memory Versus Forward-Only Parsing | |
| |
| |
Pull Versus Push Models | |
| |
| |
Using the XmlTextReader Class to parse XML | |
| |
| |
Building a SAX-Style Push Model Using the XmlTextReader | |
| |
| |
| |
Referencing Assemblies | |
| |
| |
| |
Setting the Handlers | |
| |
| |
| |
Declaring the XmlTextReader Class | |
| |
| |
| |
Instantiating the XmlTextReader Class | |
| |
| |
| |
Reading from the Stream | |
| |
| |
| |
Checking for Element Nodes | |
| |
| |
| |
Checking for End Element Nodes | |
| |
| |
| |
Reading Text Nodes | |
| |
| |
| |
Handling Processing Instructions, Whitespace, and Entities | |
| |
| |
| |
Ending the Parsing Process and Catching Errors | |
| |
| |
| |
Calling the SAX Parser from an ASP.NET Page | |
| |
| |
Validating XML Documents Using the XmlTextReader and XMLValidatingReader | |
| |
| |
Instantiating the XmlValidatingReader | |
| |
| |
Setting the ValidationType | |
| |
| |
Using the XmlSchemaCollection Class | |
| |
| |
Attaching Event Handlers | |
| |
| |
Creating a Generic Validation Class | |
| |
| |
Passing Authentication Credentials with the XmlTextReader Class | |
| |
| |
Using the XMmlTextWriter Class to Create XML Documents | |
| |
| |
Converting EDI or Legacy Data to XML | |
| |
| |
Summary | |
| |
| |
| |
Programming the Document Object Model (DOM) with ASP.NET | |
| |
| |
Welcome to the DOM | |
| |
| |
In-Memory Versus Forward-Only Parsing | |
| |
| |
Working with MSXML3 via Interop | |
| |
| |
DOM Classes in the System.xml Namespace and Assembly | |
| |
| |
The XmlNode Class | |
| |
| |
The XmlDocument Class | |
| |
| |
XmlDocument Object Properties and Methods | |
| |
| |
Loading an XML Document using the XmlDocument Class | |
| |
| |
Creating Nodes Using the XmlDocument Class | |
| |
| |
The XmlNodeList Class | |
| |
| |
The XmlNamedNodeMap Class | |
| |
| |
Selecting Nodes Within the DOM Using Xpath | |
| |
| |
Putting it All Together | |
| |
| |
The XmlNodeReader Class | |
| |
| |
XMLHTTPRequest Object | |
| |
| |
Sample Applications-Client Server-Side Hierarchical XML Menus | |
| |
| |
Chapter 2 Sample Application Revisited | |
| |
| |
Summary | |
| |
| |
| |
Transforming XML with XSLT and ASP.NET | |
| |
| |
What Is XSLT? | |
| |
| |
The Transformation process | |
| |
| |
XSLT Templates | |
| |
| |
Getting Your Feet Wet with XSLT | |
| |
| |
The XSLT Language | |
| |
| |
The XSLT Document Root Element | |
| |
| |
XSLT Elements | |
| |
| |
Transforming XML into Another Form of XML Using XSLT Elements | |
| |
| |
XSLT Functions | |
| |
| |
The XPathDocument Class | |
| |
| |
NET Classes Involved in Transforming XML | |
| |
| |
The XslTransform Class | |
| |
| |
The XsltArgumentList Class | |
| |
| |
Putting it All Together | |
| |
| |
Using Extension Objects with XSLT | |
| |
| |
Creating a Reusable XSLT Class | |
| |
| |
The Asp: Xml Web Control | |
| |
| |
Summary | |
| |
| |
| |
Leveraging ADO.NET's XML Features Using ASP.NET | |
| |
| |
Introducing ADO.NET | |
| |
| |
Comparing Classic ADO with ADO.NET | |
| |
| |
XML Integration | |
| |
| |
What Happened to the RecordSet Object? | |
| |
| |
Disconnected Versus Connected | |
| |
| |
ADO.NET Basics | |
| |
| |
ADO.NET Managed Providers | |
| |
| |
The Command Class | |
| |
| |
The SqlDataAdapter and OleDbDataAdapter Classes | |
| |
| |
The DataSet Class | |
| |
| |
Viewing DataSets as XML | |
| |
| |
Loading DataSets with XML | |
| |
| |
Saving DataSets as XML | |
| |
| |
Working with the DataSet and XmlDataDocument Classes | |
| |
| |
XmlDataDocument Properties and Methods | |
| |
| |
Shaping DataSet Columns with the MappingType Enumeration | |
| |
| |
Mapping XSD Schemas to a DataSet | |
| |
| |
Creating DataSet Mappings Using XML | |
| |
| |
Using DataSets to Work with Hierarchical XML Data and XSLT | |
| |
| |
Summary | |
| |
| |
| |
SQL Server 2000, XML, and ASP.NET | |
| |
| |
XML Features in SQL Server 2000 | |
| |
| |
Querying SQL Server 2000 Using HTTP | |
| |
| |
Configuring SQL Server Virtual Directories in IIS | |
| |
| |
Querying SQL Server 2000 Through HTTP Using the For XML Keywords | |
| |
| |
Using HTTP Queries to Return Elements and Schemas | |
| |
| |
Querying SQL Server 2000 Through HTTP with XML Templates | |
| |
| |
Querying SQL Server 2000 through HTTP Using Templates, XPath, and XDR Schemas | |
| |
| |
SQL Server 2000 Schemas and Annotations | |
| |
| |
Using XPath Queries and Schemas in a URL | |
| |
| |
Using XPath Queries, Schemas, and Templates | |
| |
| |
Using Explicit Mode Queries | |
| |
| |
Using Directives in Explicit Mode Queries | |
| |
| |
Using Openxml to Manipulate X | |
| |
| |
XML Updategrams--Update, Inserts, and Delete Database Records with XML Using ASP.NET | |
| |
| |
Using ADO.NET with SQL Server 2000 | |
| |
| |
The XmlParserContext Class | |
| |
| |
Summary | |
| |
| |
| |
Working with ASP.NET, XML, SOAP, and Web Services | |
| |
| |
Understanding SOAP | |
| |
| |
Alternatives to SOAP | |
| |
| |
What Is SOAP? | |
| |
| |
Analyzing SOAP's Structure | |
| |
| |
The SOAP Envelope | |
| |
| |
The SOAP Header | |
| |
| |
The SOAP Body | |
| |
| |
SOAP Encoding and Data Types | |
| |
| |
SOAP HTTP Headers | |
| |
| |
Understanding Web Services | |
| |
| |
Web Service Protocols (SOAP, HTTP-GET, HTTP-POST) | |
| |
| |
Web Service Architecture | |
| |
| |
Introducing Web Service Attributes | |
| |
| |
Consuming a Web Service from an ASP.NET File | |
| |
| |
Retrieving Customer Orders Through a Web Service | |
| |
| |
Web Service Description | |
| |
| |
Creating the ACME Distribution, Inc. Web Service | |
| |
| |
Consuming the ACME Distribution, Inc. Web Service | |
| |
| |
Summary | |
| |
| |
Index | |