<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:emcs="urn:publicid:-:EC:DGTAXUD:EMCS:PHASE4:EMCS:V3.01" 
  xmlns:ieq="urn:publicid:-:EC:DGTAXUD:EMCS:PHASE4:WEBSERVICE:IEQ:V3.01" xmlns:tcl="urn:publicid:-:EC:DGTAXUD:EMCS:PHASE4:TCL:V3.01" 
  targetNamespace="urn:publicid:-:EC:DGTAXUD:EMCS:PHASE4:WEBSERVICE:IEQ:V3.01" 
  elementFormDefault="qualified" attributeFormDefault="unqualified">
	<!--===== Imports =====-->
	<xs:import namespace="urn:publicid:-:EC:DGTAXUD:EMCS:PHASE4:TCL:V3.01" schemaLocation="tcl.xsd"/>
	<xs:import namespace="urn:publicid:-:EC:DGTAXUD:EMCS:PHASE4:EMCS:V3.01" schemaLocation="types.xsd"/>
	<!--===== Definitions =====-->
	<xs:simpleType name="AttributeEnumType">
		<xs:restriction base="xs:token">
			<xs:enumeration value="code"/>
			<xs:enumeration value="description"/>
			<xs:enumeration value="exciseProduct.code"/>
			<xs:enumeration value="exciseProduct.categoryCode"/>
			<xs:enumeration value="exciseProduct.unitOfMeasureCode"/>
			<xs:enumeration value="exciseProduct.alcoholicStrengthApplicabilityFlag"/>
			<xs:enumeration value="exciseProduct.degreePlatoApplicabilityFlag"/>
			<xs:enumeration value="exciseProduct.densityApplicabilityFlag"/>
			<xs:enumeration value="exciseOffice.number"/>
			<xs:enumeration value="exciseOffice.name"/>
			<xs:enumeration value="exciseOffice.streetNumber"/>
			<xs:enumeration value="exciseOffice.streetName"/>
			<xs:enumeration value="exciseOffice.postCode"/>
			<xs:enumeration value="exciseOffice.city"/>
			<xs:enumeration value="exciseOffice.countryCode"/>
			<xs:enumeration value="exciseOffice.phoneNumber"/>
			<xs:enumeration value="exciseOffice.faxNumber"/>
			<xs:enumeration value="exciseOffice.emailAddress"/>
			<xs:enumeration value="exciseOffice.other"/>
			<xs:enumeration value="riskProfile.identity"/>
			<xs:enumeration value="riskProfile.subjectCode"/>
			<xs:enumeration value="riskProfile.applicationPointEventCode"/>
			<xs:enumeration value="riskProfile.raAction"/>
			<xs:enumeration value="primaryCriterion.reference"/>
			<xs:enumeration value="primaryCriterion.typeCode"/>
			<!-- Common List Of Codes attributes  -->
			<!-- Excise Product Specific attributes -->
			<!-- Excise Office Specific attributes -->
			<!-- Risk Assessment Criteria specific attributes -->
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="Equals">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Attribute" type="ieq:AttributeEnumType" nillable="false"/>
				<xs:element name="Value" type="xs:token"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="ReferenceDataCriteria" type="ieq:ReferenceDataCriteriaType"/>
	<xs:complexType name="ReferenceDataCriteriaType">
		<xs:sequence>
			<xs:element name="ReferenceDataCategory" type="tcl:RequestMessageName"/>
			<xs:element name="ListOfCodes" type="tcl:RequestedListOfCodesExternal" minOccurs="0"/>
			<xs:element name="ModificationDate" type="emcs:DateType" minOccurs="0"/>
			<xs:element name="ActivationDate" type="emcs:DateType" minOccurs="0"/>
			<xs:choice>
				<xs:element name="And">
					<xs:complexType>
						<xs:sequence>
							<xs:element ref="ieq:Equals" maxOccurs="unbounded"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="Or">
					<xs:complexType>
						<xs:sequence>
							<xs:element ref="ieq:Equals" maxOccurs="unbounded"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element ref="ieq:Equals"/>
			</xs:choice>
			<xs:element name="MaxResults" type="xs:positiveInteger" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ExciseEntityCriteriaType">
		<xs:sequence>
			<xs:element name="ModificationDate" type="emcs:DateType" minOccurs="0"/>
			<xs:element name="ActivationDate" type="emcs:DateType" minOccurs="0"/>
			<xs:choice>
				<xs:element name="And">
					<xs:complexType>
						<xs:sequence>
							<xs:element ref="ieq:Equals" maxOccurs="unbounded"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="Or">
					<xs:complexType>
						<xs:sequence>
							<xs:element ref="ieq:Equals" maxOccurs="unbounded"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element ref="ieq:Equals"/>
			</xs:choice>
			<xs:element name="MaxResults" type="xs:positiveInteger" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ExciseProductCriteria" type="ieq:ExciseEntityCriteriaType"/>
	<xs:element name="ExciseOfficeCriteria" type="ieq:ExciseEntityCriteriaType"/>
</xs:schema>
