XSLT Fundamentals
History of XSLT
XSLT Processing
XSLT Processors
Some Uses of XSLT
XSLT Structure
Basic Terminology
XSLT Elements
Data Model
Tree Nodes
Source Tree to Result Tree
Templates
Multiple Templates
Invoking Templates for Children
Printing Out Data
Walking the Source Tree
More Generic Template Matches
Default Templates
Using Default Templates
Advanced Template Match Patterns
Advanced Apply-Templates
Tools
Review: XSLT Fundamentals
Lab: XSLT Fundamentals
XPath
XPath
Data Model
Tree Nodes
Document Order
XPath Data Types
Location Paths
Location Paths and the XML Tree
Abbreviated XPath Syntax
Abbreviated Examples
Full XPath Syntax
Node Tests
XPath Axes
Targeting Attributes
Axes Examples
Abbreviated Syntax Revisited
Predicates
Multiple Predicates
Predicate Order
Unions of Multiple Paths
Review: XPath
Lab: XPath
XPath Expressions
Overview: XPath Expressions
XPath Data Types
Data Type Conversions
Functions Types
Boolean Functions
Number Functions
String Functions
More String Functions
The translate() Function
Node-Set Functions
The id() Function
Functions Applied to Context Node
Node Type Test "Functions"
Arithmetic Operators
Boolean Operators
Comparisons with Node-Sets
Negating Comparisons
Example XML
Context and Position
Position Counting
Forward and Backward Axes
XPath to Calculate Values
XPath Expressions in Predicates
Review: XPath Expressions
Lab: XPath Expressions
XSLT Templates
Walking the Source Tree
Context and Current Nodes
Determining Matches
Determining the Current Node List
Current Node List and Matches
Default Template Rules
Conflicts in Template Matches
Default Priorities
Endless Recursion and Modes
Typical Uses for Template Modes
Template Contents
Literal Result Expressions
Common XSLT Instructions
<xsl:value-of>
XSLT Conditionals
<xsl:for-each>
Nested Loops
<xsl:text>
Review: XSLT Templates
Lab: XSLT Templates
XSLT Output
Overview: XSLT Output
Example XML
XSLT Instructions for Output
Elements and Attributes
Attribute Value Templates
Attributes and AVTs in LREs
Attribute Sets
Comment & Processing Instruction
<xsl:text>
xml:space Attribute in Templates
Controlling Whitespace in Source
Global Output Control
Different Output Types
Sorting
<xsl:sort> Syntax
Numbering
Simple Numbering
Advanced Numbering
Numbering Levels
Any vs. Single Numbering
Review: XSLT Output
Lab: XSLT Output
XSLT Functions, Includes and Imports
Overview: XSLT Functions
Example XML
XSLT Functions
The current() Function
The number-format() Function
<xsl:decimal-format>
Keys
The key() Function
Grouping Elements
A Grouping XPath Example
The generate-id() function
The document() Function
Data From Multiple Sources
The <xsl:include> Instruction
The <xsl:import> Instruction
Imports and Template Conflicts
<xsl:apply-imports>
Includes vs. Imports
Review: XSLT Functions
Lab: XSLT Functions
XSLT Variables and Parameters
Overview: XSLT Variables
Example XML
Variables
Top-Level vs. Template Variables
Variable Re-declaration
Using Variables to Cache Values
Result Tree Fragments
RTFs and <xsl:copy-of>
General Uses of <xsl:copy-of>
The <xsl:copy> Instruction
Parameters
Named Templates
Current Node in Name Templates
Name Templates as Function Calls
Recursion
Example Order XML
Calculating the Order Total
Limits of Recursion
Review: XSLT Variables
Lab: XSLT Variables
XSLT in the Enterprise
Overview: XSLT in the Enterprise
Limitations of XSLT
Good Uses of XSLT
XSLT in Application Architectures
XSLT and Multiple Clients
Scenario: News Portal Site
Scenario: Publishing Site
Number of Stylesheets
XSLT and XML Translation
Scenario: B2B Bridge
Basic XSLT
Scenario: Web Documentation
Stylesheet Design
Choosing Match Attributes
Modes and Named Templates
Non-Leaf vs. Leaf Node Templates
Using Default Rules
Quick and Dirty XSLT
XSLT's Future
Lab: XSLT in the Enterprise