<!--
Copyright 2004 The Apache Software Foundation

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
 -->
<xs:schema targetNamespace="http://xmlbeans.apache.org/samples/enumeration/schemaenum/easypo"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:po="http://xmlbeans.apache.org/samples/enumeration/schemaenum/easypo"
    elementFormDefault="qualified">
	<xs:element name="purchase-order">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="customer" type="po:customer"/>
				<xs:element name="date" type="xs:dateTime" />
				<xs:element name="line-item" type="po:line-item" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element name="shipper" type="po:shipper" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="customer">
		<xs:sequence>
			<xs:element name="name" type="xs:string"/>
			<xs:element name="address" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="line-item">
		<xs:sequence>
			<xs:element name="description" type="xs:string"/>
			<xs:element name="per-unit-ounces" type="xs:decimal"/>
			<xs:element name="price" type="xs:double"/>
			<xs:element name="quantity" type="xs:int"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="shipper">
		<xs:sequence>
			<xs:element name="name" type="xs:string"/>
			<xs:element name="per-ounce-rate" type="xs:decimal"/>
		</xs:sequence>
	</xs:complexType>
</xs:schema>
