RELAX NG: The complete course


Detailed technical coverage of RELAX NG. It provides attendees with a solid understanding of the components of RELAX NG schemas, and how to combine them to describe the structure of XML documents. Emphasis will be on the core features: elements and attributes, reusable definitions, assembling schema documents and namespaces. The compact syntax is also covered.


2 days


To schedule a class, please contact us at

Topics covered

  1. RELAX NG: An Overview
    • The Purpose of schemas
    • Schema languages
    • Schema design
    • A simple RELAX NG schema example
    • Schema components
  2. Elements and attributes
    • Declaring elements
    • Declaring attributes
  3. Content models
    • Cardinalities (zeroOrMore, oneOrMore, optional)
    • Groups
    • Choices
    • Empty content
    • Mixed content
    • Interleaving
  4. Datatyping
    • The data element
    • Using the XSD built-in types
    • Enumerations
  5. Lists
    • The list element
    • Cardinality and lists
  6. Named patterns
    • The start element
    • The define element
    • Recursive references
    • Best practices for using named patterns
  7. Schema assembly
    • Referencing external patterns
    • Combining definitions
    • Including other schemas
    • Overriding other schemas
    • Using parentRef
  8. Using namespaces
    • The ns element
    • Using qualified names
  9. Name classes
    • The anyName element
    • Constraining on namespace
    • Using except
  10. Documenting your schema
    • Using other namespace elements
    • Using div elements
  11. RELAX NG compact syntax