XSD Tutorials - Herong's Tutorial Examples - v5.23, by Herong Yang
Redefining Old Datatypes - XML Examples
This section describes a tutorial example on how to use elements declared with datatypes redefined with 'redefine' components.
In the previous section, we wrote a new version of "address_us.xsd" called "address_us_redefine.xsd", which inherited the "addressUs" element declaration, but redefined its datatype "addressUsType". Now let's try to write a sample XML document, address_us_redefine.xml, that conforms to this new definition.
<?xml version="1.0"?> <addressUs> <!-- address_us_redefine.xml - Copyright (c) 2002-2013 HerongYang.com. All Rights Reserved. --> <street>1 Main Street</street> <city>New York</city> <state>NY</state> <zip>12345</zip> <country>USA</country> </addressUs>
If you try to validate this new XML document, address_us_redefine.xml, with the new schema, address_us_redefine.xsd, it will pass:
herong> java XsdSchemaValidator address_us_redefine.xsd address_us_redefine.xml Passed.
But if you try to validate this new XML document, address_us_redefine.xml, with the old schema, address_us.xsd, it will fail:
herong> java XsdSchemaValidator address_us.xsd address_us_redefine.xml Error: Line number: 11 Column number: 11 Message: cvc-complex-type.2.4.d: Invalid content was found starting with element 'country'. No child element is expected at this point. Failed with errors: 1
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
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
►Linking Multiple Schema Documents Together
Schema Component Reuse - "include", "redefine" or "import"
Including Old Schema Documents - "include" Component
Including Old Schema Documents - Examples
Including Old Schema Documents - Errors
Redefining Old Datatypes - "redefine" Component
►Redefining Old Datatypes - XML Examples
Redefining Old Datatypes - Errors
Importing Declarations Across Namespaces - "import" Component
Importing Declarations Across Namespaces - Examples
Using Elements Declared in Different Namespaces