Mega Code Archive

 
Categories / XML / XML Schema
 

Use group to wrap a sequence

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"   version="1.0">   <employee>     <name>       <first>first</first>       <middle>middle</middle>       <last>last</last>     </name>     <location>       <address>USA</address>       <latitude>123</latitude>       <longitude>123</longitude>     </location>     <phone>001-111-1111</phone>     <knows/>     <description>data <em>em</em>.<br/>data<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="string" 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="string"/>               <element name="knows" type="employees:KnowsType"/>               <element name="description" type="employees:DescriptionType"/>             </sequence>           </complexType>         </element>       </sequence>       <attributeGroup ref="employees:employeeAttributes"/>     </complexType>   </element>   <complexType name="NameType">     <group ref="employees:NameGroup"/>   </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="string"/>         <element name="longitude" type="string"/>       </sequence>     </choice>   </complexType>   <complexType name="KnowsType">   </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> </schema>