Ви знаходитеся тут: Головна / Подключение Money Transfer / XSD scheme / TransactionRequest

TransactionRequest

створив(ла) Igor Uleschenko Востаннє змінено: Вер 19, 2019 15:00

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
           version="1.0"
           elementFormDefault="qualified"
           attributeFormDefault="qualified">

    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
               schemaLocation="classpath:schemas/xmldsig-core-schema.xsd"/>

    <xs:element name="Amount" type="amount"/>

    <xs:element name="TransactionRequest" type="transactionRequest"/>

    <xs:element name="address" type="address"/>

    <xs:element name="funding" type="funding"/>

    <xs:element name="paRes" type="paRes"/>

    <xs:element name="payment" type="payment"/>

    <xs:element name="personInfo" type="personInfo"/>

    <xs:complexType name="transactionRequest">
        <xs:all>
            <xs:element name="TrackingId" type="trackingId"/>
            <xs:element name="MerchantId" type="merchantId"/>
            <xs:element name="TerminalId" type="terminalId" minOccurs="0"/>
            <xs:element ref="Amount"/>
            <xs:element name="Funding" type="funding" minOccurs="0"/>
            <xs:element name="Payment" type="payment" minOccurs="0"/>
            <xs:element ref="ds:Signature" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="funding">
        <xs:all>
            <xs:element name="CVV2" type="cvv2" minOccurs="0"/>
            <xs:element name="PARes" type="paRes" minOccurs="0"/>
            <xs:element name="SenderInfo" type="personInfo" minOccurs="0"/>
            <xs:element ref="FundingCardOrToken" minOccurs="0"/>
            <xs:element name="Wallet" type="wallet" minOccurs="0"/>
            <xs:element name="BusinessApplicationIdentifier" type="businessApplicationIdentifier" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="paRes">
        <xs:sequence>
            <xs:element name="Status" type="status"/>
            <xs:element name="CAVV" type="xs:string" minOccurs="0"/>
            <xs:element name="ECI" type="eci" minOccurs="0"/>
            <xs:element name="CavvAlgorithm" type="cavvAlgorithm"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="personInfo">
        <xs:all>
            <xs:element name="Name" type="name"/>
            <xs:element name="Address" type="address" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="address">
        <xs:all>
            <xs:element name="Zip" type="zip"/>
            <xs:element name="Country" type="country"/>
            <xs:element name="City" type="city"/>
            <xs:element name="Street" type="street"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="fullCardInfo">
        <xs:all>
            <xs:element name="CardNumber" type="cardNumber"/>
            <xs:element name="ExpYear" type="expYear"/>
            <xs:element name="ExpMonth" type="expMonth"/>
            <xs:element name="CardHolderName" type="cardHolderName" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="payment">
        <xs:all>
            <xs:element name="SenderAccountNumber" type="senderAccountNumber" minOccurs="0"/>
            <xs:element ref="RecipientCardOrToken"/>
            <xs:element name="SenderPhoneNumber" type="senderPhone" minOccurs="0"/>
            <xs:element name="Message" type="message" minOccurs="0"/>
            <xs:element name="DateOfBirth" type="dateOfBirth" minOccurs="0"/>
            <xs:element name="PaymentInfo" type="personInfo" minOccurs="0"/>
            <xs:element name="Wallet" type="wallet" minOccurs="0"/>
            <xs:element name="BusinessApplicationIdentifier" type="businessApplicationIdentifier" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="amount">
        <xs:all>
            <xs:element name="Value" type="xs:nonNegativeInteger"/>
            <xs:element name="CurrencyCode" type="currencyNumericCode"/>
            <xs:element name="Surcharge" type="xs:nonNegativeInteger" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="wallet">
        <xs:choice>
            <xs:element name="Masterpass" type="masterpass" minOccurs="0"/>
        </xs:choice>
    </xs:complexType>

    <xs:complexType name="masterpass">
        <xs:sequence>
            <xs:element name="Walletid" type="walletId"/>
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="merchantId">
        <xs:restriction base="xs:string">
        <xs:pattern value="[A-Za-z0-9]{1,15}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="terminalId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,8}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="trackingId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,16}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="cvv2">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{3}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="status">
        <xs:restriction base="xs:string">
            <xs:pattern value="[YNAUynau]{1}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="eci">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{2}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="cavvAlgorithm">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{1}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="name">
        <xs:restriction base="xs:string">
            <xs:maxLength value="50"/>
            <xs:pattern value="([a-zA-Z0-9.-]*[a-zA-Z][a-zA-Z0-9.-]*\s+)*[a-zA-Z0-9.-]*[a-zA-Z][a-zA-Z0-9.-]*\s*"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="zip">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{1,7}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="country">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z]{3}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="city">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z .-]{1,16}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="street">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z .-]{1,128}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="cardNumber">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{13,19}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="expYear">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{4}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="expMonth">
        <xs:restriction base="xs:string">
            <xs:pattern value="0?[1-9]|1[0-2]"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="dateOfBirth">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{8}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="cardHolderName">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z \.]{1,25}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="senderAccountNumber">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{0,20}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="recipientCardNumber">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{13,19}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="senderPhone">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{0,20}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="message">
        <xs:restriction base="xs:string">
            <xs:maxLength value="45"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="currencyNumericCode">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{3}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="walletId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{3}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="businessApplicationIdentifier">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9A-Z]{2}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="token">
        <xs:choice minOccurs="1" maxOccurs="1">
            <xs:element name="UPCToken" type="upcToken"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="upcToken">
        <xs:sequence>
            <xs:element name="TokenId" type="tokenId"/>
            <xs:element name="CardInfo" type="cardInfo" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="cardInfo">
        <xs:sequence>
            <xs:element name="Mask" type="maskedPAN"/>
            <xs:element name="ExpMonth" type="expMonth"/>
            <xs:element name="ExpYear" type="expYear"/>
            <xs:element name="Brand" type="brand"/>
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="tokenId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[a-fA-F0-9]{32}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="maskedPAN">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{0,6}[*]{4,12}[0-9]{4}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="brand">
        <xs:restriction base="xs:string">
            <xs:pattern value="(VISA|MAST|MAES)"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:element name="FundingCardOrToken" abstract="true"/>
    <xs:element name="CardInfo" type="fullCardInfo" substitutionGroup="FundingCardOrToken"/>
    <xs:element name="TokenFunding" type="token" substitutionGroup="FundingCardOrToken"/>

    <xs:element name="RecipientCardOrToken" abstract="true"/>
    <xs:element name="RecipientCardNumber" type="recipientCardNumber" substitutionGroup="RecipientCardOrToken"/>
    <xs:element name="TokenPayment" type="token" substitutionGroup="RecipientCardOrToken"/>
</xs:schema>