You are previewing XML in Office 2003: Information Sharing with Desktop XML.
O'Reilly logo
XML in Office 2003: Information Sharing with Desktop XML

Book Description

  • Co-authors are the world-renowned inventor of markup languages and a developer of the W3C XML Schema specification

  • Detailed coverage of Office 2003 Professional XML features, plus all the XML knowledge you need to use them

  • Learn to edit your XML document with Word, analyze its data with Excel, store it with Access, and publish it to the Web with FrontPage®

  • Build dynamic custom XML forms with the remarkable new InfoPath™ 2003—structured data collection with word processing flexibility

  • From the Foreword by Jean Paoli, Microsoft XML Architect and co-editor of the W3C XML specification:

    “XML enabled the transfer of information from server to server and server to client, even in cross-platform environments. But the desktop, where documents are created and analyzed by millions of information workers, could not easily participate. Business-critical information was locked inside data storage systems or individual documents, forcing companies to adopt inefficient and duplicative business processes.

    “This is a book on re-inventing the way millions of people write and interact with documents. It succeeds in communicating the novel underlying vision of Office 2003 XML while focusing on task-oriented, hands-on skills for using the product.”

    Desktop XML affects every Office 2003 Professional Edition user!

    It transforms millions of desktop computers from mere word processors into rich clients for Web services, editing front-ends for XML content management systems, and portals for XML-based application integration.

    And this book shows you how to benefit from it. You’ll learn exactly what XML can do for you, and you’ll master its key concepts, all in the context of the Office products you already know and use.

    With 200 tested and working code and markup examples and over 150 screenshots and illustrations from the actual shipped product (not betas), you’ll see step by step how:

  • Office users can share documents more easily, without error-prone rework, re-keying, or cut-and-paste.

  • Office data from your documents can be captured for enterprise databases.

  • Office documents can be kept up-to-date with live data from Web Services and enterprise data stores.

  • Office solutions can overcome traditional limitations by using XML and Smart Documents.

  • BONUS XML SKILLS SECTION! All the XML expertise you’ll need, adapted for Office 2003 users from the best-selling Charles F. Goldfarb’s XML Handbook, Fifth Edition: the XML language, XML Schema, XPath, XSLT, Web services … and more!

    CD-ROM INCLUDED: Provides a fully functional 60-day trial version of Microsoft InfoPath 2003.

    Table of Contents

    1. Copyright
      1. Dedication
    2. The Charles F. Goldfarb Definitive XML Series™
    3. Preface
      1. What do you give the software that has everything?
      2. Who is this book for?
      3. How much XML?
      4. About the products
      5. How to use this book
      6. Acknowledgments
    4. Foreword: A new era for XML, a new beginning for office documents
    5. One. Introducing Desktop XML
      1. 1. Desktop XML: The reason why Introductory Discussion
        1. 1.1. Office before XML
        2. 1.2. Office documents as information assets
          1. 1.2.1. Separating the document representation from the software
          2. 1.2.2. Separating data content from style information
            1. 1.2.2.1. Self-describing content
            2. 1.2.2.2. Flexible rendering
        3. 1.3. Enterprise data integration
          1. 1.3.1. Importing enterprise data
          2. 1.3.2. Reusing enterprise data
          3. 1.3.3. Analyzing enterprise data
          4. 1.3.4. Office as an enterprise data front-end
        4. 1.4. Next stop: the Web
          1. 1.4.1. Retrieving data from Web services
          2. 1.4.2. Office as a front-end to Web services
        5. 1.5. What next?
      2. 2. XML concepts for Office users Introductory Discussion
        1. 2.1. Formatting markup
        2. 2.2. Generalized markup
          1. 2.2.1. Neutral data representation (markup language)
          2. 2.2.2. Extensible markup
            1. 2.2.2.1. Vocabularies
            2. 2.2.2.2. Abstractions and renditions
          3. 2.2.3. Rule-based markup
          4. 2.2.4. Stylesheets
        3. 2.3. Elements and the logical structure
        4. 2.4. Well-formedness and validity
        5. 2.5. XML and the World Wide Web
          1. 2.5.1. Web addresses: URL and URN and URI and IRI
          2. 2.5.2. Web services
          3. 2.5.3. XHTML
        6. 2.6. Namespaces
          1. 2.6.1. Prefixes
          2. 2.6.2. Identifiers
        7. 2.7. Other XML constructs
          1. 2.7.1. Processing instructions
          2. 2.7.2. Comments
        8. 2.8. More on XML
      3. 3. XML in Office Introductory Discussion
        1. 3.1. Information capture and reuse
          1. 3.1.1. Word processing
          2. 3.1.2. Forms
          3. 3.1.3. Relational data
        2. 3.2. End-user data connection
          1. 3.2.1. Spreadsheets
          2. 3.2.2. Web pages
        3. 3.3. Data-driven application enhancement
          1. 3.3.1. Custom renditions
          2. 3.3.2. Smart tags
          3. 3.3.3. Smart documents
          4. 3.3.4. Using the Office tools
    6. Two. Working with XML in Office
      1. 4. Creating and editing XML documents Word Power User Task
        1. 4.1. Creating and using schemas
          1. 4.1.1. Vocabularies and schemas
          2. 4.1.2. The article schema
          3. 4.1.3. Adding a schema to the library
          4. 4.1.4. Using the Schema Library
        2. 4.2. Opening a document
          1. 4.2.1. Opening a Word document
            1. 4.2.1.1. Associating a schema
            2. 4.2.1.2. Applying markup to elements
          2. 4.2.2. Opening an XML document
          3. 4.2.3. Opening a skeleton document
        3. 4.3. Validation
          1. 4.3.1. Schema rules
          2. 4.3.2. Validity errors
        4. 4.4. The XML Structure task pane
          1. 4.4.1. Document structure
          2. 4.4.2. Error signals
          3. 4.4.3. Available element types
          4. 4.4.4. Viewing tag icons
        5. 4.5. Working with attributes
        6. 4.6. Saving a document
          1. 4.6.1. Saving XML without WordML
          2. 4.6.2. Saving mixed vocabularies
        7. 4.7. Combining documents
          1. 4.7.1. Combining elements from multiple namespaces
          2. 4.7.2. Compiling document fragments
            1. 4.7.2.1. Cutting and pasting elements
            2. 4.7.2.2. Copying and inserting documents
            3. 4.7.2.3. Linking to documents
      2. 5. Rendering and presenting XML documents Word Power User Task
        1. 5.1. Word Markup Language (WordML)
          1. 5.1.1. The WordML vocabulary
          2. 5.1.2. Saving a Word document as WordML
          3. 5.1.3. Structure of a WordML document
          4. 5.1.4. In the beginning
          5. 5.1.5. The body
            1. 5.1.5.1. Paragraphs and text
            2. 5.1.5.2. Lists
            3. 5.1.5.3. Tables
            4. 5.1.5.4. Images
            5. 5.1.5.5. Hyperlinks
          6. 5.1.6. Using Word styles
            1. 5.1.6.1. A style example
            2. 5.1.6.2. Generating WordML style definitions
        2. 5.2. Mixing WordML with other vocabularies
        3. 5.3. Creating WordML with stylesheets
          1. 5.3.1. Creating an XSLT stylesheet
            1. 5.3.1.1. Stylesheet structure
            2. 5.3.1.2. Template rules
          2. 5.3.2. Using stylesheets
            1. 5.3.2.1. Associating stylesheets with schemas
            2. 5.3.2.2. Opening a document with a stylesheet
              1. 5.3.2.2.1. Default stylesheet
              2. 5.3.2.2.2. Choose while opening
              3. 5.3.2.2.3. Choose before editing
            3. 5.3.2.3. Saving a document using a transformation
      3. 6. Using external XML data in documents Word Script Developer Task
        1. 6.1. External XML documents
          1. 6.1.1. Importing an external XML document
          2. 6.1.2. Querying an external XML document
          3. 6.1.3. Responding to an event
        2. 6.2. SOAP Web services
          1. 6.2.1. The ZIP code Web service
          2. 6.2.2. The Office Web Services Toolkit
          3. 6.2.3. Using the Web Services Reference Tool
          4. 6.2.4. Working with the generated Web service class
          5. 6.2.5. Responding to two variations of an event
      4. 7. Using XML data in spreadsheets Excel Power User Task
        1. 7.1. Why use XML with Excel?
        2. 7.2. The Worldwide Widget expense report
        3. 7.3. Worksheets, maps and schemas
          1. 7.3.1. Creating a map
          2. 7.3.2. The XML Source task pane
          3. 7.3.3. The mapping process
            1. 7.3.3.1. Mapping non-repeating element types and attributes
            2. 7.3.3.2. Mapping repeating element types and attributes
        4. 7.4. Importing and exporting XML data
          1. 7.4.1. Exporting XML
          2. 7.4.2. Importing XML data
            1. 7.4.2.1. Preserving data and formatting
            2. 7.4.2.2. Importing and validation
        5. 7.5. Mapping from an existing XML document
          1. 7.5.1. Using a schema
          2. 7.5.2. Inferring a schema
        6. 7.6. Data analysis
          1. 7.6.1. Flattening XML data
          2. 7.6.2. Reports and charts
        7. 7.7. More complex XML documents
          1. 7.7.1. Different structures
        8. 7.8. XMLSS: The Excel XML vocabulary
      5. 8. Using Web services with spreadsheets Excel Script Developer Task
        1. 8.1. Analyzing stock quotes with a REST Web service
          1. 8.1.1. The stock quote Web service
          2. 8.1.2. Setting up the XML map
          3. 8.1.3. Refreshing the data
        2. 8.2. Currency conversion with a SOAP Web service
          1. 8.2.1. The currency converter Web service
          2. 8.2.2. The Office Web Services Toolkit
          3. 8.2.3. Refreshing the data
        3. 8.3. Other approaches
        4. 8.4. The Excel Object Model
          1. 8.4.1. XML-related concepts
          2. 8.4.2. Maps
          3. 8.4.3. Lists, cells and XPath expressions
      6. 9. Designing and using forms InfoPath Power User Task
        1. 9.1. Forms on steroids
        2. 9.2. Using a form
          1. 9.2.1. Opening an empty form
          2. 9.2.2. The InfoPath environment
          3. 9.2.3. Fields
          4. 9.2.4. Tables
          5. 9.2.5. Saving and opening documents
        3. 9.3. Designing a form
          1. 9.3.1. Working with the data source
          2. 9.3.2. Laying out the form
            1. 9.3.2.1. Rendering repeating element types
            2. 9.3.2.2. Optional sections
          3. 9.3.3. Fields and controls
          4. 9.3.4. Validating the data
            1. 9.3.4.1. Schema-based constraints
            2. 9.3.4.2. Field-based constraints
          5. 9.3.5. Displaying and formatting the data
            1. 9.3.5.1. Conditional formatting
          6. 9.3.6. Creating a new form
            1. 9.3.6.1. Customizing an existing form
            2. 9.3.6.2. Loading a schema
            3. 9.3.6.3. Using an XML example
            4. 9.3.6.4. Starting from a database
            5. 9.3.6.5. Starting from a SOAP Web service
            6. 9.3.6.6. Starting with a blank slate
          7. 9.3.7. Views
          8. 9.3.8. Allowing users to submit forms
          9. 9.3.9. Saving form designs
          10. 9.3.10. Publishing forms
      7. 10. Using scripts with forms InfoPath Script Developer Task
        1. 10.1. Why use scripts?
        2. 10.2. A simple sample script
        3. 10.3. Script files and forms
        4. 10.4. Events
        5. 10.5. Launching Script Editor
        6. 10.6. The InfoPath object model
          1. 10.6.1. Using the XML document object model
          2. 10.6.2. Browsing the object model
        7. 10.7. Using scripts for validation
          1. 10.7.1. Validation-related events
          2. 10.7.2. Launching Script Editor
          3. 10.7.3. A simple validation function
          4. 10.7.4. Validation involving multiple values
          5. 10.7.5. The OnBeforeChange event
        8. 10.8. Calculations
        9. 10.9. Inserting XML nodes
        10. 10.10. Additional features
      8. 11. Using secondary data sources with forms InfoPath Script Developer Task
        1. 11.1. Defining a secondary data source
        2. 11.2. Secondary XML documents
          1. 11.2.1. For validation
          2. 11.2.2. To complete fields
          3. 11.2.3. For drop-down lists
        3. 11.3. Databases
          1. 11.3.1. Access and SQL Server
          2. 11.3.2. Other databases
        4. 11.4. SOAP Web services
          1. 11.4.1. Web services interface document
            1. 11.4.1.1. Service request
            2. 11.4.1.2. Service response
          2. 11.4.2. Writing the script
      9. 12. Access databases and XML Office Power User Task
        1. 12.1. Why use XML with Access?
          1. 12.1.1. The export process
          2. 12.1.2. The import process
        2. 12.2. Our example database
        3. 12.3. Exporting Access tables
          1. 12.3.1. A simple export
            1. 12.3.1.1. The exported XML document
            2. 12.3.1.2. The generated schema
            3. 12.3.1.3. Additional options
          2. 12.3.2. Exporting data: a closer look
            1. 12.3.2.1. Selecting tables to export
            2. 12.3.2.2. Exporting using filters and sorts
          3. 12.3.3. Generating a schema
          4. 12.3.4. Generating a presentation
        4. 12.4. Exporting other objects
          1. 12.4.1. Exporting queries
          2. 12.4.2. Exporting forms
          3. 12.4.3. Exporting Access project objects
        5. 12.5. Applying a transform on export
        6. 12.6. Importing XML data
          1. 12.6.1. A basic import
          2. 12.6.2. Appending data
          3. 12.6.3. Creating your own XML document for import
          4. 12.6.4. Applying a transform on import
      10. 13. Publishing XML to the Web with FrontPage Office Power User Task
        1. 13.1. Why use FrontPage with XML?
        2. 13.2. Web design by example
        3. 13.3. Set up the website
        4. 13.4. Choose a data source
        5. 13.5. Create a data view
        6. 13.6. Organize the viewed data
          1. 13.6.1. Inserting columns
          2. 13.6.2. Sorting and grouping
          3. 13.6.3. Filtering
        7. 13.7. Format the view
          1. 13.7.1. Applying a style to the data
          2. 13.7.2. Conditional formatting
          3. 13.7.3. Formatting freeform XML documents
          4. 13.7.4. Editing and creating XSLT stylesheets
      11. 14. Developing Office XML applications Office Script Developer Task
        1. 14.1. Smart documents
          1. 14.1.1. The customer letter example, revisited
          2. 14.1.2. Installing a smart document solution
          3. 14.1.3. How smart documents work
          4. 14.1.4. The smart document interface
            1. 14.1.4.1. Element-type properties
              1. 14.1.4.1.1. Element-type names
              2. 14.1.4.1.2. Element-type captions
              3. 14.1.4.1.3. Control count
            2. 14.1.4.2. Control properties
              1. 14.1.4.2.1. Control ID
              2. 14.1.4.2.2. Control type
              3. 14.1.4.2.3. Control caption
            3. 14.1.4.3. Control initialization methods
            4. 14.1.4.4. Control action methods
        2. 14.2. Smart tags
          1. 14.2.1. Using smart tag lists (MOSTL)
          2. 14.2.2. Using program code
        3. 14.3. The research pane
          1. 14.3.1. Available research services
          2. 14.3.2. How it works
        4. 14.4. XML expansion packs and manifests
    7. Three. XML Tutorials
      1. 15. The XML language Friendly Tutorial
        1. 15.1. Syntactic details
          1. 15.1.1. Case-sensitivity
          2. 15.1.2. Markup and data
          3. 15.1.3. White space
          4. 15.1.4. Names
        2. 15.2. Prolog vs. instance
        3. 15.3. The document instance
          1. 15.3.1. What the tags reveal
            1. 15.3.1.1. Tree structure
            2. 15.3.1.2. Semantics
          2. 15.3.2. Elements
            1. 15.3.2.1. Elements with content
            2. 15.3.2.2. Empty elements
            3. 15.3.2.3. Summary
          3. 15.3.3. Attributes
            1. 15.3.3.1. Literal strings
            2. 15.3.3.2. ID and IDREF attributes
        4. 15.4. The prolog
          1. 15.4.1. XML declaration
            1. 15.4.1.1. Version info
            2. 15.4.1.2. Encoding declaration
          2. 15.4.2. Document type declaration
        5. 15.5. Entities: Breaking up is easy to do
          1. 15.5.1. Parsed entities
          2. 15.5.2. External entities
          3. 15.5.3. Entity references
          4. 15.5.4. How entities are used
        6. 15.6. Character references
          1. 15.6.1. Reference by decimal number
          2. 15.6.2. Reference by hexadecimal number
          3. 15.6.3. Reference by name (via an entity)
        7. 15.7. Suppressing markup recognition
          1. 15.7.1. CDATA sections
          2. 15.7.2. Predefined entities
        8. 15.8. Comments
        9. 15.9. Processing instructions
        10. 15.10. Office support for the XML language
        11. 15.11. Summary
      2. 16. Namespaces Friendly Tutorial
        1. 16.1. The namespaces solution
          1. 16.1.1. Namespace prefixes
          2. 16.1.2. Scoping
          3. 16.1.3. Default namespace
          4. 16.1.4. Attribute names
      3. 17. XPath primer Friendly Tutorial
        1. 17.1. Location paths
        2. 17.2. Addressing multiple objects
        3. 17.3. Children and descendants
        4. 17.4. Attributes
        5. 17.5. Predicates
        6. 17.6. The XPath data model
      4. 18. XSL Transformations (XSLT) Friendly Tutorial
        1. 18.1. Transforming vs. rendering
        2. 18.2. XSLT stylesheets
        3. 18.3. Using HTML with XSLT
        4. 18.4. Rules, patterns and templates
        5. 18.5. Creating a stylesheet
          1. 18.5.1. Document-level template rule
          2. 18.5.2. Literal result elements
          3. 18.5.3. Extracting data
          4. 18.5.4. The apply-templates instruction
          5. 18.5.5. Handling optional elements
          6. 18.5.6. Reordering the output
          7. 18.5.7. Data content
          8. 18.5.8. Handling inline elements
          9. 18.5.9. Sharing a template rule
          10. 18.5.10. Final touches
        6. 18.6. Top-level instructions
          1. 18.6.1. Combining stylesheets
            1. 18.6.1.1. Including other stylesheets
            2. 18.6.1.2. Importing from other stylesheets
          2. 18.6.2. Whitespace handling
          3. 18.6.3. Output descriptions
          4. 18.6.4. Numeric formats
          5. 18.6.5. Attribute sets
          6. 18.6.6. Namespace alias
          7. 18.6.7. Keys
        7. 18.7. Variables and parameters
          1. 18.7.1. Variables
        8. 18.8. Parameters
        9. 18.9. Extending XSLT
        10. 18.10. Referencing XSLT stylesheets
      5. 19. Web services introduction Introductory Discussion
        1. 19.1. Communication protocols
        2. 19.2. Amazon.com
          1. 19.2.1. Amazon Associates
          2. 19.2.2. Why not HTML?
          3. 19.2.3. The Amazon Web service
        3. 19.3. Google
        4. 19.4. Service discovery
        5. 19.5. Web services for the REST of us!
        6. 19.6. Security
          1. 19.6.1. Encryption
          2. 19.6.2. Identification
      6. 20. XML Jargon Demystifier™ Introductory Discussion
        1. 20.1. Structured vs. unstructured
        2. 20.2. Tag vs. element
        3. 20.3. Content
        4. 20.4. Document type, DTD, and markup declarations
        5. 20.5. Schema and schema definition
        6. 20.6. Document, XML document, and instance
        7. 20.7. What’s the meta?
          1. 20.7.1. Metadata
          2. 20.7.2. Metalanguage
        8. 20.8. Documents and data
          1. 20.8.1. It’s all data!
          2. 20.8.2. Data-centric vs. document-centric
            1. 20.8.2.1. How relational is it?
            2. 20.8.2.2. How granular is it?
          3. 20.8.3. Document processing vs. data processing
          4. 20.8.4. Comparing documents to data
        9. 20.9. And in conclusion
      7. 21. Datatypes Friendly Tutorial
        1. 21.1. Built-in datatypes
          1. 21.1.1. Primitive datatypes
            1. 21.1.1.1. Common programming datatypes
            2. 21.1.1.2. XML datatypes
            3. 21.1.1.3. Binary datatypes
            4. 21.1.1.4. Durations
            5. 21.1.1.5. Dates and times
            6. 21.1.1.6. Recurring dates and times
          2. 21.1.2. Derived datatypes
            1. 21.1.2.1. Restricted numeric datatypes
              1. 21.1.2.1.1. Integers
              2. 21.1.2.1.2. Computer word lengths
            2. 21.1.2.2. Derived XML datatypes
              1. 21.1.2.2.1. XML attribute types
              2. 21.1.2.2.2. Other XML constructs
        2. 21.2. Defining user-derived datatypes
          1. 21.2.1. Derivation by list
          2. 21.2.2. Derivation by union
          3. 21.2.3. Deriving datatypes by restriction
        3. 21.3. Constraining facets
          1. 21.3.1. Range restrictions
          2. 21.3.2. Length restrictions
          3. 21.3.3. Decimal digit restrictions
          4. 21.3.4. Enumeration restrictions
          5. 21.3.5. The whiteSpace facet
          6. 21.3.6. The pattern facet
            1. 21.3.6.1. Constructing regular expressions
              1. 21.3.6.1.1. Quantifiers
              2. 21.3.6.1.2. Alternatives and grouping
              3. 21.3.6.1.3. Special characters
            2. 21.3.6.2. Character classes
              1. 21.3.6.2.1. Built-in character classes
              2. 21.3.6.2.2. Constructing a character class
        4. 21.4. Conclusion
      8. 22. XML Schema (XSDL) Tad Tougher Tutorial
        1. 22.1. A simple sample schema
        2. 22.2. Elements and types
        3. 22.3. Structure of a schema definition
          1. 22.3.1. Namespaces
          2. 22.3.2. Schema components
            1. 22.3.2.1. Unique identifiers
            2. 22.3.2.2. Extension attributes
            3. 22.3.2.3. The annotation element
          3. 22.3.3. Complex types
          4. 22.3.4. Content models
            1. 22.3.4.1. Sequences
            2. 22.3.4.2. Choices
            3. 22.3.4.3. Nested model groups
            4. 22.3.4.4. all elements
          5. 22.3.5. Attributes
        4. 22.4. Declaring schema conformance
        5. 22.5. Schema inclusion
        6. 22.6. Additional capabilities
          1. 22.6.1. Locally-scoped elements
          2. 22.6.2. Type derivation
          3. 22.6.3. Identity constraints
        7. 22.7. Conclusion
      9. 23. Web services technologies Tad Tougher Tutorial
        1. 23.1. Web Services Description Language
          1. 23.1.1. Starting at the top: service
          2. 23.1.2. Dividing up work: port
          3. 23.1.3. Choosing a transport protocol: binding
          4. 23.1.4. Getting abstract: port type
          5. 23.1.5. Defining behavior: operation
          6. 23.1.6. The information unit: message
          7. 23.1.7. Composing messages: part and type
          8. 23.1.8. Summary of WSDL
        2. 23.2. UDDI
          1. 23.2.1. Finding a service provider
          2. 23.2.2. UDDI data structures
            1. 23.2.2.1. Business entities
            2. 23.2.2.2. Business services
            3. 23.2.2.3. Binding templates
            4. 23.2.2.4. tModels
          3. 23.2.3. Will it work?
        3. 23.3. Implementation
        4. 23.4. Conclusion
      10. 24. XML Path Language (XPath) Tad Tougher Tutorial
        1. 24.1. The XPath data model
          1. 24.1.1. Why do we need a model?
          2. 24.1.2. Tree addressing
          3. 24.1.3. Node tree construction
          4. 24.1.4. Node types
            1. 24.1.4.1. Root node
            2. 24.1.4.2. Element nodes
            3. 24.1.4.3. Text nodes
            4. 24.1.4.4. Attribute nodes
            5. 24.1.4.5. Other node types
        2. 24.2. Location paths
          1. 24.2.1. Basic concepts
            1. 24.2.1.1. Stepping down the hierarchy
            2. 24.2.1.2. Predicates
            3. 24.2.1.3. Selection
            4. 24.2.1.4. Context
            5. 24.2.1.5. Axes
            6. 24.2.1.6. Node tests
          2. 24.2.2. Anatomy of a step
            1. 24.2.2.1. Node tests
            2. 24.2.2.2. Axes
              1. 24.2.2.2.1. Child
              2. 24.2.2.2.2. Attribute
              3. 24.2.2.2.3. Descendant
              4. 24.2.2.2.4. Self
              5. 24.2.2.2.5. Parent
              6. 24.2.2.2.6. Ancestor
          3. 24.2.3. Our story so far
          4. 24.2.4. Predicates
            1. 24.2.4.1. Expression types
              1. 24.2.4.1.1. Node-sets
              2. 24.2.4.1.2. String-values
              3. 24.2.4.1.3. Context position
            2. 24.2.4.2. Predicate examples
        3. 24.3. ID function
        4. 24.4. Conclusion