XSD Tutorials - Herong's Tutorial Examples - v5.23, by Herong Yang
Examples of XSD and XML Files with Errors
This section provides an example XML file associated with an example XML Schema file (XSD). The XML file contains some errors intentionally for see how XML validation tools report them.
In order to demonstrate how different XML validation programs report different types of validation errors, I wrote a more complex example XSD file, dictionary.xsd:
<?xml version="1.0"?> <!-- dictionary.xsd - Copyright (c) 2002-2013 HerongYang.com. All Rights Reserved. --> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="dictionary" type="dictionaryType"/> <xsd:complexType name="dictionaryType"> <xsd:sequence> <xsd:element name="word" type="wordType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="wordType"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="definition" type="definitionType" maxOccurs="unbounded"/> <xsd:element name="update" type="updateType" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="acronym" type="xsd:boolean" use="optional"/> <xsd:attribute name="symbol" type="xsd:boolean" use="optional"/> </xsd:complexType> <xsd:complexType name="definitionType" mixed="true"> <xsd:attribute name="reference" type="xsd:string"/> </xsd:complexType> <xsd:complexType name="updateType"> <xsd:attribute name="date"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value="\p{Nd}{4}-\p{Nd}{2}-\p{Nd}{2}"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> </xsd:schema>
Based on this XSD file, I wrote this invalid example XML file, dictionary_invalid_xsd.xml, with the XSD file associated through the "xsi" attribute:
<?xml version="1.0"?> <!-- dictionary_invalid_xsd.xml - Copyright (c) 2002-2013 HerongYang.com. All Rights Reserved. --> <dictionary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="dictionary.xsd"> <word acronym="yes"> <name>XML</name> <definition reference="Herong's Notes">eXtensible Markup Language.</definition> <update date="23-Dec-2003"/> </word> <word symbol="true"> <name><</name> <definition>Mathematical symbol representing the "less than" logical operation, like: 1<2.</definition> <definition>Reserved symbol in XML representing the beginning of tags, like: <![CDATA[<p>Hello world!</p>]]> </definition> <update editor="Herong Yang"/> </word> <word symbol="no" acronym="false"> <name>extensible</name> <definition>Capable of being extended.</definition> </word> </dictionary>
dictionary_invalid_xsd.xml does have several places that do not match rules defined in dictionary.xsd. We will see how different validation tools detect and report those errors.
Table of Contents
XML Editor and Schema Processor - XMLPad
Java API for XML Processing - JAXP
JAXP - XML Schema (XSD) Validation
►Xerces2 Java Parser - Java API of XML Parsers
Installing Xerces2 Java Parser for XSD 1.1
Verify Installation of Xerces2
Xerces2 Sample Program dom.Counter
dom.Counter Validating XML with Associated XSD
dom.GetElementsByTagName and dom.Writer
sax.DocumentTracer and sax.Writer
►Examples of XSD and XML Files with Errors
sax.Writer Reporting Errors Embedded in XML Structure
XSD 1.1 not Supported by sax.Writer
XSD 1.1 Supported by jaxp.SourceValidator
Examples of XSD 1.1 and XML Files with Errors
jaxp.TypeInfoWriter as an XSD 1.1 Validation Tool
Introduction of XSD Built-in Datatypes
"string" and Its Derived Datatypes
"decimal" and Its Derived Datatypes
"dateTime" and Its Related Datatypes
Miscellaneous Built-in Datatypes
Facets, Constraining Facets and Restriction Datatypes
"simpleType" - Defining Your Own Simple Datatypes
Identity-Constraints: unique, key and keyref
Assertion as Custom Validation Rules
XML Schema Location and Namespace in XML Documents
Overriding Element Types in XML Documents