Ви знаходитеся тут: Головна / Files / xmlpay-1.18.cert.xsd

xmlpay-1.18.cert.xsd

створив(ла) Igor Uleschenko Востаннє змінено: Лют 19, 2020 15:40

Extensible Markup Language (XML) icon xmlpay-1.18.cert.xsd — Extensible Markup Language (XML), 38 KB (39702 bytes)

Вміст файлу

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by TEAM (RENEGADE) -->
<!--DOCTYPE schema PUBLIC "-//W3C//DTD XMLSchema 200102//EN"
        "XMLSchema.dtd" [
        <!ATTLIST schema
                xmlns:xenc CDATA #FIXED "http://www.w3.org/2001/04/xmlenc#"
                xmlns:ds CDATA #FIXED "http://www.w3.org/2000/09/xmldsig#"
                >
        <!ENTITY xenc 'http://www.w3.org/2001/04/xmlenc#'>
        <!ENTITY % p ''>
        <!ENTITY % s ''>
        ]-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" elementFormDefault="qualified">
    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
    <xs:import namespace="http://www.w3.org/2001/04/xmlenc#" schemaLocation="xenc-schema.xsd"/>
    <xs:element name="ECommerceConnect">
        <xs:complexType>
            <xs:sequence>
                <xs:choice>
                    <xs:element ref="Message"/>
                    <xs:element ref="Error"/>
                </xs:choice>
                <xs:element ref="ds:Signature" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Message">
        <xs:complexType>
            <xs:choice>
                <xs:element ref="XMLPayRequest"/>
                <xs:element ref="XMLPayResponse"/>
                <xs:element ref="XMLMPIRequest"/>
                <xs:element ref="XMLMPIResponse"/>
            </xs:choice>
            <xs:attribute name="id" type="xs:string" use="required"/>
            <xs:attribute name="version" type="xs:string" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="Error">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ErrorCode"/>
                <xs:element ref="ErrorMessage"/>
                <xs:element ref="Details"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="XMLPayRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="RequestData"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="XMLPayResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ResponseData"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="XMLMPIRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="MerchantID"/>
                <xs:element ref="TerminalID"/>
                <xs:element ref="MPIRequest"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="XMLMPIResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="MPIResponse"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="MPIRequest">
        <xs:complexType>
            <xs:choice>
                <xs:element ref="MPIEnrolRequest"/>
                <xs:element ref="MPIAuthRequest"/>
            </xs:choice>
            <xs:attribute name="Id" type="xs:string"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="MPIResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Code"/>
                <xs:element ref="ErrorMessage" minOccurs="0"/>
                <xs:element ref="ErrorDetail" minOccurs="0"/>
                <xs:choice>
                    <xs:element ref="MPIEnrolResponse"/>
                    <xs:element ref="MPIAuthResponse"/>
                </xs:choice>
            </xs:sequence>
            <xs:attribute name="Id" type="xs:string"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="MPIEnrolRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:choice>
                    <xs:sequence>
                        <xs:element ref="CardNum"/>
                        <xs:element ref="ExpYear"/>
                        <xs:element ref="ExpMonth"/>
                    </xs:sequence>
                    <xs:element ref="Token"/>
                </xs:choice>
                <xs:element ref="TotalAmount"/>
                <xs:element ref="Currency"/>
                <xs:element ref="Description" minOccurs="0"/>
                <xs:element ref="DeviceCategory" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="MPIAuthRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="PaRes" type="xs:string"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="MPIEnrolResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Enrolled"/>
                <xs:element ref="AcsURL" minOccurs="0"/>
                <xs:element ref="PaReq" minOccurs="0"/>
                <xs:element ref="XID" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="MPIAuthResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Status" minOccurs="0"/>
                <xs:element ref="CAVV" minOccurs="0"/>
                <xs:element ref="ECI" minOccurs="0"/>
                <xs:element ref="CavvAlgorithm" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="RequestData">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="MerchantID"/>
                <xs:element ref="TerminalID"/>
                <xs:element ref="Transactions"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ResponseData">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="MerchantID"/>
                <xs:element ref="TerminalID"/>
                <xs:element ref="TransactionResults"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Transactions">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Transaction" maxOccurs="32"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="TransactionResults">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="TransactionResult" maxOccurs="32"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Transaction">
        <xs:complexType>
            <xs:choice>
                <xs:element ref="Authorization"/>
                <xs:element ref="Refund"/>
                <xs:element ref="Preauthorization"/>
                <xs:element ref="Postauthorization"/>
                <xs:element ref="TransactionStateReq"/>
                <xs:element ref="CardToCardTransfer"/>
                <xs:element ref="Settlement"/>
                <xs:element ref="InstallmentConfirmation"/>
            </xs:choice>
            <xs:attribute name="Id" type="xs:string"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="Settlement">
        <xs:complexType>
            <xs:choice>
                <xs:element ref="SettlementRefundData"/>
            </xs:choice>
        </xs:complexType>
    </xs:element>
    <xs:element name="InstallmentConfirmation">
        <xs:complexType>
            <xs:choice>
                <xs:element ref="InstallmentConfirmationData"/>
            </xs:choice>
        </xs:complexType>
    </xs:element>

    <xs:element name="TransactionResult">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="TranCode"/>
                <xs:element ref="ApprovalCode" minOccurs="0"/>
                <xs:element ref="Rrn" minOccurs="0"/>
                <xs:element ref="Comment" minOccurs="0"/>
                <xs:element ref="CVResult" minOccurs="0"/>
                <xs:element ref="HostCode" minOccurs="0"/>
                <xs:element ref="CardNum" minOccurs="0"/>
                <xs:element ref="CardNumMasked" minOccurs="0"/>
                <xs:element ref="ExtData" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="Recurrent" minOccurs="0"/>
                <xs:element ref="InstallmentData" minOccurs="0"/>
                <xs:element ref="CardholderBillingCurrency" minOccurs="0"/>
            </xs:sequence>
            <xs:attribute name="Id"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="Authorization">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="PayData"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Refund">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="RefundData"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Preauthorization">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="PayData"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Postauthorization">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="PostauthorizationData"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="TransactionStateReq">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="TransactionStateReqData"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="CardToCardTransfer">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="PayData"/>
                <xs:element ref="CardTo"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="PayData">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Invoice"/>
                <xs:element ref="Card"/>
                <xs:element ref="PARes" minOccurs="0"/>
                <xs:element ref="XID" minOccurs="0"/>
                <xs:element ref="Recurrent" minOccurs="0"/>
                <xs:element ref="AirlineAddendumData" minOccurs="0"/>
                <xs:element ref="Ref3" minOccurs="0"/>
                <xs:element ref="Walletid" minOccurs="0"/>
                <xs:element ref="Wallet" minOccurs="0"/>
                <xs:element ref="SCAExemption" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Invoice">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="OrderID"/>
                <xs:element ref="Date"/>
                <xs:element ref="TotalAmount"/>
                <xs:element ref="Currency"/>
                <xs:element ref="Description" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Card">
        <xs:complexType>
            <xs:choice>
                <xs:sequence>
                    <xs:element ref="CardNum"/>
                    <xs:element ref="CardType" minOccurs="0"/>
                    <xs:element ref="ExpYear"/>
                    <xs:element ref="ExpMonth"/>
                    <xs:element ref="CVNum" minOccurs="0"/>
                    <xs:element ref="NameOnCard" minOccurs="0"/>
                    <xs:element ref="ExtData" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element ref="ExtDataToken" minOccurs="0"/>
                </xs:sequence>
                <xs:element ref="xenc:EncryptedData"/>
                <xs:element ref="Wallet"/>
            </xs:choice>
        </xs:complexType>
    </xs:element>
    <xs:element name="PARes">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Status"/>
                <xs:element ref="CAVV" minOccurs="0"/>
                <xs:element ref="ECI" minOccurs="0"/>
                <xs:choice>
                    <xs:element ref="CavvAlgorithm"/>
                    <xs:element ref="EMV3ds"/>
                </xs:choice>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ExtData">
        <xs:complexType>
            <xs:attribute name="Name" type="xs:string" use="required"/>
            <xs:attribute name="Value" type="xs:string" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="AuthorizationRef">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ApprovalCode"/>
                <xs:element ref="Rrn"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="PreauthorizationRef">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ApprovalCode"/>
                <xs:element ref="Rrn"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="TransactionStateReqData">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Invoice"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="RefundData">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Invoice"/>
                <xs:element ref="AuthorizationRef"/>
                <xs:element ref="RefundAmount" minOccurs="0"/>
                <xs:element ref="AirlineAddendumData" minOccurs="0"/>
                <xs:element ref="Ref3" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="PostauthorizationData">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Invoice"/>
                <xs:element ref="PreauthorizationRef"/>
                <xs:element ref="PostauthorizationAmount" minOccurs="0"/>
                <xs:element ref="AirlineAddendumData" minOccurs="0"/>
                <xs:element ref="Ref3" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="SettlementRefundData">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Invoice"/>
                <xs:element ref="Card"/>
                <xs:element ref="XID" minOccurs="0"/>
                <xs:element ref="ApprovalCode" minOccurs="0"/>
                <xs:element ref="Rrn" minOccurs="0"/>
                <xs:element ref="ECI" minOccurs="0"/>
                <xs:element ref="PosConditionCode" minOccurs="0"/>
                <xs:element ref="AirlineAddendumData" minOccurs="0"/>
                <xs:element ref="Ref3"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="EMV3ds">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="DServerTransID" />
                <xs:element ref="VisaMerchantIdentifier" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:simpleType name="typeCVC" id="typeCVC">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{3}|.{0}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeOrderID" id="typeOrderID">
        <xs:restriction base="xs:string">
            <xs:pattern value=".{1,20}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeExpYear" id="typeExpYear">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{4}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeExpMonth" id="typeExpMonth">
        <xs:restriction base="xs:string">
            <xs:pattern value="1[0-2]|0[1-9]"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeRefundAmount" id="typeRefundAmount">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{0,}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typePostauthorizationAmount" id="typePostauthorizationAmount">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{0,}"/>
        </xs:restriction>
    </xs:simpleType>


    <xs:simpleType name="typeX1" id="typeX1">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1}"/>
            <xs:minLength value="1"/>
            <xs:maxLength value="1"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeX2" id="typeX2">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,2}\s{0,1}"/>
            <xs:minLength value="1"/>
            <xs:maxLength value="2"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeX4" id="typeX4">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,4}\s{0,3}"/>
            <xs:minLength value="1"/>
            <xs:maxLength value="4"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeX5" id="typeX5">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,5}\s{0,4}"/>
            <xs:minLength value="1"/>
            <xs:maxLength value="5"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeX8" id="typeX8">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,8}\s{0,7}"/>
            <xs:minLength value="1"/>
            <xs:maxLength value="8"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeX12" id="typeX12">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,12}\s{0,11}"/>
            <xs:minLength value="1"/>
            <xs:maxLength value="12"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeX15" id="typeX15">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,15}\s{0,14}"/>
            <xs:minLength value="1"/>
            <xs:maxLength value="15"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeX20" id="typeX20">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,20}\s{0,19}"/>
            <xs:minLength value="1"/>
            <xs:maxLength value="20"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeX25" id="typeX25">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,25}\s{0,24}"/>
            <xs:minLength value="1"/>
            <xs:maxLength value="25"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeX29" id="typeX29">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9\s]{20,29}"/>
            <xs:minLength value="20"/>
            <xs:maxLength value="29"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeX32" id="typeX32">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,32}\s{0,31}"/>
            <xs:minLength value="1"/>
            <xs:maxLength value="32"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeRef3" id="typeRef3">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9\s,;.]{1,150}"/>
            <xs:minLength value="1"/>
            <xs:maxLength value="150"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeDateYYYYMMDD" id="typeDateYYYYMMDD">
        <xs:restriction base="xs:string">
            <xs:pattern value="[2-9][0-9]{3}(1[0-2]|0[1-9])([0-2][0-9]|3[0-1])"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeLegNr" id="typeLegNr">
        <xs:restriction base="xs:string">
            <xs:pattern value="0[1-4]"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeRestrTicketInd" id="typeRestrTicketInd">
        <xs:restriction base="xs:string">
            <xs:pattern value="[\s01]"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeCurrency" id="typeCurrency">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{0,3}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeDescription" id="typeDescription">
        <xs:restriction base="xs:string">
            <xs:pattern value=".{0,512}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeCAVV" id="typeCAVV">
        <xs:restriction base="xs:string">
            <xs:pattern value=".{0,56}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeStatus" id="typeStatus">
        <xs:restriction base="xs:string">
            <xs:pattern value="[YNAU]{0,1}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeECI" id="typeECI">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{0,2}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeXID" id="typeXID">
        <xs:restriction base="xs:string">
            <xs:pattern value=".{0,28}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeWalletid" id="typeWalletid">
        <xs:restriction base="xs:string">
            <xs:pattern value="([A-Za-z1-9][A-Za-z0-9][A-Za-z0-9]|[A-Za-z0-9][A-Za-z1-9][A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9][A-Za-z1-9])"/>
            <xs:maxLength value="3"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:element name="AirlineAddendumData">
        <xs:complexType>
            <xs:sequence>
                <xs:choice>
                    <xs:element ref="MasterCard"/>
                    <xs:element ref="VISA"/>
                </xs:choice>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="VISA">
        <xs:complexType>
            <xs:sequence>
                <xs:choice>
                    <xs:element ref="AncillaryData"/>
                    <xs:element ref="ItineraryData"/>
                </xs:choice>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="ItineraryData">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="passengerName" type="typeX29"/>
                <xs:element name="ticketNumber" type="typeX15"/>
                <xs:element name="restrictedTicketIndicator" type="typeRestrTicketInd"/>
                <xs:element name="travelAgencyCode" type="typeX8" minOccurs="0"/>
                <xs:element name="travelAgencyName" type="typeX25" minOccurs="0"/>
                <xs:element ref="VTripLegs" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="AncillaryData">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="passengerName" type="typeX29"/>
                <xs:element name="ticketNumber" type="typeX15"/>
                <xs:element name="origTicketNumber" type="typeX15" minOccurs="0"/>
                <xs:element name="creditReasonIndicator" type="typeX1" minOccurs="0"/>
                <xs:element name="serviceCategories" type="typeX32" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="VTripLegs">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="VTripLeg"  minOccurs="1"  maxOccurs="4"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="VTripLeg">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="carrierCode" type="typeX2"/>
                <xs:element name="departureAirport" type="typeX5"/>
                <xs:element name="departureDate" type="typeDateYYYYMMDD"/>
                <xs:element name="destinationAirport" type="typeX5"/>
                <xs:element name="serviceClass" type="typeX2"/>
                <xs:element name="legNr" type="typeLegNr"/>
                <xs:element name="fareBasis" type="typeX15" minOccurs="0"/>
                <xs:element name="stopOverCode" type="typeX1" minOccurs="0"/>
                <xs:element name="tripNumber" type="typeX5" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="MasterCard">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="carrierCode" type="typeX2"/>
                <xs:element name="customerRef" type="typeX20"/>
                <xs:element name="passengerName" type="typeX29"/>
                <xs:element name="ticketNumber" type="typeX15"/>
                <xs:element name="restrictedTicketIndicator" type="typeRestrTicketInd"/>
                <xs:element name="ticketIssueDate" type="typeX8" minOccurs="0"/>
                <xs:element name="totalFare" type="typeX12" minOccurs="0"/>
                <xs:element name="totalFees" type="typeX12" minOccurs="0"/>
                <xs:element name="totalTax" type="typeX12" minOccurs="0"/>
                <xs:element name="travelAgencyCode" type="typeX8" minOccurs="0"/>
                <xs:element name="travelAgencyName" type="typeX25" minOccurs="0"/>
                <xs:element ref="MCTripLegs" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="MCTripLegs">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="MCTripLeg"  minOccurs="1"  maxOccurs="4"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="MCTripLeg">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="carrierCode" type="typeX2"/>
                <xs:element name="departureAirport" type="typeX5"/>
                <xs:element name="departureDate" type="typeDateYYYYMMDD"/>
                <xs:element name="destinationAirport" type="typeX5"/>
                <xs:element name="legNr" type="typeLegNr"/>
                <xs:element name="arrivalTime" type="typeX4" minOccurs="0"/>
                <xs:element name="conjunctTicket" type="typeX15" minOccurs="0"/>
                <xs:element name="couponNumber" type="typeX1" minOccurs="0"/>
                <xs:element name="departureTime" type="typeX4" minOccurs="0"/>
                <xs:element name="endorsementsRestr" type="typeX20" minOccurs="0"/>
                <xs:element name="exchangeTicket" type="typeX15" minOccurs="0"/>
                <xs:element name="fareAmnt" type="typeX12" minOccurs="0"/>
                <xs:element name="fareBasis" type="typeX15" minOccurs="0"/>
                <xs:element name="feesAmnt" type="typeX12" minOccurs="0"/>
                <xs:element name="stopOverCode" type="typeX1" minOccurs="0"/>
                <xs:element name="taxAmnt" type="typeX12" minOccurs="0"/>
                <xs:element name="tripNumber" type="typeX5" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="Wallet">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="VISACheckout"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="VISACheckout">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="callId" type="typeCallId"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="InstallmentData">
        <xs:complexType>
            <xs:sequence>
                <xs:choice>
                    <xs:element ref="InstallmentMasterCard"/>
                </xs:choice>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="InstallmentMasterCard">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="supportFlag" type="typeSupportFlag"/>
                <xs:choice minOccurs="0">
                    <xs:element ref="InstallmentMasterCardData"/>
                    <xs:sequence>
                        <xs:element name="type" type="typeInstallmentType"/>
                        <xs:element ref="InstallmentMasterCardOption"/>
                    </xs:sequence>
                </xs:choice>
                <xs:element name="selectedInstallmentNumber" type="typeInstallmentNumber" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="InstallmentMasterCardData">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="type" type="typeInstallmentType"/>
                <xs:element name="paymentOption" type="typeInstallmentPaymentOption"/>
                <xs:choice minOccurs="0">
                    <xs:element ref="InstallmentMasterCardConditions"/>
                    <xs:element ref="InstallmentMasterCardOption"/>
                </xs:choice>
                <xs:element name="receipt" type="typeInstallmentReceipt" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="InstallmentMasterCardConditions">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="InstallmentMasterCardOption" minOccurs="1" maxOccurs="12"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="InstallmentMasterCardOption">
        <xs:complexType>
            <xs:sequence>
                <xs:choice>
                   <xs:element name="installmentNumber" type="typeInstallmentNumber"/>
                   <xs:sequence>
                      <xs:element name="minInstallmentNumber" type="typeInstallmentNumber"/>
                      <xs:element name="maxInstallmentNumber" type="typeInstallmentNumber"/>
                   </xs:sequence>
                </xs:choice>
                <xs:element name="interestRate" type="typeInterestRate"/>
                <xs:element name="installmentFee" type="typeInstallmentFee"/>
                <xs:element name="annualPercentageRate" type="typeInterestRate"/>
                <xs:element name="firstAmount" type="typeInstallmentFee" minOccurs="0"/>
                <xs:element name="subsequentAmount" type="typeInstallmentFee" minOccurs="0"/>
                <xs:element name="totalAmountDue" type="typeInstallmentFee"/>
                <xs:element name="checkData" type="typeCheckData"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="InstallmentConfirmationData">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Invoice"/>
                <xs:element ref="AuthorizationRef"/>
                <xs:element ref="InstallmentData"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="Token">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="UPCToken"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="UPCToken">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="tokenId" type="typeUPCTokenId"/>
                <xs:element ref="CardInfo" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="CardInfo">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Mask" type="typeMaskedPAN"/>
                <xs:element name="ExpMonth" type="typeExpMonth"/>
                <xs:element name="ExpYear" type="typeExpYear"/>
                <xs:element name="Brand" type="typeBrand"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="ExtDataToken">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="TAVV" type="typeTAVV"/>
                <xs:element name="TokenType" type="typeTokenType" minOccurs="0"/>
                <xs:element name="TokenNumber" type="typeTokenNumber" minOccurs="0"/>
                <xs:element name="TokenExpDate" type="typeTokenExpDate" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:simpleType name="typeCallId" id="typeCallId">
        <xs:restriction base="xs:string">
            <xs:pattern value=".{0,48}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeExternalClientId" id="typeExternalClientId">
        <xs:restriction base="xs:string">
            <xs:pattern value=".{0,100}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typePosConditionCode" id="typePosConditionCode">
        <xs:restriction base="xs:string">
            <xs:pattern value="(59|08)"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeRrn" id="typeRrn">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{12}"/>
            <xs:minLength value="12"/>
            <xs:maxLength value="12"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeCardNum" id="typeCardNum">
        <xs:restriction base="xs:long">
            <xs:pattern value="[0-9]{13,19}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeRecurrent" id="typeRecurrent">
        <xs:restriction base="xs:string">
            <xs:pattern value="((T|t)(R|r)(U|u)(E|e))|((F|f)(A|a)(L|l)(S|s)(E|e))|[0-9A-Za-z\s]{8,16}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeSupportFlag" id="typeSupportFlag">
        <xs:restriction base="xs:string">
            <xs:pattern value="(Y|N)"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeInstallmentType" id="typeInstallmentType">
        <xs:restriction base="xs:integer">
            <xs:pattern value="2[0-4]"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeInstallmentReceipt" id="typeInstallmentReceipt">
        <xs:restriction base="xs:string">
            <xs:pattern value=".{0,512}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeInstallmentNumber" id="typeInstallmentNumber">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{1,2}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeInstallmentPaymentOption" id="typeInstallmentPaymentOption">
        <xs:restriction base="xs:string">
            <xs:pattern value="(I|F|B)"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeInterestRate" id="typeInterestRate">
        <xs:restriction base="xs:integer">
            <xs:pattern value="[0-9]{1,5}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeInstallmentFee" id="typeInstallmentFee">
        <xs:restriction base="xs:integer">
            <xs:pattern value="[0-9]{1,12}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeCheckData" id="typeCheckData">
        <xs:restriction base="xs:string">
            <xs:pattern value=".{32,1024}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeUPCTokenId" id="typeUPCTokenId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[a-fA-F0-9]{32}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeMaskedPAN" id="typeMaskedPAN">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{0,6}[*]{4,12}[0-9]{4}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeBrand" id="typeBrand">
        <xs:restriction base="xs:string">
            <xs:pattern value="(VISA|MAST|MAES)"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeTAVV" id="typeTAVV">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9+/=]{28}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeTokenType" id="typeTokenType">
        <xs:restriction base="xs:string">
            <xs:pattern value="(C|F|H|A)"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeTokenNumber" id="typeTokenNumber">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{1,19}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeTokenExpDate" id="typeTokenExpDate">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{2}(0[1-9]|1[0-2])"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeDServerTransID" id="typeDServerTransID">
        <xs:restriction base="xs:string">
            <xs:pattern value="[a-zA-Z0-9-]{36}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeSCAExemption" id="typeSCAExemption">
        <xs:restriction base="xs:string">
            <xs:pattern value="0[1-7]"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="typeVisaMerchantIdentifier" id="typeVisaMerchantIdentifier">
        <xs:restriction base="xs:string">
            <xs:pattern value=".{8}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:element name="MerchantID" type="xs:string"/>
    <xs:element name="TerminalID" type="xs:string"/>
    <xs:element name="CVNum" type="typeCVC"/>
    <xs:element name="CardNum" type="typeCardNum"/>
    <xs:element name="CardNumMasked" type="xs:string"/>
    <xs:element name="CardType" type="xs:string"/>
    <xs:element name="Currency" type="typeCurrency"/>
    <xs:element name="Date" type="xs:string"/>
    <xs:element name="Description" type="typeDescription"/>
    <xs:element name="Details" type="xs:string"/>
    <xs:element name="ErrorMessage" type="xs:string"/>
    <xs:element name="ErrorCode" type="xs:string"/>
    <xs:element name="TranCode" type="xs:string"/>
    <xs:element name="ApprovalCode" type="xs:string"/>
    <xs:element name="Rrn" type="typeRrn"/>
    <xs:element name="Comment" type="xs:string"/>
    <xs:element name="CVResult" type="xs:string"/>
    <xs:element name="HostCode" type="xs:string"/>
    <xs:element name="ExpMonth" type="typeExpMonth"/>
    <xs:element name="ExpYear" type="typeExpYear"/>
    <xs:element name="NameOnCard" type="xs:string"/>
    <xs:element name="OrderID" type="typeOrderID"/>
    <xs:element name="Status" type="typeStatus"/>
    <xs:element name="CAVV" type="typeCAVV"/>
    <xs:element name="ECI" type="typeECI"/>
    <xs:element name="CavvAlgorithm" type="xs:string"/>
    <xs:element name="TotalAmount" type="xs:long"/>
    <xs:element name="PAResExt" type="xs:string"/>
    <xs:element name="XID" type="typeXID"/>
    <xs:element name="DeviceCategory" type="xs:string"/>
    <xs:element name="Enrolled" type="xs:string"/>
    <xs:element name="ErrorDetail" type="xs:string"/>
    <xs:element name="Code" type="xs:string"/>
    <xs:element name="AcsURL" type="xs:string"/>
    <xs:element name="PaReq" type="xs:string"/>
    <xs:element name="CardTo" type="xs:long"/>
    <xs:element name="Recurrent" type="typeRecurrent"/>
    <xs:element name="RefundAmount" type="typeRefundAmount"/>
    <xs:element name="PostauthorizationAmount" type="typePostauthorizationAmount"/>
    <xs:element name="Ref3" type="typeRef3"/>
    <xs:element name="Walletid" type="typeWalletid"/>
    <xs:element name="PosConditionCode" type="typePosConditionCode"/>
    <xs:element name="CardholderBillingCurrency" type="typeCurrency"/>
    <xs:element name="DServerTransID" type="typeDServerTransID"/>
    <xs:element name="VisaMerchantIdentifier" type="typeVisaMerchantIdentifier"/>
    <xs:element name="SCAExemption" type="typeSCAExemption" />

</xs:schema>