| |
| |
Introduction | |
| |
| |
| |
Theory Behind the Practice | |
| |
| |
| |
An XML Refresher | |
| |
| |
A Brief History Lesson | |
| |
| |
Pondering XML | |
| |
| |
XML Syntax Fundamentals | |
| |
| |
The State of XML | |
| |
| |
Summary | |
| |
| |
| |
Modeling Data: Document Type Definitions (DTD) and Schemas | |
| |
| |
XML Data Modeling Basics | |
| |
| |
Modeling Data with DTDs | |
| |
| |
Modeling Data with XML Schemas | |
| |
| |
Comparing the Two Data Modeling Approaches | |
| |
| |
Summary | |
| |
| |
| |
DTD Fundamentals | |
| |
| |
DTDs and Document Structure | |
| |
| |
Understanding Elements and Attributes | |
| |
| |
Working with Elements | |
| |
| |
Working with Attributes | |
| |
| |
Creating a Valid Document from a DTD | |
| |
| |
Summary | |
| |
| |
| |
Digging Deeper into DTDs | |
| |
| |
Entities and Document Structure | |
| |
| |
Characters and Entities | |
| |
| |
Working with Entities | |
| |
| |
External Entities | |
| |
| |
Declaring Notations | |
| |
| |
Referencing Entities in Documents | |
| |
| |
Using Conditional Sections | |
| |
| |
Summary | |
| |
| |
| |
XML Schema Basics | |
| |
| |
Getting to Know XML Schema | |
| |
| |
Inside the XML Schema Vocabulary | |
| |
| |
XML Schema Data Types | |
| |
| |
Creating Documents from XML Schemas | |
| |
| |
Summary | |
| |
| |
| |
XML Schema Construction Techniques | |
| |
| |
Converting DTDs to Schemas | |
| |
| |
Validating Documents Against Schemas | |
| |
| |
Generating Schemas with XML Authority | |
| |
| |
Understanding Content Models | |
| |
| |
The Future of XML Schema | |
| |
| |
Summary | |
| |
| |
| |
Utilizing XML Namespaces | |
| |
| |
Namespace Basics | |
| |
| |
Declaring Namespaces | |
| |
| |
Referencing Schemas as Namespaces | |
| |
| |
Using Namespaces in Schemas | |
| |
| |
Namespaces and the Document Object Model | |
| |
| |
Summary | |
| |
| |
| |
Formatting XML Documents | |
| |
| |
| |
Debating Style: eXtensible Style Language (XSL) and Cascading Style Sheets (CSS) | |
| |
| |
Style Sheet Basics | |
| |
| |
The Evlution of CSS and XSL | |
| |
| |
Comparing XSL and CSS | |
| |
| |
Using XSL and CSS Together | |
| |
| |
Summary | |
| |
| |
| |
Formatting XML with Cascading Style Sheets (CSS) | |
| |
| |
A CSS Primer | |
| |
| |
Inside a CSS Style Sheet | |
| |
| |
CSS Style Properties | |
| |
| |
Creating CSS Style Sheets | |
| |
| |
Summary | |
| |
| |
| |
Understanding the eXtensible Style Language (XSL) | |
| |
| |
Processing an XSL Style Sheet | |
| |
| |
The Architecture of XSL | |
| |
| |
Summary | |
| |
| |
| |
Creating XSL Style Sheets | |
| |
| |
XSL and Internet Explorer 5.0 | |
| |
| |
Inside XSL Style Sheets | |
| |
| |
XSLT Template Constructs | |
| |
| |
Developing XSL Style Sheets | |
| |
| |
Summary | |
| |
| |
| |
Processing XML Documents | |
| |
| |
| |
XML Processing Basics | |
| |
| |
Processing an XML Document | |
| |
| |
Why Parse XML? | |
| |
| |
Why Validate an XML Document? | |
| |
| |
Comparing the Two Approaches to Parsing XML | |
| |
| |
Parsers as Objects | |
| |
| |
Summary | |
| |
| |
| |
Parsing XML with Java | |
| |
| |
The Anatomy of XML Parser Libraries in Java | |
| |
| |
Tools of the Trade | |
| |
| |
Parsing an XML Document with Java | |
| |
| |
Summary | |
| |
| |
| |
Parsing XML with C++ | |
| |
| |
Why a Parser in C? | |
| |
| |
The Expat Parser | |
| |
| |
IBM's XML Parser for C++ | |
| |
| |
Microsoft Parsers for C | |
| |
| |
The MSXML Parser | |
| |
| |
Building a Parser Interface with MSXML | |
| |
| |
Bugs in the MSXML Parser | |
| |
| |
Using C Parsers in Document and DTD Design | |
| |
| |
Summary | |
| |
| |
| |
Utilizing the Document Object Model (DOM) | |
| |
| |
W3C and the XML DOM | |
| |
| |
Document Object Models | |
| |
| |
Document Trees and Parse Trees | |
| |
| |
W3C DOM Basics | |
| |
| |
DOM Interfaces | |
| |
| |
Nodes and Objects | |
| |
| |
Accessing Nodes in DOM | |
| |
| |
Data Types Returned by DOM Methods | |
| |
| |
The Document Interface | |
| |
| |
The DocumentFragment Interface | |
| |
| |
The Node Interface | |
| |
| |
The NodeList Interface | |
| |
| |
The NamedNodeMap Interface | |
| |
| |
The CharacterData Interface | |
| |
| |
The Attr Interface | |
| |
| |
The Element Interface | |
| |
| |
The Minor DOM Interfaces | |
| |
| |
Implementing DOM | |
| |
| |
Adding DOM Support to Applications | |
| |
| |
Scripting and DOM | |
| |
| |
DOM Support in Gecko | |
| |
| |
Saving Documents Persistently | |
| |
| |
Summary | |
| |
| |
| |
Working with the SAX API in Java | |
| |
| |
The Structure of SAX 1.0 | |
| |
| |
The Basics of the SAX 1.0 Package | |
| |
| |
Example SAX Applications | |
| |
| |
Other Core Features of SAX | |
| |
| |
Advanced Features of SAX | |
| |
| |
SAX 2.0 | |
| |
| |
Summary | |
| |
| |
| |
XML and the Web | |
| |
| |
| |
Browsing XML | |
| |
| |
XML and the State of Web Browsers | |
| |
| |
Microsoft Internet Explorer | |
| |
| |
Netscape Navigator (Mozilla) | |
| |
| |
Other Browsers | |
| |
| |
Summary | |
| |
| |
| |
XHTML: When XML and HTML Collide | |
| |
| |
Why XHTML? | |
| |
| |
Differences Between XHTML and HTML 4.0 | |
| |
| |
XHTML and Document Validity | |
| |
| |
Creating XHTML Documents | |
| |
| |
Converting HTML Documents to XHTML | |
| |
| |
Summary | |
| |
| |
| |
Linking Documents with XLink and XPointer | |
| |
| |
Linking the HTML Way | |
| |
| |
Beyond HTML Linking | |
| |
| |
The W3C's Linking Specifications | |
| |
| |
Inside XLink | |
| |
| |
Inside XPointer | |
| |
| |
Summary | |
| |
| |
| |
Scripting XML | |
| |
| |
Why Script XML? | |
| |
| |
XML Scripting Options | |
| |
| |
A JavaScript Primer | |
| |
| |
Revisiting the XML DOM | |
| |
| |
Developing XML Scripts | |
| |
| |
Summary | |
| |
| |
| |
Manipulating Data with XML | |
| |
| |
| |
The XML Data Source Object (DSO) | |
| |
| |
Databases and Remote Data Access | |
| |
| |
Remote Data Services and DSOs | |
| |
| |
Understanding the Tabular Data Control (TDC) | |
| |
| |
XML DSOs | |
| |
| |
The XML Java DSO | |
| |
| |
The XML C++ DSO | |
| |
| |
Using XML Islands | |
| |
| |
Scripting the XML DSO | |
| |
| |
XML Data Binding | |
| |
| |
Data Binding with Complex XML | |
| |
| |
Summary | |
| |
| |
| |
Using XSL Patterns and XQL | |
| |
| |
Requirements of a Query Language | |
| |
| |
XML Query Language (XQL) | |
| |
| |
The Syntax of XQL | |
| |
| |
XQL: Implementations and Other Resources | |
| |
| |
XSLT Patterns | |
| |
| |
Using DOM | |
| |
| |
Hand-Rolled Functions | |
| |
| |
Summary | |
| |
| |
| |
Accessing Databases with XML and ASP | |
| |
| |
Uses of XML in Database Management Systems | |
| |
| |
Personal Web Server (PWS) and Active Server Pages (ASP) | |
| |
| |
The Native ASP Objects | |
| |
| |
The Scripting objects | |
| |
| |
ActiveX and DOM Objects | |
| |
| |
Understanding Databases | |
| |
| |
Connecting to a Database with ASP | |
| |
| |
Reading Data into an XML Stream | |
| |
| |
Using XML as a Data Store | |
| |
| |
Accessing Data from an XML Data Store | |
| |
| |
XML vs. RDBMS | |
| |
| |
Summary | |
| |
| |
| |
Linking Business Data with WIDL | |
| |
| |
A Business Use of WIDL | |
| |
| |
Introduction to WIDL Version 2.0 | |
| |
| |
WIDL Version 3.0 | |
| |
| |
Summary | |
| |
| |
| |
EDI and XML | |
| |
| |
An EDI Primer | |
| |
| |
What's Wrong with EDI? | |
| |
| |
XML Approaches to EDI | |
| |
| |
Summary | |
| |
| |
| |
XML Tools | |
| |
| |
| |
XML Authoring and Content Management Tools | |
| |
| |
Types of XML Tools | |
| |
| |
XML Authoring Tools | |
| |
| |
XML Content Management Tools | |
| |
| |
Other XML Tools | |
| |
| |
Summary | |
| |
| |
| |
Migrating Legacy Data with XML Generator | |
| |
| |
XML Generator Fundamentals | |
| |
| |
Using the XML Generator Application | |
| |
| |
Generating XML Documents | |
| |
| |
Summary | |
| |
| |
| |
The XFA Scripting System | |
| |
| |
XFA Scripting Basics | |
| |
| |
The Relationship Between XFA and XML | |
| |
| |
XFA Data Types | |
| |
| |
The XFA Vocabulary | |
| |
| |
Writing XFA Scripts | |
| |
| |
XFA and DTDs | |
| |
| |
Summary | |
| |
| |
| |
Generating DTDs with DDbE | |
| |
| |
Understanding DDbE | |
| |
| |
Inside the DDbE Command-Line Tool | |
| |
| |
Generating DTDs | |
| |
| |
Using the DDbE Library | |
| |
| |
Summary | |
| |
| |
| |
Getting to Know IBM's XML Toolset | |
| |
| |
Peering Inside the Tool Chest | |
| |
| |
Using Xplorer and XML Viewer | |
| |
| |
Using the XML Translator Generator | |
| |
| |
Using the XML Diff and Merge Tool | |
| |
| |
Summary | |
| |
| |
| |
Exploring XML Vocabularies | |
| |
| |
| |
Making Headlines with XMLNews | |
| |
| |
Understanding XMLNews | |
| |
| |
Inside the XMLNews-Story Vocabulary | |
| |
| |
Creating News Stories with XMLNews | |
| |
| |
Summary | |
| |
| |
| |
Integrating Multimedia Objects with SMIL | |
| |
| |
SMIL Basics | |
| |
| |
Inside the SMIL Vocabulary | |
| |
| |
Creating SMIL Content | |
| |
| |
SMIL Players and Authoring Tools | |
| |
| |
SMIL and HTML+TIME | |
| |
| |
Summary | |
| |
| |
| |
Pushing Web Content with CDF | |
| |
| |
Active Channels Basics | |
| |
| |
Using Active Channels | |
| |
| |
Inside the CDF Vocabulary | |
| |
| |
Creating Channels with CDF | |
| |
| |
The CDF Generator Tool | |
| |
| |
Summary | |
| |
| |
| |
Describing Vector Graphics with VML and SVG | |
| |
| |
The Significance of Structured Vector Graphics | |
| |
| |
XML Vector Graphics Offerings | |
| |
| |
Inside the VML Vocabulary | |
| |
| |
Inside the SVG Vocabulary | |
| |
| |
Summary | |
| |
| |
| |
Virtual Reality and 3DML | |
| |
| |
3DML Basics | |
| |
| |
Inside the 3DML Vocabulary | |
| |
| |
Creating a 3DML World | |
| |
| |
Embedding 3DML Worlds in Web Pages | |
| |
| |
The Spotnik 3DML Spot Builder Tool | |
| |
| |
Summary | |
| |
| |
| |
Mathematically Speaking with MathML | |
| |
| |
MathML Basics | |
| |
| |
Inside the MathML Vocabulary | |
| |
| |
Creating MathML Content | |
| |
| |
MathML Tools | |
| |
| |
Summary | |
| |
| |
| |
Managing Privacy with P3P | |
| |
| |
P3P Basics | |
| |
| |
Getting Up to Speed with RDF | |
| |
| |
Inside the P3P Harmonized Vocabulary | |
| |
| |
Creating a Privacy Policy with P3P | |
| |
| |
The Privacy Wizard | |
| |
| |
Summary | |
| |
| |
| |
Listing Real Estate with RELML | |
| |
| |
RELML Basics | |
| |
| |
Inside the RELML Vocabulary | |
| |
| |
Creating RELML Content | |
| |
| |
RELML and OpenMLS | |
| |
| |
Summary | |
| |
| |
| |
Managing Human Resources with HRMML | |
| |
| |
HRMML Basics | |
| |
| |
Inside the HRMML Vocabulary | |
| |
| |
Assessing the Structure of HRMML Resumes | |
| |
| |
Creating Resumes with HRMML | |
| |
| |
Viewing HRMML Resumes | |
| |
| |
Summary | |
| |
| |
| |
Interactive Speech and VoxML | |
| |
| |
VoxML Basics | |
| |
| |
Inside the VoxML Vocabulary | |
| |
| |
VoxML Tools | |
| |
| |
Creating a Voice Application with VoxML | |
| |
| |
Summary | |
| |
| |
| |
Appendixes | |
| |
| |
| |
A Guide to XML Acronyms | |
| |
| |
General XML Resources | |
| |
| |
XML Specifications | |
| |
| |
XML Browsers | |
| |
| |
XML Tools | |
| |
| |
XML Vocabularies | |
| |
| |
Other Resources | |
| |
| |
| |
XML Resources | |
| |
| |
Index | |