Mega Code Archive

 
Categories / XML Tutorial / XML Schema
 

How XML Schema allows us to re-use names, and give them different content models

<?xml version = "1.0" ?> <xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema"            targetNamespace = "http://www.rntsoft.com/books"            xmlns:book = "http://www.rntsoft.com/books"            elementFormDefault = "qualified">        <xs:element name = "Book">       <xs:complexType>          <xs:sequence>             <xs:element name="TitleInformation" type = "book:TitleInformationType" />             <xs:element name="Chapter" type = "book:ChapterType" minOccurs = "1" maxOccurs = "unbounded" />          </xs:sequence>       </xs:complexType>    </xs:element>        <xs:complexType name = "TitleInformationType">       <xs:sequence>          <xs:element name = "Title" type = "xs:string" />          <xs:element name = "Author" type = "xs:string" />          <xs:element name = "Publisher" type = "xs:string" />       </xs:sequence>    </xs:complexType>        <xs:complexType name = "ChapterType">       <xs:sequence>          <xs:element name = "Title">             <xs:complexType>                <xs:simpleContent>                   <xs:extension base = "xs:string">                      <xs:attribute name = "indexMark" type = "xs:ID" use = "required" />                   </xs:extension>                </xs:simpleContent>             </xs:complexType>          </xs:element>       </xs:sequence>       <xs:attribute name = "chapterNumber" type = "xs:integer" />    </xs:complexType>     </xs:schema>