Intro to XML
Outline
Part I: XML Basics
What is XML?
XML is a Meta Markup Language
XML describes structure and semantics, not formatting
A Song Description in HTML
A Song Description in XML
Style Sheets provide formatting
Attaching style sheets to documents
What is XML used for?
Domain-Specific Markup Languages
Self-Describing Data
An XML Fragment
Interchange of Data Among Applications
Can assemble data from multiple sources
XML Applications
Example XML Applications
Mathematical Markup Language
Channel Definition Format
Classic Literature
Vector Graphics
The Resource Description Framework (RDF)
An Example of RDF
XML for XML
XSL: The Extensible Stylesheet Language
XML Schema
XLinks
File Formats, in-house applications, and other behind the scenes uses
Hello XML
The FOO element
greeting.xml
Style sheets
xml-stylesheet
greeting.css
greeting.xsl
A larger example: Music Catalog
Sample Catalog
Organizing the Data
What is the Root Element
The Root Element
What are the Immediate Children of the Root?
Child Elements
White space in XML is not especially significant
Composers
Grand Children
Attributes
Attributes vs. Elements
When not to use attributes
Compositions
Each composition has a
Composition Example in XML
Further Divisions
Attaching the Composer to the Composition
Some Keywords For the Search Engines
Standard Signature
Cascading Style Sheets
A Blank Style Sheet
The Default Rule
A style rule for the category element
A style rule for the composer element
A style rule for the title element
A style rule for the catalog info
Style rules for the signature
Style Rules for composition children
Finished Style Sheet
Possible Extensions
Possible Solutions
CSS or XSL?
Well-formedness Rules
Open and close all tags
Empty tags end with />
There is a unique root element
Elements may not overlap
Attribute values are quoted
< and & are only used to start tags and entities
Only the five predefined entity references are used
Questions?
Part II: DTDs
What is XML?
XML is a Meta Markup Language
A Song Description in XML
A DTD for Songs
A Valid Song Document
Validity
Checking Validity
What is XML used for?
Domain-Specific Markup Languages
Self-Describing Data
Interchange of Data Among Applications
Structured and Integrated Data
XML Applications
Well-formedness vs validity
DTDs and Validity
What is a DTD?
The importance of validation
A DTD for greeting.xml
Document Type Declarations
Invalid Documents
Validating Tools
Internal DTDs
An Example Document
Element Declarations
Content Specifications
ANY
#PCDATA
#PCDATA
#PCDATA
Comments in DTDs
Child Elements
Child Elements
Sequences
More Sequences
One or More Children +
Zero or More Children *
Zero or One Children ?
Choices
Grouping With Parentheses
Mixed Content
Empty elements
Content Models You Can't Declare
Attribute Declarations
Multiple Attribute Declarations
Attribute Default Values
#REQUIRED
#IMPLIED
#FIXED
Attribute Types
CDATA
ID
IDREF
IDREFS
Finished DTD
ENTITY
ENTITIES
NOTATION
NMTOKEN
NMTOKENS
Enumerated
General Entity References
General Entity Reference Example
External General Entity References
A DTD that declares External General Entities
An External Parsed General Entity
A Document that uses External General Entity References
Parameter Entity References
External Parameter Entity References
The description element
XHTML
XHTML strict DTD
External Parameter Entity References
Finished DTD
Internal DTD Subsets
Schemas
Questions?
Part III: Namespaces
Raison d'etre
The Need for Namespaces
Namespaces disambiguate elements
Namespace Syntax
Namespace URIs
Binding Prefixes to Namespace URIs
Binding Prefixes to Namespace URIs Example
Binding namespaces to prefixes with #FIXED ATTLIST declarations
Unprefixed attributes are never in any namespace
URIs matter; not prefixes
Namespace URIs do not necessarily point to a document, page, or schema
The Default Namespace
Binding default namespaces to elements with #FIXED ATTLISTs
How Parsers Handle Namespaces
Namespaces and DTDs
Part IV: XSL, the Extensible Style Language
What Is XSL?
Versions
The Process of an XSL Transformation
An Example XML Document
An XSL Style Sheet
Output
Templates
The actual HTML output
Adding the root
The actual HTML output
Applying Templates
The actual HTML output
The select attribute
The actual HTML output
Expanding the coverage
The actual HTML output
Attributes
The actual HTML output
Attribute Value Templates
The actual HTML output
xsl:copy
The generated HTML
The Or Operator in Match Patterns
The * wildcard
The node() and @* wildcards
Are we being too greedy?
Testing conditions with xsl:if
The actual HTML output
Matching composers with compositions
Matching composers with compositions
The actual HTML output
Sorting with xsl:sort
The actual HTML output
Multiple Key Sorts
The actual HTML output
Sorting by Composition Title
The actual HTML output
xsl:for-each
The actual HTML output
Sorting the Table of Contents
Adding Links from the Table of Contents
The actual HTML output
Numbering Output
String functions
substring()
The actual HTML output
Number Operators
Number Functions
Where Does the XML Transformation Happen?
Client Side Processing
A style sheet that works with Internet Explorer 5.0
What else does XSL have?
What does XSL not have?
Summary
To Learn More
Questions?
Part V: XLinks
Three Technologies
Versions
HTML Links are Limited
XLinks are More Powerful
Application Support
Linking Elements
For example
Declaring XLink Attributes in DTDs
Fixed Attributes
Other Attributes
Descriptions of the Remote Resource
Link Behavior
xlink:show
xlink:actuate
Parameter Entities for Link Attributes
Extended Links
Extended Links
Resources
Resource Example
Resource Example Diagram
Roles and Titles for Resources
DTD for Extended Links
Another Shortcut for the DTD
Arcs
Arc Example
Arc Example Diagram
Arc Example
Arc Example Diagram
Arc Example with omitted to attribute
Arc Example Diagram
Arc DTD Fragment
Out-of-Line Links
Out of line Link example
Out of line Link example
Another Out of line Link Example
Linkbases
XLink Summary
Questions?
Part VI: XPointers
What are XPointers?
Why Use XPointers?
XPointer Examples
A Concrete Example
Location Paths, Steps, and Sets
Location Steps
Location Paths
Location Paths that Identify Multiple Nodes
Axes
Location Step Axes
The child Axis
The descendant Axis
The descendant-or-self Axis
The parent Axis
The self Axis
The ancestor Axis
The ancestor-or-self Axis
The preceding Axis
The following Axis
The preceding-sibling Axis
The following-sibling Axis
The attribute Axis
Node Tests
Predicates
Identifying an element by its position
Functions that Return Node Sets
id()
here()
origin()
Points
Point Expressions
Ranges
Range Expressions
Range Functions
String Ranges
Child Sequences
Summary
Questions?
Part VII: Programming with XML
Programming with XML
SAX, the Simple API for XML
SAX Example
The Document Object Model (DOM)
DOM Example
To Learn More
Questions?
Start
|
Cafe con Leche
Copyright 1999, 2000
Elliotte Rusty Harold
elharo@metalab.unc.edu
Last Modified April 25, 2000