<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" name="BICWSMARCProductInformation" targetNamespace="http://www.bic.org.uk/webservices" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:bicws="http://www.bic.org.uk/webservices">
	<types>
		<xs:schema xmlns:bicws="http://www.bic.org.uk/webservices" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.bic.org.uk/webservices" elementFormDefault="qualified" attributeFormDefault="unqualified">
			<xs:element name="MARCProductInformationRequest">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Header" type="bicws:ProductInformationRequestHeader"/>
						<xs:element name="Product" type="bicws:ProductInformationRequestProduct" maxOccurs="unbounded"/>
					</xs:sequence>
					<xs:attribute name="version" type="xs:string" use="required" fixed="0.9"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="MARCProductInformationResponse">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Header" type="bicws:ProductInformationResponseHeader"/>
						<xs:element name="MARCProductInformationRecord" type="bicws:ProductInformationResponseProduct" maxOccurs="unbounded"/>
					</xs:sequence>
					<xs:attribute name="version" type="xs:string" use="required" fixed="0.9"/>
				</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="HeaderReferenceCoded">
				<xs:sequence>
					<xs:element name="ReferenceTypeCode" type="bicws:ResponseReferenceTypeCode"/>
					<xs:element name="ReferenceNumber" type="xs:string"/>
					<xs:element name="ReferenceDateTime" type="bicws:DateOrDateTime" minOccurs="0"/>
				</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:element name="SearchResultID" type="xs:string" minOccurs="0"/>
					<xs:element name="ResponsePageNumber" type="xs:int" minOccurs="0"/>
					<xs:element name="TotalPages" type="xs:int" minOccurs="0"/>
					<xs:element name="RecordsInPage" type="xs:int" 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="ProductInformationRequestHeader">
				<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="IssueDateTime" type="bicws:DateOrDateTime" minOccurs="0"/>
					<xs:element name="MARCRecordFormat" type="bicws:MARCRecordFormatCode"/>
				</xs:sequence>
			</xs:complexType>
			<xs:complexType name="ProductInformationRequestProduct">
				<xs:sequence>
					<xs:element name="EAN13" type="xs:string" minOccurs="0"/>
					<xs:element name="ProductIdentifier" type="bicws:ProductIdentifier" minOccurs="0" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:complexType>
			<xs:complexType name="ProductInformationResponseHeader">
				<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:choice minOccurs="0">
						<xs:element name="ReferenceCoded" type="bicws:ReferenceCoded" maxOccurs="unbounded"/>
						<xs:element name="ReferenceDateTime" type="bicws:DateOrDateTime"/>
					</xs:choice>
					<xs:element name="CurrencyCode" type="bicws:CurrencyCode" minOccurs="0"/>
					<xs:element name="ResponseCoded" type="bicws:HeaderResponseCoded" minOccurs="0" maxOccurs="unbounded"/>
					<xs:element name="RecordType" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="RecordTypeCode" type="bicws:MARCRecordTypeCode"/>
								<xs:element name="RecordTypeDescription" type="xs:string" minOccurs="0"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="MARCRecordFormat" type="bicws:MARCRecordFormatCode" minOccurs="0"/>
				</xs:sequence>
			</xs:complexType>
			<xs:complexType name="ProductInformationResponseProduct">
				<xs:sequence>
					<xs:sequence>
						<xs:element name="EAN13" type="xs:string" minOccurs="0"/>
						<xs:element name="ProductIdentifier" type="bicws:ProductIdentifier" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
					<xs:element name="ResponseCoded" type="bicws:ProductResponseCoded"/>
					<xs:element name="Record" type="xs:string" minOccurs="0"/>
					<xs:element name="RecordURI" type="xs:anyURI" minOccurs="0"/>
				</xs:sequence>
			</xs:complexType>
			<xs:complexType name="ProductResponseCoded">
				<xs:sequence>
					<xs:element name="ResponseType" type="bicws:ProductResponseTypeCode"/>
					<xs:element name="ResponseTypeDescription" type="xs:string" minOccurs="0"/>
				</xs:sequence>
			</xs:complexType>
			<xs:complexType name="ReferenceCoded">
				<xs:sequence>
					<xs:element name="ReferenceTypeCode" type="bicws:ResponseReferenceTypeCode"/>
					<xs:element name="ReferenceNumber" type="xs:string"/>
					<xs:element name="ReferenceDateTime" type="bicws:DateOrDateTime" minOccurs="0"/>
				</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="CurrencyCode">
				<xs:restriction base="xs:string">
					<xs:enumeration value="AED"/>
					<xs:enumeration value="AFA"/>
					<xs:enumeration value="AFN"/>
					<xs:enumeration value="ALL"/>
					<xs:enumeration value="AMD"/>
					<xs:enumeration value="ANG"/>
					<xs:enumeration value="AOA"/>
					<xs:enumeration value="ARS"/>
					<xs:enumeration value="AUD"/>
					<xs:enumeration value="AWG"/>
					<xs:enumeration value="AZM"/>
					<xs:enumeration value="BAM"/>
					<xs:enumeration value="BBD"/>
					<xs:enumeration value="BDT"/>
					<xs:enumeration value="BGL"/>
					<xs:enumeration value="BGN"/>
					<xs:enumeration value="BHD"/>
					<xs:enumeration value="BIF"/>
					<xs:enumeration value="BMD"/>
					<xs:enumeration value="BND"/>
					<xs:enumeration value="BOB"/>
					<xs:enumeration value="BRL"/>
					<xs:enumeration value="BSD"/>
					<xs:enumeration value="BTN"/>
					<xs:enumeration value="BWP"/>
					<xs:enumeration value="BYR"/>
					<xs:enumeration value="BZD"/>
					<xs:enumeration value="CAD"/>
					<xs:enumeration value="CDF"/>
					<xs:enumeration value="CHF"/>
					<xs:enumeration value="CLP"/>
					<xs:enumeration value="CNY"/>
					<xs:enumeration value="COP"/>
					<xs:enumeration value="CRC"/>
					<xs:enumeration value="CSD"/>
					<xs:enumeration value="CUC"/>
					<xs:enumeration value="CUP"/>
					<xs:enumeration value="CVE"/>
					<xs:enumeration value="CYP"/>
					<xs:enumeration value="CZK"/>
					<xs:enumeration value="DJF"/>
					<xs:enumeration value="DKK"/>
					<xs:enumeration value="DOP"/>
					<xs:enumeration value="DZD"/>
					<xs:enumeration value="EEK"/>
					<xs:enumeration value="EGP"/>
					<xs:enumeration value="ERN"/>
					<xs:enumeration value="ETB"/>
					<xs:enumeration value="EUR"/>
					<xs:enumeration value="FJD"/>
					<xs:enumeration value="FKP"/>
					<xs:enumeration value="GBP"/>
					<xs:enumeration value="GEL"/>
					<xs:enumeration value="GHC"/>
					<xs:enumeration value="GIP"/>
					<xs:enumeration value="GMD"/>
					<xs:enumeration value="GNF"/>
					<xs:enumeration value="GTQ"/>
					<xs:enumeration value="GWP"/>
					<xs:enumeration value="GYD"/>
					<xs:enumeration value="HKD"/>
					<xs:enumeration value="HNL"/>
					<xs:enumeration value="HRK"/>
					<xs:enumeration value="HTG"/>
					<xs:enumeration value="HUF"/>
					<xs:enumeration value="IDR"/>
					<xs:enumeration value="ILS"/>
					<xs:enumeration value="INR"/>
					<xs:enumeration value="IQD"/>
					<xs:enumeration value="IRR"/>
					<xs:enumeration value="ISK"/>
					<xs:enumeration value="JMD"/>
					<xs:enumeration value="JOD"/>
					<xs:enumeration value="JPY"/>
					<xs:enumeration value="KES"/>
					<xs:enumeration value="KGS"/>
					<xs:enumeration value="KHR"/>
					<xs:enumeration value="KMF"/>
					<xs:enumeration value="KPW"/>
					<xs:enumeration value="KRW"/>
					<xs:enumeration value="KWD"/>
					<xs:enumeration value="KYD"/>
					<xs:enumeration value="KZT"/>
					<xs:enumeration value="LAK"/>
					<xs:enumeration value="LBP"/>
					<xs:enumeration value="LKR"/>
					<xs:enumeration value="LRD"/>
					<xs:enumeration value="LSL"/>
					<xs:enumeration value="LTL"/>
					<xs:enumeration value="LVL"/>
					<xs:enumeration value="LYD"/>
					<xs:enumeration value="MAD"/>
					<xs:enumeration value="MDL"/>
					<xs:enumeration value="MGA"/>
					<xs:enumeration value="MGF"/>
					<xs:enumeration value="MKD"/>
					<xs:enumeration value="MMK"/>
					<xs:enumeration value="MNT"/>
					<xs:enumeration value="MOP"/>
					<xs:enumeration value="MRO"/>
					<xs:enumeration value="MTL"/>
					<xs:enumeration value="MUR"/>
					<xs:enumeration value="MVR"/>
					<xs:enumeration value="MWK"/>
					<xs:enumeration value="MXN"/>
					<xs:enumeration value="MYR"/>
					<xs:enumeration value="MZM"/>
					<xs:enumeration value="NAD"/>
					<xs:enumeration value="NGN"/>
					<xs:enumeration value="NIO"/>
					<xs:enumeration value="NOK"/>
					<xs:enumeration value="NPR"/>
					<xs:enumeration value="NZD"/>
					<xs:enumeration value="OMR"/>
					<xs:enumeration value="PAB"/>
					<xs:enumeration value="PEN"/>
					<xs:enumeration value="PGK"/>
					<xs:enumeration value="PHP"/>
					<xs:enumeration value="PKR"/>
					<xs:enumeration value="PLN"/>
					<xs:enumeration value="PYG"/>
					<xs:enumeration value="QAR"/>
					<xs:enumeration value="ROL"/>
					<xs:enumeration value="RUB"/>
					<xs:enumeration value="RUR"/>
					<xs:enumeration value="RWF"/>
					<xs:enumeration value="SAR"/>
					<xs:enumeration value="SBD"/>
					<xs:enumeration value="SCR"/>
					<xs:enumeration value="SDD"/>
					<xs:enumeration value="SEK"/>
					<xs:enumeration value="SGD"/>
					<xs:enumeration value="SHP"/>
					<xs:enumeration value="SIT"/>
					<xs:enumeration value="SKK"/>
					<xs:enumeration value="SLL"/>
					<xs:enumeration value="SOS"/>
					<xs:enumeration value="SRD"/>
					<xs:enumeration value="SRG"/>
					<xs:enumeration value="STD"/>
					<xs:enumeration value="SVC"/>
					<xs:enumeration value="SYP"/>
					<xs:enumeration value="SZL"/>
					<xs:enumeration value="THB"/>
					<xs:enumeration value="TJS"/>
					<xs:enumeration value="TMM"/>
					<xs:enumeration value="TND"/>
					<xs:enumeration value="TOP"/>
					<xs:enumeration value="TPE"/>
					<xs:enumeration value="TRL"/>
					<xs:enumeration value="TRY"/>
					<xs:enumeration value="TTD"/>
					<xs:enumeration value="TWD"/>
					<xs:enumeration value="TZS"/>
					<xs:enumeration value="UAH"/>
					<xs:enumeration value="UGX"/>
					<xs:enumeration value="USD"/>
					<xs:enumeration value="UYU"/>
					<xs:enumeration value="UZS"/>
					<xs:enumeration value="VEB"/>
					<xs:enumeration value="VND"/>
					<xs:enumeration value="VUV"/>
					<xs:enumeration value="WST"/>
					<xs:enumeration value="XAF"/>
					<xs:enumeration value="XCD"/>
					<xs:enumeration value="XOF"/>
					<xs:enumeration value="XPF"/>
					<xs:enumeration value="YER"/>
					<xs:enumeration value="YUM"/>
					<xs:enumeration value="ZAR"/>
					<xs:enumeration value="ZMK"/>
					<xs:enumeration value="ZWD"/>
				</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="HeaderResponseTypeCode">
				<xs:restriction base="xs:string">
					<xs:enumeration value="01"/>
					<xs:enumeration value="02"/>
					<xs:enumeration value="03"/>
					<xs:enumeration value="08"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType name="MARCRecordFormatCode">
				<xs:restriction base="xs:string">
					<xs:enumeration value="05"/>
					<xs:enumeration value="06"/>
					<xs:enumeration value="07"/>
					<xs:enumeration value="08"/>
					<xs:enumeration value="09"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType name="MARCRecordTypeCode">
				<xs:restriction base="xs:string">
					<xs:enumeration value="00"/>
					<xs:enumeration value="03"/>
				</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="ProductResponseTypeCode">
				<xs:restriction base="xs:string">
					<xs:enumeration value="06"/>
					<xs:enumeration value="07"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType name="ResponseReferenceTypeCode">
				<xs:restriction base="xs:string">
					<xs:enumeration value="01"/>
				</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:schema>
	</types>
	<message name="MARCProductInformationRequest">
		<part name="RequestPayload" element="bicws:MARCProductInformationRequest"/>
	</message>
	<message name="MARCProductInformationResponse">
		<part name="ResponsePayload" element="bicws:MARCProductInformationResponse"/>
	</message>
	<portType name="MARCProductInformationRequestPortType">
		<operation name="MARCProductInformationRequest">
			<input message="bicws:MARCProductInformationRequest"/>
			<output message="bicws:MARCProductInformationResponse"/>
		</operation>
	</portType>
	<binding name="MARCProductInformationRequestBinding" type="bicws:MARCProductInformationRequestPortType">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<operation name="MARCProductInformationRequest">
			<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="BICWSMARCProductInformationRequest">
		<port name="portRequest" binding="bicws:MARCProductInformationRequestBinding">
			<soap:address location="http://www.booksupplier.co.uk/BICWebServices/MARCProductInformationRequest"/>
			<!--NOTE: The value of the location attribute is implementation-specific-->
		</port>
	</service>
</definitions>
