XML Tutorial/XML Schema/import
Creating a Schema from Multiple Documents: <import>
The <import> declaration is used for combining XML Schemas that have different targetNamespaces.
The <import> declaration allows you to refer to declarations only within other XML Schemas.
The <import> declaration is always declared globally within an XML Schema.
The <import> declaration must be a direct child of the <schema> element.
The <import> declaration applies to the entire XML Schema.
<import namespace="" schemaLocation="">
To import elements and attributes with no namespace, import a schema without any target namespace
File: Data.xml
<?xml version="1.0"?>
<lib:library xmlns:lib="http://wbex.ru/ns/library">
<lib:book id="b0836217462">
<lib:title>Being a Dog Is a Full-Time Job</lib:title>
<lib:authors>
<person id="CMS">
<name>Charles M Schulz</name>
</person>
</lib:authors>
</lib:book>
</lib:library>
File: Schema.xsd
<?xml version="1.0"?>
<xs:schema targetNamespace="http://wbex.ru/ns/library"
elementFormDefault="qualified" attributeFormDefault="unqualified"
xmlns:lib="http://wbex.ru/ns/library"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import schemaLocation="another.xsd" />
<xs:element name="library">
<xs:complexType>
<xs:sequence>
<xs:element name="book" type="lib:bookType" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="bookType">
<xs:sequence>
<xs:element name="title" type="xs:string" />
<xs:element name="authors">
<xs:complexType>
<xs:sequence>
<xs:element ref="person" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="required" />
</xs:complexType>
</xs:schema>
File: another.xsd
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="person" type="personType" />
<xs:complexType name="personType">
<xs:sequence>
<xs:element name="name" type="xs:string" />
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="required" />
</xs:complexType>
</xs:schema>