<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:bicws="http://www.bic.org.uk/webservices/returnsASN" targetNamespace="http://www.bic.org.uk/webservices/returnsASN">
	<types>
		<xs:schema xmlns:bicws="http://www.bic.org.uk/webservices/returnsASN" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.bic.org.uk/webservices/returnsASN" elementFormDefault="qualified" attributeFormDefault="unqualified">
			<xs:element name="PostReturnsASNRequest">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Header" type="bicws:ReturnsASNHeader"/>
						<xs:element name="ItemDetail" type="bicws:ReturnsASNItemDetail" maxOccurs="unbounded"/>
					</xs:sequence>
					<xs:attribute name="version" type="xs:string" use="required" fixed="1.0"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="PostReturnsASNResponse">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Header" type="bicws:ReturnsASNResponseHeader"/>
					</xs:sequence>
					<xs:attribute name="version" type="xs:string" use="required" fixed="1.0"/>
				</xs:complexType>
			</xs:element>
			<xs:complexType name="AccountIdentifier">
				<xs:sequence>
					<xs:element name="AccountIDType" type="bicws:AccountIDTypeCode"/>
					<xs:element name="IDValue" type="xs:string"/>
				</xs:sequence>
			</xs:complexType>
			<xs:complexType name="HeaderResponseCoded">
				<xs:sequence>
					<xs:element name="ResponseType" type="bicws:HeaderResponseTypeCode"/>
					<xs:element name="ResponseTypeDescription" type="xs:string" minOccurs="0"/>
				</xs:sequence>
			</xs:complexType>
			<xs:complexType name="ProductIdentifier">
				<xs:sequence>
					<xs:element name="ProductIDType" type="bicws:ProductIDTypeCode"/>
					<xs:element name="IDTypeName" type="xs:string" minOccurs="0"/>
					<xs:element name="IDValue" type="xs:string"/>
				</xs:sequence>
			</xs:complexType>
			<xs:complexType name="ReturnsASNHeader">
				<xs:sequence>
					<xs:element name="ClientID" type="xs:string"/>
					<xs:element name="ClientPassword" type="xs:string"/>
					<xs:element name="AccountIdentifier" type="bicws:AccountIdentifier" minOccurs="0"/>
					<xs:element name="RequestNumber" type="xs:string" minOccurs="0"/>
					<xs:element name="ReferenceCoded" maxOccurs="unbounded">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="ReferenceTypeCode" type="bicws:ReturnsASNReferenceTypeCode"/>
								<xs:element name="ReferenceNumber" type="xs:string" minOccurs="0"/>
								<xs:element name="ReferenceDate" type="bicws:Date" minOccurs="0"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:complexType>
			<xs:complexType name="ReturnsASNItemDetail">
				<xs:sequence>
					<xs:element name="LineNumber" type="xs:int"/>
					<xs:element name="EAN13" type="xs:string" minOccurs="0"/>
					<xs:element name="ProductIdentifier" type="bicws:ProductIdentifier" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ItemDescription" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="TitleDetail" type="xs:string"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
					<xs:element name="AuthorizedQuantity" type="xs:int"/>
					<xs:element name="QuantityShipping" type="xs:int"/>
				</xs:sequence>
			</xs:complexType>
			<xs:complexType name="ReturnsASNResponseHeader">
				<xs:sequence>
					<xs:element name="IssueDateTime" type="bicws:DateOrDateTime"/>
					<xs:element name="SenderIdentifier">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="SenderIDType" type="bicws:SenderIDTypeCode"/>
								<xs:element name="IDTypeName" type="xs:string" minOccurs="0"/>
								<xs:element name="IDValue" type="xs:string"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="ResponseNumber" type="xs:string" minOccurs="0"/>
					<xs:element name="AccountIdentifier" type="bicws:AccountIdentifier" minOccurs="0"/>
					<xs:element name="ReferenceCoded" maxOccurs="unbounded">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="ReferenceTypeCode" type="bicws:ReturnsASNResponseReferenceTypeCode"/>
								<xs:element name="ReferenceNumber" type="xs:string" minOccurs="0"/>
								<xs:element name="ReferenceDateTime" type="bicws:DateOrDateTime" minOccurs="0"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="ResponseCoded" type="bicws:HeaderResponseCoded" minOccurs="0" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:complexType>
			<xs:complexType name="SupplierIdentifier">
				<xs:sequence>
					<xs:element name="SupplierIDType" type="bicws:SupplierIDTypeCode"/>
					<xs:element name="IDTypeName" type="xs:string" minOccurs="0"/>
					<xs:element name="IDValue" type="xs:string"/>
				</xs:sequence>
			</xs:complexType>
			<xs:simpleType name="AccountIDTypeCode">
				<xs:restriction base="xs:string">
					<xs:enumeration value="02"/>
					<xs:enumeration value="06"/>
					<xs:enumeration value="07"/>
					<xs:enumeration value="11"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType name="Date">
				<xs:restriction base="xs:string">
					<xs:pattern value="2\d\d\d(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-8])"/>
					<xs:pattern value="200[048]0229"/>
					<xs:pattern value="2[1-9]0[48]0229"/>
					<xs:pattern value="2\d([2468][048]|[13579][26])0229"/>
					<xs:pattern value="2\d\d\d(0[13-9]|1[0-2])(29|30)"/>
					<xs:pattern value="2\d\d\d(0[13578]|1[02])31"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType name="DateOrDateTime">
				<xs:restriction base="xs:string">
					<xs:pattern value="2\d\d\d(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-8])(T([01][0-9]|2[0-3])[0-5][0-9][0-5][0-9](Z|[+\-](0[0-9]|1[0-2])(00|15|30|45))?)?"/>
					<xs:pattern value="200[048]0229(T([01][0-9]|2[0-3])[0-5][0-9][0-5][0-9](Z|[+\-](0[0-9]|1[0-2])(00|15|30|45))?)?"/>
					<xs:pattern value="2[1-9]0[48]0229(T([01][0-9]|2[0-3])[0-5][0-9][0-5][0-9](Z|[+\-](0[0-9]|1[0-2])(00|15|30|45))?)?"/>
					<xs:pattern value="2\d([2468][048]|[13579][26])0229(T([01][0-9]|2[0-3])[0-5][0-9][0-5][0-9](Z|[+\-](0[0-9]|1[0-2])(00|15|30|45))?)?"/>
					<xs:pattern value="2\d\d\d(0[13-9]|1[0-2])(29|30)(T([01][0-9]|2[0-3])[0-5][0-9][0-5][0-9](Z|[+\-](0[0-9]|1[0-2])(00|15|30|45))?)?"/>
					<xs:pattern value="2\d\d\d(0[13578]|1[02])31(T([01][0-9]|2[0-3])[0-5][0-9][0-5][0-9](Z|[+\-](0[0-9]|1[0-2])(00|15|30|45))?)?"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType name="DateOrMonth">
				<xs:union memberTypes="bicws:Date bicws:Month"/>
			</xs:simpleType>
			<xs:simpleType name="HeaderResponseTypeCode">
				<xs:restriction base="xs:string">
					<xs:enumeration value="01"/>
					<xs:enumeration value="02"/>
					<xs:enumeration value="03"/>
					<xs:enumeration value="16"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType name="Month">
				<xs:restriction base="xs:string">
					<xs:pattern value="20\d\d(0[1-9]|1[0-2])"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType name="ProductIDTypeCode">
				<xs:restriction base="xs:string">
					<xs:enumeration value="01"/>
					<xs:enumeration value="02"/>
					<xs:enumeration value="03"/>
					<xs:enumeration value="04"/>
					<xs:enumeration value="05"/>
					<xs:enumeration value="06"/>
					<xs:enumeration value="13"/>
					<xs:enumeration value="14"/>
					<xs:enumeration value="15"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType name="ReturnsASNReferenceTypeCode">
				<xs:restriction base="xs:string">
					<xs:enumeration value="20"/>
					<xs:enumeration value="23"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType name="ReturnsASNResponseReferenceTypeCode">
				<xs:restriction base="xs:string">
					<xs:enumeration value="01"/>
					<xs:enumeration value="20"/>
					<xs:enumeration value="23"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType name="SenderIDTypeCode">
				<xs:restriction base="xs:string">
					<xs:enumeration value="02"/>
					<xs:enumeration value="04"/>
					<xs:enumeration value="05"/>
					<xs:enumeration value="06"/>
					<xs:enumeration value="07"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType name="SupplierIDTypeCode">
				<xs:restriction base="xs:string">
					<xs:enumeration value="02"/>
					<xs:enumeration value="04"/>
					<xs:enumeration value="05"/>
					<xs:enumeration value="06"/>
					<xs:enumeration value="07"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:schema>
	</types>
	<message name="ReturnsASN">
		<part name="RequestPayload" element="bicws:PostReturnsASNRequest"/>
	</message>
	<message name="ReturnsASNResponse">
		<part name="ResponsePayload" element="bicws:PostReturnsASNResponse"/>
	</message>
	<portType name="ReturnsASNPortType">
		<operation name="ReturnsASN">
			<input message="bicws:ReturnsASN"/>
			<output message="bicws:ReturnsASNResponse"/>
		</operation>
	</portType>
	<binding name="ReturnsASNBinding" type="bicws:ReturnsASNPortType">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<operation name="ReturnsASN">
			<soap:operation soapAction="http://www.bic.org.uk/webservices/soapAction"/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>
	</binding>
	<service name="BICWSReturnsASN">
		<port name="portRequest" binding="bicws:ReturnsASNBinding">
			<soap:address location="http://www.booksupplier.co.uk/BICWebServices/"/>
			<!--NOTE: The value of the location attribute is implementation-specific-->
		</port>
	</service>
</definitions>

