Mega Code Archive

 
Categories / XML / XML Schema
 

Complex type with group reference

File: Data.xml <?xml version="1.0"?> <employees   xmlns="http://www.rntsoft.com/employees"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://www.rntsoft.com/employees Schema.xsd"   source="from where"   version="1.0">   <employee person="persondata" tags="tag name">     <name title="Mr.">       <first>first</first>       <last>last</last>     </name>     <location>       <address>USA</address>       <latitude>1</latitude>       <longitude>2</longitude>     </location>     <phone kind="Home">001-111-1111</phone>     <knows employees="name of employees"/>     <description>data<em>em</em>.<br/>data1<strong>strong</strong> data</description>   </employee> </employees> File: Schema.xsd <?xml version="1.0"?> <schema xmlns="http://www.w3.org/2001/XMLSchema"   xmlns:employees="http://www.rntsoft.com/employees"   targetNamespace="http://www.rntsoft.com/employees"   elementFormDefault="qualified">   <attributeGroup name="employeeAttributes">     <attribute name="version" type="decimal" fixed="1.0" />     <attribute name="source" type="string"/>   </attributeGroup>   <element name="employees">     <complexType>       <sequence>         <element name="employee" minOccurs="0" maxOccurs="unbounded">           <complexType>             <sequence>               <element name="name" type="employees:NameType"/>               <element name="location" type="employees:LocationType"/>               <element name="phone" type="employees:PhoneType"/>               <element name="knows" type="employees:KnowsType"/>               <element name="description" type="employees:DescriptionType"/>             </sequence>             <attribute name="tags" type="token"/>             <attribute name="person" type="string"/>           </complexType>         </element>       </sequence>       <attributeGroup ref="employees:employeeAttributes"/>     </complexType>   </element>   <complexType name="NameType">     <group ref="employees:NameGroup"/>     <attribute name="title" type="string"/>   </complexType>   <group name="NameGroup">     <sequence>       <element name="first" type="string" minOccurs="1" maxOccurs="unbounded"/>       <element name="middle" type="string" minOccurs="0" maxOccurs="1"/>       <element name="last" type="string"/>     </sequence>   </group>   <complexType name="LocationType">     <choice minOccurs="0" maxOccurs="unbounded">       <element name="address" type="string"/>       <sequence>         <element name="latitude" type="employees:UnknownStringOrFloatType"/>         <element name="longitude" type="employees:UnknownStringOrFloatType"/>       </sequence>     </choice>   </complexType>   <complexType name="PhoneType">     <simpleContent>       <extension base="string">         <attribute name="kind" default="Home">           <simpleType>             <restriction base="string">               <enumeration value="Home"/>               <enumeration value="Work"/>               <enumeration value="Cell"/>               <enumeration value="Fax"/>             </restriction>           </simpleType>         </attribute>       </extension>     </simpleContent>   </complexType>      <complexType name="KnowsType">     <attribute name="employees" type="string"/>   </complexType>   <complexType name="DescriptionType" mixed="true">     <choice minOccurs="0" maxOccurs="unbounded">       <element name="em" type="string"/>       <element name="strong" type="string"/>       <element name="br" type="string"/>     </choice>   </complexType>   <simpleType name="employeeTagsType">     <restriction base="string">       <enumeration value="author"/>       <enumeration value="xml"/>       <enumeration value="poetry"/>       <enumeration value="consultant"/>       <enumeration value="CGI"/>       <enumeration value="semantics"/>       <enumeration value="employees"/>     </restriction>   </simpleType>   <simpleType name="employeeTagsListType">     <list itemType="employees:employeeTagsType"/>   </simpleType>   <simpleType name="UnknownString">     <restriction base="string">       <enumeration value="Unknown"/>     </restriction>   </simpleType>   <simpleType name="UnknownStringOrFloatType">     <union memberTypes="float employees:UnknownString"/>   </simpleType> </schema>