<?xml version="1.0" encoding="UTF-8"?>
<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="OrderCancellationRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Header">
					<xs:complexType>
						<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="SupplierIdentifier" type="bicws:SupplierIdentifier" minOccurs="0"/>
							<xs:element name="ReferenceCoded" minOccurs="0">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="ReferenceTypeCode" type="bicws:RequestReferenceTypeCode"/>
										<xs:element name="ReferenceNumber" type="xs:string"/>
										<xs:element name="ReferenceDateTime" type="bicws:DateOrDateTime" minOccurs="0"/>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="RequestType" type="bicws:RequestTypeCode"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="ItemDetail" minOccurs="0" maxOccurs="unbounded">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="LineNumber" type="xs:string"/>
							<xs:choice>
								<xs:sequence>
									<xs:element name="EAN13" type="xs:string"/>
									<xs:element name="ProductIdentifier" type="bicws:ProductIdentifier" minOccurs="0" maxOccurs="unbounded"/>
								</xs:sequence>
								<xs:element name="ProductIdentifier" type="bicws:ProductIdentifier" maxOccurs="unbounded"/>
							</xs:choice>
							<xs:element name="ItemDescription" type="xs:string" minOccurs="0"/>
							<xs:element name="SupplierIdentifier" type="bicws:SupplierIdentifier" minOccurs="0"/>
							<xs:element name="ReferenceCoded" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="ReferenceTypeCode" type="bicws:RequestItemReferenceTypeCode"/>
										<xs:element name="ReferenceNumber" type="xs:string"/>
										<xs:element name="ReferenceDateTime" type="bicws:DateOrDateTime" minOccurs="0"/>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
			<xs:attribute name="version" type="xs:string" use="required" fixed="1.0"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="OrderCancellationResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Header">
					<xs:complexType>
						<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" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<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:element>
							<xs:element name="ResponseCoded" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="ResponseType" type="bicws:ResponseTypeCode"/>
										<xs:element name="ResponseTypeDescription" type="xs:string" minOccurs="0"/>
										<xs:element name="SupplierIdentifier" type="bicws:SupplierIdentifier" minOccurs="0"/>
										<xs:element name="MinimumDelayBeforeRetry" type="bicws:ElapsedTime" minOccurs="0"/>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="ItemDetail" minOccurs="0" maxOccurs="unbounded">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="LineNumber" type="xs:string"/>
							<xs:choice>
								<xs:sequence>
									<xs:element name="EAN13" type="xs:string"/>
									<xs:element name="ProductIdentifier" type="bicws:ProductIdentifier" minOccurs="0" maxOccurs="unbounded"/>
								</xs:sequence>
								<xs:element name="ProductIdentifier" type="bicws:ProductIdentifier" maxOccurs="unbounded"/>
							</xs:choice>
							<xs:element name="ItemDescription" type="xs:string" minOccurs="0"/>
							<xs:element name="ReferenceCoded" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="ReferenceTypeCode" type="bicws:ResponseItemReferenceTypeCode"/>
										<xs:element name="ReferenceNumber" type="xs:string"/>
										<xs:element name="ReferenceDateTime" type="bicws:DateOrDateTime" minOccurs="0"/>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="ResponseCoded" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="ResponseType" type="bicws:ItemResponseTypeCode"/>
										<xs:element name="ResponseTypeDescription" type="xs:string" minOccurs="0"/>
										<xs:element name="SupplierIdentifier" type="bicws:SupplierIdentifier" minOccurs="0"/>
										<xs:element name="MinimumDelayBeforeRetry" type="bicws:ElapsedTime" minOccurs="0"/>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="CancelledQuantity" type="xs:int" minOccurs="0"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</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="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="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="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="ElapsedTime">
		<xs:restriction base="xs:string">
			<xs:pattern value="\d\d[0-5][0-9][0-5][0-9]"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ItemResponseTypeCode">
		<xs:restriction base="xs:string">
			<xs:enumeration value="06"/>
			<xs:enumeration value="11"/>
			<xs:enumeration value="12"/>
			<xs:enumeration value="13"/>
			<xs:enumeration value="14"/>
			<xs:enumeration value="15"/>
			<xs:enumeration value="16"/>
			<xs:enumeration value="19"/>
			<xs:enumeration value="20"/>
			<xs:enumeration value="21"/>
		</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="RequestItemReferenceTypeCode">
		<xs:restriction base="xs:string">
			<xs:enumeration value="11"/>
			<xs:enumeration value="12"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="RequestReferenceTypeCode">
		<xs:restriction base="xs:string">
			<xs:enumeration value="11"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ResponseItemReferenceTypeCode">
		<xs:restriction base="xs:string">
			<xs:enumeration value="02"/>
			<xs:enumeration value="11"/>
			<xs:enumeration value="12"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ResponseReferenceTypeCode">
		<xs:restriction base="xs:string">
			<xs:enumeration value="01"/>
			<xs:enumeration value="11"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ResponseTypeCode">
		<xs:restriction base="xs:string">
			<xs:enumeration value="01"/>
			<xs:enumeration value="02"/>
			<xs:enumeration value="03"/>
			<xs:enumeration value="11"/>
			<xs:enumeration value="13"/>
			<xs:enumeration value="14"/>
			<xs:enumeration value="15"/>
			<xs:enumeration value="16"/>
			<xs:enumeration value="19"/>
			<xs:enumeration value="20"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="RequestTypeCode">
		<xs:restriction base="xs:string">
			<xs:enumeration value="01"/>
			<xs:enumeration value="02"/>
		</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>

