Advanced XML: Transformations and Schema Design

Course:  XMLADV
Duration:  2 Days
Level:  II
Course Summary

The XSLT specification is maintained by the W3C (World Wide Web Consortium) and is a core part of the growing family of XML technologies. A related XML technology is the XPath language, which is required for using XSLT stylesheets. Students in this course will therefore learn the basic elements of the XSLT language, as well as the syntax of XPath. The numerous built-in XPath functions are also covered thoroughly. Using XSLT and XPath, students will transform XML documents into other XML documents, and into HTML for display in a browser. The MSXML parser is used in conjunction with the Internet Explorer browser for data examples.

This course then introduces XML Schemas, the new and preferred way to design and validate XML documents and data. The XML Schemas specification is maintained by the W3C (World Wide Web Consortium) and achieved full Recommendation status in the spring of 2001. It is a core part of the growing family of XML technologies. Students in this course will learn all the basic components of the XML Schemas recommendation, including its elements, attributes, data types, and facets. They will also learn techniques for XML document and data modeling, an essential aspect of Schema design. The MSXML 4.0 parser is used for document validation. A simple text editor, such as Notepad, is used for editing.

« Hide The Details
Topics Covered In This Course

Introduction to XML Output

  • What is a Stylesheet?
    • Viewing XML Formatted with Various Stylesheets
    • Exploring an XSLT Stylesheet
    • Exploring the Differences in XSLT Versions

Basic XSLT Templates

  • XSLT Basics
    • Creating the Outline Foundation of an XSLT Stylesheet
    • XPath Practice
    • Outputting Element Content
    • Outputting Attribute Values
  • Using HTML with XSLT
    • Formatting XSLT Output With HTML
    • Using a Simplified Stylesheet
    • Output Other Than HTML
    • Transforming XML to XML

Basic XSLT Templates, Part 2

  • The Nature of XSLT Templates
    • Using <xsl:apply-templates> To Control Processing Flow
    • Comparing <xsl:apply-templates> and <xsl:call-template>
    • Sorting Elements in and Contexts
    • Elements, Attributes, Comments, and Text
    • Using <xsl:element> Elements
    • Using<xsl:attribute> Elements
    • Exploring the uses of XSLT Comments and Text

XSLT Conditional Elements

  • If/Then Conditionals
    • Using the <xsl:if> Element
  • Testing Multiple Conditions
    • Using <xsl:choose> Elements
  • Using <xsl:foreach> as a Conditional
    • Filtering and Order Control with <xsl:foreach>

XPath Node-Set and Boolean Functions

  • XPath Node-Set Functions
    • Using last(), count(), and position()
    • Retrieving Element Names and Their Text Values
  • XPath Boolean Functions
    • Using Simple Boolean Functions
    • Using the lang() Function

XPath String and Number Functions

  • XPath String Functions +Using Simple String Functions
    • Using contains() and starts-with()
    • Using Substring Functions With Date Strings
  • XPath Number Functions
    • Using XPath Number Functions

Advanced XSLT Elements, Part 1

  • The Structure of XSLT Stylesheets Reconsidered
    • The Structure of an XSLT Stylesheet
  • Importing and Including Stylesheets
    • Using the <xsl:include> Element
    • Using the <xsl:import> Element
  • Variables and Parameters
    • Using the <xsl:variable> Element
    • Using the <xsl:param> and <xsl:with-param> Elements

Advanced XSLT Elements, Part 2

  • Output Options
    • Using the <xsl:output> Element
  • Copying XML Directly to the Output Tree
    • Using the <xsl:copy> and <xsl:copy-of> Elements
  • Using Other Advanced XSLT Elements
    • Using <xsl:number> to Create Ordered Lists
    • Generating a Processing-Instruction

The Built-in XSLT Functions

  • General Purpose Functions
    • The Difference Between Current() and (.)
    • Using key(), generate-id() and format-number()
    • Using the system-property(), function-available(), and element-available()Functions
  • The document() Function
    • Combining XML Documents

XPath Axes and Location Paths

  • The Current Context Reconsidered
    • Considering Context Properties
  • XPath Axes and Unabbreviated XPath Syntax
    • Using XPath Axes Explicitly

XML and the Rise of Schemas

  • The World of XML
  • DTDs and the Role of Validation
  • The Rise of XML Schemas

XML Document and Data Modeling

  • The Planning Stage
  • Modeling Documents, Data, and the World

Elements, Attributes, and Complex Types

  • Schema Namespaces and Documentation
  • Complex Type Definitions
  • Element Declarations
  • Attribute Declarations

Occurrence and Identity Constraints

  • Minimum and Maximum Occurrence Constraints
  • Schema Keys and Data Uniqueness

Data Types and Facets

  • Data Typing and its Importance
  • Explicit Simple Type Definitions
  • XSD Facets

Schema Modularity

  • Schema Modularity

XSD Schemas Reference

  • Elements
What You Can Expect

Upon successful completion of this course, students will be able to:

  • Use the MSXML stylesheet processor to view the output of an XSLT transformation.
  • Transform an XML document into both HTML and alternate XML documents.
  • Control XSLT output by using multiple templates and adding new content during document processing.
  • Use conditional elements to control XSLT processing flow.
  • Use Node-set and Boolean related XPath functions in XPath expressions.
  • Use String and Number related XPath functions in XPath expressions.
  • Include and import external stylesheets and set and retrieve information from variables and parameters.
  • Copy XML blocks from the source document, create a variety of numbered lists, and set output options.
  • Use XSLT functions to retrieve XML data from multiple documents, work with keys and generated IDs, and determine XSLT processor features.
  • Write XPath expressions that use the unabbreviated Location Path syntax.
  • Analyze the role of schemas in XML validation and their strengths over alternatives and use the MSXML parser to validate documents using two earlier validation methods (DTDs and XDR schemas).
  • Plan and model information from diverse sources by creating an ontology, and then mapping that ontology to XML components.
  • Create element and attribute declarations, complex type definitions, and annotation information in writing your first schema.
  • Increase the control that a schema has by using restrictions based on occurrence and identity constraints.
  • Use data types, derived simple types, and facets to add more power to a schema.
  • Provide additional modularity to your XML by importing, including, and redefining schemas and definitions.
Who Should Take This Course

This course is for anyone already introduced to the basics of XML and its related technologies, and who is interested in advanced XML programming and data/document modeling. Knowledge of and experience with XML XSLT and DTD design is preferable.

Recommended Prerequisites

This course was designed for the student who already has a general knowledge of the concepts and technologies involved in XML programming including XSLT and Schemas. Prior knowledge of XML DTDs is very helpful for this course. Prior knowledge of traditional Web development technologies, such as HTML and Web scripting, is helpful but not required.

Training Style

Instructor-led, group-paced, classroom-delivery learning model with structured hands-on activities.

« Hide The Details
Related Courses
Code Course Title Duration Level
XML Fundamentals
3 Days
XML: FastTrack to Application Development
5 Days
Advanced XML with SOAP
2 Days

Every student attending a Verhoef Training class will receive a certificate good for $100 toward their next public class taken within a year.

You can also buy "Verhoef Vouchers" to get a discounted rate for a single student in any of our public or web-based classes. Contact your account manager or our sales office for details.

Schedule For This Course
There are currently no public sessions scheduled for this course. We can schedule a private class for your organization just a couple of weeks from now. Or we can let you know the next time we do schedule a public session.
Notify me the next time this course is confirmed!
Can't find the course you want?
Call us at 800.533.3893, or
email us at