<xsd:schema targetNamespace="http://jboss.org/resteasy/test/providers/jaxb/generated/po"
	elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:po="http://jboss.org/resteasy/test/providers/jaxb/generated/po">
	<xsd:element name="purchaseOrder" type="po:PurchaseOrderType" />
	<xsd:element name="comment" type="xsd:string" />
	<xsd:complexType name="PurchaseOrderType">
		<xsd:sequence>
			<xsd:element name="shipTo" type="po:USAddress" />
			<xsd:element name="billTo" type="po:USAddress" />
			<xsd:element ref="po:comment" minOccurs="0" />
			<xsd:element name="items" type="po:Items" />
		</xsd:sequence>
		<xsd:attribute name="orderDate" type="xsd:date" />
	</xsd:complexType>
	<xsd:complexType name="USAddress">
		<xsd:sequence>
			<xsd:element name="name" type="xsd:string" />
			<xsd:element name="street" type="xsd:string" />
			<xsd:element name="city" type="xsd:string" />
			<xsd:element name="state" type="xsd:string" />
			<xsd:element name="zip" type="xsd:decimal" />
		</xsd:sequence>
		<xsd:attribute name="country" type="xsd:NMTOKEN" fixed="US" />
	</xsd:complexType>
	<xsd:complexType name="Items">
		<xsd:sequence>
			<xsd:element name="item" minOccurs="1" maxOccurs="unbounded"
				type="po:Item" />
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="Item">
		<xsd:sequence>
			<xsd:element name="productName" type="xsd:string" />
			<xsd:element name="quantity">
				<xsd:simpleType>
					<xsd:restriction base="xsd:positiveInteger">
						<xsd:maxExclusive value="100" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="USPrice" type="xsd:decimal" />
			<xsd:element ref="po:comment" minOccurs="0" />
			<xsd:element name="shipDate" type="xsd:date" minOccurs="0" />
		</xsd:sequence>
		<xsd:attribute name="partNum" type="po:SKU" use="required" />
	</xsd:complexType>


  <!-- Stock Keeping Unit, a code for identifying products -->
	<xsd:simpleType name="SKU">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="\d{3}-[A-Z]{2}" />
		</xsd:restriction>
	</xsd:simpleType>
</xsd:schema>