You are previewing XML in a Nutshell, 3rd Edition.
O'Reilly logo
XML in a Nutshell, 3rd Edition

Book Description

If you're a developer working with XML, you know there's a lot to know about XML, and the XML space is evolving almost moment by moment. But you don't need to commit every XML syntax, API, or XSLT transformation to memory; you only need to know where to find it. And if it's a detail that has to do with XML or its companion standards, you'll find it--clear, concise, useful, and well-organized--in the updated third edition of XML in a Nutshell. With XML in a Nutshell beside your keyboard, you'll be able to:

  • Quick-reference syntax rules and usage examples for the core XML technologies, including XML, DTDs, Xpath, XSLT, SAX, and DOM

  • Develop an understanding of well-formed XML, DTDs, namespaces, Unicode, and W3C XML Schema

  • Gain a working knowledge of key technologies used for narrative XML documents such as web pages, books, and articles technologies like XSLT, Xpath, Xlink, Xpointer, CSS, and XSL-FO

  • Build data-intensive XML applications

  • Understand the tools and APIs necessary to build data-intensive XML applications and process XML documents, including the event-based Simple API for XML (SAX2) and the tree-oriented Document Object Model (DOM)

This powerful new edition is the comprehensive XML reference. Serious users of XML will find coverage on just about everything they need, from fundamental syntax rules, to details of DTD and XML Schema creation, to XSLT transformations, to APIs used for processing XML documents. XML in a Nutshell also covers XML 1.1, as well as updates to SAX2 and DOM Level 3 coverage. If you need explanation of how a technology works, or just need to quickly find the precise syntax for a particular piece, XML in a Nutshell puts the information at your fingertips. Simply put, XML in a Nutshell is the critical, must-have reference for any XML developer.

Table of Contents

  1. XML in a Nutshell, 3rd Edition
  2. Preface
    1. What This Book Covers
    2. What's New in the Third Edition
    3. Organization of the Book
    4. Conventions Used in This Book
    5. Request for Comments
    6. Acknowledgments
  3. I. XML Concepts
    1. 1. Introducing XML
      1. 1.1. The Benefits of XML
      2. 1.2. What XML Is Not
      3. 1.3. Portable Data
      4. 1.4. How XML Works
      5. 1.5. The Evolution of XML
    2. 2. XML Fundamentals
      1. 2.1. XML Documents and XML Files
      2. 2.2. Elements, Tags, and Character Data
        1. 2.2.1. Tag Syntax
          1. 2.2.1.1. Empty elements
          2. 2.2.1.2. Case-sensitivity
        2. 2.2.2. XML Trees
          1. 2.2.2.1. Parents and children
          2. 2.2.2.2. The root element
        3. 2.2.3. Mixed Content
      3. 2.3. Attributes
      4. 2.4. XML Names
      5. 2.5. References
      6. 2.6. CDATA Sections
      7. 2.7. Comments
      8. 2.8. Processing Instructions
      9. 2.9. The XML Declaration
        1. 2.9.1. The version Attribute
        2. 2.9.2. The encoding Attribute
        3. 2.9.3. The standalone Attribute
      10. 2.10. Checking Documents for Well-Formedness
    3. 3. Document Type Definitions (DTDs)
      1. 3.1. Validation
        1. 3.1.1. A Simple DTD Example
        2. 3.1.2. The Document Type Declaration
          1. 3.1.2.1. Public IDs
        3. 3.1.3. Internal DTD Subsets
        4. 3.1.4. Validating a Document
      2. 3.2. Element Declarations
        1. 3.2.1. #PCDATA
        2. 3.2.2. Child Elements
        3. 3.2.3. Sequences
        4. 3.2.4. The Number of Children
        5. 3.2.5. Choices
        6. 3.2.6. Parentheses
        7. 3.2.7. Mixed Content
        8. 3.2.8. Empty Elements
        9. 3.2.9. ANY
      3. 3.3. Attribute Declarations
        1. 3.3.1. Attribute Types
          1. 3.3.1.1. CDATA
          2. 3.3.1.2. NMTOKEN
          3. 3.3.1.3. NMTOKENS
          4. 3.3.1.4. Enumeration
          5. 3.3.1.5. ID
          6. 3.3.1.6. IDREF
          7. 3.3.1.7. IDREFS
          8. 3.3.1.8. ENTITY
          9. 3.3.1.9. ENTITIES
          10. 3.3.1.10. NOTATION
        2. 3.3.2. Attribute Defaults
      4. 3.4. General Entity Declarations
      5. 3.5. External Parsed General Entities
        1. 3.5.1. Text Declarations
      6. 3.6. External Unparsed Entities and Notations
        1. 3.6.1. Notations
        2. 3.6.2. Embedding Unparsed Entities in Documents
      7. 3.7. Parameter Entities
        1. 3.7.1. Parameter Entity Syntax
        2. 3.7.2. Redefining Parameter Entities
        3. 3.7.3. External DTD Subsets
      8. 3.8. Conditional Inclusion
      9. 3.9. Two DTD Examples
        1. 3.9.1. DTDs for Record-Like Documents
        2. 3.9.2. DTDs for Narrative Documents
      10. 3.10. Locating Standard DTDs
    4. 4. Namespaces
      1. 4.1. The Need for Namespaces
      2. 4.2. Namespace Syntax
        1. 4.2.1. Qualified Names, Prefixes, and Local Parts
        2. 4.2.2. Binding Prefixes to URIs
        3. 4.2.3. Namespace URIs
        4. 4.2.4. Setting a Default Namespace with the xmlns Attribute
      3. 4.3. How Parsers Handle Namespaces
      4. 4.4. Namespaces and DTDs
        1. 4.4.1. Parameter Entity References for Namespace Prefixes
    5. 5. Internationalization
      1. 5.1. Character-Set Metadata
      2. 5.2. The Encoding Declaration
      3. 5.3. Text Declarations
      4. 5.4. XML-Defined Character Sets
      5. 5.5. Unicode
        1. 5.5.1. UCS-2 and UTF-16
        2. 5.5.2. UTF-8
      6. 5.6. ISO Character Sets
      7. 5.7. Platform-Dependent Character Sets
        1. 5.7.1. Cp1252
        2. 5.7.2. MacRoman
      8. 5.8. Converting Between Character Sets
      9. 5.9. The Default Character Set for XML Documents
      10. 5.10. Character References
      11. 5.11. xml:lang
        1. 5.11.1. Language Codes
        2. 5.11.2. Subcodes
        3. 5.11.3. ATTLIST Declarations of xml:lang
  4. II. Narrative-Like Documents
    1. 6. XML as a Document Format
      1. 6.1. SGML's Legacy
      2. 6.2. Narrative Document Structures
      3. 6.3. TEI
      4. 6.4. DocBook
      5. 6.5. OpenOffice
      6. 6.6. WordprocessingML
      7. 6.7. Document Permanence
      8. 6.8. Transformation and Presentation
    2. 7. XML on the Web
      1. 7.1. XHTML
        1. 7.1.1. Moving from HTML to XHTML
        2. 7.1.2. Three DTDs for XHTML
        3. 7.1.3. Browser Support for XHTML
          1. 7.1.3.1. The XML declaration and processing instructions
          2. 7.1.3.2. Empty elements
          3. 7.1.3.3. Entity references
          4. 7.1.3.4. Other unsupported features
      2. 7.2. Direct Display of XML in Browsers
        1. 7.2.1. The xml-stylesheet Processing Instruction
          1. 7.2.1.1. The required href and type pseudo-attributes
          2. 7.2.1.2. The media pseudo-attribute
          3. 7.2.1.3. The charset pseudo-attribute
          4. 7.2.1.4. The alternate and title pseudo-attributes
        2. 7.2.2. Internet Explorer
        3. 7.2.3. Netscape and Mozilla
        4. 7.2.4. Alternative Approaches
      3. 7.3. Authoring Compound Documents with Modular XHTML
        1. 7.3.1. Mixing XHTML into Your Applications
        2. 7.3.2. Mixing Your Applications into XHTML
        3. 7.3.3. Mixing Your Own XHTML
      4. 7.4. Prospects for Improved Web Search Methods
        1. 7.4.1. RDF
        2. 7.4.2. Dublin Core
        3. 7.4.3. Robots
    3. 8. XSL Transformations (XSLT)
      1. 8.1. An Example Input Document
      2. 8.2. xsl:stylesheet and xsl:transform
      3. 8.3. Stylesheet Processors
        1. 8.3.1. Command-Line Processors
        2. 8.3.2. The xml-stylesheet Processing Instruction
      4. 8.4. Templates and Template Rules
      5. 8.5. Calculating the Value of an Element with xsl:value-of
      6. 8.6. Applying Templates with xsl:apply-templates
      7. 8.7. The Built-in Template Rules
        1. 8.7.1. The Default Template Rule for Text and Attribute Nodes
        2. 8.7.2. The Default Template Rule for Element and Root Nodes
        3. 8.7.3. The Default Template Rule for Comment and Processing Instruction Nodes
        4. 8.7.4. The Default Template Rule for Namespace Nodes
      8. 8.8. Modes
      9. 8.9. Attribute Value Templates
      10. 8.10. XSLT and Namespaces
      11. 8.11. Other XSLT Elements
    4. 9. XPath
      1. 9.1. The Tree Structure of an XML Document
      2. 9.2. Location Paths
        1. 9.2.1. The Root Location Path
        2. 9.2.2. Child Element Location Steps
        3. 9.2.3. Attribute Location Steps
        4. 9.2.4. The comment( ), text( ), and processing-instruction( ) Location Steps
        5. 9.2.5. Wildcards
        6. 9.2.6. Multiple Matches with |
      3. 9.3. Compound Location Paths
        1. 9.3.1. Building Compound Location Paths from Location Steps with /
        2. 9.3.2. Selecting from Descendants with //
        3. 9.3.3. Selecting the Parent Element with ..
        4. 9.3.4. Selecting the Context Node with .
      4. 9.4. Predicates
      5. 9.5. Unabbreviated Location Paths
      6. 9.6. General XPath Expressions
        1. 9.6.1. Numbers
        2. 9.6.2. Strings
        3. 9.6.3. Booleans
      7. 9.7. XPath Functions
        1. 9.7.1. Node-Set Functions
        2. 9.7.2. String Functions
        3. 9.7.3. Boolean Functions
        4. 9.7.4. Number Functions
    5. 10. XLinks
      1. 10.1. Simple Links
      2. 10.2. Link Behavior
        1. 10.2.1. xlink:show
        2. 10.2.2. xlink:actuate
      3. 10.3. Link Semantics
      4. 10.4. Extended Links
        1. 10.4.1. Locators
        2. 10.4.2. Arcs
          1. 10.4.2.1. Multiple arcs from one arc element
          2. 10.4.2.2. Arc titles
          3. 10.4.2.3. Arc roles
        3. 10.4.3. Local Resources
        4. 10.4.4. Title Elements
      5. 10.5. Linkbases
      6. 10.6. DTDs for XLinks
      7. 10.7. Base URIs
    6. 11. XPointers
      1. 11.1. XPointers on URLs
      2. 11.2. XPointers in Links
      3. 11.3. Shorthand Pointers
      4. 11.4. Child Sequences
      5. 11.5. Namespaces
      6. 11.6. Points
      7. 11.7. Ranges
        1. 11.7.1. The range( ) Function
        2. 11.7.2. The range-inside( ) Function
        3. 11.7.3. The range-to( ) Function
        4. 11.7.4. The string-range( ) Function
        5. 11.7.5. Relative XPointers
        6. 11.7.6. here( )
        7. 11.7.7. origin( )
    7. 12. XInclude
      1. 12.1. The include Element
      2. 12.2. Including Text Files
      3. 12.3. Content Negotiation
      4. 12.4. Fallbacks
      5. 12.5. XPointers
    8. 13. Cascading Style Sheets (CSS)
      1. 13.1. The Levels of CSS
      2. 13.2. CSS Syntax
      3. 13.3. Associating Stylesheets with XML Documents
      4. 13.4. Selectors
        1. 13.4.1. The Universal Selector
        2. 13.4.2. Matching Descendants, Children, and Siblings
        3. 13.4.3. Attribute Selectors
        4. 13.4.4. Pseudo-Class Selectors
        5. 13.4.5. Pseudo-Element Selectors
      5. 13.5. The Display Property
        1. 13.5.1. Inline Elements
        2. 13.5.2. Block Elements
        3. 13.5.3. List Elements
        4. 13.5.4. Hidden Elements
        5. 13.5.5. Table Elements
      6. 13.6. Pixels, Points, Picas, and Other Units of Length
      7. 13.7. Font Properties
      8. 13.8. Text Properties
      9. 13.9. Colors
    9. 14. XSL Formatting Objects (XSL-FO)
      1. 14.1. XSL Formatting Objects
      2. 14.2. The Structure of an XSL-FO Document
      3. 14.3. Laying Out the Master Pages
        1. 14.3.1. Flowing Content into the Pages
        2. 14.3.2. Generating the Finished Document
      4. 14.4. XSL-FO Properties
      5. 14.5. Choosing Between CSS and XSL-FO
    10. 15. Resource Directory Description Language (RDDL)
      1. 15.1. What's at the End of a Namespace URL?
      2. 15.2. RDDL Syntax
      3. 15.3. Natures
      4. 15.4. Purposes
  5. III. Record-Like Documents
    1. 16. XML as a Data Format
      1. 16.1. Why Use XML for Data?
        1. 16.1.1. Mixed Environments
        2. 16.1.2. Communications Protocols
          1. 16.1.2.1. XML as a part of the Web: REST
          2. 16.1.2.2. XML for procedure calls over HTTP: XML-RPC
          3. 16.1.2.3. XML envelopes and messages: SOAP
          4. 16.1.2.4. Other options: BEEP and XMPP
        3. 16.1.3. Object Serialization
        4. 16.1.4. File Formats
        5. 16.1.5. Databases
        6. 16.1.6. RDF
      2. 16.2. Developing Record-Like XML Formats
        1. 16.2.1. Basic Application Requirements
          1. 16.2.1.1. Where and how will new documents be created?
          2. 16.2.1.2. How complex will the document be?
          3. 16.2.1.3. How will documents be consumed?
          4. 16.2.1.4. How widely will the resulting documents be distributed?
          5. 16.2.1.5. Will others need to incorporate this document structure into their own applications?
        2. 16.2.2. Investigating Available Options
          1. 16.2.2.1. XML vocabulary development
        3. 16.2.3. Planning for Growth
        4. 16.2.4. Choosing a Validation Method
        5. 16.2.5. Namespace Support
          1. 16.2.5.1. Will instance documents need to be validated using a DTD?
          2. 16.2.5.2. Will markup from this application need to be embedded in other applications?
          3. 16.2.5.3. Are there legacy XML document formats to support?
        6. 16.2.6. Maintaining Compatibility
      3. 16.3. Sharing Your XML Format
    2. 17. XML Schemas
      1. 17.1. Overview
        1. 17.1.1. Schemas Versus DTDs
        2. 17.1.2. Namespace Issues
      2. 17.2. Schema Basics
        1. 17.2.1. Document Organization
        2. 17.2.2. Annotations
          1. 17.2.2.1. The xs:documentation element
          2. 17.2.2.2. The xs:appinfo element
        3. 17.2.3. Element Declarations
          1. 17.2.3.1. Simple types
        4. 17.2.4. Attribute Declarations
          1. 17.2.4.1. Attribute groups
      3. 17.3. Working with Namespaces
        1. 17.3.1. Target Namespaces
        2. 17.3.2. Controlling Qualification
      4. 17.4. Complex Types
        1. 17.4.1. Occurrence Constraints
        2. 17.4.2. Types of Element Content
      5. 17.5. Empty Elements
        1. 17.5.1. The complexContent Element
      6. 17.6. Simple Content
        1. 17.6.1. Defining New Simple Types
        2. 17.6.2. Facets
          1. 17.6.2.1. Handling whitespace
          2. 17.6.2.2. Restricting length
          3. 17.6.2.3. Enumerations
          4. 17.6.2.4. Numeric facets
            1. 17.6.2.4.1. Minimum and maximum values
            2. 17.6.2.4.2. Length and precision
          5. 17.6.2.5. Enforcing format
          6. 17.6.2.6. Lists
          7. 17.6.2.7. Unions
      7. 17.7. Mixed Content
        1. 17.7.1. Allowing Mixed Content
        2. 17.7.2. Controlling Element Placement
        3. 17.7.3. Using Groups
      8. 17.8. Allowing Any Content
        1. 17.8.1. Using Multiple Documents
          1. 17.8.1.1. Including external declarations
          2. 17.8.1.2. Modifying external declarations
          3. 17.8.1.3. Importing schemas for other namespaces
        2. 17.8.2. Derived Complex Types
          1. 17.8.2.1. Deriving by extension
          2. 17.8.2.2. Deriving by restriction
          3. 17.8.2.3. Using derived types
        3. 17.8.3. Substitution Groups
      9. 17.9. Controlling Type Derivation
        1. 17.9.1. Abstract Elements and Types
        2. 17.9.2. The Final Attribute
        3. 17.9.3. Setting fixed Facets
        4. 17.9.4. Uniqueness and Keys
          1. 17.9.4.1. Forcing uniqueness
          2. 17.9.4.2. Keys and references
    3. 18. Programming Models
      1. 18.1. Common XML Processing Models
        1. 18.1.1. Text-Based XML Processing
        2. 18.1.2. Event-Driven XML Processing
        3. 18.1.3. Tree-based XML Processing
        4. 18.1.4. Pull-Based XML Processing
        5. 18.1.5. Transformations
        6. 18.1.6. Abstracting XML Away
        7. 18.1.7. Standards and Extensions
        8. 18.1.8. Combining Approaches
      2. 18.2. Common XML Processing Issues
        1. 18.2.1. What You Get Is Not What You Saw
        2. 18.2.2. To Read the DTD or Not To Read the DTD?
        3. 18.2.3. Whitespace
        4. 18.2.4. Entity References
        5. 18.2.5. CDATA Sections
        6. 18.2.6. Comments
        7. 18.2.7. Processing Instructions
        8. 18.2.8. Notations
        9. 18.2.9. Unparsed Entities
      3. 18.3. Generating XML Documents
    4. 19. Document Object Model (DOM)
      1. 19.1. DOM Foundations
        1. 19.1.1. DOM Notation
        2. 19.1.2. DOM Strengths and Weaknesses
      2. 19.2. Structure of the DOM Core
        1. 19.2.1. Generic Versus Specific DOM Interfaces
      3. 19.3. Node and Other Generic Interfaces
        1. 19.3.1. The NodeList Interface
        2. 19.3.2. The NamedNodeMap Interface
        3. 19.3.3. Relating Document Structure to Nodes
      4. 19.4. Specific Node-Type Interfaces
        1. 19.4.1. Structural Nodes
          1. 19.4.1.1. DocumentType
          2. 19.4.1.2. ProcessingInstruction
          3. 19.4.1.3. Notation
          4. 19.4.1.4. Entity
        2. 19.4.2. Content Nodes
          1. 19.4.2.1. Document
          2. 19.4.2.2. DocumentFragment
          3. 19.4.2.3. Element
          4. 19.4.2.4. Attr
          5. 19.4.2.5. CharacterData
          6. 19.4.2.6. Comment
          7. 19.4.2.7. EntityReference
          8. 19.4.2.8. Text
          9. 19.4.2.9. CDATASection
      5. 19.5. The DOMImplementation Interface
      6. 19.6. DOM Level 3 Interfaces
        1. 19.6.1. DOMStringList
          1. 19.6.1.1. NameList
          2. 19.6.1.2. DOMImplementationList
          3. 19.6.1.3. DOMImplementationSource
          4. 19.6.1.4. TypeInfo
          5. 19.6.1.5. UserDataHandler
          6. 19.6.1.6. DOMError
          7. 19.6.1.7. DOMErrorHandler
          8. 19.6.1.8. DOMLocator
          9. 19.6.1.9. DOMConfiguration
      7. 19.7. Parsing a Document with DOM
      8. 19.8. A Simple DOM Application
    5. 20. Simple API for XML (SAX)
      1. 20.1. The ContentHandler Interface
      2. 20.2. Features and Properties
      3. 20.3. Filters
  6. IV. Reference
    1. 21. XML Reference
      1. 21.1. How to Use This Reference
      2. 21.2. Annotated Sample Documents
      3. 21.3. XML Syntax
        1. 21.3.1. Global Syntax Structures
          1. Characters
          2. Whitespace
          3. Names
          4. Character References
          5. Predefined Entities
          6. CDATA (Character Data) Sections
          7. Entities
          8. Parameter Entity References
          9. General Entity References
          10. Comments
          11. Processing Instructions
          12. XML Declaration
          13. Version Information
          14. Encoding Declaration
          15. Standalone Declaration
        2. 21.3.2. DTD (Document Type Definition)
          1. Parameter Entities
          2. Parameter Entity Declarations
          3. Parsed General Entities
          4. Text Declarations
          5. External Subset
          6. Internal DTD Subset
          7. Element Type Declaration
          8. Empty Element Type
          9. Any Element Type
          10. Mixed Content Element Type
          11. Constrained Child Nodes
          12. Attribute List Declaration
          13. NOTATION Attribute Type
          14. Enumeration Attribute Type
          15. Default Values
          16. Special Attributes
          17. Notation Declaration
          18. Conditional Sections
        3. 21.3.3. Document Body
          1. Start-Tags and End-Tags
          2. Empty-Element Tags
          3. Attributes
        4. 21.3.4. Namespaces
          1. Unqualified Names
          2. Qualified Names
          3. Default Namespace Declaration
          4. Namespace Prefix Declaration
      4. 21.4. Constraints
        1. 21.4.1. Well-Formedness Constraints
          1. PEs in Internal Subset
          2. External Subset
          3. PE Between Declarations
          4. Element Type Match
          5. Unique Att Spec
          6. No External Entity References
          7. No < in Attribute Values
          8. Legal Character
          9. Entity Declared
          10. Parsed Entity
          11. No Recursion
          12. In DTD
        2. 21.4.2. Validity Constraints
          1. Root Element Type
          2. Proper Declaration/PE Nesting
          3. Standalone Document Declaration
          4. Element Valid
          5. Attribute Value Type
          6. Unique Element Type Declaration
          7. Proper Group/PE Nesting
          8. No Duplicate Types
          9. ID
          10. One ID per Element Type
          11. ID Attribute Default
          12. IDREF
          13. Entity Name
          14. Name Token
          15. Notation Attributes
          16. One Notation per Element Type
          17. No Notation on Empty Element
          18. Enumeration
          19. Required Attribute
          20. Attribute Default Legal
          21. Fixed Attribute Default
          22. Proper Conditional Section/PE Nesting
          23. Entity Declared
          24. Notation Declared
          25. Unique Notation Name
        3. 21.4.3. Namespace Constraints
          1. Leading "XML"
          2. Prefix Declared
      5. 21.5. XML 1.0 Document Grammar
        1. 21.5.1. EBNF Grammar for XML 1.0 (Third Edition)
          1. 21.5.1.1. Document
          2. 21.5.1.2. Character range
          3. 21.5.1.3. Whitespace
          4. 21.5.1.4. Names and tokens
          5. 21.5.1.5. Literals
          6. 21.5.1.6. Character data
          7. 21.5.1.7. Comments
          8. 21.5.1.8. Processing instructions
          9. 21.5.1.9. CDATA sections
          10. 21.5.1.10. Prolog
          11. 21.5.1.11. Document type definition
          12. 21.5.1.12. External subset
          13. 21.5.1.13. Standalone document declaration
          14. 21.5.1.14. Element
          15. 21.5.1.15. Start-tag
          16. 21.5.1.16. End-tag
          17. 21.5.1.17. Content of elements
          18. 21.5.1.18. Tags for empty elements
          19. 21.5.1.19. Element type declaration
          20. 21.5.1.20. Element-content models
          21. 21.5.1.21. Mixed-content declaration
          22. 21.5.1.22. Attribute-list declaration
          23. 21.5.1.23. Attribute types
          24. 21.5.1.24. Enumerated attribute types
          25. 21.5.1.25. Attribute defaults
          26. 21.5.1.26. Conditional section
          27. 21.5.1.27. Character reference
          28. 21.5.1.28. Entity reference
          29. 21.5.1.29. Entity declaration
          30. 21.5.1.30. External entity declaration
          31. 21.5.1.31. Text declaration
          32. 21.5.1.32. Well-formed external parsed entity
          33. 21.5.1.33. Encoding declaration
          34. 21.5.1.34. Notation declarations
          35. 21.5.1.35. Characters
      6. 21.6. XML 1.1 Document Grammar
        1. 21.6.1. EBNF Grammar for XML 1.1
          1. 21.6.1.1. Document
          2. 21.6.1.2. Character range
          3. 21.6.1.3. Whitespace
          4. 21.6.1.4. Names and tokens
          5. 21.6.1.5. Literals
          6. 21.6.1.6. Character data
          7. 21.6.1.7. Comments
          8. 21.6.1.8. Processing instructions
          9. 21.6.1.9. CDATA sections
          10. 21.6.1.10. Prolog
          11. 21.6.1.11. Document type definition
          12. 21.6.1.12. External subset
          13. 21.6.1.13. Standalone document declaration
          14. 21.6.1.14. Element
          15. 21.6.1.15. Start-tag
          16. 21.6.1.16. End-tag
          17. 21.6.1.17. Content of elements
          18. 21.6.1.18. Tags for empty elements
          19. 21.6.1.19. Element type declaration
          20. 21.6.1.20. Element-content models
          21. 21.6.1.21. Mixed-content declaration
          22. 21.6.1.22. Attribute-list declaration
          23. 21.6.1.23. Attribute types
          24. 21.6.1.24. Enumerated attribute types
          25. 21.6.1.25. Attribute defaults
          26. 21.6.1.26. Conditional section
          27. 21.6.1.27. Character reference
          28. 21.6.1.28. Entity reference
          29. 21.6.1.29. Entity declaration
          30. 21.6.1.30. External entity declaration
          31. 21.6.1.31. Text declaration
          32. 21.6.1.32. Well-formed external parsed entity
          33. 21.6.1.33. Encoding declaration
          34. 21.6.1.34. Notation declarations
    2. 22. Schemas Reference
      1. 22.1. The Schema Namespaces
      2. 22.2. Schema Elements
        1. xs:all
        2. xs:annotation
        3. xs:any
        4. xs:anyAttribute
        5. xs:appinfo
        6. xs:attribute
        7. xs:attributeGroup
        8. xs:choice
        9. xs:complexContent
        10. xs:complexType
        11. xs:documentation
        12. xs:element
        13. xs:enumeration
        14. xs:extension
        15. xs:field
        16. xs:fractionDigits
        17. xs:group
        18. xs:import
        19. xs:include
        20. xs:key
        21. xs:keyref
        22. xs:length
        23. xs:list
        24. xs:maxExclusive
        25. xs:maxInclusive
        26. xs:maxLength
        27. xs:minExclusive
        28. xs:minInclusive
        29. xs:minLength
        30. xs:notation
        31. xs:pattern
        32. xs:redefine
        33. xs:restriction
        34. xs:schema
        35. xs:selector
        36. xs:sequence
        37. xs:simpleContent
        38. xs:simpleType
        39. xs:totalDigits
        40. xs:union
        41. xs:unique
        42. xs:whiteSpace
      3. 22.3. Built-in Types
        1. xs:anyURI
        2. xs:base64Binary
        3. xs:boolean
        4. xs:byte
        5. xs:date
        6. xs:dateTime
        7. xs:decimal
        8. xs:double
        9. xs:duration
        10. xs:ENTITIES
        11. xs:ENTITY
        12. xs:float
        13. xs:gDay
        14. xs:gMonth
        15. xs:gMonthDay
        16. xs:gYear
        17. xs:gYearMonth
        18. xs:hexBinary
        19. xs:ID
        20. xs:IDREF
        21. xs:IDREFS
        22. xs:int
        23. xs:integer
        24. xs:language
        25. xs:long
        26. xs:Name
        27. xs:NCName
        28. xs:negativeInteger
        29. xs:NMTOKEN
        30. xs:NMTOKENS
        31. xs:nonNegativeInteger
        32. xs:nonPositiveInteger
        33. xs:normalizedString
        34. xs:NOTATION
        35. xs:positiveInteger
        36. xs:QName
        37. xs:short
        38. xs:string
        39. xs:time
        40. xs:token
        41. xs:unsignedByte
        42. xs:unsignedInt
        43. xs:unsignedLong
        44. xs:unsignedShort
      4. 22.4. Instance Document Attributes
        1. xsi:nil
        2. xsi:noNamespaceSchemaLocation
        3. xsi:schemaLocation
        4. xsi:type
    3. 23. XPath Reference
      1. 23.1. The XPath Data Model
      2. 23.2. Data Types
      3. 23.3. Location Paths
        1. 23.3.1. Abbreviated Syntax
        2. 23.3.2. Axes
        3. 23.3.3. Node Tests
      4. 23.4. Predicates
      5. 23.5. XPath Functions
        1. boolean( )
        2. ceiling( )
        3. concat( )
        4. contains( )
        5. count( )
        6. false( )
        7. floor( )
        8. id( )
        9. lang( )
        10. last( )
        11. local-name( )
        12. name( )
        13. namespace-uri( )
        14. normalize-space( )
        15. not( )
        16. number( )
        17. position( )
        18. round( )
        19. starts-with( )
        20. string( )
        21. string-length( )
        22. substring( )
        23. substring-after( )
        24. substring-before( )
        25. sum( )
        26. translate( )
        27. true( )
    4. 24. XSLT Reference
      1. 24.1. The XSLT Namespace
      2. 24.2. XSLT Elements
        1. xsl:apply-imports
        2. xsl:apply-templates
        3. xsl:attribute
        4. xsl:attribute-set
        5. xsl:call-template
        6. xsl:choose
        7. xsl:comment
        8. xsl:copy
        9. xsl:copy-of
        10. xsl:decimal-format
        11. xsl:element
        12. xsl:fallback
        13. xsl:for-each
        14. xsl:if
        15. xsl:import
        16. xsl:include
        17. xsl:key
        18. xsl:message
        19. xsl:namespace-alias
        20. xsl:number
        21. xsl:otherwise
        22. xsl:output
        23. xsl:param
        24. xsl:preserve-space
        25. xsl:processing-instruction
        26. xsl:sort
        27. xsl:strip-space
        28. xsl:stylesheet
        29. xsl:template
        30. xsl:text
        31. xsl:transform
        32. xsl:value-of
        33. xsl:variable
        34. xsl:when
        35. xsl:with-param
      3. 24.3. XSLT Functions
        1. current( )
        2. document( )
        3. element-available( )
        4. format-number( )
        5. function-available( )
        6. generate-id( )
        7. key( )
        8. system-property( )
        9. unparsed-entity-uri( )
      4. 24.4. TrAX
    5. 25. DOM Reference
      1. 25.1. Object Hierarchy
      2. 25.2. Object Reference
        1. Attr
        2. isId: boolean(3)
        3. name: DOMString
        4. ownerElement: Element(2)
        5. schemaTypeInfo: TypeInfo(3)
        6. specified: boolean
        7. value: DOMString
        8. CDATASection
        9. CharacterData
        10. data: DOMString
        11. length: unsigned long
        12. appendData: arg
        13. deleteData: offset, count
        14. insertData: offset, arg
        15. replaceData: offset, count, arg
        16. substringData: offset, count
        17. Comment
        18. Document
        19. doctype: DocumentType
        20. documentElement: Element
        21. documentURI: DOMString(3)
        22. domConfig: DOMConfiguration(3)
        23. implementation: DOMImplementation
        24. inputEncoding: DOMString(3)
        25. strictErrorChecking: boolean(3)
        26. xmlEncoding: DOMString(3)
        27. xmlStandalone: boolean(3)
        28. xmlVersion: DOMString(3)
        29. adoptNode: adoptNode, source(3)
        30. createAttribute: name
        31. createAttributeNS: namespaceURI, qualifiedName(2)
        32. createCDATASection: data
        33. createComment: data
        34. createDocumentFragment( )
        35. createElement: tagName
        36. createElementNS: namespaceURI, qualifiedName(2)
        37. createEntityReference: name
        38. createProcessingInstruction: target, data
        39. createTextNode: data
        40. getElementById: elementID(2)
        41. getElementsByTagName: tagName
        42. getElementsByTagNameNS: namespaceURI, localName(2)
        43. importNode: importedNode, deep(2)
        44. normalizeDocument( ) (3)
        45. renameNode: n, namespaceURI, qualifiedName(3)
        46. DocumentFragment
        47. DocumentType
        48. entities: NamedNodeMap
        49. internalSubset: DOMString
        50. name: DOMString
        51. notations: NamedNodeMap
        52. publicId: DOMString
        53. systemId: DOMString
        54. DOMConfiguration(3)
        55. parameterNames: DOMStringList(3)
        56. canSetParameter: name, value(3)
        57. getParameter: name(3)
        58. setParameter: name, value(3)
        59. DOMError(3)
        60. location: DOMLocator(3)
        61. message: DOMString(3)
        62. relatedData: DOMObject(3)
        63. relatedException: DOMObject(3)
        64. severity: unsigned short(3)
        65. type: DOMString(3)
        66. DOMErrorHandler(3)
        67. handleError: error(3)
        68. DOMException
        69. INDEX_SIZE_ERR [unsigned short, value: 1]
        70. DOMSTRING_SIZE_ERR [unsigned short, value: 2]
        71. HIERARCHY_REQUEST_ERR [unsigned short, value: 3]
        72. WRONG_DOCUMENT_ERR [unsigned short, value: 4]
        73. INVALID_CHARACTER_ERR [unsigned short, value: 5]
        74. NO_DATA_ALLOWED_ERR [unsigned short, value: 6]
        75. NO_MODIFICATION_ALLOWED_ERR [unsigned short, value: 7]
        76. NOT_FOUND_ERR [unsigned short, value: 8]
        77. NOT_SUPPORTED_ERR [unsigned short, value: 9]
        78. INUSE_ATTRIBUTE_ERR [unsigned short, value: 10]
        79. INVALID_STATE_ERR [unsigned short, value: 11](2)
        80. SYNTAX_ERR [unsigned short, value: 12](2)
        81. INVALID_MODIFICATION_ERR [unsigned short, value: 13](2)
        82. NAMESPACE_ERR [unsigned short, value: 14](2)
        83. INVALID_ACCESS_ERR [unsigned short, value: 15](2)
        84. VALIDATION_ERR [unsigned short, value: 16](3)
        85. TYPE_MISMATCH_ERR [unsigned short, value: 17](3)
        86. DOMImplementation
        87. createDocument: namespaceURI, qualifiedName, doctype(2)
        88. createDocumentType: qualifiedName, publicId, systemId(2)
        89. getFeature: feature, version(3)
        90. hasFeature: feature, version
        91. DOMImplementationRegistry(3)
        92. DOMImplementationSource(3)
        93. getDOMImplementation: features(3)
        94. getDOMImplementationList: features(3)
        95. DOMLocator(3)
        96. byteOffset: long(3)
        97. columnNumber: long(3)
        98. lineNumber: long(3)
        99. relatedNode: Node(3)
        100. uri: DOMString(3)
        101. utf16Offset: long(3)
        102. DOMObject(3)
        103. DOMString
        104. DOMStringList(3)
        105. length: unsigned long(3)
        106. contains: str(3)
        107. item: index(3)
        108. DOMUserData(3)
        109. Element
        110. schemaTypeInfo: TypeInfo(3)
        111. tagName: DOMString
        112. getAttribute: name
        113. getAttributeNS: namespaceURI, localName(2)
        114. getAttributeNode: name
        115. getAttributeNodeNS: namespaceURI, localName(2)
        116. getElementsByTagName: name
        117. getElementsByTagNameNS: namespaceURI, localName(2)
        118. hasAttribute: name(2)
        119. hasAttributeNS: namespaceURI, localName(2)
        120. normalize
        121. removeAttribute: name
        122. removeAttributeNS: namespaceURI, localName(2)
        123. removeAttributeNode: oldAttr
        124. setAttribute: name, value
        125. setAttributeNS: namespaceURI, qualifiedName, value(2)
        126. setAttributeNode: newAttr
        127. setAttributeNodeNS: newAttr(2)
        128. setIdAttribute: name, isId(3)
        129. setIdAttributeNS: namespaceURI, localName, isId(3)
        130. setIdAttributeNode: idAttr, isId(3)
        131. Entity
        132. inputEncoding: DOMString(3)
        133. notationName: DOMString
        134. publicId: DOMString
        135. systemId: DOMString
        136. xmlEncoding: DOMString(3)
        137. xmlVersion: DOMString(3)
        138. EntityReference
        139. NameList(3)
        140. length: unsigned long(3)
        141. contains: str(3)
        142. containsNS: namespaceURI, name(3)
        143. getName: index(3)
        144. getNamespaceURI: index(3)
        145. NamedNodeMap
        146. length: unsigned long
        147. getNamedItem: name
        148. getNamedItemNS: namespaceURI, localName(2)
        149. item: index
        150. removeNamedItem: name
        151. removeNamedItemNS: namespaceURI, localName(2)
        152. setNamedItem: arg
        153. setNamedItemNS: arg(2)
        154. Node
        155. attributes: NamedNodeMap
        156. baseURI: DOMString(3)
        157. childNodes: NodeList
        158. firstChild: Node
        159. lastChild: Node
        160. localName: DOMString(2)
        161. namespaceURI: DOMString(2)
        162. nextSibling: Node
        163. nodeName: DOMString
        164. nodeType: unsigned short
        165. nodeValue: DOMString
        166. ownerDocument: Document
        167. parentNode: Node
        168. prefix: DOMString(2)
        169. previousSibling: Node
        170. textContent: DOMString(3)
        171. appendChild: newChild
        172. cloneNode: deep
        173. compareDocumentPosition: other(3)
        174. getFeature: feature, version(3)
        175. getUserData: key(3)
        176. hasAttributes( )
        177. hasChildNodes( )
        178. insertBefore: newChild, refChild
        179. isDefaultNamespace: namespaceURI(3)
        180. isEqualNode: arg(3)
        181. isSameNode: other(3)
        182. isSupported: feature, version(2)
        183. lookupNamespaceURI: prefix(3)
        184. lookupPrefix: namespaceURI(3)
        185. normalize( )(2)
        186. removeChild: oldchild
        187. replaceChild: newChild, oldchild
        188. setUserData: key, data, handler(3)
        189. NodeList
        190. length: unsigned long
        191. item:index
        192. ProcessingInstruction
        193. data: DOMString
        194. target: DOMString
        195. Text
        196. wholeText: DOMString(3)
        197. isElementContentWhitespace: boolean(3)
        198. replaceWholeText: content(3)
        199. splitText: offset
        200. TypeInfo(3)
        201. typeName: DOMString(3)
        202. typeNamespace: DOMString(3)
        203. isDerivedFrom: typeNamespaceArg, typeNameArg, derivationMethod(3)
        204. UserDataHandler(3)
        205. handle: operation, key, data, src, dst(3)
    6. 26. SAX Reference
      1. 26.1. The org.xml.sax Package
        1. The Attributes Interface
        2. The ContentHandler Interface
        3. The DTDHandler Interface
        4. The EntityResolver Interface
        5. The ErrorHandler Interface
        6. The Locator Interface
        7. The XMLFilter Interface
        8. The XMLReader Interface
        9. The InputSource Class
        10. The SAXException Class
        11. SAXParseException
        12. SAXNotRecognizedException
        13. SAXNotSupportedException
      2. 26.2. The org.xml.sax.helpers Package
        1. The AttributesImpl Class
        2. The DefaultHandler Class
        3. The LocatorImpl Class
        4. The NamespaceSupport Class
        5. The ParserAdapter Class
        6. The XMLFilterImpl Class
        7. The XMLReaderAdapter Class
        8. The XMLReaderFactory Class
      3. 26.3. SAX Features and Properties
        1. SAX Core Features
        2. SAX Core Properties
      4. 26.4. The org.xml.sax.ext Package
        1. The Attributes2 Interface
        2. The DeclHandler Interface
        3. The EntityResolver2 Interface
        4. The LexicalHandler Interface
        5. The Locator2 Interface
    7. 27. Character Sets
      1. 27.1. Character Tables
        1. 27.1.1. ASCII
        2. 27.1.2. ISO-8859-1, Latin-1
          1. 27.1.2.1. C1 controls
          2. 27.1.2.2. Latin-1
      2. 27.2. HTML4 Entity Sets
      3. 27.3. Other Unicode Blocks
        1. 27.3.1. Latin Extended-A
        2. 27.3.2. Latin Extended-B
        3. 27.3.3. IPA Extensions
        4. 27.3.4. Spacing Modifier Letters
        5. 27.3.5. Combining Diacritical Marks
        6. 27.3.6. Greek and Coptic
        7. 27.3.7. Cyrillic
        8. 27.3.8. Armenian
        9. 27.3.9. Hebrew
        10. 27.3.10. Arabic
        11. 27.3.11. Devanagari
        12. 27.3.12. Thai
        13. 27.3.13. Tibetan
        14. 27.3.14. Ethiopic
        15. 27.3.15. Latin Extended Additional
        16. 27.3.16. Greek Extended
        17. 27.3.17. General Punctuation
        18. 27.3.18. Currency Symbols
        19. 27.3.19. Letter-Like Symbols
        20. 27.3.20. Arrows
        21. 27.3.21. Mathematical Operators
        22. 27.3.22. Miscellaneous Technical
        23. 27.3.23. Optical Character Recognition
        24. 27.3.24. Geometric Shapes
        25. 27.3.25. Miscellaneous Symbols
        26. 27.3.26. Dingbats
  7. About the Authors
  8. Colophon
  9. Copyright