XML Schema Tutorials - Herong's Tutorial Examples
Dr. Herong Yang, Version 4.10

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 reuse 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) 2007 by Dr. Herong Yang. 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) 2007 by Dr. Herong Yang. All rights reserved.
-->

 <street>1 Main Street</street>
 <city>New York</city>
 <state>NY</state>
 <zip>12345</zip>

</addressUs>

Sections in This Chapter

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

Using Elements Declared in Different Namespaces - Errors

Dr. Herong Yang, updated in 2007
Including Old Schema Documents - Examples