Overview
The basics of XML for webmasters, application developers or any potential XML document author, applicable to both the Web and traditional data processing environments. Please see prerequisites below for required background. Covers XML basics; XML Namespaces; the basics of XSchemas, simple and complex XSchema Elements, and XSchema Attributes; an overview of DOM concepts; an introduction to XPath; and XSL basics including an overview of stylesheets and CSS.
Course Description
This course will, through lecture and extensive hands-on workshops, teach you the basics of XML: its syntax, how to work with an XML document as an object tree, how to apply a content model to an XML document, and how to use XML style sheets to transform a document.
Audience
Any Webmaster, application developer or potential XML document author.
Note: This course provides XML fundamentals essential to anyone using XML either on the Web or in more traditional data processing. Subsequent courses provide advanced skills that are specific to those two environments.
Prerequisites
Background in any of the following is required: software programming; general Internet/Web development; document processing; markup languages (including SGML); data processing. Specific HTML or application development experience is helpful but not required. Familiarity with JavaScript or VBScript is also helpful but not required.
Outline
-Getting Acquainted with XML
What is XML?
XML: A First Look
Whence XML?
Documents
Markup Languages
SGML
HTML
The Web Explosion
Enter XML
Why is XML Attractive?
XML as Universal Format
Where is XML Useful?
XML Concepts
XML Parsers
-XML Basics
XML Documents
Tokens & Names
XML Declaration
Elements
Tags
Attributes
Attributes & Quotes
Using Meta-Characters
CDATA Sections
Comments
Processing Instructions
Document Structure
Well-Formed XML
-XML Namespaces
Name Collision: The Problem
Name Collision: Solutions
What are Namespaces?
XML Namespaces
URIs
Declaring a Namespace
Using a Namespace
The Namespace URI
Namespaces in Use
Namespace Scoping
Default Namespace
Attributes & Namespaces
Namespace Conformance
-XML Content Models
XML Content Models
Schemas as Content Model
Schemas & Validation
Using Schemas
Where to Put the Schema
Schema Choices
-Document Type Definitions
DTDs
Defining a DTD
A DTD Example
Defining Elements
Simple Elements
Controlling Children
A Parent-Children Example
Choices
Groups
Mixed Content
Empty Elements
Putting It All Together
Defining Attributes
Attribute Types
Default Values
Putting It All Together (Again)
Beyond DTDs
-XSchemas: Basics
Introducing XSchema
A Simple XSchema
XSchema Basics
XSchema Namespaces
Linking Doc to Schema
XSchema Data Types
-XSchemas: Simple Elements
Simple Types Overview
Primitive Types
Derived Types
Built-In Derived Types
Defining Simple Types
Deriving by Restriction
Defining Simple Elements
Anonymous Types
-XSchemas: Complex Elements
Complex Types Overview
Defining Complex Types
Model Groups
Controlling Occurrence
Model Group Details
Mixed Content
Empty Elements
Reusable Elements
-XSchemas: Attributes
Defining Attributes
Where to Define Attributes?
Attribute Groups
Simple Elements
-Introduction to DOM
What is DOM?
Generating a DOM Tree
DOM Tree Nodes
Types of Nodes
Basic Node Attributes
Node Parent & Siblings
Node Children
NodeList
Elements
Document
Element Attributes
The Attr Interface
Getting Attributes
Handling Text
Text Nodes
Other Character Nodes
Processing Instructions
-XPath
What is XPath?
XPath Expressions
Location Paths
Some Path Examples
Location Path Syntax
Axes
Types of Axes
Node Tests
Predicates
Value Predicates
Position Predicates
Abbreviated Syntax
XPath Operators
XPath Functions
-XSL Basics
Style Sheet Overview
CSS and XML
XSL Overview
The State of the Art
How XSL Works
Who Should Apply XSL?
A Basic Style Sheet
XSL Basics
Templates
Walking the Tree
Displaying a Value
Built-In Templates
Linking to Document