Introduction to XML and XML Schemas

Duration: 2 days

This course provides an introduction to the world of and around XML. The course is a balanced mixture of theory and practical labs designed to take students from the basic fundamentals of XML right through to mastery of XML Schemas.
The course's main objective is to teach the students about XML and XML Schema.
The course starts with a thorough explanation of XML and its document structure
The XML Schema session of this course provides a comprehensive overview of the capabilities of an XML Schema. It leads the students through defining open and flexible complex structures as well as defining and understanding advanced data validation.
Understanding XML namespaces is paramount to understanding XML Schemas and XML itself. For that reason we will spend sufficient time making sure the students have a clear and solid understanding of the concept of namespaces.

Students should be experienced with Software development.

Please find the course objectives below:

XML Introduction

  • Introduce XML
  • Understand what XML is and what it is used for
  • List other data formats
  • Understand the concepts of markup language and meta language
  • Understand the what "extensible" means
  • See how XML is applied in industry standards
  • Understand XML "verbs" (parsing, processing, serializing, sending, transforming. authoring)

Writing XML: Documents and Namespaces

  • Define what an "XML Document" is
  • Understand "correctness" of an XML Document
  • Understand what markup makes up an XML Document
  • Understand the logical structure of an XML Document
  • Understand the XML Prolog and its syntax
  • Explain XML character encoding
  • Understand the Document Type Definition (DTD) and its syntax
  • Understand the restrictions on character data
  • Understand white space, where it may be used and its possible significance
  • Explain how to add comments to XML Documents
  • Explain CDATA sections and their syntax
  • Explain Processing instructions (PI) and its syntax
  • Explain entities (general, internal external and unparsed entities)
  • Explain entity references and their syntax
  • Explain character references and their syntax
  • Understand the structure and syntax of Elements
  • Understand attributes
  • List standard XML attributes
  • Understand XML namespaces
  • Understand how to declare namespaces
  • Introduce URIs (and URNs and URLs)
  • Understand qualified names
  • Understand the default namespace

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 and choice)
  • Introduce particles
  • Understand how to control namespace of local declarations (attributeFormDefault and elementFormDefault)
  • 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 and xs:anyAttribute)
  • Understand uniqueness, keys and references
  • Introduce the basics of XPath 1.0 needed for identity constraints
For an onsite course please contact us