<?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#" 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="EMV3DSRequest"/> <xs:element ref="EMV3DSResponse"/> <xs:element ref="Error"/> </xs:choice> <xs:element ref="ds:Signature" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="EMV3DSRequest"> <xs:complexType> <xs:sequence> <xs:element ref="MerchantID" /> <xs:element ref="TerminalID" /> <xs:choice> <xs:element ref="InitBRWRequest"/> <xs:element ref="ApplRequest"/> <xs:element ref="AuthRequest"/> </xs:choice> </xs:sequence> <xs:attribute name="id" 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" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="EMV3DSResponse"> <xs:complexType> <xs:sequence> <xs:element ref="Error" minOccurs="0"/> <xs:choice minOccurs="0"> <xs:element ref="InitBRWResponse"/> <xs:element ref="ApplResponse"/> <xs:element ref="AuthResponse"/> </xs:choice> </xs:sequence> <xs:attribute name="id" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="InitBRWRequest"> <xs:complexType> <xs:sequence> <xs:element ref="InitAuthData"/> <xs:element ref="eventCallbackUrl" /> <!-- This is a 3DS requestor URL in which the 3DS requestor receive events during authentication. The 3DS requestor backend needs a handler method to accept the call from ActiveServer. ActiveServer(3DS Server) calls this URL through the iframe when it has to notify some events occurring. POST request will be sent to this URL with following parameters: --> <xs:element ref="challengeWindowSize" minOccurs="0"/> <!-- Dimensions of the challenge window that has been displayed to the Cardholder. The ACS shall reply with content that is formatted to appropriately render in this window to provide the best possible user experience. Preconfigured sizes are width x height in pixels of the window displayed in the Cardholder browser window. Values accepted: • 01 = 250 x 400 • 02 = 390 x 400 • 03 = 500 x 600 • 04 = 600 x 400 • 05 = Full screen--> <xs:element ref="skipAutoBrowserInfoCollect" minOccurs="0"/> <!-- Optional boolean. If set to true, ActiveServer will not collect the browser information automatically. The requestor must have a back-end implementation to collect browserIP, browserUserAgent, and browserAcceptHeader. The requestor must have a Javascript implementation in the browser to collect the remaining fields.--> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="ApplRequest"> <xs:complexType> <xs:choice> <xs:sequence> <xs:element ref="AuthData"/> <xs:element ref="ApplData"/> </xs:sequence> <xs:element ref="emv3DSServerTransID"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="InitAuthData"> <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:sequence> </xs:complexType> </xs:element> <xs:element name="AuthRequest"> <xs:complexType> <xs:sequence> <xs:element ref="emv3DSVersion"/> <xs:choice> <xs:element ref="AuthEMV3DSv1Request" /> <xs:element ref="AuthEMV3DSv2Request" /> </xs:choice> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="AuthEMV3DSv1Request"> <xs:complexType> <xs:sequence> <xs:element name="PaRes" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="AuthEMV3DSv2Request"> <xs:complexType> <xs:sequence> <xs:choice> <xs:element ref="EMV3DSv2Auth" /> <xs:element ref="EMV3DSv2AuthChallenge"/> </xs:choice> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="AuthData"> <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="emv3DSServerTransID"/> <!-- The EMV3DSServerTransID received in EMV3DSMethodURLProcess. --> <xs:element ref="authenticationIndicator"/> <xs:element ref="acctType" minOccurs="0"/><!-- Indicates the type of account. For example, for a multi-account card product. Required if 3DS Requestor is asking Cardholder which Account Type they are using before making the purchase.--> <xs:element ref="CardHolder" minOccurs="0" /> <xs:element ref="provisionAttemptsDay" minOccurs="0" /> <!-- Number of Add Card attempts in the last 24 hours. --> <xs:element ref="shipAddressUsageDate" minOccurs="0" /> <!-- Date when the shipping address used for this transaction was first used with the 3DS Requestor. --> <xs:element ref="shipAddressUsageIndicator" minOccurs="0" /> <!-- Indicates when the shipping address used for this transaction was first used with the 3DS Requestor. --> <xs:element ref="shipNameIndicator" minOccurs="0" /> <!-- Indicates if the Cardholder Name on the account is identical to the shipping Name used for this transaction. --> <xs:element ref="suspiciousAccActivity" minOccurs="0" /> <!-- Indicates whether the 3DS Requestor has experienced suspicious activity (including previous fraud) on the cardholder account. --> <xs:element ref="Transaction" minOccurs="0" /> <xs:element ref="AuthenticationInfo" minOccurs="0" /> <xs:element ref="challengeInd" minOccurs="0" /> <!-- Indicates whether a challenge is requested for this transaction. (This field is optional|For 01-PA|a 3DS Requestor may have concerns about the transaction|and request a challenge; For 02-NPA, a challenge may be necessary when adding a new card to a wallet.) --> <xs:element ref="MerchantRiskIndicator" minOccurs="0" /> <xs:element ref="payTokenInd" minOccurs="0" /> <!-- EMV Payment Token Indicator A value of True indicates that the transaction was de-tokenised prior to being received by the ACS.This data element will be populated by the system residing in the 3-D Secure domain where the de-tokenisation occurs (i.e., the 3DS Server or the DS). --> <xs:element ref="priorTransID" minOccurs="0" /> <!-- The 3DS Server Transaction ID for a prior authenticated transaction of a cardholder. --> <xs:element ref="purchaseDate" minOccurs="0" /> <!-- Date and time of the purchase, expressed in UTC. (This field is always required for 01-PA and conditionally required for 02-NPA when 3DS Requestor Authentication Indicator = 02 or 03.) --> <xs:element ref="purchaseInstalData" minOccurs="0" /> <!-- Indicates the maximum number of authorisations permitted for instalment payments. (This field is required if 3DS Requestor Authentication Indicator = 03. Omitted if not an instalment payment authentication.) --> <xs:element ref="recurringExpiry" minOccurs="0" /> <!-- Date after which no further authorisations shall be performed. (This field is always required for 01-PA and conditionally required for 02-NPA when 3DS Requestor Authentication Indicator = 02 or 03.) --> <xs:element ref="recurringFrequency" minOccurs="0" /> <!-- Indicates the minimum number of days between authorisations. (This field is always required for 01-PA and conditionally required for 02-NPA when 3DS Requestor Authentication Indicator = 02 or 03.) Example scenario: If recurring transaction occurs 3, 5 and 9 days after the purchase date, then this field should be set to 2 because the minimum days is between after 3 and 5 days --> <xs:element ref="transType" minOccurs="0" /> <!-- Identifies the type of transaction being authenticated. (This field is required in some markets, e.g. for Merchants in Brazil. Otherwise, it is optional.)--> <xs:element ref="decoupledMaxTime" minOccurs="0" /> <!-- Indicates the maximum amount of time that the 3DS Requestor will wait for an ACS to provide the results of a Decoupled Authentication transaction (in minutes). optional.)--> <xs:element ref="decoupledReqInd" minOccurs="0" /> <!-- Indicates whether the 3DS Requestor requests the ACS to utilise Decoupled Authentication and agrees to utilise Decoupled Authentication if the ACS confirms its use (transStatus="D"). optional.)--> <xs:element ref="whiteListStatus" minOccurs="0" /> <!-- Enables the communication of trusted beneficiary/whitelist status between the ACS, the DS and the 3DS Requestor. optional.)--> <xs:element ref="messageVersion" minOccurs="0" /> <!-- Identifies the type of transaction being authenticated. (This field is required in some markets, e.g. for Merchants in Brazil. optional.)--> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="EMV3DSv2Auth"> <xs:complexType> <xs:sequence> <xs:element ref="AuthData"/> <xs:element ref="emv3DSTransID"/> <xs:element ref="emv3DSAuthUrl"/> <xs:element ref="browserInfo" minOccurs="0"/> <xs:element ref="BrowserInfoCollected" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="EMV3DSv2AuthChallenge"> <xs:complexType> <xs:sequence> <xs:element ref="emv3DSServerTransID"/> <!-- The EMV3DSServerTransID received in EMV3DSMethodURLProcess. --> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="InitBRWResponse"> <xs:complexType> <xs:sequence> <xs:element ref="emv3DSVersion"/> <xs:choice> <xs:element ref="InitEMV3DSv1Response"/> <xs:element ref="InitEMV3DSv2Response"/> </xs:choice> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="InitEMV3DSv1Response"> <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="InitEMV3DSv2Response"> <xs:complexType> <xs:sequence> <xs:element ref="emv3DSTransID"/> <!-- Universal unique transaction identifier assigned by the 3DS Requestor to identify a single transaction --> <xs:element ref="emv3DSServerMonitoringUrl" minOccurs="0"/> <!-- This URL returned by 3DS Server is used for the purpose of monitoring the timeout process for browser information collecting and 3DS method. It allows to notify the 3DS requestor when the 3DS method times out. An iframe should be created with src attribute set to this endpoint once you call /api/v1/auth/brw/{messageCategory}.Once the iframe is created, it checks for the timeout for a maximum of 15 seconds (10 seconds for 3DS method and 5 seconds for browser information collecting).The timer is started when the 3DS requestor calls /api/v1/auth/brw/init/{messageCategory}, and it will check periodically if the transaction with given transaction ID has successfully called an /api/v1/auth/brw. If a valid request is not sent to /api/v1/auth/brw and timer is up, it will notify the 3DS requestor through the iframe to the eventCallbackUrl sent, with an event 'InitAuthTimedOut' so 3DS requestor can terminate the transaction. Check out the 3DS web adapter.js code on how to create this monitoring iframe. --> <xs:element ref="emv3DSServerCallbackUrl" minOccurs="0" /> <!-- This URL returned by 3DS Server where the 3DS Requestor can use it to collect browser information as well as executing 3DS method if supported by ACS for the BIN range. 3DS server callback URL Required --> <xs:element ref="emv3DSServerTransID" minOccurs="0" /> <xs:element ref="emv3DSAuthUrl" minOccurs="0"/> <!-- Universal unique transaction identifier assigned by the 3DS Requestor to identify a single transaction --> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="AuthResponse"> <xs:complexType> <xs:sequence> <xs:element ref="emv3DSVersion"/> <xs:choice> <xs:element ref="AuthEMV3DSv1Response"/> <xs:element ref="AuthEMV3DSv2Response"/> </xs:choice> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="AuthEMV3DSv1Response"> <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="AuthEMV3DSv2Response"> <xs:complexType> <xs:sequence> <xs:element ref="AuthEMV3DSv2Data"/> <xs:element ref="challengeUrl" minOccurs="0"/> </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:sequence> </xs:complexType> </xs:element> <xs:element name="CardHolder"> <xs:complexType> <xs:sequence> <xs:element ref="addrMatch" minOccurs="0" /> <!-- Indicates whether the 3DS Server Cardholder Shipping Address and Cardholder Billing Address are the same. Values accepted Y = Shipping Address matches Billing Address, N = Shipping Address does not match Billing Address--> <xs:element ref="ageIndicator" minOccurs="0" /> <!-- Length of time that the cardholder has had the account with the 3DS Requestor --> <xs:element ref="lastChangeDate" minOccurs="0" /> <!-- Date that the cardholder's account with the 3DS Requestor was last changed. Including Billing or Shipping address, new payment account, or new user(s) added --> <xs:element ref="lastChangedIndicator" minOccurs="0" /> <!-- Length of time since the cardholder's account information with the 3DS Requestor was last changed. Including Billing or Shipping address --> <xs:element ref="firstAccessDate" minOccurs="0" /> <!-- Date that the cardholder opened the account with the 3DS Requestor. --> <xs:element ref="passwordChangeDate" minOccurs="0" /> <!-- Date that cardholder's account with the 3DS Requestor had a password change or account reset. --> <xs:element ref="passwordChangeIndicator" minOccurs="0" /> <!-- Indicates the length of time since the cardholder's account with the 3DS Requestor had a password change or account reset. --> <xs:element ref="numberPurchasePreviousSixMonths" minOccurs="0" /> <!--- Number of purchases with this cardholder account during the previous six months. --> <xs:element ref="paymentEnrollDate" minOccurs="0" /> <!-- Date that the payment account was enrolled in the cardholder's account with the 3DS Requestor. --> <xs:element ref="paymentEnrollIndicator" minOccurs="0" /> <!-- Indicates the length of time that the payment account was enrolled in the cardholder's account with the 3DS --> <xs:element ref="Billing" minOccurs="0" /> <xs:element ref="cardholderName" minOccurs="0" /> <xs:element ref="email" minOccurs="0" /> <xs:element ref="HomePhone" minOccurs="0" /> <xs:element ref="MobilePhone" minOccurs="0" /> <xs:element ref="Shipping" minOccurs="0" /> <xs:element ref="WorkPhone" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Billing"> <xs:complexType> <xs:sequence> <xs:element ref="Address"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Address"> <xs:complexType> <xs:sequence> <xs:element ref="city" minOccurs="0" /> <xs:element ref="country" minOccurs="0" /> <xs:element ref="Street" minOccurs="0" /> <xs:element ref="postCode" minOccurs="0" /> <xs:element ref="state" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Street"> <xs:complexType> <xs:sequence> <xs:element ref="line1" minOccurs="0" /> <xs:element ref="line2" minOccurs="0" /> <xs:element ref="line3" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="HomePhone"> <xs:complexType> <xs:sequence> <xs:element ref="Phone" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="MobilePhone"> <xs:complexType> <xs:sequence> <xs:element ref="Phone" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="WorkPhone"> <xs:complexType> <xs:sequence> <xs:element ref="Phone" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Phone"> <xs:complexType> <xs:sequence> <xs:element ref="countryCode" minOccurs="0" /> <xs:element ref="subscribe" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Shipping"> <xs:complexType> <xs:sequence> <xs:element ref="Address"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Transaction"> <xs:complexType> <xs:sequence> <xs:element ref="activityDay" minOccurs="0" /> <!-- Number of transactions (successful and abandoned) for this cardholder account with the 3DS Requestor across all payment accounts in the previous 24 hours. --> <xs:element ref="activityYear" minOccurs="0" /> <!-- Number of transactions (successful and abandoned) for this cardholder account with the 3DS Requestor across all payment accounts in the previous year. --> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="AuthenticationInfo"> <xs:complexType> <xs:sequence> <xs:element ref="emv3DSAuthData" minOccurs="0" /> <!-- Data that documents and supports a specific authentication process. Length: maximum 2048 bytes, JSON Data Type: String, Value accepted: Any --> <xs:element ref="emv3DSAuthMethod" minOccurs="0" /> <!-- Mechanism used by the Cardholder to authenticate to the 3DS Requestor. --> <xs:element ref="emv3DSAuthTimestamp" minOccurs="0" /> <!-- Date and time in UTC of the cardholder authentication. --> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="MerchantRiskIndicator"> <xs:complexType> <xs:sequence> <xs:element ref="deliveryEmailAddress" minOccurs="0" /> <!-- For Electronic delivery, the email address to which the merchandise was delivered.--> <xs:element ref="deliveryTimeframe" minOccurs="0" /> <!-- Indicates the merchandise delivery timeframe. --> <xs:element ref="giftCardAmount" minOccurs="0" /> <!-- For prepaid or gift card purchase, the purchase amount total of prepaid or gift card(s) in major units (for example, USD 123.45 is 123). --> <xs:element ref="giftCardCount" minOccurs="0" /> <!-- For prepaid or gift card purchase, total count of individual prepaid or gift cards/codes purchased. --> <xs:element ref="giftCardCurr" minOccurs="0" /> <!-- For prepaid or gift card purchase, the currency code of the card as defined in ISO 4217 other than those listed in Table A.6. in EMVCO Protocol and Core Functions Specification --> <xs:element ref="preOrderDate" minOccurs="0" /> <!-- For a pre-ordered purchase, the expected date that the merchandise will be available. --> <xs:element ref="preOrderPurchaseInd" minOccurs="0" /> <!-- Indicates whether Cardholder is placing an order for merchandise with a future availability or release date. --> <xs:element ref="reorderItemsInd" minOccurs="0" /> <!-- Indicates whether the cardholder is reordering previously purchased merchandise. --> <xs:element ref="shipIndicator" minOccurs="0" /> <!-- Indicates shipping method chosen for the transaction. Merchants must choose the Shipping Indicator code that most accurately describes the cardholder's specific transaction, not their general business. If one or more items are included in the sale, use the Shipping Indicator code for the physical goods, or if all digital goods, use the Shipping Indicator code that describes the most expensive item. --> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="BrowserInfoCollected"> <xs:complexType> <xs:sequence> <xs:element name="browserAcceptHeader" type="typeBrowserAcceptHeader"/> <!--Exact content of the HTTP accept headers as sent to the 3DS Requestor from the Cardholder’s browser.--> <xs:element name="browserColorDepth" type="typeBrowserColorDepth"/> <!-- Value representing the bit depth of the colour palette for displaying images, in bits per pixel. --> <xs:element name="browserIP" type="typeBrowserIP" minOccurs="0"/> <!-- IP address of the browser as returned by the HTTP headers to the 3DS Requestor.(Shall include this field where regionally acceptable.)--> <xs:element name="browserJavaEnabled" type="typeBrowserJavaEnabled"/> <!--Boolean that represents the ability of the cardholder browser to execute Java.--> <xs:element name="browserJavascriptEnabled" type="typeBrowserJavascriptEnabled"/> <!-- Boolean that represents the ability of the cardholder browser to execute Javascript. Values accepted: [Y,N] --> <xs:element name="browserLanguage" type="typeBrowserLanguage"/> <!-- Value representing the browser language as defined in IETF BCP47. --> <xs:element name="browserScreenHeight" type="typeBrowserScreenHeight"/> <!-- Total height of the Cardholder’s screen in pixels.--> <xs:element name="browserScreenWidth" type="typeBrowserScreenWidth"/> <!-- Total width of the Cardholder’s screen in pixels. --> <xs:element name="browserTZ" type="typeBrowserTZ"/> <!-- Time difference between UTC time and the Cardholder browser local time, in minutes.--> <xs:element name="browserUserAgent" type="typeBrowserUserAgent"/> <!-- Exact content of the HTTP user-agent header. --> </xs:sequence> </xs:complexType> </xs:element> <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="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="typeUPCTokenId" id="typeUPCTokenId"> <xs:restriction base="xs:string"> <xs:pattern value="[a-fA-F0-9]{32}"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeCurrency" id="typeCurrency"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{3}"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeAuthInd" id="typeAuthInd"> <xs:restriction base="xs:string"> <xs:pattern value="0[1-6]"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeAcctType" id="typeAcctType"> <xs:restriction base="xs:string"> <xs:pattern value="0[1-3]"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeIndicator" id="typeIndicator"> <xs:restriction base="xs:string"> <xs:pattern value="0[1-5]"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeAddrMatch" id="typeAddrMatch"> <xs:restriction base="xs:string"> <xs:pattern value="[YN]"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeOneToFourIndicator" id="typeOneToFourIndicator"> <xs:restriction base="xs:string"> <xs:pattern value="0[1-4]"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeСhallengeInd" id="typeСhallengeInd"> <xs:restriction base="xs:string"> <xs:pattern value="0[1-9]"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeStreetLine" id="typeStreetLine"> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="50"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeDate_yyyyMMdd" id="typeDate_yyyyMMdd"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{4}(0[1-9]|1[0-2])(0[0-9]|[1-2][0-9]|3[0-1])"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeNumberPurchase" id="typeNumberPurchase"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{1,4}"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeCardholderName" id="typeCardholderName"> <xs:restriction base="xs:string"> <xs:minLength value="2"/> <xs:maxLength value="45"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeEmail" id="typeEmail"> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="254"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeThreeDigitNumber" id="typeThreeDigitNumber"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{1,3}"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeFifteenDigitNumber" id="typeFifteenDigitNumber"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{1,15}"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeOneToTwoIndicator" id="typeOneToTwoIndicator"> <xs:restriction base="xs:string"> <xs:pattern value="0[1-2]"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeСhallengeWindowSize" id="typeСhallengeWindowSize"> <xs:restriction base="xs:string"> <xs:pattern value="0[1-5]"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeCallbackUrl" id="typeCallbackUrl"> <xs:restriction base="xs:anyURI"> <xs:minLength value="11"/> <xs:maxLength value="2000"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeUUID" id="typeUUID"> <xs:restriction base="xs:string"> <xs:pattern value="[a-fA-F0-9-]{36}"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeDate_yyyyMMddHHmmss" id="typeDate_yyyyMMddHHmmss"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{4}(0[1-9]|1[0-2])(0[0-9]|[1-2][0-9]|3[0-1])([0-1][0-9]|2[0-3])[0-5][0-9][0-5][0-9]"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeFourDigitNumber" id="typeFourDigitNumber"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{1,4}"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeTrans" id="typeTrans"> <xs:restriction base="xs:string"> <xs:pattern value="(01|03|10|11|28)" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeCity" id="typeCity"> <xs:restriction base="xs:string"> <xs:minLength value="2"/> <xs:maxLength value="50"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeCountry" id="typeCountry"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{3}" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="typePostCode" id="typePostCode"> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="16"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeState" id="typeState"> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="3"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeAuthData" id="typeAuthData"> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="2048"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeDate_yyyyMMddHHmm" id="typeDate_yyyyMMddHHmm"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{4}(0[1-9]|1[0-2])(0[0-9]|[1-2][0-9]|3[0-1])([0-1][0-9]|2[0-3])[0-5][0-9]" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeAmount" id="typeAmount"> <xs:restriction base="xs:long"> <xs:pattern value="[0-9]{1,15}" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeTwoDigitNumber" id="typeTwoDigitNumber"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{1,2}"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeOneToSevenIndicator" id="typeOneToSevenIndicator"> <xs:restriction base="xs:string"> <xs:pattern value="0[1-7]"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeEMV3DSVersion" id="typeEMV3DSVersion"> <xs:restriction base="xs:string"> <xs:pattern value="(1|2)"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeXID" id="typeXID"> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="28"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeCAVV" id="typeCAVV"> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="56"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeStatus" id="typeStatus"> <xs:restriction base="xs:string"> <xs:pattern value="[YNUACRDI]{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:element name="MerchantID" type="xs:string"/> <xs:element name="TerminalID" type="xs:string"/> <xs:element name="Details" type="xs:string"/> <xs:element name="ErrorMessage" type="xs:string"/> <xs:element name="ErrorCode" type="xs:string"/> <xs:element name="CardNum" type="typeCardNum"/> <xs:element name="ExpMonth" type="typeExpMonth"/> <xs:element name="ExpYear" type="typeExpYear"/> <xs:element name="TotalAmount" type="xs:long"/> <xs:element name="Currency" type="typeCurrency"/> <xs:element name="authenticationIndicator" type="typeAuthInd"/> <xs:element name="acctType" type="typeAcctType"/> <xs:element name="ageIndicator" type="typeIndicator" /> <xs:element name="addrMatch" type="typeAddrMatch" /> <xs:element name="line1" type="typeStreetLine" /> <xs:element name="line2" type="typeStreetLine" /> <xs:element name="line3" type="typeStreetLine" /> <xs:element name="lastChangeDate" type="typeDate_yyyyMMdd" /> <xs:element name="lastChangedIndicator" type="typeOneToFourIndicator" /> <xs:element name="firstAccessDate" type="typeDate_yyyyMMdd" /> <xs:element name="passwordChangeDate" type="typeDate_yyyyMMdd" /> <xs:element name="passwordChangeIndicator" type="typeIndicator" /> <xs:element name="numberPurchasePreviousSixMonths" type="typeNumberPurchase" /> <xs:element name="paymentEnrollDate" type="typeDate_yyyyMMdd" /> <xs:element name="paymentEnrollIndicator" type="typeIndicator" /> <xs:element name="cardholderName" type="typeCardholderName" /> <xs:element name="email" type="typeEmail" /> <xs:element name="countryCode" type="typeThreeDigitNumber" /> <xs:element name="subscribe" type="typeFifteenDigitNumber" /> <xs:element name="shipAddressUsageDate" type="typeDate_yyyyMMdd" /> <xs:element name="provisionAttemptsDay" type="typeThreeDigitNumber" /> <xs:element name="shipAddressUsageIndicator" type="typeOneToFourIndicator" /> <xs:element name="shipNameIndicator" type="typeOneToTwoIndicator" /> <xs:element name="suspiciousAccActivity" type="typeOneToTwoIndicator" /> <xs:element name="challengeInd" type="typeСhallengeInd" /> <xs:element name="eventCallbackUrl" type="typeCallbackUrl" /> <xs:element name="challengeWindowSize" type="typeСhallengeWindowSize" /> <xs:element name="payTokenInd" type="xs:boolean" /> <xs:element name="priorTransID" type="typeUUID" /> <xs:element name="purchaseDate" type="typeDate_yyyyMMddHHmmss" /> <xs:element name="purchaseInstalData" type="typeThreeDigitNumber" /> <xs:element name="recurringExpiry" type="typeDate_yyyyMMdd" /> <xs:element name="recurringFrequency" type="typeFourDigitNumber" /> <xs:element name="emv3DSTransID" type="typeUUID" /> <xs:element name="emv3DSServerTransID" type="typeUUID" /> <xs:element name="transType" type="typeTrans" /> <xs:element name="city" type="typeCity" /> <xs:element name="country" type="typeCountry" /> <xs:element name="postCode" type="typePostCode" /> <xs:element name="state" type="typeState" /> <xs:element name="activityDay" type="typeThreeDigitNumber" /> <xs:element name="activityYear" type="typeThreeDigitNumber" /> <xs:element name="emv3DSAuthData" type="typeAuthData" /> <xs:element name="emv3DSAuthMethod" type="typeAuthInd" /> <xs:element name="emv3DSAuthTimestamp" type="typeDate_yyyyMMddHHmm" /> <xs:element name="deliveryEmailAddress" type="typeEmail" /> <xs:element name="deliveryTimeframe" type="typeOneToFourIndicator" /> <xs:element name="giftCardAmount" type="typeAmount" /> <xs:element name="giftCardCount" type="typeTwoDigitNumber" /> <xs:element name="giftCardCurr" type="typeCurrency" /> <xs:element name="preOrderDate" type="typeDate_yyyyMMdd" /> <xs:element name="preOrderPurchaseInd" type="typeOneToTwoIndicator" /> <xs:element name="reorderItemsInd" type="typeOneToTwoIndicator" /> <xs:element name="shipIndicator" type="typeOneToSevenIndicator" /> <xs:element name="enrolled" type="xs:string"/> <xs:element name="emv3DSVersion" type="typeEMV3DSVersion"/> <xs:element name="acsURL" type="xs:anyURI"/> <xs:element name="paReq" type="xs:string"/> <xs:element name="emv3DSServerMonitoringUrl" type="xs:anyURI"/> <xs:element name="emv3DSServerCallbackUrl" type="xs:anyURI"/> <xs:element name="xid" type="typeXID" /> <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="browserInfo" type="xs:string"/> <xs:element name="emv3DSAuthUrl" type="xs:anyURI"/> <xs:element name="interactionCounter" type="xs:string"/> <xs:element name="skipAutoBrowserInfoCollect" type="skipAutoBrowserInfoCollect" /> <xs:element name="ApplData"> <xs:complexType> <xs:sequence> <xs:element ref="SDK" /> <xs:element ref="JWK" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="JWK"> <xs:complexType> <xs:sequence> <xs:element name="alg" type="typeAlg" minOccurs="0"/> <xs:element ref="keyOps"/> <xs:element name="keyId" type="xs:string" minOccurs="0"/> <xs:element name="keyType" type="typeKeyType"/> <xs:element name="x5c" type="xs:string" minOccurs="0"/> <xs:element name="x5t" type="xs:string" minOccurs="0"/> <xs:element name="x5u" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="ApplResponse"> <xs:complexType> <xs:sequence> <xs:element ref="AuthEMV3DSv2Data" minOccurs="0"/> <xs:element ref="AuthAPPLEMV3DSv2Data" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="AuthEMV3DSv2Data"> <xs:complexType> <xs:sequence> <xs:element ref="acsChallengeMandated" minOccurs="0" /> <xs:element ref="acsDecConInd" minOccurs="0" /> <xs:element ref="acsReferenceNumber" minOccurs="0" /> <xs:element ref="acsTransID" minOccurs="0" /> <xs:element ref="authenticationType" minOccurs="0"/> <xs:element ref="authenticationValue" minOccurs="0"/> <xs:element ref="cardholderInfo" minOccurs="0"/> <xs:element ref="dsReferenceNumber" minOccurs="0"/> <xs:element ref="dsTransID" minOccurs="0" /> <xs:element ref="eci" minOccurs="0"/> <xs:element ref="AuthError" minOccurs="0"/> <xs:element ref="messageVersion" minOccurs="0"/> <xs:element ref="emv3DSServerTransID"/> <xs:element ref="tranStatus"/> <xs:element ref="tranStatusReason" minOccurs="0"/> <xs:element ref="interactionCounter" minOccurs="0"/> <xs:element ref="whiteListStatusRes" minOccurs="0"/> <xs:element ref="whiteListStatusSource" minOccurs="0"/> <xs:element ref="resultMonUrl" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="acsChallengeMandated" type="typeAcsChallengeMandated" /> <!-- Indication of whether a challenge is required for the transaction to be authorised due to local/regional mandates or other variable. \nLength: 1 character\nValues accepted:Y = Challenge is mandated\nN = Challenge is not mandated\n\n Conditional --> <xs:element name="acsDecConInd" type="typeAcsDecConInd" /> <!-- Indicates whether the ACS confirms utilisation of Decoupled Authentication and agrees to utilise Decoupled Authentication to authenticate the Cardholder --> <xs:element name="whiteListStatusRes" type="typeWhiteListStatusRes" /> <!-- Enables the communication of trusted beneficiary/whitelist status between the ACS, the DS and the 3DS Requestor.• Y = 3DS Requestor is whitelisted by cardholder • N = 3DS Requestor is not whitelisted by cardholder• E = Not eligible as determined by issuer• P = Pending confirmation by cardholder• R = Cardholder rejected• U = Whitelist status unknown, unavailable, or does not apply --> <xs:element name="whiteListStatusSource" type="typeWhiteListStatusSource" /> <!-- This data element will be populated by the system setting Whitelist Status. --> <xs:element name="resultMonUrl" type="xs:anyURI" /> <!-- The result monitoring URL, only returned if transStatus is "C" or "D". 3DS requestor can monitor the result avaiability during challenge or decoupled authentication by performing polling on this URL. Returns a JSON with event "AuthResultReady" when the RReq has been received by ActiveServer. If RReq has not been received, "AuthResultNotReady" will be returned. For details of the JSON please refer to "ResultMonEvent" model below --> <xs:simpleType name="typeAcsChallengeMandated" id="typeAcsChallengeMandated"> <xs:restriction base="xs:string"> <xs:pattern value="Y|N"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeAcsDecConInd" id="typeAcsDecConInd"> <xs:restriction base="xs:string"> <xs:pattern value="Y|N"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeWhiteListStatusRes" id="typeWhiteListStatusRes"> <xs:restriction base="xs:string"> <xs:pattern value="Y|N|E|P|R|U"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeWhiteListStatusSource" id="typeWhiteListStatusSource"> <xs:restriction base="xs:string"> <xs:pattern value="0[1-3]"/> </xs:restriction> </xs:simpleType> <xs:element name="authenticationType" type="typeAuthenticationType" /> <xs:simpleType name="typeAuthenticationType"> <xs:restriction base="xs:string"> <xs:pattern value="0[1-4]|80"/> </xs:restriction> </xs:simpleType> <xs:element name="authenticationValue" type="typeAuthenticationValue"/> <xs:simpleType name="typeAuthenticationValue"> <xs:restriction base="xs:string"> <xs:pattern value=".{28}"/> </xs:restriction> </xs:simpleType> <xs:element name="cardholderInfo" type="typeCardholderInfo" /> <xs:simpleType name="typeCardholderInfo"> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="128"/> </xs:restriction> </xs:simpleType> <xs:element name="code" type="typeErrorCode"/> <xs:simpleType name="typeErrorCode"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{4}"/> </xs:restriction> </xs:simpleType> <xs:element name="component" type="typeErrorComponent" /> <xs:simpleType name="typeErrorComponent"> <xs:restriction base="xs:string"> <xs:pattern value="C|S|D|A"/> </xs:restriction> </xs:simpleType> <xs:element name="tranStatus" type="typeStatus"/> <xs:element name="tranStatusReason" type="typeTransStatusReason"/> <xs:simpleType name="typeTransStatusReason"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{2}"/> </xs:restriction> </xs:simpleType> <xs:element name="description" type="typeErrorDetail"/> <xs:simpleType name="typeErrorDetail"> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="2048"/> </xs:restriction> </xs:simpleType> <xs:element name="detail" type="typeErrorDetail"/> <xs:element name="messageType" type="typeErrorMessageType" /> <xs:simpleType name="typeErrorMessageType"> <xs:restriction base="xs:string"> <xs:pattern value="[a-zA-Z]{4}"/> </xs:restriction> </xs:simpleType> <xs:element name="AuthAPPLEMV3DSv2Data"> <xs:complexType> <xs:sequence> <xs:element ref="acsReferenceNumber" minOccurs="0"/> <xs:element ref="AcsRenderingType" minOccurs="0"/> <xs:element ref="acsSignedContent" minOccurs="0" /> <xs:element ref="acsTransID" minOccurs="0" /> <xs:element ref="dsReferenceNumber" minOccurs="0" /> <xs:element ref="dsTransID" minOccurs="0" /> <xs:element ref="messageVersion" minOccurs="0" /> <xs:element ref="sdkTransID" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="AcsRenderingType"> <xs:complexType> <xs:sequence> <xs:element ref="interface" minOccurs="0"/> <xs:element ref="uiTemplate" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="interface" type="typeAcsInterface" /> <xs:simpleType name="typeAcsInterface"> <xs:restriction base="xs:string"> <xs:pattern value="0[12]"/> </xs:restriction> </xs:simpleType> <xs:element name="uiTemplate" type="typeUiTemplate" /> <xs:simpleType name="typeUiTemplate"> <xs:restriction base="xs:string"> <xs:pattern value="0[1-5]"/> </xs:restriction> </xs:simpleType> <xs:element name="acsSignedContent" type="xs:string" /> <xs:element name="acsTransID" type="typeUUID" /> <xs:element name="sdkTransID" type="typeUUID" /> <xs:element name="challengeUrl" type="typeCallbackUrl" /> <xs:simpleType name="typeSdkEncData"> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="64000"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeSdkInterface"> <xs:restriction base="xs:string"> <xs:pattern value="0[1-3]"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeSdkUiType"> <xs:restriction base="xs:string"> <xs:pattern value="0[1-5]"/> </xs:restriction> </xs:simpleType> <xs:element name="SDK"> <xs:complexType> <xs:sequence> <xs:element name="interface" type="typeSdkInterface"/> <xs:element name="uiType" type="typeSdkUiType"/> <xs:element name="appID" type="typeUUID"/> <xs:element name="encData" type="typeSdkEncData" /> <xs:element name="maxTimeout" type="typeMaxTimeOut"/> <xs:element name="referenceNumber" type="typeReferenceNumber" /> <xs:element ref="sdkTransID" /> </xs:sequence> </xs:complexType> </xs:element> <xs:simpleType name="typeMaxTimeOut"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{2}"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeReferenceNumber"> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="32"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeAlg"> <xs:restriction base="xs:string"> <xs:pattern value="(((HS|RS|ES|PS)(256|384|512))|none)"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeKeyOps"> <xs:restriction base="xs:string"> <xs:pattern value="sign|verify|encrypt|decrypt|wrapKey|unwrapKey|deriveKey|deriveBits"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeKeyType"> <xs:restriction base="xs:string"> <xs:pattern value="EC|RSA|OCT"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeMessageVersion"> <xs:restriction base="xs:string"> <xs:minLength value="5"/> <xs:maxLength value="8"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeDecoupledMaxTime" id="typeDecoupledMaxTime"> <xs:restriction base="xs:string"> <xs:length value="5"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeDecoupledReqInd" id="typeDecoupledReqInd"> <xs:restriction base="xs:string"> <xs:pattern value="Y|N"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeWhiteListStatus" id="typeWhiteListStatus"> <xs:restriction base="xs:string"> <xs:pattern value="Y|N"/> </xs:restriction> </xs:simpleType> <xs:element name="acsReferenceNumber" type="typeReferenceNumber" /> <xs:element name="dsReferenceNumber" type="typeReferenceNumber" /> <xs:element name="dsTransID" type="typeUUID"/> <xs:element name="AuthError"> <xs:complexType> <xs:sequence> <xs:element ref="code" minOccurs="0"/> <xs:element ref="component" minOccurs="0"/> <xs:element ref="description" minOccurs="0"/> <xs:element ref="detail" minOccurs="0"/> <xs:element ref="messageType" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="messageVersion" type="typeMessageVersion"/> <xs:element name="decoupledMaxTime" type="typeDecoupledMaxTime"/> <xs:element name="decoupledReqInd" type="typeDecoupledReqInd"/> <xs:element name="whiteListStatus" type="typeWhiteListStatus"/> <xs:element name="keyOps"> <xs:complexType> <xs:sequence> <xs:element name="keyOp" type="typeKeyOps" maxOccurs="8"/> </xs:sequence> </xs:complexType> </xs:element> <xs:simpleType name="skipAutoBrowserInfoCollect" id="skipAutoBrowserInfoCollect"> <xs:restriction base="xs:string"> <xs:pattern value="Y|N"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeBrowserAcceptHeader" id="typeBrowserAcceptHeader"> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="2048"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeBrowserColorDepth" id="typeBrowserColorDepth"> <xs:restriction base="xs:string"> <xs:pattern value="1|4|8|15|16|24|32|48"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeBrowserIP" id="typeBrowserIP"> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="45"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeBrowserJavaEnabled" id="typeBrowserJavaEnabled"> <xs:restriction base="xs:string"> <xs:pattern value="Y|N"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeBrowserJavascriptEnabled" id="typeBrowserJavascriptEnabled"> <xs:restriction base="xs:string"> <xs:pattern value="Y|N"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeBrowserLanguage" id="typeBrowserLanguage"> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="48"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeBrowserScreenHeight" id="typeBrowserScreenHeight"> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="6"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeBrowserScreenWidth" id="typeBrowserScreenWidth"> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="6"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeBrowserTZ" id="typeBrowserTZ"> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="5"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeBrowserUserAgent" id="typeBrowserUserAgent"> <xs:restriction base="xs:string"> <xs:minLength value="0"/> <xs:maxLength value="2048"/> </xs:restriction> </xs:simpleType> </xs:schema>