back to top

This week-long course presents a thorough introduction to creating, validating, transforming, and formatting XML data. The course covers:

  • structuring data with XML
  • validating that data with document type definitions (DTDs) and schemas
  • creating and viewing XML documents
  • transforming XML documents with the XML Stylesheet Language (XSL, XSLT and XPATH)
  • use of XML in the deployment of Web Services
  • referencing XML data via the document object model (DOM) and parsing libraries
  • parsing XML via the Simple API for XML (SAX).

Extensive examples and demos are provided, as well as comprehensive hands-on lab exercises that reinforce the concepts being taught and introduce the practical application of XML to business problems.

The course is suitable for those with basic HTML knowledge plus experience with a programming or scripting language such as Java or JavaScript.

Students who are not interested in programming issues such as Web Services, DOM parsing, and SAX parsing should register for the first four days only. Basic Java knowledge is recommended for those interested in the segments on DOM and SAX parsing.

Course Content

The Need for XML

  • Structured Data and Formatting
  • The Need for Structured Data
  • The Need for Richer Formatting Control
  • Advantages of XML
  • XML as an International Standard
  • SGML, XML, and HTML
  • World Wide Web Consortium (W3C) Specifications and Grammars
  • XML Applications and Tools
  • Creating and Viewing XML Documents

XML Document Syntax

  • The Concept of Well-Formedness
  • Well-Formed Structure
  • Elements and Tags
  • The XML Declaration
  • Editing and Viewing XML Documents
  • The Document Type Declaration
  • Start and End Tags
  • Empty Tags
  • Element Nesting
  • Element Attributes
  • Comments
  • Special Characters and Built-In Entities
  • CDATA Sections
  • Embedded XML
  • External XML
  • XML Parsers
  • Displaying Data in Tables Using DHTML

Validating XML Documents with DTDs

  • The Concept of Data Validation
  • Writing Document Type Definition (DTD) Files
  • Internal and External DTDs
  • Validating Parsers
  • The !DOCUMENT Tag
  • Specifying Valid Elements and Subelements
  • Specifying Valid Attributes
  • Specifying Valid Entities
  • Specifying Parameter Entities
  • The CDATA Type
  • The ID, IDREF, and IDREFS Types
  • The ENTITY and ENTITIES Types
  • The NMTOKEN and NMTOKENS Types
  • The NOTATION Type
  • Enumerations
  • Conditional Sections
  • Creating Internal DTDs
  • Linking External DTDs to XML Documents
  • Validation Tools

XML Namespaces

  • The Need for Namespaces
  • Specifying a Namespace
  • URLs, URIs, and URNs
  • Qualifying Names
  • Namespace Scoping
  • The HTML Namespace
  • Additional Significant Namespaces

Validating XML Documents with Schemas

  • Schema Design Goals (Limitations of DTDs)
  • Mixing DTDs and Schemas
  • Resolving Name Conflicts with Namespaces
  • Schema Composition
  • Linking Schemas to XML Documents
  • Annotation Declarations
  • Element Declarations
  • Attribute Declarations
  • W3C Schema Data Types
  • Specifying Simple Types
  • Regular Expressions
  • Working with User-Defined Data Types
  • Union and List Types
  • Specifying Complex Types
  • Deriving Complex Types Using Inheritance
  • Reusable Groups
  • Substitution Groups
  • Identity Elements
  • Validating Uniqueness
  • Validating Required Fields
  • Combining and Redefining Schemas

Transforming XML Documents with XSLT and XPath

  • The Limitations of CSS
  • XSL Stylesheet Advantages
  • Transformation vs. Formatting
  • XSLT and XSL-FO
  • XSLT Templates
  • XPath Data Model
  • Declaring XSL Stylesheets
  • Built-In Templates
  • Using Templates as Subroutines — xsl:apply-templates
  • XPath Expression Syntax
  • XPath Functions and Predicates
  • Inserting Elements — xsl:element
  • Inserting Attributes — xsl:attribute
  • Extracting Node Values — xsl:value-of
  • Looping — xsl:for-each
  • Sorting - The order-by Attribute
  • Simple Conditionals — xsl:if
  • Multiple Conditionals — xsl:choose, xsl:when, and xsl:otherwise
  • Copying Nodes — xsl:copy
  • Modular Design Using Named Templates
  • Rendering HTML Using XSLT and CSS
  • XML-to-XML Transformations

Introduction to Simple Object Access Protocol (SOAP)

  • Purpose of SOAP
  • SOAP's Use of XML and Schemas
  • Elements of a SOAP Message
  • Sending and Receiving SOAP Messages (SOAP Clients and Receivers)
  • SOAP Namespaces and Schemas
  • Handling SOAP Faults
  • Current SOAP Implementations

Introduction to Web Services

  • Architecture and Advantages of Web Services
  • SOAP Messages with Attachments
  • Purpose of Web Services Description Language (WSDL)
  • WSDL Elements
  • Creating and Examining WSDL Files
  • Overview of Universal Description, Discovery, and Integration (UDDI)
  • UDDI Registries (Public and Private)
  • Core UDDI Elements
  • UDDI Classification Schemes and Programming Interfaces
  • Deploying and Consuming Web Services
  • ebXML Specifications
  • ebXML registry and Repository

Formatting XML Documents with XSL-FO

  • XML Documents with XSL-FO
  • Purpose of XSL Formatting Objects (XSL-FO)
  • XSL-FO Documents and XSL-FO Processors
  • XSL-FO Namespace
  • Page Format Specifiers
  • Page Content Specifiers
  • Presentation Conversion

Introduction to the XML Document Object Model (XMLDOM)

  • Purpose of a Document Object Model (DOM)
  • Core, HTML, and XML DOM
  • Data Object Tree
  • XMLDOM Parsers
  • The Top-Level Document Object
  • Primary Nodes and Node Collections (NodeList and NamedNodeMap)

Programming the XML Document Object Model

  • XMLDOM Data Access Methods
  • Core DOM Objects
  • Microsoft XMLDOM
  • Java API for XML Processing (JAXP)
  • Sources of Java XML Parsers
  • Installing Parsers
  • The Parser Object
  • The Document Object
  • Loading an XML File
  • Traversing the Document Tree
  • Using the Performance Monitor to Record and Analyze Performance Data

Using the Java SAX Parser

  • Purpose of the Simple API for XML (SAX)
  • Event-Driven Programming Model
  • Types of SAX Parsers
  • Obtaining a SAX Parser at Runtime
  • Importing Interfaces
  • The ContentHandler Interface
  • The DocumentHandler Interface
  • Declaring Handlers
  • Loading and Processing an XML File
  • Validating XML Data with the SAX Parser
   
back to top
back to top