Complete Example


Document:
   <?xml version="1.0"?>
   <addressBook>
      <owner>
         <cname>John Punin</cname>
         <email>puninj@cs.rpi.edu</email>
      </owner>
      <person>
         <cname>Harrison Ford</cname>
         <email>hford@famous.org</email>
      </person>
      <person>
         <cname>Julia Roberts</cname>
         <email>jr@pw.com</email>
      </person>
   </addressBook>
DTD:
   <!ENTITY % record (cname, email)>
   <!ELEMENT addressBook (owner,person*)>
   <!ELEMENT owner %record;>
   <!ELEMENT person %record;>
XML Schema:
   <?xml version="1.0"?>
   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

   <xsd:complexType name="record">
      <xsd:sequence>
         <xsd:element name="cname" type="xsd:string"/>
         <xsd:element name="email" type="xsd:string/>
      </xsd:sequence>
   </xsd:complexType>

   <xsd:element name="addressBook">
      <xsd:complexType>
         <xsd:sequence>
         <xsd:element name="owner" type="record"/>
         <xsd:element name="person" type="record" 
                        minOccurs="0" maxOccurs="unbounded"/>
         </xsd:sequence>		
      </xsd:complexType>
   </xsd:element> 

   </xsd:schema>