Mega Code Archive

 
Categories / XML / XML Schema
 

ComplexType with restriction

File: Data.xml <?xml version="1.0"?> <Books xmlns="http://www.rntsoft.com"            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"            xsi:schemaLocation=                               "http://www.rntsoft.com                                Schema.xsd">         <Publication xsi:type="MagazineType">                 <Title>title 1</Title>                 <Date>2008</Date>         </Publication>         <Publication xsi:type="BookType">                 <Title>title 1</Title>                 <Author>author 1</Author>                 <Date>2008</Date>                 <ISBN>1-11111-111-1</ISBN>                 <Publisher>publisher 1</Publisher>         </Publication>         <Publication xsi:type="BookType">                 <Title>title 3</Title>                 <Author>author 3</Author>                 <Date>2008</Date>                 <ISBN>3-33-33333-3</ISBN>                 <Publisher>publisher 3</Publisher>         </Publication> </Books> File: Schema.xsd <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"             targetNamespace="http://www.rntsoft.com"             xmlns="http://www.rntsoft.com"             elementFormDefault="qualified">     <xsd:complexType name="PublicationType" abstract="true">         <xsd:sequence>             <xsd:element name="Title" type="xsd:string"/>             <xsd:element name="Author" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>             <xsd:element name="Date" type="xsd:gYear"/>         </xsd:sequence>     </xsd:complexType>     <xsd:complexType name="BookType">         <xsd:complexContent>             <xsd:extension base="PublicationType" >                 <xsd:sequence>                     <xsd:element name="ISBN" type="xsd:string"/>                     <xsd:element name="Publisher" type="xsd:string"/>                 </xsd:sequence>             </xsd:extension>         </xsd:complexContent>     </xsd:complexType>     <xsd:complexType name="MagazineType">         <xsd:complexContent>             <xsd:restriction base="PublicationType">                 <xsd:sequence>                     <xsd:element name="Title" type="xsd:string"/>                     <xsd:element name="Author" type="xsd:string" minOccurs="0" maxOccurs="0"/>                     <xsd:element name="Date" type="xsd:gYear"/>                 </xsd:sequence>             </xsd:restriction>         </xsd:complexContent>     </xsd:complexType>     <xsd:element name="Publication" type="PublicationType"/>     <xsd:element name="Books">         <xsd:complexType>             <xsd:sequence>                 <xsd:element ref="Publication" maxOccurs="unbounded"/>             </xsd:sequence>         </xsd:complexType>     </xsd:element> </xsd:schema>