XSD Tutorials - Herong's Tutorial Examples - v5.23, by Herong Yang
Including Old Schema Documents - Examples
This section describes a tutorial example on how to include an existing schema document and reuse its datatype definitions.
In the previous section, we wrote the "addressType" definition in "address.xsd". Now let's try to write a new schema that reuses this definition by using an "include" component.
The new schema, "address_us.xsd", will extend "addressType" to "addressUsType" by adding two more child elements:
<?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:annotation> <xsd:documentation>address_us.xsd - Copyright (c) 2002-2013 HerongYang.com. All Rights Reserved. </xsd:documentation> </xsd:annotation> <xsd:include schemaLocation="address.xsd"> <xsd:annotation> <xsd:documentation> Borrowing the "addressType" definition </xsd:documentation> </xsd:annotation> </xsd:include> <xsd:element name="addressUs" type="addressUsType"/> <xsd:complexType name="addressUsType"> <xsd:complexContent> <xsd:extension base="addressType"> <xsd:sequence> <xsd:element name="state" type="xsd:string"/> <xsd:element name="zip" type="xsd:string"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:schema>
Notice that the "include" element is used to include the "address.xsd" into this new schema document. To test this new schema, you can try this XML document, "address_us.xml":
<?xml version="1.0"?> <addressUs> <!-- address_us.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> </addressUs>
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