<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
	xmlns:cm="http://www.emta.ee/vatr/xsd/isotypes/v1" 
	xmlns:vr="http://www.emta.ee/vatr/xsd/webimport/v1" 
	targetNamespace="http://www.emta.ee/vatr/xsd/webimport/v1" 
	elementFormDefault="qualified" 
	version="1.04" 
	xml:lang="en">
	
	<xs:annotation>
		<xs:documentation xml:lang="en"><![CDATA[
		
		A schema for the definition of importing the purchases and import information documents in the VAT Refund system.
		
		Version 1.04 - 07.06.2010 - first release of the schema 
		
		]]></xs:documentation>
	</xs:annotation>
	
	<xs:import namespace="http://www.emta.ee/vatr/xsd/isotypes/v1" schemaLocation="https://www.emta.ee/sites/default/files/ariklient/tulu-kulu-kaive-kasum/kaibemaks/vatrefund_isotypes_v1.xsd"/>
	
	<xs:element name="VATRApplication" type="vr:VATRApplication_Type"/>

  <!-- Complex Types-->
  
	<xs:complexType name="VATRApplication_Type">
		<xs:sequence>
			<xs:element name="ApplicationHeader" type="vr:ApplicationHeader_Type" />
			<xs:element name="PurchaseInformation" type="vr:PurchaseInformation_Type" minOccurs="0" maxOccurs="unbounded">
				<xs:unique name="PurchaseGoodsDescription_Unique">
					<xs:selector xpath="./vr:GoodsDescription" />
					<xs:field xpath="vr:Code" />
					<xs:field xpath="vr:SubCode" />
				</xs:unique>
			</xs:element>
			<xs:element name="ImportInformation" type="vr:ImportInformation_Type" minOccurs="0" maxOccurs="unbounded">
				<xs:unique name="ImportGoodsDescription_Unique">
					<xs:selector xpath="./vr:GoodsDescription" />
					<xs:field xpath="vr:Code" />
					<xs:field xpath="vr:SubCode" />
				</xs:unique>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ApplicationHeader_Type">
		<xs:sequence>
			<xs:element name="VATIdentificationNumber" type="vr:VATNumber_Type" />
			<xs:element name="RefundingCountryCode" type="cm:MSCountryCode_Type"/>
			<xs:element name="RefundPeriod" type="vr:Period_Type"/>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="PurchaseInformation_Type">
		<xs:sequence>
			<xs:element name="ReferenceNumber" type="vr:ReferenceInformation_Type" />
			<xs:element name="IssuingDate" type="vr:RestrictedDate_Type" />
			<xs:element name="EUSupplier" type="vr:EUSupplier_Type" />
			<xs:element name="TaxableAmount" type="vr:SignedAmount_Type"/>
			<xs:element name="VATAmount" type="vr:SignedAmount_Type"/>
			<xs:element name="Currency" type="cm:MSCurrCode_Type"/>
			<xs:element name="ProRataRate" type="vr:ProRataRate_Type" minOccurs="0"/>
			<xs:element name="GoodsDescription" type="vr:GoodsDescription_Type" maxOccurs="unbounded" />
		</xs:sequence>
		<xs:attribute name="simplifiedInvoice" type="xs:boolean" use="required"/>
	</xs:complexType>
	
	<xs:complexType name="ImportInformation_Type">
		<xs:sequence>
			<xs:choice>
				<xs:element name="ReferenceNumber" type="vr:ReferenceNumber18_Type" />
				<xs:element name="ReferenceInformation" type="vr:ReferenceInformation_Type" />
			</xs:choice>
			<xs:element name="IssuingDate" type="vr:RestrictedDate_Type" />
			<xs:element name="Supplier" type="vr:NonEUTrader_Type" />
			<xs:element name="TaxableAmount" type="vr:SignedAmount_Type"/>
			<xs:element name="VATAmount" type="vr:SignedAmount_Type"/>
			<xs:element name="Currency" type="cm:MSCurrCode_Type"/>
			<xs:element name="ProRataRate" type="vr:ProRataRate_Type" minOccurs="0"/>
			<xs:element name="GoodsDescription" type="vr:GoodsDescription_Type" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="EUSupplier_Type">
		<xs:complexContent>
			<xs:extension base="vr:Trader_Type">
				<xs:sequence>
					<xs:element name="CountryCode" type="cm:CountryCode_Type" />
					<xs:element name="VATIdentificationNumber" type="vr:VATNumber_Type" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="NonEUTrader_Type">
		<xs:complexContent>
			<xs:extension base="vr:Trader_Type">
				<xs:sequence>
					<xs:element name="CountryCode" type="cm:CountryCode_Type"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="GoodsDescription_Type">
		<xs:sequence>
			<xs:element name="Code" type="vr:GoodsDescriptionCode_Type"/>
			<xs:element name="SubCode" type="vr:GoodsDescriptionSubCode_Type" minOccurs="0"/>
			<xs:element name="FreeText" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Trader_Type">
		<xs:sequence>
			<xs:element name="Name" type="xs:token" />
			<xs:element name="Address" type="xs:string" />
		</xs:sequence>
	</xs:complexType>
	
	<xs:complexType name="Period_Type">
		<xs:sequence>
			<xs:element name="StartDate" type="xs:date"/>
			<xs:element name="EndDate" type="xs:date"/>
		</xs:sequence>
	</xs:complexType>
	
	<!-- SIMPLE TYPES -->
	<xs:simpleType name="VATNumber_Type">
		<xs:restriction base="xs:string">
			<xs:pattern value="[A-Za-z0-9\+\*]{1,12}"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="ProRataRate_Type">
		<xs:restriction base="xs:decimal">
			<xs:fractionDigits value="2"/>
			<xs:minInclusive value="0.01"/>
			<xs:maxInclusive value="100.00"/>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="ReferenceInformation_Type">
		<xs:restriction base="xs:token">
			<xs:minLength value="1" />
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="ReferenceNumber_Type">
		<xs:restriction base="vr:ReferenceInformation_Type">
			<xs:pattern value="\p{IsBasicLatin}*"/>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="ReferenceNumber18_Type">
		<xs:restriction base="vr:ReferenceNumber_Type">
			<xs:maxLength value="18"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="RestrictedDate_Type">
		<xs:restriction base="xs:date">
			<xs:pattern value="\d{4}-\d{2}-\d{2}"/>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="SignedAmount_Type">
		<xs:restriction base="xs:decimal">
			<xs:fractionDigits value="2"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="GoodsDescriptionCode_Type">
		<xs:restriction base="xs:string">
			<xs:enumeration value="1">
				<xs:annotation>
					<xs:documentation xml:lang="en">
				fuel
			</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="2">
				<xs:annotation>
					<xs:documentation xml:lang="en">
				hiring of means of transport
			</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="3">
				<xs:annotation>
					<xs:documentation xml:lang="en">
				expenditure relating to means of transport (other than the goods and services referred to under codes 1 and 2
			</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="4">
				<xs:annotation>
					<xs:documentation xml:lang="en">
				road tolls and road user charge
			</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="5">
				<xs:annotation>
					<xs:documentation xml:lang="en">
				travel expenses, such as taxi fares, public transport fares
			</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="6">
				<xs:annotation>
					<xs:documentation xml:lang="en">
				accommodation
			</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="7">
				<xs:annotation>
					<xs:documentation xml:lang="en">
				food, drink and restaurant services
			</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="8">
				<xs:annotation>
					<xs:documentation xml:lang="en">
				admissions to fares and exhibitions
			</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="9">
				<xs:annotation>
					<xs:documentation xml:lang="en">
				expenditure on luxuries, amusements and entertainment
			</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="10">
				<xs:annotation>
					<xs:documentation xml:lang="en">
				other
			</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="GoodsDescriptionSubCode_Type">
		<xs:restriction base="xs:string">
			<xs:pattern value="([0-9]{1,2}){1}(\.\d{1,2}){0,2}"/>
		</xs:restriction>
	</xs:simpleType>	
	
</xs:schema>
