<schema targetNamespace="http://www.example.com/Report" | |
xmlns="http://www.w3.org/2001/XMLSchema" | |
xmlns:r="http://www.example.com/Report" | |
xmlns:xipo="http://www.example.com/IPO" | |
elementFormDefault="qualified"> | |
<!-- for SKU --> | |
<import namespace="http://www.example.com/IPO"/> | |
<annotation> | |
<documentation xml:lang="en"> | |
Report schema for Example.com | |
Copyright 2000 Example.com. All rights reserved. | |
</documentation> | |
</annotation> | |
<element name="purchaseReport"> | |
<complexType> | |
<sequence> | |
<element name="regions" type="r:RegionsType"> | |
<keyref name="dummy2" refer="r:pNumKey"> | |
<selector xpath="r:zip/r:part"/> | |
<field xpath="@number"/> | |
</keyref> | |
</element> | |
<element name="parts" type="r:PartsType"/> | |
</sequence> | |
<attribute name="period" type="duration"/> | |
<attribute name="periodEnding" type="date"/> | |
</complexType> | |
<unique name="dummy1"> | |
<selector xpath="r:regions/r:zip"/> | |
<field xpath="@code"/> | |
</unique> | |
<key name="pNumKey"> | |
<selector xpath="r:parts/r:part"/> | |
<field xpath="@number"/> | |
</key> | |
</element> | |
<complexType name="RegionsType"> | |
<sequence> | |
<element name="zip" maxOccurs="unbounded"> | |
<complexType> | |
<sequence> | |
<element name="part" maxOccurs="unbounded"> | |
<complexType> | |
<complexContent> | |
<restriction base="anyType"> | |
<attribute name="number" type="xipo:SKU"/> | |
<attribute name="quantity" type="positiveInteger"/> | |
</restriction> | |
</complexContent> | |
</complexType> | |
</element> | |
</sequence> | |
<attribute name="code" type="positiveInteger"/> | |
</complexType> | |
</element> | |
</sequence> | |
</complexType> | |
<complexType name="PartsType"> | |
<sequence> | |
<element name="part" maxOccurs="unbounded"> | |
<complexType> | |
<simpleContent> | |
<extension base="string"> | |
<attribute name="number" type="xipo:SKU"/> | |
</extension> | |
</simpleContent> | |
</complexType> | |
</element> | |
</sequence> | |
</complexType> | |
</schema> |