Mega Code Archive

 
Categories / XML / XML Schema
 

Schema for address

File: Data.xml <?xml version="1.0"?> <addr:address xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://www.rntsoft.com        Schema.xsd"     xmlns:addr="http://www.rntsoft.com"     addr:language="en"     addr:ssn="123-45-6789">   <fullName>     <first>first</first>     <middle>middle</middle>     <last>last</last>   </fullName>   <contacts>     <phone addr:location="home" addr:number="111.222.3333"/>   </contacts> </addr:address> File: Schema.xsd <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"   targetNamespace="http://www.rntsoft.com"   xmlns:addr="http://www.rntsoft.com"   attributeFormDefault="qualified">  <xsd:element name="address">   <xsd:complexType>     <xsd:sequence>       <xsd:element name="fullName">         <xsd:complexType>           <xsd:sequence>             <xsd:element name="first" type="addr:nameComponent"/>             <xsd:element name="middle" type="addr:nameList"                 minOccurs="0"/>             <xsd:element name="last" type="addr:nameComponent"/>           </xsd:sequence>         </xsd:complexType>       </xsd:element>       <xsd:element name="contacts" type="addr:contactsType" minOccurs="0"/>       <xsd:element name="notes" minOccurs="0">         <xsd:complexType>           <xsd:sequence>             <xsd:any namespace="http://www.w3.org/1999/xhtml"                  minOccurs="0" maxOccurs="unbounded"                  processContents="skip"/>           </xsd:sequence>         </xsd:complexType>       </xsd:element>     </xsd:sequence>   <xsd:attributeGroup ref="addr:nationality"/>   <xsd:attribute name="ssn" type="addr:ssn"/>   <xsd:anyAttribute namespace="http://www.w3.org/1999/xlink"       processContents="skip"/>   </xsd:complexType>  </xsd:element>    <xsd:complexType name="nameComponent">   <xsd:simpleContent>     <xsd:extension base="addr:nameString"/>   </xsd:simpleContent>  </xsd:complexType>  <xsd:complexType name="nameList">   <xsd:simpleContent>     <xsd:extension base="addr:nameListType"/>   </xsd:simpleContent>  </xsd:complexType>    <xsd:simpleType name="nameListType">   <xsd:list itemType="addr:nameString"/>  </xsd:simpleType>    <xsd:simpleType name="nameString">   <xsd:restriction base="xsd:string">     <xsd:maxLength value="50"/>   </xsd:restriction>  </xsd:simpleType>    <xsd:simpleType name="ssn">   <xsd:restriction base="xsd:string">     <xsd:pattern value="\d\d\d-\d\d-\d\d\d\d"/>   </xsd:restriction>  </xsd:simpleType>     <xsd:complexType name="contactsType">     <xsd:sequence>       <xsd:element name="phone" minOccurs="0">         <xsd:complexType>           <xsd:complexContent>             <xsd:restriction base="xsd:anyType">               <xsd:attribute name="location">                 <xsd:simpleType>                   <xsd:union memberTypes="addr:locationType xsd:NMTOKEN"/>                 </xsd:simpleType>               </xsd:attribute>               <xsd:attribute name="number" type="xsd:string"/>             </xsd:restriction>           </xsd:complexContent>         </xsd:complexType>       </xsd:element>     </xsd:sequence>   </xsd:complexType>   <xsd:simpleType name="locationType">     <xsd:restriction base="xsd:string">       <xsd:enumeration value="work"/>       <xsd:enumeration value="home"/>       <xsd:enumeration value="mobile"/>     </xsd:restriction>         </xsd:simpleType>     <xsd:attributeGroup name="nationality">   <xsd:attribute name="language" type="xsd:language"/>  </xsd:attributeGroup> </xsd:schema>