<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
        xmlns:tf ="TFVATRefundforForeignTravelerTR"
	xmlns:st="TFSimpleTypes"
	xmlns:dec="TFDeclaration"
      targetNamespace="TFVATRefundforForeignTravelerTR" elementFormDefault="qualified" attributeFormDefault="unqualified" version="TFVATRefundforForeignTravelerTR_v1.05"> 
	<xs:annotation>
		<xs:documentation>PVM grąžinimo užsienio keleiviams WS paslaugos, skirtos prekybininkams ir tarpininkams, WS metodų užklausų ir atsakymų struktūros.   
		</xs:documentation>
	</xs:annotation>

<xs:import namespace="TFSimpleTypes" schemaLocation="TFSimpleTypes.xsd"/>
<xs:import namespace="TFDeclaration" schemaLocation="TFDeclaration.xsd"/>

<!--+++++++++++ Metodų užklausų ir atsakymų struktūrose naudojami struktūriniai duomenų tipai ++++++++++++++-->

 <xs:complexType name="Errors_Type"> 
        <xs:sequence>
            <xs:element name="Error" minOccurs="1" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="SequenceNo">
                            <xs:simpleType>
                               	<xs:restriction base="xs:integer">
                                    <xs:minInclusive value="1"/>
                                    <xs:maxInclusive value="99999"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:element>
                        <xs:element name="ErrorCode">
                            <xs:simpleType>
                               	<xs:restriction base="xs:integer">
                                    <xs:minInclusive value="1"/>
                                    <xs:maxInclusive value="99999"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:element>                         
                        <xs:element name="Description" type="st:StringMin1Max2000_Type"/>
                        <xs:element name="Details" type="st:StringMin1Max2000_Type" minOccurs="0" maxOccurs="1"/>                   
                    </xs:sequence>
                </xs:complexType>
            </xs:element> 
         </xs:sequence>
 </xs:complexType>     

  <xs:complexType name="DeclList_Type">
        <xs:sequence>
            <xs:element name="DeclListItem" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="DocId" type="st:DocId_Type"/>
                        <xs:element name="DocCorrNoLast" type="st:DocCorrNo_Type"/>
                        <xs:element name="DocCorrNoCostums" type="st:DocCorrNo_Type" minOccurs="0" maxOccurs="1"/>
                        <xs:element name="DeclState" type="st:DeclStateForQuery_Type"/>
                        <xs:element name="StateDate" type="st:RestrictedDateTime_Type"/>                       
                    </xs:sequence>
                </xs:complexType>
            </xs:element> 
         </xs:sequence>
    </xs:complexType>     

   <xs:complexType name="STIAssessmentResults_Type">
        <xs:sequence>
            <xs:element name="AssessmentDate" type="st:RestrictedDateTime_Type"/>
            <xs:element name="Condition" minOccurs="1" maxOccurs="unbounded">
               <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Code" type="st:StringMin1Max4_Type"/>
                        <xs:element name="Description" type="st:StringMin1Max300_Type"/>
                        <xs:element name="Result" type="st:Boolean_Type"/>
                        <xs:element name="TotalAmountVerified" type="st:Amount_Type" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>Bendra pagal deklaraciją išvežtų prekių kaina su PVM (Eur), perskaičiuota pagal prekių patikrinimo muitinėje rezultatus.</xs:documentation>
                        </xs:annotation>
                        </xs:element>                               
                    </xs:sequence>
                </xs:complexType>  
            </xs:element>
         </xs:sequence>
    </xs:complexType>                                                   
                                                                                                                                                
    <xs:complexType name="VerifiedGoods_Type">
        <xs:sequence>
            <xs:element name="SequenceNo" type="st:SequenceNo_Type"/>
            <xs:element name="TotalAmount" type="st:Amount_Type">
                <xs:annotation>
                    <xs:documentation>Prekių kaina su PVM (Eur), nurodyta deklaracijoje prekių eilutėje.</xs:documentation>
                </xs:annotation>
            </xs:element>                                 
            <xs:element name="Quantity" type="st:Quantity_Type"/>
            <xs:choice>
                <xs:element name="UnitOfMeasureCode" type="st:StringLength3_Type">
                    <xs:annotation>
                        <xs:documentation>Matavimo vienetas turi nurodyti matavimo vieneto rūšį: pvz., kg, vienetas ir pan. Nurodomas kodas iš matavimo vienetų klasifikatoriaus.</xs:documentation>
                    </xs:annotation>
                </xs:element> 
                <xs:element name="UnitOfMeasureOther" type="st:StringMin1Max50_Type">
                    <xs:annotation>
                        <xs:documentation>Kitokio matavimo vieneto pavadinimas. Nurodomas, kai klasifikatoriuje nėra tinkamos reikšmės.</xs:documentation>
                    </xs:annotation>
                </xs:element>              
            </xs:choice>     
            <xs:element name="QuantityVerified" type="st:QuantityVerified_Type"/>               
            <xs:element name="GrossValueVerified" type="st:Amount_Type">                  
                <xs:annotation>
                    <xs:documentation>Išvežtų prekių kaina su PVM (Eur), perskaičiuota pagal prekių patikrinimo muitinėje rezultatus.</xs:documentation>
                </xs:annotation> 
            </xs:element>                
        </xs:sequence>
    </xs:complexType>  
          

    <xs:complexType name="CustomsVerificationResults_Type">
        <xs:sequence>
            <xs:element name="DocId" type="st:DocId_Type"/>
            <xs:element name="DocCorrNo" type="st:DocCorrNo_Type"/>
            <xs:element name="VerificationDate" type="st:RestrictedDateTime_Type"/>
            <xs:element name="VerificationResult">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="A1"/>
                        <xs:enumeration value="A4"/>
                    </xs:restriction>
                </xs:simpleType> 
            </xs:element> 
            <xs:element name="CustomsOfficeCode" type="st:StringLength8_Type"/> 
            <xs:element name="CorrectionDate" type="st:RestrictedDateTime_Type" minOccurs="0" maxOccurs="1"/> 
            <xs:element name="VerifiedGoods" type="tf:VerifiedGoods_Type" minOccurs="1" maxOccurs="unbounded"/>                   
        </xs:sequence>
    </xs:complexType>   
                                 
    <xs:complexType name="InfoOnExportedGoods_Type">
        <xs:sequence>
            <xs:element name="STIAssessmentResults" type="tf:STIAssessmentResults_Type"/>
            <xs:element name="CustomsVerificationResults" type="tf:CustomsVerificationResults_Type"/>
         </xs:sequence>
    </xs:complexType>                                                                                                    
                                          
   <xs:complexType name="PaymentInfo_Type">
        <xs:sequence>
            <xs:element name="Payment" minOccurs="1" maxOccurs="unbounded">
               <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Type">
                             <xs:annotation>
                                <xs:documentation>Grąžinimo (mokėjimo) būdas. Galimos reikšmės: 1 – Grynais; 2 – Pavedimu; 3 – Kita.</xs:documentation>
                             </xs:annotation> 
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:enumeration value="1"/>
                                    <xs:enumeration value="2"/>
                                    <xs:enumeration value="3"/>
                                </xs:restriction>
                            </xs:simpleType> 
                        </xs:element> 
                         <xs:element name="Amount" type="st:Amount_Type"/>
                         <xs:element name="Date" type="st:RestrictedDate_Type"/>
                    </xs:sequence>
                </xs:complexType>  
            </xs:element>
         </xs:sequence>
    </xs:complexType>  

<!--+++++++++++ Metodų užklausų ir atsakymų struktūros (elementai) ++++++++++++++-->

<xs:element name="submitDeclarationRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="RequestId" type="st:RequestId_Type"/>
                <xs:element name="TimeStamp" type="st:RestrictedDateTime_Type"/>
                <xs:element name="SenderIn" type="st:SenderIn_Type"/>
                <xs:element name="Situation">
                    <xs:annotation>
                         <xs:documentation>Situacija, kada teikiama deklaracija. Galimos reikšmės: 1 - „Rengiant deklaraciją“ – kai pardavėjas užpildo ir iš karto teikia VMI, tik po VMI atsakymo informuoja pirkėją apie deklaraciją. 2 – „Atidėtas teikimas“. Teikiama po to, kai pirkėjui įteikta popierinė deklaracija.</xs:documentation>                   
                    </xs:annotation>
                     <xs:simpleType>
                       <xs:restriction base="xs:int">
				<xs:enumeration value="1"/>
				<xs:enumeration value="2"/>
                        </xs:restriction>  
                    </xs:simpleType> 
                </xs:element>
                <xs:element name="Declaration" type="dec:TFDeclaration_Type"/>                   
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="submitDeclarationResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="ResultStatus" type="st:ResultStatus_Type"/>
                <xs:element name="ResultDate" type="st:RestrictedDateTime_Type"/>
                <xs:element name="TransmissionID" type="st:TransmissionID_Type" minOccurs="0" maxOccurs="1"/>
                <xs:element name="Errors" type="tf:Errors_Type" minOccurs="0" maxOccurs="1"/>
                <xs:element name="DeclState" minOccurs="0" maxOccurs="1">
                    <xs:simpleType>
                       <xs:restriction base="xs:string">
                            <xs:maxLength value="20"/>
                            <xs:enumeration value="ACCEPTED_CORRECT"/>
                            <xs:enumeration value="ACCEPTED_INCORRECT"/>
			    <xs:enumeration value="REJECTED"/>
                        </xs:restriction>  
                    </xs:simpleType> 
                 </xs:element>                  
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="cancelDeclarationRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="RequestId" type="st:RequestId_Type"/>
                <xs:element name="TimeStamp" type="st:RestrictedDateTime_Type"/>
                <xs:element name="SenderIn" type="st:SenderIn_Type"/>
                <xs:element name="DocId" type="st:DocId_Type"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="cancelDeclarationResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="ResultStatus" type="st:ResultStatus_Type"/>
                <xs:element name="ResultDate" type="st:RestrictedDateTime_Type"/>
                <xs:element name="Errors" type="tf:Errors_Type" minOccurs="0" maxOccurs="1"/>           
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="queryDeclarationsRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="RequestId" type="st:RequestId_Type"/>
                <xs:element name="TimeStamp" type="st:RestrictedDateTime_Type"/>
                <xs:element name="SenderIn" type="st:SenderIn_Type"/>
                <xs:element name="Query">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="DocId" type="st:DocId_Type" minOccurs="0" maxOccurs="1"/>   
                            <xs:element name="StateDateFrom" type="st:RestrictedDateTime_Type" minOccurs="0" maxOccurs="1"/>
                            <xs:element name="StateDateTo" type="st:RestrictedDateTime_Type" minOccurs="0" maxOccurs="1"/>
                            <xs:element name="DeclState" type="st:DeclStateForQuery_Type" minOccurs="0" maxOccurs="1"/>
                        </xs:sequence>  
                    </xs:complexType> 
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

  
    <xs:element name="queryDeclarationsResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="ResultStatus" type="st:ResultStatus_Type"/>
                <xs:element name="ResultDate" type="st:RestrictedDateTime_Type"/>
                <xs:choice>
                    <xs:element name="Errors" type="tf:Errors_Type"/>
                    <xs:element name="DeclList" type="tf:DeclList_Type"/> 
                </xs:choice>               
            </xs:sequence>
        </xs:complexType>
    </xs:element>
                                                                                                                                                                                                                                             
    <xs:element name="getInfoOnExportedGoodsRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="RequestId" type="st:RequestId_Type"/>
                <xs:element name="TimeStamp" type="st:RestrictedDateTime_Type"/>
                <xs:element name="SenderIn" type="st:SenderIn_Type"/>
                <xs:element name="DocId" type="st:DocId_Type"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    
    <xs:element name="getInfoOnExportedGoodsResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="ResultStatus" type="st:ResultStatus_Type"/>
                <xs:element name="ResultDate" type="st:RestrictedDateTime_Type"/>
                <xs:choice>               
                    <xs:element name="Errors" type="tf:Errors_Type"/>          
                    <xs:element name="InfoOnExportedGoods" type="tf:InfoOnExportedGoods_Type"/>  
                </xs:choice>
            </xs:sequence>
        </xs:complexType>
    </xs:element>  

     <xs:element name="submitPaymentInfoRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="RequestId" type="st:RequestId_Type"/>
                <xs:element name="TimeStamp" type="st:RestrictedDateTime_Type"/>
                <xs:element name="SenderIn" type="st:SenderIn_Type"/>
                <xs:element name="DocId" type="st:DocId_Type"/>
                <xs:element name="PaymentInfo" type="tf:PaymentInfo_Type"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="submitPaymentInfoResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="ResultStatus" type="st:ResultStatus_Type"/>
                <xs:element name="ResultDate" type="st:RestrictedDateTime_Type"/>
                <xs:element name="TransmissionID" type="st:TransmissionID_Type" minOccurs="0" maxOccurs="1"/>
                <xs:element name="Errors" type="tf:Errors_Type" minOccurs="0" maxOccurs="1"/>             
            </xs:sequence>
        </xs:complexType>
    </xs:element>

</xs:schema>