Course Overview
This course covers all details of the W3C XML Schema specification
Course Prerequisites
Students should be experienced with XML and Software development.
Outline
XML Schema Overview and Fundamentals
- Introduce the concepts of schemas
- Introduce W3C XML Schema and understand the structure of the recommendation
- Understand the process of validity assessment
- Understand the concept and role of the Post Schema Validation Infoset (PSVI)
- Understand the structure of an XML Document
- List and explain the 12 different Schema components
- Understand the difference in local and global definitions and declarations
- Discuss different schema styles (russian doll, salami slice etc)
- Understand the concept of names for definitions and declarations
- Introduce the concept of symbol spaces
- Understand the relation with XML Namespaces
- Be able to make basic element and attribute declarations
- Understand the difference between simple types and complex types
- List the predefined types
- Be able to define basic simple types using different derivations (automic/restriction,list and union)
- Be able to define basic complex types
- Understand the different content models of complex types
- Introduce complex type extension and restriction
- Introduce compositors (
all
,sequence
andchoice
) - Introduce particles
- Understand how to control namespace of local declarations (
attributeFormDefault
andelementFormDefault
) - Understand how to refer to schema documents from XML documents (and the potential problems with that)
- Understand how to specify type information inside your XML Document using
xsi:type
- Understand nil values
- Understand how to include, redefine and import other schemas
Simple Type Definitions
- Understand the difference between value space and lexical space
- Understand the details of the built-in datatypes
- Understand how to derive by restricting to create your own types
- Understand facets
- Explain the different string types
- Explain how to derive string types
- Explain the different number types
- Explain how to number string types
- Explain the different date, time and duration types
- Explain the how to derive from different date, time and duration types
- Understand the semantics of the constraining facets per type
The pattern facet
- Explain regular expressions in XML Schema
- List some important difference with other Perl like regular expression languages
- Understand the exact syntax of a regular expression (branches, pieces, quantifiers)
- Explain the different atom types (characters, escape classes, expression classes etc)
- Explain the different quantifiers to control atom occurrence
- List the different character classes and understand the difference between them
- List the escape character classes
- List the multi-character escape classes (Perl groups)
- Understand the wildcard multi-character escape class
- Understand the category escape
- Explain Unicode categories and blocks
- Explain how to define you own classes using character class expressions
- Understand how these relate to set-theory
- Explain positive classes, negative classes and character class subtraction
- Understand how to combine these to create other models
Complex type Definitions
- Understand the details of creating complex types
- Understand the possible derivations per content type model
- Understand the details of extending simple content models
- Understand the details of restricting simple content models and the rules
- Understand the details of extending complex content models
- Understand the details of restricting complex content models
- Understand the consistent particle rule
- Understand the unique particle attribution (UPA)
- Understand the semantics and differences of the different compositors (
all
,choice
etc) - Understand different compositor combinations
- Understand particles
- Understand element and attribute group definitions
- Understand how to redefine them in a different schema
- Understand substitution groups
- Understand how to block the use of substitution groups
- Understand element and attribute wildcards (
xs:any
andxs:anyAttribute
) - Understand uniqueness, keys and references
- Introduce the basics of XPath 1.0 needed for identity constraints