XML Tutorial/XML Schema/import

Материал из Web эксперт
Перейти к: навигация, поиск

Creating a Schema from Multiple Documents: <import>

   <source lang="xml">

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=""></source>


To import elements and attributes with no namespace, import a schema without any target namespace

   <source lang="xml">

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></source>