Advanced XML - XML201
Duration: 2 days
Audience: XML developers who need to use some of the advanced features of XML
Prerequisites: Introduction to XML Some XML development experience.
Topics:
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
Additional Schema Elements
- Uniqueness
- Keys and Keyref
- Groups
- Attribute Groups
- redefine
- Allowing Any Content
- Mixed Content
- Documentation Schemas
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
Using XPath and XSLT Functions
- XPath Datatypes and Functions
- Node Test Functions
- Node Set Functions
- Boolean Functions
- String Functions
- Number Functions
- id() Function
- XSLT Functions
- The document() Function
- xsl:key and the key() Function
Advanced XSLT
- Copying Elements
- Numbering
- Variables
- Parameters
- Using Other Stylesheets
- Apply-imports
- Template Rule Conflicts
- Extensions
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
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
Appendix A: Effective Document Design
- Design Goals
- Intended Audience
- Document Types
- Choosing a Validation Method
- Incorporating Namespaces
- Modular Document Design
- Planning for Extensibility
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



