<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<xsd:annotation>
		<xsd:documentation xml:lang="en">Order Record Validation Schema - XWebCheckOut Web Service, XWebServices.com.</xsd:documentation>
		<xsd:documentation xml:lang="en">Copyright 2002-2005 XWebServices, Inc. All rights reserved.</xsd:documentation>
	</xsd:annotation>
	
	<xsd:element name="Order">
		<xsd:complexType>
			<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:element>
	
	<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|Type_Description) = (name|value) -->
			<xsd:element name="Type" minOccurs="1" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:positiveInteger">
						<xsd:enumeration value="1" /> <!-- Visa -->
						<xsd:enumeration value="2" /> <!-- MasterCard -->
						<xsd:enumeration value="3" /> <!-- AMEX -->
						<xsd:enumeration value="4" /> <!-- Discover -->
						<xsd:enumeration value="5" /> <!-- JCB -->
						<xsd:enumeration value="6" /> <!-- Diners -->
						<xsd:enumeration value="99" /> <!-- Other -->
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			
			<!-- Type_Description DOES NOT GET STORED -->
			<xsd:element name="Type_Description" minOccurs="0" maxOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="1" />
						<xsd:maxLength value="100" />
					</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>
