Cutting Edge XML Programming
Please turn off all
Outline
Part I: XML Infoset
A normal XML document
A canonical XML document
An org.w3c.dom.Document object formed by reading hotcop.xml
Are these three the same thing or not?
What is the XML InfoSet?
The InfoSet defines 17 kinds of Information Items
The Document Information Item
Elements
Element Information Items
Attributes
Comments
A Processing Instruction Information Item Includes:
Characters
Namespaces
Document Type Declaration
Document Type Definition
Entities
Entity Marker Information Items
Entity Information Items
Internal Entity Information Items
External Entity Information Items
Unparsed Entity Information Items
Unexpanded Entity Information Items
The InfoSet Omits:
Questions?
Canonical XML
How are documents canonicalized?
Canonicalization software
Questions?
Digital Signatures
Not Just for Signing XML
Signature Process
XML Digital Signature software
A Detached Signature for hotcop.xml
To Learn More
Questions?
Part II: DOM Level 3
Trees
Document Object Model
DOM Evolution
DOM Parsers for Java
Eight Modules:
DOM Trees
The Core: org.w3c.dom
The Node Interface
The NodeList Interface
Node Reporter
Node Reporter Output
Node Values as returned by getNodeValue()
Questions?
New Features in DOM Level 3
DOM Level 3 Core Additions
DOMKey
Node3
Entity3
Document3
Text3
Questions?
Bootstrapping
DOM3 Bootstrapping
Questions?
Load and Save
The DOM Process
Parsing documents with DOM2
Parsing documents with DOM3
Load and Save
DOMImplementationLS
DOMBuilder
DOMInputSource
DOMEntityResolver
DOMWriter
DOMBuilderFilter
Questions?
Grammar Access/Content Models
Content Model Interfaces
Content Model and CM-Editing Interfaces
The CMModel Interface
The CMExternalModel Interface
The CMNode Interface
The CMNodeList Interface
The CMNamedNodeMap Interface
The CMDataType Interface
The ElementDeclaration Interface
The CMChildren Interface
The AttributeDeclaration Interface
The EntityDeclaration Interface
The CMNotationDeclaration Interface
Validation and Other Interfaces:
The Document Interface
The DocumentCM Interface
The DOMImplementationCM Interface
Document-Editing Interfaces:
The NodeCM Interface
The ElementCM Interface
The CharacterDataCM Interface
The DocumentTypeCM Interface
The AttributeCM Interface
Questions?
DOM Error Handler Interfaces
The DOMErrorHandler Interface
The DOMLocator Interface
To Learn More
Questions?
Part III: XSLT 1.1 and Beyond
XSLT 1.1
Identifying 1.1 compliant stylesheets
No result tree fragments
Multiple Output Documents
xsl:document Example
xsl:script Top-level Element
xsl:script with Java
xsl:script with JavaScript
XPath 2.0
XPath 2.0 Goals
XPath 2.0 Requirements
XSLT 2.0
XSLT 2.0 Goals
XSLT 2.0 Non-goals
XSLT 2.0 Requirements
XQuery
XQuery Language
Documents to Query
Physical Representations to Query
Where is XQuery used?
The XML Model vs. the Relational Model
Query Data Types
An example document to query
Bibliography DTD
The XQuery FLWR
Query: List titles of all books
Query Result: Book Titles
Element Constructors
Query Result: Book Titles
Query with WHERE
Query Result: Titles of books published by Addison-Wesley
Query with Booleans
Query Result: books published by Addison-Wesley after 1993
Attribute Constructors
Query Result: books published by Addison-Wesley after 1993, including their year and title.
Query with multiple variables
Query Result: A list of all the title-author pairs
Nested Queries
Query Result: A list of the title and authors of each book in the bibliography, grouped inside a "result" element.
Query with distinct
Query Result
IF THEN ELSE
Query Result: Books with the first two authors
Query with sorting
Query Result
Queries with string functions
Query Result
A different document about books
This document uses a different DTD
Query that joins two documents
Result
Prices DTD
prices.xml Query Sample Data
Query with reused variables
Query Result
Multiple FLWR Queries
Query Result
Query Software
To Learn More
Questions?
Part IV: XML Hypertext
Linking in XML is divided into multiple parts
XML Hypertext Example
Versions
XLinks
Extended Links
Extended Link Example
Diagram of an Extended Link
XPointers
XPointers
What are XPointers?
Why Use XPointers?
XPointer Examples
XPointers in URIs
XPointers in XLinks
A Concrete Example
Location Paths, Steps, and Sets
Location Steps
Location Paths
Location Paths that Identify Multiple Nodes
Axes
Location Step Axes
Node Tests
Predicates
Boolean Conversion
The position() function
Identifying an element by its position
Functions that Return Node Sets
id()
here()
origin()
Points
Point Expressions
Ranges
Range Expressions
Range Functions
String Ranges
XPointers and Namespaces
Child Sequences
XPointer Summary
To Learn More
Questions?
What is XML Base?
The xml:base attribute
XML Base Example
Open Issues
To Learn More
Questions?
XInclude
What is XInclude?
Alternatives (and why they don't work)
The include element
The parse attribute
Implementation as JDOM
Implementation as DOM
Questions?
To Learn More
Entire Presentation as Single File
Start
|
Cafe con Leche
Copyright 2000, 2001 Elliotte Rusty Harold
Last Modified March 8, 2001