File: Data.xml
<?xml version="1.0" standalone="yes"?>
<statement
xmlns="http://www.java2java.com/statement"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.java2java.com/statement Schema.xsd">
<customer name="name 1" number="CUST123" type="VIP"/>
<orders count="2">
<order number="ORD100" owner="CUST123" total="500.00">
<items>
<item quantity="5" price="100">
<description>item 1</description>
</item>
<item quantity="2" price="50">
<description>item 2</description>
</item>
</items>
</order>
<order number="ORD101" owner="CUST123" total="150.00">
<items>
<item quantity="6" price="25">
<description>item 3</description>
</item>
</items>
</order>
</orders>
</statement>
File: Schema.xsd
<?xml version="1.0" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.java2java.com/statement"
xmlns="http://www.java2java.com/statement">
<xs:attributeGroup name="CustAttrs">
<xs:attribute name="number" type="xs:ID" />
<xs:attribute name="name" type="xs:string" />
<xs:attribute name="type" type="xs:string" use="optional" default="normal" />
</xs:attributeGroup >
<xs:element name="statement">
<xs:complexType>
<xs:sequence>
<xs:element ref="customer" />
<xs:element ref="orders" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="customer">
<xs:complexType>
<xs:sequence />
<xs:attributeGroup ref="CustAttrs" />
</xs:complexType>
</xs:element>
<xs:element name="orders">
<xs:complexType>
<xs:sequence>
<xs:element ref="order"
maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="count"
type="xs:nonNegativeInteger" />
</xs:complexType>
</xs:element>
<xs:element name="order">
<xs:complexType>
<xs:sequence>
<xs:element ref="items" />
</xs:sequence>
<xs:attribute name="number" type="xs:ID" />
<xs:attribute name="owner" type="xs:IDREF" />
<xs:attribute name="total" type="xs:decimal" />
</xs:complexType>
</xs:element>
<xs:element name="items">
<xs:complexType>
<xs:sequence>
<xs:element ref="item"
maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="item">
<xs:complexType>
<xs:sequence>
<xs:element ref="description" />
</xs:sequence>
<xs:attribute name="quantity" type="xs:nonNegativeInteger" />
<xs:attribute name="price" type="xs:decimal" />
</xs:complexType>
</xs:element>
<xs:element name="description" type="xs:string" />
</xs:schema>
|