<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema id="CheckOut" targetNamespace="urn:ws-xwebservices-com:XWebCheckOut:CheckOut:v2:Types" elementFormDefault="qualified"
	xmlns="urn:ws-xwebservices-com:XWebCheckOut:CheckOut:v2:Types" xmlns:mstns="urn:ws-xwebservices-com:XWebCheckOut:CheckOut:v2:Types"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema">

	<xsd:complexType name="Order">
		<xsd:all minOccurs="1" maxOccurs="1">
			<xsd:element name="Shopper_ID" minOccurs="0" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0" />
						<xsd:maxLength value="50" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Basket" minOccurs="0" maxOccurs="1" type="Basket" />
			
			<xsd:element name="Shipping" minOccurs="0" maxOccurs="1" type="Shipping" />
			
			<xsd:element name="Billing" minOccurs="0" maxOccurs="1" type="Billing" />
			
			<xsd:element name="Credit_Card" minOccurs="0" maxOccurs="1" type="Credit_Card" />
			
			<xsd:element name="Receipt" minOccurs="0" maxOccurs="1" type="Receipt" />
			
			<xsd:element name="Comments" minOccurs="0" maxOccurs="1">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="Comment" type="Comment" minOccurs="0" maxOccurs="unbounded" />
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			
		</xsd:all>
		<xsd:attribute name="Order_ID" use="required">
			<xsd:simpleType>
				<xsd:restriction base="xsd:string">
					<xsd:minLength value="1" />
					<xsd:maxLength value="32" />
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:complexType>
	
	<xsd:complexType name="Basket">
		<xsd:all minOccurs="0" maxOccurs="1">
			<xsd:element name="Contents" minOccurs="1" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0" />
						<xsd:maxLength value="5000" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
		</xsd:all>
		<xsd:attribute name="Date_Created" use="optional">
			<xsd:simpleType>
				<xsd:restriction base="xsd:dateTime" />
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:complexType>
	
	<xsd:complexType name="Shipping">
		<xsd:all minOccurs="0" maxOccurs="1">
			<xsd:element name="First_Name" minOccurs="1" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="1" />
						<xsd:maxLength value="50" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Middle_Name" minOccurs="0" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0" />
						<xsd:maxLength value="50" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Last_Name" minOccurs="1" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="1" />
						<xsd:maxLength value="50" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Address_1" minOccurs="1" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="1" />
						<xsd:maxLength value="255" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Address_2" minOccurs="0" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0" />
						<xsd:maxLength value="255" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="City" minOccurs="1" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="1" />
						<xsd:maxLength value="50" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="State" minOccurs="0" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="1" />
						<xsd:maxLength value="50" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Postal_Code" minOccurs="1" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="1" />
						<xsd:maxLength value="20" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Country" minOccurs="0" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0" />
						<xsd:maxLength value="50" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Phone" minOccurs="0" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0" />
						<xsd:maxLength value="20" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Fax" minOccurs="0" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0" />
						<xsd:maxLength value="20" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Email" minOccurs="0" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0" />
						<xsd:maxLength value="50" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
		</xsd:all>
		<xsd:attribute name="Date_Created" use="optional">
			<xsd:simpleType>
				<xsd:restriction base="xsd:dateTime" />
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:complexType>
	
	<xsd:complexType name="Billing">
		<xsd:all minOccurs="0" maxOccurs="1">
			<xsd:element name="First_Name" minOccurs="1" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="1" />
						<xsd:maxLength value="50" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Middle_Name" minOccurs="0" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0" />
						<xsd:maxLength value="50" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Last_Name" minOccurs="1" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="1" />
						<xsd:maxLength value="50" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Address_1" minOccurs="1" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="1" />
						<xsd:maxLength value="255" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Address_2" minOccurs="0" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0" />
						<xsd:maxLength value="255" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="City" minOccurs="1" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="1" />
						<xsd:maxLength value="50" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="State" minOccurs="0" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="1" />
						<xsd:maxLength value="50" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Postal_Code" minOccurs="1" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="1" />
						<xsd:maxLength value="20" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Country" minOccurs="0" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0" />
						<xsd:maxLength value="50" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Phone" minOccurs="0" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0" />
						<xsd:maxLength value="20" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Fax" minOccurs="0" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0" />
						<xsd:maxLength value="20" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Email" minOccurs="0" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0" />
						<xsd:maxLength value="50" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
		</xsd:all>
		<xsd:attribute name="Date_Created" use="optional">
			<xsd:simpleType>
				<xsd:restriction base="xsd:dateTime" />
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:complexType>
	
	<xsd:complexType name="Credit_Card">
		<xsd:all minOccurs="0" maxOccurs="1">
			<!-- Type -->
			<xsd:element name="Type" minOccurs="1" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="Visa" />
						<xsd:enumeration value="MasterCard" />
						<xsd:enumeration value="AMEX" />
						<xsd:enumeration value="Discover" />
						<xsd:enumeration value="JCB" />
						<xsd:enumeration value="Diners" />
						<xsd:enumeration value="Other" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
						
			<xsd:element name="Number" minOccurs="1" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="1" />
						<xsd:maxLength value="50" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Expiration_Month" minOccurs="1" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:positiveInteger">
						<xsd:minInclusive value="1" />
						<xsd:maxInclusive value="12" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Expiration_Year" minOccurs="1" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:positiveInteger">
						<xsd:minInclusive value="2005" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Verification_Number" minOccurs="0" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="1" />
						<xsd:maxLength value="50" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
		</xsd:all>
		<xsd:attribute name="Date_Created" use="optional">
			<xsd:simpleType>
				<xsd:restriction base="xsd:dateTime" />
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:complexType>
	
	<xsd:complexType name="Receipt">
		<xsd:all minOccurs="0" maxOccurs="1">
			<xsd:element name="Contents" minOccurs="1" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0" />
						<xsd:maxLength value="5000" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Total" minOccurs="1" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:decimal">
						<xsd:fractionDigits value="2" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
		</xsd:all>
		<xsd:attribute name="Date_Created" use="optional">
			<xsd:simpleType>
				<xsd:restriction base="xsd:dateTime" />
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:complexType>
	
	<xsd:complexType name="Comment">
		<xsd:all minOccurs="0" maxOccurs="1">
			<xsd:element name="Subject" minOccurs="1" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="1" />
						<xsd:maxLength value="1000" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<xsd:element name="Body" minOccurs="0" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0" />
						<xsd:maxLength value="5000" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
		</xsd:all>
		<xsd:attribute name="Comment_Sequence" use="required">
			<xsd:simpleType>
				<xsd:restriction base="xsd:positiveInteger" />
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="Date_Created" use="optional">
			<xsd:simpleType>
				<xsd:restriction base="xsd:dateTime" />
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:complexType>

</xsd:schema>

