Table of Contents
(NOTE: Most chapters conclude with a Summary, Review Questions, and Programming Exercises.)
I. XML FUNDAMENTALS
1. BASIC XML DOCUMENT STRUCTURE.
The Structure of an XML File. Elements. Attributes. Beyond Elements and Attributes. Well-Formed Versus Valid Documents. Namespaces.
2. Designing XML Documents and Applications.
The Planning Process. Defining the Goals and Objectives. Gathering the Team. Gathering Information. Function/Process Modeling. Data Modeling. Checking the Model. Creating the Structure. The Final Structure.
3. Manipulating Documents: The Document Object Model (DOM).
What Is the Document Object Model? The DOM Structure. Navigating a DOM Document. Changing Content. Creating New Content.
4. Advanced DOM Techniques.
Additional Features of the DOM Level 2.0 Core. DOM Level 2.0 Traversal. DOM Level 3.0 Load and Save.
5. XML Streams: The Simple API for XML (SAX).
What Is SAX? Creating the Parser. Handling Events. Creating the Application. Filters and Chains.
What Is Validation? Validating Documents. Schema Validation. Working with Errors.
7. Document Type Definitions (DTDs).
Types of DTDs. Creating Elements and Content Models. Creating Attributes. General Entities. Parameter Entities.
8. XML Schemas.
Schema Structure. Simple Elements. Complex Elements. Referencing Predefined Elements. Adding Attributes. Creating New Types. Deriving Custom Types. Data Integrity. Namespaces. Other Schema Proposals.
9. Extensible Stylesheet Language Transformations (XSLT).
XSL, XSLT, and XSL-FO. Basic Style Sheet Transformations. An Overview of XPath. Templates. Creating Content. Variables and Parameters. Flow Control. Modes.
10. Transformation and Applications.
Transformation Methodologies. Transforming Data. Templates and Parameters. Transformations and SAX. Programming Within a Style Sheet.
11. Selecting Data: XML Path Language (XPath).
What Is XPath? How XPath Works. Axes. Node Tests. Location Paths. Predicates. Functions.
II. USING XML.
12. Browser-Based XML: Cascading Style Sheets (CSS).
Gathering the Pieces. Selectors. Properties. Controlling Appearance. Layout and Flow. Other Media.
13. Browser-Based XML: XHTML.
XHTML Overview. Basic XHTML. XHTML Forms. Converting XML to XHTML with XSLT. HTML DOM in the Browser.
14. XML Linking Language (XLink).
XLink Overview. Link-Building Basics. Extended Links. Linkbases. XPointer.
XForms Basics. Form Controls. Submitting the Form. Form Values. Form Structures. Multiple Forms and Form Submissions. Form Events.
16. XML and Publishing: Formatting Objects with XSL.
Overview. Creating a Basic Document. Styling the Content. Tables and Lists. Images and Links. Advanced Page Management.
17. XML and Web Services.
Overview. The Web Server. A Simple Web Service. Using SOAP to Call a Web Service. Web Services Description Language (WSDL). Universal Description, Discovery, and Integration (UDDI).
18. XML Data Binding.
Overview. Creating a Class. Using the Classes. Creating and Removing Elements. A Closer Look at Binding Structures. Multiple Levels and Datatypes.
19. XML and Databases: Relational Databases.
Types of Systems. Types of Data. XML Relational Mapping Models. XML-Enabled Databases.
20. XML and Databases: Native XML Databases.
Overview of Native XML Databases. NXD Basics. Using the XML:DB API. XQuery 1.0 and XPath 2.0. XUpdate.
21. Where We Go from Here.
The 10,000-Foot View. Existing Vocabularies. Where We're Going. Last Words.
Appendix A: Resources.
Appendix B: XML Information Set.
The document Information Item. The element Information Item. The attribute Information Item. The processing instruction Information Item. The unexpanded entity reference Information Item. The character Information Item. The comment Information Item. The Document Type Definition Information Item. The unparsed entity Information Item. The notation Information Item. The namespace Information Item.
Appendix C: Questions and Answers.
This book presents XML programming from a conceptual perspective, teaching not just the technology, but the background and thinking behind it. Developers learn to do it right, gaining a thorough understanding of the hows and the whys from the ground up. Rather than teaching programmers to memorize specific APIs, this book teaches programmers how to think about XML programming in a language-neutral way, with examples in various languages (such as Java, C++, Perl, and VB) and provides guidance on how and when XML can be used in real-world situations.
Nicholas Chase has been involved in Web site development for companies such as Lucent Technologies, Sun Microsystems, Oracle, and the Tampa Bay Buccaneers. Nick has been a high school physics teacher, a low-level radioactive waste facility manager, an online science fiction magazine editor, a multimedia engineer, and an Oracle instructor. More recently, he was the chief technology officer of an interactive development company, and is the author of several books on XML and on Web development.