Advanced XML
Private Training

Course Summary

The Extensible Markup Language (XML) defines a way of marking up text to describe the structure of data. XML allows you to create your own markup language: you define the tags that give meaning to your data. The World-Wide Web Consortium (W3C) creates and maintains the definition of XML, making it a standard for creating markup languages. Industries and organizations use XML to write rules defining their own markup languages. In this two-day course students will learn advanced features of XML. Through lecture and hands-on lab exercises, they will extend their capabilities in XML Schema, XPath, and XSLT.

Audience
XML developers who need to use some of the advanced features of XML.
Course Length
2 Days
Prerequisites
Introduction to XML and some XML development experience.

Objectives

Reuse XML Schema content using features such as restriction, extension, and redefinition.

Ensure element or attribute uniqueness with XML Schema.

Transform XSLT stylesheets to text, HTML, and XML output.

Call various XPath and XSLT functions.

Merge XSLT stylesheets using include and import syntax.

Use XSLT and XPath 2.0 elements and functions.

Detailed Outline

  1. Course Introduction
    • Course Objectives
    • Overview
    • Suggested References
  2. Defining New Types Using Schemas
    • Substitution Groups
    • All and Choice Elements
    • Simple Type Restrictions
    • Pattern and Enumeration Facets
    • Complex Types and Extensions
    • Complex Types and Restrictions
    • The final Attribute
  3. Additional Schema Elements
    • Uniqueness
    • Keys and Keyref
    • Groups
    • Attribute Groups
    • redefine
    • Allowing Any Content
    • Mixed Content
    • Documentation Schemas
  4. Using XML Schema with Namespaces
    • Qualified and Unqualified XML
    • Associating Qualified XML with a Schema
    • Associating a Schema with a Namespace
    • Controlling Element and Attribute Qualification
    • Merging Schema with the Same Namespace
    • Merging Schema with Different Namespaces
  5. Generating Output with XSLT
    • Output Methods
    • HTML Output
    • Plain Text Output
    • XML Output
    • xsl:element and xsl:attribute
    • Attribute Value Templates
    • xsl:attribute-set
    • Text, Processing-Instructions, and Comments
    • Working with Namespaces
  6. Using XPath and XSLT Functions
    • XPath Datatypes and Functions
    • Node Test Functions
    • Node Set Functions
    • Boolean Functions
    • String Functions
    • Number Functions
    • XSLT Functions
    • The document() Function
    • xsl:key and the key() Function
  7. Advanced XSLT
    • Copying Elements
    • Numbering
    • Variables
    • Parameters
    • Using Other Stylesheets
    • Apply-imports
    • Template Rule Conflicts
    • Extensions
  8. XSLT and XPath 2.0 New Features
    • XSLT 2.0 Grouping Elements and Functions
    • User-Defined XSLT Functions
    • Multiple Output and XHTML Documents
    • Temporary Trees
    • Sequences
    • Types
    • Stylesheets That Are Schema-Aware
    • Character Mapping
    • Regular Expressions
  9. Appendix A – Introduction to XQuery
    • What is XQuery?
    • doc() Function
    • XQuery Datatypes
    • XQuery Expressions
    • XQuery Prolog
    • Modules
    • Conditional Expressions
    • Iteration and FLWOR
    • Built-in Functions
    • User-Defined Functions
  10. Appendix B – XSL Formatting Objects
    • What is XSL?
    • XSL-FO Overview
    • Types of Objects
    • Defining Page Masters
    • Setting Up the Flow
    • Block-Level vs. Inline-Level Objects
    • Lists
    • Tables
    • Out-of-Line Objects