membrane / api-gateway

API gateway for REST, OpenAPI, GraphQL and SOAP written in Java.
https://membrane-api.io
Apache License 2.0
463 stars 138 forks source link

wsdl fails to load if it has no carriage returns #181

Closed longsonr closed 9 years ago

longsonr commented 9 years ago

xml documents should not need whitespace/carriage returns. I have a large wsdl file that fails i.e. membrane fails to start. It works (i.e. membrane starts) if the wsdl file is prettified though.

Apologies for the size of the file but small files don't cause a problem. Here's the formatted version:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                  xmlns:sch3="http://www.capita-software-services.com/scp/base"
                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                  xmlns:tns="http://www.capita-software-services.com/scp/simple"
                  targetNamespace="http://www.capita-software-services.com/scp/simple">
    <wsdl:types>
        <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
                   xmlns="http://www.capita-software-services.com/portal-api"
                   xmlns:cpt="http://www.capita-software-services.com/portal-api" elementFormDefault="unqualified"
                   targetNamespace="http://www.capita-software-services.com/portal-api">
            <xs:annotation>
                <xs:documentation>Schema Version: 8.0.0.0</xs:documentation>
                <xs:documentation>Schema Description: Type definitions for
                    use by Secure Bureau Service
                </xs:documentation>
            </xs:annotation>
            <xs:simpleType name="generalShortString">
                <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="35"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="generalString">
                <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="generalIntermediateString">
                <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="100"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="generalMediumString">
                <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="255"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="generalLongString">
                <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="2048"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="generalShortStringEmpty">
                <xs:restriction base="xs:string">
                    <xs:minLength value="0"/>
                    <xs:maxLength value="35"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="generalStringEmpty">
                <xs:restriction base="xs:string">
                    <xs:minLength value="0"/>
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="generalMediumStringEmpty">
                <xs:restriction base="xs:string">
                    <xs:minLength value="0"/>
                    <xs:maxLength value="255"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="generalLongStringEmpty">
                <xs:restriction base="xs:string">
                    <xs:minLength value="0"/>
                    <xs:maxLength value="2048"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="generalAmount">
                <xs:annotation>
                    <xs:documentation>Amount in minor currency
                        units(pence/cents), leading sign
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:int"/>
            </xs:simpleType>
            <xs:simpleType name="generalAmountPositive">
                <xs:annotation>
                    <xs:documentation>Amount in minor currency
                        units(pence/cents)
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:positiveInteger"/>
            </xs:simpleType>
            <xs:simpleType name="generalAmountNonZero">
                <xs:annotation>
                    <xs:documentation>Amount in minor currency
                        units(pence/cents), leading sign, zero not allowed
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:int">
                    <xs:pattern value="[\-+]?[0]*[1-9]\d*"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="generalInteger">
                <xs:restriction base="xs:int"/>
            </xs:simpleType>
            <xs:simpleType name="generalShort">
                <xs:restriction base="xs:short">
                    <xs:minInclusive value="1"/>
                    <xs:maxInclusive value="32767"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="generalDecimal">
                <xs:restriction base="xs:decimal">
                    <xs:fractionDigits value="4"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="generalDecimalPositive">
                <xs:restriction base="generalDecimal">
                    <xs:minExclusive value="0"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="generalDate">
                <xs:annotation>
                    <xs:documentation>Use the xml date/time format eg
                        2003-09-26T15:32:00
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:dateTime"/>
            </xs:simpleType>
            <xs:simpleType name="generalDateMMYY">
                <xs:annotation>
                    <xs:documentation>Date format MMYY</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:pattern value="(([1][0-2])|([0][1-9]))[0-9][0-9]"/>
                    <xs:whiteSpace value="replace"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="generalDateMMYYallow0000">
                <xs:annotation>
                    <xs:documentation>Date format MMYY</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:pattern value="[0][0][0][0]|((([1][0-2])|([0][1-9]))[0-9][0-9])"/>
                    <xs:whiteSpace value="replace"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="generalCode">
                <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="5"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="generalBoolean">
                <xs:restriction base="xs:boolean"/>
            </xs:simpleType>
            <xs:simpleType name="generalSequenceNumber">
                <xs:restriction base="xs:positiveInteger">
                    <xs:totalDigits value="5"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="systemCode">
                <xs:annotation>
                    <xs:documentation>ACP - AXIS Common Payments</xs:documentation>
                    <xs:documentation>ACR - AXIS Counter Receipting</xs:documentation>
                    <xs:documentation>ADD - AXIS Direct Debits</xs:documentation>
                    <xs:documentation>AIM - AXIS Income Management</xs:documentation>
                    <xs:documentation>AIP - AXIS Internet Payments</xs:documentation>
                    <xs:documentation>AOS - AXIS On-line Services</xs:documentation>
                    <xs:documentation>API - AXIS Payments Interface</xs:documentation>
                    <xs:documentation>APN - AXIS PAYe.NET</xs:documentation>
                    <xs:documentation>APP - AXIS Payment Portal</xs:documentation>
                    <xs:documentation>ARP - AXIS Remittance</xs:documentation>
                    <xs:documentation>ASR - AXIS Speech Recognition</xs:documentation>
                    <xs:documentation>ATP - AXIS Telephone Payments</xs:documentation>
                    <xs:documentation>ATT - AXIS Touch Tone</xs:documentation>
                    <xs:documentation>DIR - Direct Authorisations from Third
                        Parties
                    </xs:documentation>
                    <xs:documentation>EXT - EXTERNAL SYSTEM</xs:documentation>
                    <xs:documentation>HPAY - AXIS Health PAYe.NET</xs:documentation>
                    <xs:documentation>MAPN - Managed AXIS PAYe.NET</xs:documentation>
                    <xs:documentation>MHPAY - Managed AXIS Health PAYe.NET</xs:documentation>
                    <xs:documentation>MOTO - AXIS Mail Order Telephone
                        Order
                    </xs:documentation>
                    <xs:documentation>PCR - Perception</xs:documentation>
                    <xs:documentation>SBS - Secure Bureau Service</xs:documentation>
                    <xs:documentation>SCM - AXIS SafeCom</xs:documentation>
                    <xs:documentation>SCP - AXIS Stored Card Portal</xs:documentation>
                    <xs:documentation>SGW - AXIS Smart Gateway</xs:documentation>
                    <xs:documentation>SMS - AXIS Short Message Service</xs:documentation>
                    <xs:documentation>THY - Thyron</xs:documentation>
                    <xs:documentation>TVWAP - AXIS DigiTV</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="ACP"/>
                    <xs:enumeration value="ACR"/>
                    <xs:enumeration value="ADD"/>
                    <xs:enumeration value="AIM"/>
                    <xs:enumeration value="AIP"/>
                    <xs:enumeration value="AOS"/>
                    <xs:enumeration value="API"/>
                    <xs:enumeration value="APN"/>
                    <xs:enumeration value="APP"/>
                    <xs:enumeration value="ARP"/>
                    <xs:enumeration value="ASR"/>
                    <xs:enumeration value="ATP"/>
                    <xs:enumeration value="ATT"/>
                    <xs:enumeration value="DIR"/>
                    <xs:enumeration value="EXT"/>
                    <xs:enumeration value="HPAY"/>
                    <xs:enumeration value="MAPN"/>
                    <xs:enumeration value="MHPAY"/>
                    <xs:enumeration value="MOTO"/>
                    <xs:enumeration value="PCR"/>
                    <xs:enumeration value="SCM"/>
                    <xs:enumeration value="SCP"/>
                    <xs:enumeration value="SGW"/>
                    <xs:enumeration value="SMS"/>
                    <xs:enumeration value="THY"/>
                    <xs:enumeration value="TVWAP"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="systemCodeDirect">
                <xs:annotation>
                    <xs:documentation>DIR - Direct Authorisations from Third
                        Parties
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="DIR"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="siteID">
                <xs:restriction base="xs:unsignedShort">
                    <xs:maxInclusive value="32767"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="uniqueTranID">
                <xs:restriction base="xs:string">
                    <xs:minLength value="12"/>
                    <xs:maxLength value="12"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="isoCode">
                <xs:annotation>
                    <xs:documentation>Three digit ISO code</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:pattern value="[0-9]{3}"/>
                    <xs:whiteSpace value="replace"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="userName">
                <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="25"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="sourceCode">
                <xs:restriction base="generalCode"/>
            </xs:simpleType>
            <xs:simpleType name="languageCode">
                <xs:restriction base="xs:string">
                    <xs:length value="2"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="linkCAN">
                <xs:restriction base="xs:positiveInteger"/>
            </xs:simpleType>
            <xs:simpleType name="san">
                <xs:restriction base="xs:positiveInteger"/>
            </xs:simpleType>
            <xs:simpleType name="recordSource">
                <xs:annotation>
                    <xs:documentation>0 - Holding</xs:documentation>
                    <xs:documentation>1 - History</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="0"/>
                    <xs:enumeration value="1"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="track2Data">
                <xs:annotation>
                    <xs:documentation>Mandatory if card swiped, otherwise
                        should not be present
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="100"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="cardNumber">
                <xs:annotation>
                    <xs:documentation>Mandatory on keyed and chip card
                        transactions, should not be present for swiped
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:pattern value="([0-9]{12,19})"/>
                    <xs:whiteSpace value="replace"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="issueNumber">
                <xs:restriction base="xs:string">
                    <xs:pattern value="[0-9]?[0-9]"/>
                    <xs:whiteSpace value="replace"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="keySwipe">
                <xs:annotation>
                    <xs:documentation>0 - Signed voucher</xs:documentation>
                    <xs:documentation>1 - Mail order/telephone order/CNP</xs:documentation>
                    <xs:documentation>2 - Continuous authority</xs:documentation>
                    <xs:documentation>3 - PIN verified (on-line)</xs:documentation>
                    <xs:documentation>4 - PIN verified (off-line)</xs:documentation>
                    <xs:documentation>5 - Signed voucher (swiped)</xs:documentation>
                    <xs:documentation>6 - Signed voucher (keyed)</xs:documentation>
                    <xs:documentation>7 - Unattended device without PIN</xs:documentation>
                    <xs:documentation>8 - PIN verified transaction
                        (recovered after sale)
                    </xs:documentation>
                    <xs:documentation>9 - Signed voucher (recovered after
                        sale)
                    </xs:documentation>
                    <xs:documentation>G - Secure e-commerce transaction with
                        cardholder certificate
                    </xs:documentation>
                    <xs:documentation>H - Non-authenticated security
                        transaction with SET merchant certificate
                    </xs:documentation>
                    <xs:documentation>J - Non-authenticated security
                        transaction without SET merchant certificate (e.g. SSL)
                    </xs:documentation>
                    <xs:documentation>K - Non-secure transaction</xs:documentation>
                    <xs:documentation>R - Reversal (used in reversal file
                        only)
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="0"/>
                    <xs:enumeration value="1"/>
                    <xs:enumeration value="2"/>
                    <xs:enumeration value="3"/>
                    <xs:enumeration value="4"/>
                    <xs:enumeration value="5"/>
                    <xs:enumeration value="6"/>
                    <xs:enumeration value="7"/>
                    <xs:enumeration value="8"/>
                    <xs:enumeration value="9"/>
                    <xs:enumeration value="G"/>
                    <xs:enumeration value="H"/>
                    <xs:enumeration value="J"/>
                    <xs:enumeration value="K"/>
                    <xs:enumeration value="R"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="cardType">
                <xs:annotation>
                    <xs:documentation>Mandatory on card transactions</xs:documentation>
                    <xs:documentation>D - Debit Card</xs:documentation>
                    <xs:documentation>C - Credit Card</xs:documentation>
                    <xs:documentation>N - No Auth</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:length value="1"/>
                    <xs:enumeration value="D"/>
                    <xs:enumeration value="C"/>
                    <xs:enumeration value="N"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="merchantNumber">
                <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="20"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="cardTranType">
                <xs:annotation>
                    <xs:documentation>Mandatory on card transactions</xs:documentation>
                    <xs:documentation>09 - Sale, keyed (cardholder not
                        present(CNP), mail order/batch)
                    </xs:documentation>
                    <xs:documentation>10 - Sale, swiped or chip (cardholder
                        present)
                    </xs:documentation>
                    <xs:documentation>20 - Sale, keyed (cardholder present /
                        magstripe fallback only)
                    </xs:documentation>
                    <xs:documentation>B2 - Sale, e-commerce, keyed (CNP)</xs:documentation>
                    <xs:documentation>Z1 - Sale, swiped,
                        voice-authorization
                    </xs:documentation>
                    <xs:documentation>Z2 - Sale, keyed,
                        voice-authorization
                    </xs:documentation>
                    <xs:documentation>Z9 - Sale, keyed, voice-authorization
                        (CNP)
                    </xs:documentation>
                    <xs:documentation>47 - Refund, keyed (CNP, mail
                        order/batch)
                    </xs:documentation>
                    <xs:documentation>58 - Refund, swiped or chip
                        (cardholder present)
                    </xs:documentation>
                    <xs:documentation>61 - Refund, keyed (cardholder present
                        / magstripe fallback only)
                    </xs:documentation>
                    <xs:documentation>B4 - Refund, e-commerce, keyed (CNP)</xs:documentation>
                    <xs:documentation>25 - Sale reversal</xs:documentation>
                    <xs:documentation>86 - Refund reversal</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="09"/>
                    <xs:enumeration value="10"/>
                    <xs:enumeration value="20"/>
                    <xs:enumeration value="B2"/>
                    <xs:enumeration value="Z1"/>
                    <xs:enumeration value="Z2"/>
                    <xs:enumeration value="Z9"/>
                    <xs:enumeration value="47"/>
                    <xs:enumeration value="58"/>
                    <xs:enumeration value="61"/>
                    <xs:enumeration value="B4"/>
                    <xs:enumeration value="25"/>
                    <xs:enumeration value="86"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="eCommerceTerminalType">
                <xs:annotation>
                    <xs:documentation>For E-commerce transactions</xs:documentation>
                    <xs:documentation>22 - Chip and Pin transaction</xs:documentation>
                    <xs:documentation>25 - Unattended Chip and Pin
                        transaction, controlled by merchant
                    </xs:documentation>
                    <xs:documentation>30 - Secure transaction with
                        cardholder certificate
                    </xs:documentation>
                    <xs:documentation>31 - Non-authenticated security
                        transaction with SET merchant certificate
                    </xs:documentation>
                    <xs:documentation>32 - Non-authenticated security
                        transaction without SET merchant certificate(eg SSL)
                    </xs:documentation>
                    <xs:documentation>33 - No additional information
                        (considered as unsecured)
                    </xs:documentation>
                    <xs:documentation>35 - Unattended Chip and Pin
                        transaction, controlled by cardholder
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:length value="2"/>
                    <xs:enumeration value="22"/>
                    <xs:enumeration value="25"/>
                    <xs:enumeration value="30"/>
                    <xs:enumeration value="31"/>
                    <xs:enumeration value="32"/>
                    <xs:enumeration value="33"/>
                    <xs:enumeration value="35"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="cardSecurityCode">
                <xs:restriction base="xs:string">
                    <xs:pattern value="[0-9][0-9][0-9]?[0-9]"/>
                    <xs:whiteSpace value="replace"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="houseNumber">
                <xs:restriction base="xs:string">
                    <xs:maxLength value="10"/>
                    <xs:minLength value="1"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="postCode">
                <xs:restriction base="xs:string">
                    <xs:maxLength value="10"/>
                    <xs:minLength value="1"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="securityAttempted">
                <xs:annotation>
                    <xs:documentation>M - MasterCard Secure</xs:documentation>
                    <xs:documentation>V - Verified By Visa</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="M"/>
                    <xs:enumeration value="V"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="securityResult">
                <xs:restriction base="xs:string">
                    <xs:enumeration value="Y"/>
                    <xs:enumeration value="A"/>
                    <xs:enumeration value="U"/>
                    <xs:enumeration value="N"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="eci">
                <xs:restriction base="xs:string">
                    <xs:pattern value="[0-9][0-9]"/>
                    <xs:whiteSpace value="replace"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="surchargeType">
                <xs:annotation>
                    <xs:documentation>F - Fixed Amount</xs:documentation>
                    <xs:documentation>N - None</xs:documentation>
                    <xs:documentation>P - Percentage</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:length value="1"/>
                    <xs:enumeration value="F"/>
                    <xs:enumeration value="N"/>
                    <xs:enumeration value="P"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="cardMnemonic">
                <xs:restriction base="xs:string">
                    <xs:length value="4"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="cardDescription">
                <xs:restriction base="xs:string">
                    <xs:enumeration value="VISA"/>
                    <xs:enumeration value="MASTERCARD"/>
                    <xs:enumeration value="AMERICAN EXPRESS"/>
                    <xs:enumeration value="LASER"/>
                    <xs:enumeration value="DINERS"/>
                    <xs:enumeration value="JCBC"/>
                    <xs:enumeration value="NONE"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="statusCode">
                <xs:annotation>
                    <xs:documentation>0 - Operation completed successfully</xs:documentation>
                    <xs:documentation>Non-zero - Operation failed, more
                        details available in description
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:int"/>
            </xs:simpleType>
            <xs:simpleType name="responseCode">
                <xs:annotation>
                    <xs:documentation>Card Authorisation Response Codes:-</xs:documentation>
                    <xs:documentation>From the underlying application. Some
                        examples:
                    </xs:documentation>
                    <xs:documentation>00 - Transaction Authorized</xs:documentation>
                    <xs:documentation>Non-zero - Transaction Not Authorized,
                        some possible values are given below
                    </xs:documentation>
                    <xs:documentation>02 - Referral B</xs:documentation>
                    <xs:documentation>05 - Declined</xs:documentation>
                    <xs:documentation>30 - Bank validation failed, invalid
                        merchant etc
                    </xs:documentation>
                    <xs:documentation>54 - Expired Card</xs:documentation>
                    <xs:documentation>91 - Comms Fault</xs:documentation>
                    <xs:documentation>92 - Manual Auth</xs:documentation>
                    <xs:documentation>Validate Card Response Codes:-</xs:documentation>
                    <xs:documentation>0 - Request processed successfully</xs:documentation>
                    <xs:documentation>10 - Request failed schema validation
                        exception
                    </xs:documentation>
                    <xs:documentation>20 - Request failed data access
                        exception
                    </xs:documentation>
                    <xs:documentation>30 - Request failed validation
                        exception
                    </xs:documentation>
                    <xs:documentation>90 - Request failed other error</xs:documentation>
                    <xs:documentation>Stored Card Response Codes:-</xs:documentation>
                    <xs:documentation>0 - Request processed successfully</xs:documentation>
                    <xs:documentation>5 - Card not found</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:pattern value="[0-9A-Z][0-9]?"/>
                    <xs:whiteSpace value="replace"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="maskedCardNumber">
                <xs:annotation>
                    <xs:documentation>Card number with all but first six and
                        last four digits masked with asterisks
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:pattern value="[0-9]{6}\*+[0-9]{4}"/>
                    <xs:whiteSpace value="replace"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="responseAVVCVV">
                <xs:restriction base="xs:string">
                    <xs:pattern value="\d{6}"/>
                    <xs:whiteSpace value="replace"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="surchargeRate">
                <xs:annotation>
                    <xs:documentation>Percentage rate on which surcharge is
                        based, not present for fixed rate surcharges
                    </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:decimal"/>
            </xs:simpleType>
            <xs:simpleType name="cardLastFourDigits">
                <xs:restriction base="xs:string">
                    <xs:pattern value="[0-9][0-9][0-9][0-9]"/>
                    <xs:whiteSpace value="replace"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="panEntryMethod">
                <xs:annotation>
                    <xs:documentation>ECOM - E-Commerce (Default)</xs:documentation>
                    <xs:documentation>CNP - Card Not Present</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="ECOM"/>
                    <xs:enumeration value="CNP"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="portalAction">
                <xs:annotation>
                    <xs:documentation>authorise (Default)</xs:documentation>
                    <xs:documentation>storeOnly</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="authorise"/>
                    <xs:enumeration value="storeOnly"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="phone">
                <xs:restriction base="xs:string">
                    <xs:pattern value="|\+[1-9][0-9]{8}[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?"/>
                    <xs:whiteSpace value="replace"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="email">
                <xs:restriction base="xs:string">
                    <xs:pattern value="|[A-Za-z0-9._%+\-]+@[A-Za-z0-9.\-]+\.[A-Za-z]{2,6}"/>
                    <xs:whiteSpace value="replace"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="integrator">
                <xs:restriction base="xs:positiveInteger"/>
            </xs:simpleType>
            <xs:simpleType name="lineId">
                <xs:restriction base="xs:token">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="bacsReference">
                <xs:restriction base="xs:string">
                    <xs:pattern value="[A-Za-z0-9.\-/&amp; ]{1,18}"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="bankSortCode">
                <xs:restriction base="xs:token">
                    <xs:pattern value="[0-9]{6}"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="bankAccountNumber">
                <xs:restriction base="xs:token">
                    <xs:pattern value="[0-9]{8}"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="httpUrl">
                <xs:restriction base="xs:token">
                    <xs:pattern value="https?://.+"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:annotation>
                <xs:documentation>Schema Version: 7.4.2.0</xs:documentation>
                <xs:documentation>Schema Description: Type definitions for
                    use by Common Foundation
                </xs:documentation>
            </xs:annotation>
            <xs:element name="credentials" type="credentials"/>
            <xs:complexType name="credentials">
                <xs:sequence>
                    <xs:element name="subject" type="subject"/>
                    <xs:element name="requestIdentification" type="requestIdentification"/>
                    <xs:element name="signature" type="signature"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="subject">
                <xs:sequence>
                    <xs:element name="subjectType" type="subjectType"/>
                    <xs:element name="identifier" type="xs:int"/>
                    <xs:element minOccurs="0" name="systemCode" nillable="true" type="systemCode"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="requestIdentification">
                <xs:sequence>
                    <xs:element name="uniqueReference" type="xs:string"/>
                    <xs:element name="timeStamp" type="timeStamp"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="signature">
                <xs:sequence>
                    <xs:element name="algorithm" type="algorithm"/>
                    <xs:element name="hmacKeyID" type="xs:int"/>
                    <xs:element name="digest" type="xs:string"/>
                </xs:sequence>
            </xs:complexType>
            <xs:simpleType name="timeStamp">
                <xs:restriction base="xs:string">
                    <xs:pattern
                            value="(20)\d\d(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])([0-1]\d|2[0-3])([0-5]\d)([0-5]\d)"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="algorithm">
                <xs:annotation>
                    <xs:documentation>Original</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="Original"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="subjectType">
                <xs:annotation>
                    <xs:documentation>Capita Site</xs:documentation>
                    <xs:documentation>Integrator</xs:documentation>
                    <xs:documentation>Other Security Entity</xs:documentation>
                    <xs:documentation>Secure Bureau Service Site</xs:documentation>
                    <xs:documentation>Capita Portal</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="CapitaSite"/>
                    <xs:enumeration value="Integrator"/>
                    <xs:enumeration value="OtherSecurityEntity"/>
                    <xs:enumeration value="SecureBureauServiceSite"/>
                    <xs:enumeration value="CapitaPortal"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:element name="scpSimpleInvokeRequest" type="scpSimpleInvokeRequest"/>
            <xs:element name="scpSimpleInvokeResponse" type="scpInvokeResponse"/>
            <xs:element name="scpSimpleQueryRequest" type="scpQueryRequest"/>
            <xs:element name="scpSimpleQueryResponse" type="scpSimpleQueryResponse"/>
            <xs:complexType name="scpSimpleInvokeRequest">
                <xs:complexContent>
                    <xs:extension base="scpInvokeRequest">
                        <xs:sequence>
                            <xs:element minOccurs="0" name="sale" type="simpleSale"/>
                        </xs:sequence>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <xs:complexType name="simpleSale">
                <xs:complexContent>
                    <xs:extension base="saleBase">
                        <xs:sequence>
                            <xs:element minOccurs="0" name="postageAndPacking" type="postageAndPacking"/>
                            <xs:element minOccurs="0" name="surchargeable" type="surchargeable"/>
                            <xs:element minOccurs="0" name="items">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element maxOccurs="unbounded" name="item" type="simpleItem"/>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <xs:complexType name="surchargeable">
                <xs:sequence>
                    <xs:choice>
                        <xs:element name="applyScpConfig">
                            <xs:complexType/>
                        </xs:element>
                        <xs:element name="surcharge" type="surchargeItemDetails"/>
                    </xs:choice>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="simpleItem">
                <xs:complexContent>
                    <xs:extension base="itemBase">
                        <xs:sequence>
                            <xs:element minOccurs="0" name="surchargeable" type="xs:boolean"/>
                        </xs:sequence>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <xs:complexType name="scpSimpleQueryResponse">
                <xs:complexContent>
                    <xs:extension base="scpQueryResponse">
                        <xs:sequence>
                            <xs:element minOccurs="0" name="paymentResult" type="simplePaymentResult"/>
                        </xs:sequence>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <xs:complexType name="simplePaymentResult">
                <xs:complexContent>
                    <xs:extension base="paymentResultBase">
                        <xs:choice minOccurs="0">
                            <xs:element name="paymentDetails" type="simplePayment"/>
                            <xs:element name="errorDetails" type="errorDetails"/>
                        </xs:choice>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <xs:complexType name="simplePayment">
                <xs:complexContent>
                    <xs:extension base="paymentBase">
                        <xs:sequence>
                            <xs:element name="saleSummary" type="simpleSaleSummary"/>
                            <xs:element minOccurs="0" name="surchargeDetails" type="surchargeDetails"/>
                        </xs:sequence>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <xs:complexType name="simpleSaleSummary">
                <xs:sequence>
                    <xs:element minOccurs="0" name="items">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="itemSummary" type="simpleItemSummary"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="simpleItemSummary">
                <xs:complexContent>
                    <xs:extension base="itemSummaryBase"/>
                </xs:complexContent>
            </xs:complexType>
            <xs:element name="scpVersionRequest" type="scpVersionRequest"/>
            <xs:element name="scpVersionResponse" type="scpVersionResponse"/>
            <xs:complexType name="requestWithCredentials">
                <xs:sequence>
                    <xs:element ref="credentials"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="scpVersionRequest">
                <xs:complexContent>
                    <xs:extension base="requestWithCredentials"/>
                </xs:complexContent>
            </xs:complexType>
            <xs:complexType name="scpVersionResponse">
                <xs:sequence>
                    <xs:element name="version" type="xs:string"/>
                    <xs:element name="schemaVersion" type="xs:string"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="scpInvokeRequest">
                <xs:complexContent>
                    <xs:extension base="requestWithCredentials">
                        <xs:sequence>
                            <xs:element name="requestType" type="requestType"/>
                            <xs:element name="requestId" type="xs:token"/>
                            <xs:element name="routing" type="routing"/>
                            <xs:element name="panEntryMethod" type="cpt:panEntryMethod"/>
                            <xs:element minOccurs="0" name="additionalInstructions" type="additionalInstructions"/>
                            <xs:element minOccurs="0" name="billing" type="billingDetails"/>
                        </xs:sequence>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <xs:simpleType name="requestType">
                <xs:restriction base="xs:token">
                    <xs:enumeration value="payOnly"/>
                    <xs:enumeration value="authoriseOnly"/>
                    <xs:enumeration value="storeOnly"/>
                    <xs:enumeration value="payAndStore"/>
                    <xs:enumeration value="payAndAutoStore"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:complexType name="routing">
                <xs:sequence>
                    <xs:element name="returnUrl" type="returnUrl"/>
                    <xs:element minOccurs="0" name="backUrl" type="cpt:httpUrl"/>
                    <xs:element minOccurs="0" name="errorUrl" type="cpt:httpUrl"/>
                    <xs:element name="siteId" type="xs:int"/>
                    <xs:element name="scpId" type="xs:int"/>
                </xs:sequence>
            </xs:complexType>
            <xs:simpleType name="returnUrl">
                <xs:union memberTypes="cpt:httpUrl scpSpecialUrl"/>
            </xs:simpleType>
            <xs:simpleType name="scpSpecialUrl">
                <xs:restriction base="xs:token">
                    <xs:enumeration value="scp:close"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:complexType name="additionalInstructions">
                <xs:all>
                    <xs:element minOccurs="0" name="merchantCode" type="cpt:generalCode"/>
                    <xs:element minOccurs="0" name="countryCode" type="cpt:isoCode"/>
                    <xs:element minOccurs="0" name="currencyCode" type="cpt:isoCode"/>
                    <xs:element minOccurs="0" name="acceptedCards" type="acceptedCards"/>
                    <xs:element minOccurs="0" name="language" type="cpt:languageCode"/>
                    <xs:element minOccurs="0" name="stageIndicator" type="stageIndicator"/>
                    <xs:element minOccurs="0" name="responseInterface" type="responseInterface"/>
                    <xs:element minOccurs="0" name="cardholderID" type="cpt:generalString"/>
                    <xs:element minOccurs="0" name="integrator" type="xs:positiveInteger"/>
                    <xs:element minOccurs="0" name="styleCode" type="cpt:generalCode"/>
                    <xs:element minOccurs="0" name="frameworkCode" type="cpt:generalCode"/>
                    <xs:element minOccurs="0" name="systemCode" type="cpt:generalCode"/>
                    <xs:element minOccurs="0" name="walletRequest">
                        <xs:complexType/>
                    </xs:element>
                </xs:all>
            </xs:complexType>
            <xs:complexType name="acceptedCards">
                <xs:sequence>
                    <xs:element minOccurs="0" name="includes" type="acceptedCardList"/>
                    <xs:element minOccurs="0" name="excludes" type="acceptedCardList"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="acceptedCardList">
                <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="card" type="acceptedCardType"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="stageIndicator">
                <xs:sequence>
                    <xs:element name="firstPortalStage" type="stageNumber"/>
                    <xs:element name="totalStages" type="stageNumber"/>
                </xs:sequence>
            </xs:complexType>
            <xs:simpleType name="stageNumber">
                <xs:restriction base="xs:byte">
                    <xs:minInclusive value="1"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="responseInterface">
                <xs:restriction base="xs:string">
                    <xs:enumeration value="scpWebService"/>
                    <xs:enumeration value="commonPaymentsFormPost"/>
                    <xs:enumeration value="xmlFormPost"/>
                    <xs:enumeration value="htmlFormPost"/>
                    <xs:enumeration value="planningFormPost"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:complexType name="billingDetails">
                <xs:sequence>
                    <xs:element minOccurs="0" name="card" type="card"/>
                    <xs:element minOccurs="0" name="cardHolderDetails" type="cardHolderDetails"/>
                </xs:sequence>
                <xs:attribute default="true" name="editable" type="xs:boolean" use="optional"/>
            </xs:complexType>
            <xs:complexType name="card">
                <xs:sequence>
                    <xs:choice>
                        <xs:element name="cardDetails" type="cardDetails"/>
                        <xs:element name="storedCardKey" type="storedCardKey"/>
                    </xs:choice>
                    <xs:element minOccurs="0" name="paymentGroupCode" type="cpt:generalCode"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="cardDetails">
                <xs:sequence>
                    <xs:element name="cardNumber" type="cpt:cardNumber"/>
                    <xs:element name="expiryDate" type="cpt:generalDateMMYY"/>
                    <xs:element minOccurs="0" name="startDate" type="cpt:generalDateMMYY"/>
                    <xs:element minOccurs="0" name="issueNumber" type="cpt:issueNumber"/>
                    <xs:element minOccurs="0" name="cardSecurityCode" type="cpt:cardSecurityCode"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="storedCardKey">
                <xs:sequence>
                    <xs:element name="token" type="xs:string"/>
                    <xs:element name="lastFourDigits" type="cpt:cardLastFourDigits"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="cardHolderDetails">
                <xs:sequence>
                    <xs:element minOccurs="0" name="cardHolderName" type="cpt:generalString"/>
                    <xs:element minOccurs="0" name="address" type="address"/>
                    <xs:element minOccurs="0" name="contact" type="contact"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="address">
                <xs:sequence>
                    <xs:element minOccurs="0" name="address1" type="cpt:generalString"/>
                    <xs:element minOccurs="0" name="address2" type="cpt:generalString"/>
                    <xs:element minOccurs="0" name="address3" type="cpt:generalString"/>
                    <xs:element minOccurs="0" name="address4" type="cpt:generalString"/>
                    <xs:element minOccurs="0" name="county" type="cpt:generalString"/>
                    <xs:element minOccurs="0" name="country" type="cpt:generalString"/>
                    <xs:element minOccurs="0" name="postcode" type="cpt:postCode"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="contact">
                <xs:sequence>
                    <xs:element minOccurs="0" name="telephone" type="cpt:phone"/>
                    <xs:element minOccurs="0" name="mobile" type="cpt:phone"/>
                    <xs:element minOccurs="0" name="email" type="cpt:email"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="saleBase">
                <xs:sequence>
                    <xs:element name="saleSummary" type="summaryData"/>
                    <xs:element minOccurs="0" name="deliveryDetails" type="contactDetails"/>
                    <xs:element minOccurs="0" name="lgSaleDetails" type="lgSaleDetails"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="summaryData">
                <xs:sequence>
                    <xs:element name="description">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:minLength value="1"/>
                                <xs:maxLength value="100"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="amountInMinorUnits" type="cpt:generalAmount"/>
                    <xs:element minOccurs="0" name="reference" type="cpt:generalString"/>
                    <xs:element minOccurs="0" name="displayableReference" type="cpt:generalString"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="contactDetails">
                <xs:sequence>
                    <xs:element minOccurs="0" name="name" type="threePartName"/>
                    <xs:element minOccurs="0" name="address" type="address"/>
                    <xs:element minOccurs="0" name="contact" type="contact"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="threePartName">
                <xs:sequence>
                    <xs:element name="surname" type="cpt:generalString"/>
                    <xs:element minOccurs="0" name="title" type="cpt:generalString"/>
                    <xs:element minOccurs="0" name="forename" type="cpt:generalString"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="lgSaleDetails">
                <xs:all>
                    <xs:element minOccurs="0" name="areaCode" type="cpt:generalCode"/>
                    <xs:element minOccurs="0" name="locationCode" type="cpt:generalCode"/>
                    <xs:element minOccurs="0" name="sourceCode" type="cpt:generalCode"/>
                    <xs:element minOccurs="0" name="userName" type="cpt:userName"/>
                    <xs:element minOccurs="0" name="userCode" type="cpt:generalCode"/>
                </xs:all>
            </xs:complexType>
            <xs:complexType name="postageAndPacking">
                <xs:sequence>
                    <xs:element name="pnpSummary" type="summaryData"/>
                    <xs:element minOccurs="0" name="tax" type="taxItem"/>
                    <xs:element minOccurs="0" name="lgPnpDetails" type="lgPnpDetails"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="taxItem">
                <xs:sequence>
                    <xs:element minOccurs="0" name="vat" type="vatItem"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="vatItem">
                <xs:complexContent>
                    <xs:extension base="vatBase">
                        <xs:sequence>
                            <xs:element name="vatAmountInMinorUnits" type="cpt:generalAmount"/>
                        </xs:sequence>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <xs:complexType name="vatBase">
                <xs:sequence>
                    <xs:element minOccurs="0" name="vatCode" type="cpt:generalCode"/>
                    <xs:element name="vatRate" type="cpt:generalDecimal"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="lgPnpDetails">
                <xs:all>
                    <xs:element minOccurs="0" name="fundCode" type="cpt:generalCode"/>
                    <xs:element minOccurs="0" name="pnpCode" type="cpt:generalCode"/>
                    <xs:element minOccurs="0" name="pnpOptionCode" type="cpt:generalCode"/>
                    <xs:element minOccurs="0" name="pnpOptionDescription" type="cpt:generalString"/>
                </xs:all>
            </xs:complexType>
            <xs:complexType name="surchargeItemDetails">
                <xs:sequence>
                    <xs:element minOccurs="0" name="fundCode" type="cpt:generalCode"/>
                    <xs:element minOccurs="0" name="reference" type="cpt:generalString"/>
                    <xs:element name="surchargeInfo" type="surchargeInfo"/>
                    <xs:element minOccurs="0" name="tax" type="taxSurcharge"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="surchargeInfo">
                <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="cardSurchargeRate" type="cardSurchargeRate"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="cardSurchargeRate">
                <xs:sequence>
                    <xs:element minOccurs="0" name="surchargeCardType" type="acceptedCardType"/>
                    <xs:element name="surchargeBasis" type="surchargeBasis"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="acceptedCardType">
                <xs:sequence>
                    <xs:element minOccurs="0" name="cardDescription" type="cpt:cardDescription"/>
                    <xs:element minOccurs="0" name="cardType" type="cardType"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="surchargeBasis">
                <xs:annotation>
                    <xs:documentation>At least one of surchargeFixed and/or
                        surchargeRate
                        is required
                    </xs:documentation>
                </xs:annotation>
                <xs:all>
                    <xs:element minOccurs="0" name="surchargeFixed" type="cpt:generalAmountPositive"/>
                    <xs:element minOccurs="0" name="surchargeRate" type="cpt:generalDecimalPositive"/>
                </xs:all>
            </xs:complexType>
            <xs:complexType name="taxSurcharge">
                <xs:sequence>
                    <xs:element minOccurs="0" name="vat" type="vatSurcharge"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="vatSurcharge">
                <xs:complexContent>
                    <xs:extension base="vatBase"/>
                </xs:complexContent>
            </xs:complexType>
            <xs:complexType name="itemBase">
                <xs:sequence>
                    <xs:element name="itemSummary" type="summaryData"/>
                    <xs:element minOccurs="0" name="tax" type="taxItem"/>
                    <xs:element minOccurs="0" name="quantity" type="cpt:generalShort"/>
                    <xs:element minOccurs="0" name="notificationEmails" type="notificationEmails"/>
                    <xs:element minOccurs="0" name="lgItemDetails" type="lgItemDetails"/>
                    <xs:element minOccurs="0" name="customerInfo" type="customerInfo"/>
                    <xs:element name="lineId" type="cpt:lineId"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="notificationEmails">
                <xs:sequence>
                    <xs:element maxOccurs="5" name="email" type="cpt:email"/>
                    <xs:element minOccurs="0" name="additionalEmailMessage" type="cpt:generalLongString"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="lgItemDetails">
                <xs:all>
                    <xs:element minOccurs="0" name="fundCode" type="cpt:generalCode"/>
                    <xs:element minOccurs="0" name="isFundItem" type="xs:boolean"/>
                    <xs:element minOccurs="0" name="additionalReference" type="cpt:generalString"/>
                    <xs:element minOccurs="0" name="narrative" type="cpt:generalString"/>
                    <xs:element minOccurs="0" name="accountName" type="threePartName"/>
                    <xs:element minOccurs="0" name="accountAddress" type="address"/>
                    <xs:element minOccurs="0" name="contact" type="contact"/>
                </xs:all>
            </xs:complexType>
            <xs:complexType name="customerInfo">
                <xs:sequence>
                    <xs:element minOccurs="0" name="customerString1" type="cpt:generalString"/>
                    <xs:element minOccurs="0" name="customerString2" type="cpt:generalString"/>
                    <xs:element minOccurs="0" name="customerString3" type="cpt:generalString"/>
                    <xs:element minOccurs="0" name="customerString4" type="cpt:generalString"/>
                    <xs:element minOccurs="0" name="customerString5" type="cpt:generalString"/>
                    <xs:element minOccurs="0" name="customerNumber1" type="xs:int"/>
                    <xs:element minOccurs="0" name="customerNumber2" type="xs:int"/>
                    <xs:element minOccurs="0" name="customerNumber3" type="xs:int"/>
                    <xs:element minOccurs="0" name="customerNumber4" type="xs:int"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="bankDetails">
                <xs:complexContent>
                    <xs:extension base="bacsBankAccount">
                        <xs:sequence>
                            <xs:element minOccurs="0" name="bacsReference" type="cpt:bacsReference"/>
                        </xs:sequence>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <xs:complexType name="bacsBankAccount">
                <xs:sequence>
                    <xs:element name="sortCode" type="cpt:bankSortCode"/>
                    <xs:element name="bacsAccountNumber" type="cpt:bankAccountNumber"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="scpInvokeResponse">
                <xs:complexContent>
                    <xs:extension base="scpResponse">
                        <xs:sequence>
                            <xs:element name="invokeResult">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="status" type="status"/>
                                        <xs:choice>
                                            <xs:element name="redirectUrl" type="xs:token"/>
                                            <xs:element name="errorDetails" type="errorDetails"/>
                                        </xs:choice>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <xs:complexType name="scpResponse">
                <xs:sequence>
                    <xs:element minOccurs="0" name="requestId" type="xs:token"/>
                    <xs:element name="scpReference" type="xs:string"/>
                    <xs:element name="transactionState" type="transactionState"/>
                </xs:sequence>
            </xs:complexType>
            <xs:simpleType name="transactionState">
                <xs:restriction base="xs:string">
                    <xs:enumeration value="IN_PROGRESS"/>
                    <xs:enumeration value="COMPLETE"/>
                    <xs:enumeration value="INVALID_REFERENCE"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:simpleType name="status">
                <xs:restriction base="xs:string">
                    <xs:enumeration value="SUCCESS"/>
                    <xs:enumeration value="INVALID_REQUEST"/>
                    <xs:enumeration value="CARD_DETAILS_REJECTED"/>
                    <xs:enumeration value="CANCELLED"/>
                    <xs:enumeration value="LOGGED_OUT"/>
                    <xs:enumeration value="NOT_ATTEMPTED"/>
                    <xs:enumeration value="ERROR"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:complexType name="errorDetails">
                <xs:sequence>
                    <xs:element minOccurs="0" name="errorId" type="xs:string"/>
                    <xs:element minOccurs="0" name="errorMessage" type="xs:string"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="scpQueryRequest">
                <xs:complexContent>
                    <xs:extension base="requestWithCredentials">
                        <xs:sequence>
                            <xs:element name="siteId" type="xs:int"/>
                            <xs:element name="scpReference" type="xs:string"/>
                        </xs:sequence>
                        <xs:attribute default="false" name="acceptNonCardResponseData" type="xs:boolean"
                                      use="optional"/>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <xs:complexType name="scpQueryResponse">
                <xs:complexContent>
                    <xs:extension base="scpResponse">
                        <xs:sequence>
                            <xs:element minOccurs="0" name="storeCardResult" type="storeCardResult"/>
                            <xs:element minOccurs="0" name="emailResult" type="emailResult"/>
                        </xs:sequence>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <xs:complexType name="storeCardResult">
                <xs:sequence>
                    <xs:element name="status" type="status"/>
                    <xs:choice minOccurs="0">
                        <xs:element name="storedCardDetails" type="storedCardDetails"/>
                        <xs:element name="errorDetails" type="errorDetails"/>
                    </xs:choice>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="storedCardDetails">
                <xs:sequence>
                    <xs:element name="storedCardKey" type="storedCardKey"/>
                    <xs:element name="cardDescription" type="cpt:cardDescription"/>
                    <xs:element name="cardType" type="cardType"/>
                    <xs:element minOccurs="0" name="expiryDate" type="cpt:generalDateMMYY"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="emailResult">
                <xs:sequence>
                    <xs:element name="status" type="status"/>
                    <xs:element name="errorDetails" type="errorDetails"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="paymentResultBase">
                <xs:sequence>
                    <xs:element name="status" type="status"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="paymentBase">
                <xs:sequence>
                    <xs:element name="paymentHeader" type="paymentHeader"/>
                    <xs:choice>
                        <xs:element name="authDetails" type="authDetails"/>
                        <xs:element name="nonCardPayment" type="nonCardPayment"/>
                    </xs:choice>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="paymentHeader">
                <xs:sequence>
                    <xs:element name="transactionDate" type="cpt:generalDate"/>
                    <xs:element name="machineCode" type="cpt:generalCode"/>
                    <xs:element name="uniqueTranId">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:length value="12"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="authDetails">
                <xs:sequence>
                    <xs:element name="authCode" type="cpt:generalString"/>
                    <xs:element name="amountInMinorUnits" type="cpt:generalAmount"/>
                    <xs:element name="maskedCardNumber" type="cpt:maskedCardNumber"/>
                    <xs:element name="cardDescription" type="cpt:cardDescription"/>
                    <xs:element name="cardType" type="cardType"/>
                    <xs:element name="merchantNumber" type="cpt:generalString"/>
                    <xs:element minOccurs="0" name="expiryDate" type="cpt:generalDateMMYY"/>
                    <xs:element minOccurs="0" name="continuousAuditNumber" type="cpt:generalSequenceNumber"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="nonCardPayment">
                <xs:sequence>
                    <xs:element name="amountInMinorUnits" type="cpt:generalAmount"/>
                    <xs:element minOccurs="0" name="continuousAuditNumber" type="cpt:generalSequenceNumber"/>
                    <xs:element name="paymentType" type="cpt:generalString"/>
                    <xs:element name="paymentProviderReference" type="cpt:generalString"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="itemSummaryBase">
                <xs:sequence>
                    <xs:element name="lineId" type="cpt:lineId"/>
                    <xs:element name="continuousAuditNumber" type="cpt:generalSequenceNumber"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="surchargeDetails">
                <xs:sequence>
                    <xs:element name="fundCode" type="cpt:generalCode"/>
                    <xs:element name="reference" type="cpt:generalString"/>
                    <xs:element name="amountInMinorUnits" type="cpt:generalAmount"/>
                    <xs:element name="surchargeBasis" type="surchargeBasis"/>
                    <xs:element minOccurs="0" name="continuousAuditNumber" type="cpt:generalSequenceNumber"/>
                    <xs:element name="vatAmountInMinorUnits" type="cpt:generalAmount"/>
                </xs:sequence>
            </xs:complexType>
        </xs:schema>
    </wsdl:types>
    <wsdl:message name="scpSimpleQueryRequest">
        <wsdl:part element="tns:scpSimpleQueryRequest" name="scpSimpleQueryRequest"/>
    </wsdl:message>
    <wsdl:message name="scpSimpleInvokeRequest">
        <wsdl:part element="tns:scpSimpleInvokeRequest" name="scpSimpleInvokeRequest"/>
    </wsdl:message>
    <wsdl:message name="scpVersionResponse">
        <wsdl:part element="sch3:scpVersionResponse" name="scpVersionResponse"/>
    </wsdl:message>
    <wsdl:message name="scpVersionRequest">
        <wsdl:part element="sch3:scpVersionRequest" name="scpVersionRequest"/>
    </wsdl:message>
    <wsdl:message name="scpSimpleQueryResponse">
        <wsdl:part element="tns:scpSimpleQueryResponse" name="scpSimpleQueryResponse"/>
    </wsdl:message>
    <wsdl:message name="scpSimpleInvokeResponse">
        <wsdl:part element="tns:scpSimpleInvokeResponse" name="scpSimpleInvokeResponse"/>
    </wsdl:message>
    <wsdl:portType name="scp">
        <wsdl:operation name="scpSimpleQuery">
            <wsdl:input message="tns:scpSimpleQueryRequest" name="scpSimpleQueryRequest"/>
            <wsdl:output message="tns:scpSimpleQueryResponse" name="scpSimpleQueryResponse"/>
        </wsdl:operation>
        <wsdl:operation name="scpSimpleInvoke">
            <wsdl:input message="tns:scpSimpleInvokeRequest" name="scpSimpleInvokeRequest"/>
            <wsdl:output message="tns:scpSimpleInvokeResponse" name="scpSimpleInvokeResponse"/>
        </wsdl:operation>
        <wsdl:operation name="scpVersion">
            <wsdl:input message="tns:scpVersionRequest" name="scpVersionRequest"/>
            <wsdl:output message="tns:scpVersionResponse" name="scpVersionResponse"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="scpSoap11" type="tns:scp">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="scpSimpleQuery">
            <soap:operation soapAction=""/>
            <wsdl:input name="scpSimpleQueryRequest">
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output name="scpSimpleQueryResponse">
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="scpSimpleInvoke">
            <soap:operation soapAction=""/>
            <wsdl:input name="scpSimpleInvokeRequest">
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output name="scpSimpleInvokeResponse">
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="scpVersion">
            <soap:operation soapAction=""/>
            <wsdl:input name="scpVersionRequest">
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output name="scpVersionResponse">
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="scpService">
        <wsdl:port binding="tns:scpSoap11" name="scpSoap11">
            <soap:address location="https://sbsctest.e-paycapita.com:443/scp/scpws"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

And the same file unformatted:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:sch3="http://www.capita-software-services.com/scp/base" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.capita-software-services.com/scp/simple" targetNamespace="http://www.capita-software-services.com/scp/simple"><wsdl:types><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.capita-software-services.com/portal-api" xmlns:cpt="http://www.capita-software-services.com/portal-api" elementFormDefault="unqualified" targetNamespace="http://www.capita-software-services.com/portal-api"><xs:annotation><xs:documentation>Schema Version: 8.0.0.0</xs:documentation><xs:documentation>Schema Description: Type definitions for
                use by Secure Bureau Service</xs:documentation></xs:annotation><xs:simpleType name="generalShortString"><xs:restriction base="xs:string"><xs:minLength value="1" /><xs:maxLength value="35" /></xs:restriction></xs:simpleType><xs:simpleType name="generalString"><xs:restriction base="xs:string"><xs:minLength value="1" /><xs:maxLength value="50" /></xs:restriction></xs:simpleType><xs:simpleType name="generalIntermediateString"><xs:restriction base="xs:string"><xs:minLength value="1" /><xs:maxLength value="100" /></xs:restriction></xs:simpleType><xs:simpleType name="generalMediumString"><xs:restriction base="xs:string"><xs:minLength value="1" /><xs:maxLength value="255" /></xs:restriction></xs:simpleType><xs:simpleType name="generalLongString"><xs:restriction base="xs:string"><xs:minLength value="1" /><xs:maxLength value="2048" /></xs:restriction></xs:simpleType><xs:simpleType name="generalShortStringEmpty"><xs:restriction base="xs:string"><xs:minLength value="0" /><xs:maxLength value="35" /></xs:restriction></xs:simpleType><xs:simpleType name="generalStringEmpty"><xs:restriction base="xs:string"><xs:minLength value="0" /><xs:maxLength value="50" /></xs:restriction></xs:simpleType><xs:simpleType name="generalMediumStringEmpty"><xs:restriction base="xs:string"><xs:minLength value="0" /><xs:maxLength value="255" /></xs:restriction></xs:simpleType><xs:simpleType name="generalLongStringEmpty"><xs:restriction base="xs:string"><xs:minLength value="0" /><xs:maxLength value="2048" /></xs:restriction></xs:simpleType><xs:simpleType name="generalAmount"><xs:annotation><xs:documentation>Amount in minor currency
                    units(pence/cents), leading sign</xs:documentation></xs:annotation><xs:restriction base="xs:int" /></xs:simpleType><xs:simpleType name="generalAmountPositive"><xs:annotation><xs:documentation>Amount in minor currency
                    units(pence/cents)</xs:documentation></xs:annotation><xs:restriction base="xs:positiveInteger" /></xs:simpleType><xs:simpleType name="generalAmountNonZero"><xs:annotation><xs:documentation>Amount in minor currency
                    units(pence/cents), leading sign, zero not allowed</xs:documentation></xs:annotation><xs:restriction base="xs:int"><xs:pattern value="[\-+]?[0]*[1-9]\d*" /></xs:restriction></xs:simpleType><xs:simpleType name="generalInteger"><xs:restriction base="xs:int" /></xs:simpleType><xs:simpleType name="generalShort"><xs:restriction base="xs:short"><xs:minInclusive value="1" /><xs:maxInclusive value="32767" /></xs:restriction></xs:simpleType><xs:simpleType name="generalDecimal"><xs:restriction base="xs:decimal"><xs:fractionDigits value="4" /></xs:restriction></xs:simpleType><xs:simpleType name="generalDecimalPositive"><xs:restriction base="generalDecimal"><xs:minExclusive value="0" /></xs:restriction></xs:simpleType><xs:simpleType name="generalDate"><xs:annotation><xs:documentation>Use the xml date/time format eg
                    2003-09-26T15:32:00</xs:documentation></xs:annotation><xs:restriction base="xs:dateTime" /></xs:simpleType><xs:simpleType name="generalDateMMYY"><xs:annotation><xs:documentation>Date format MMYY</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:pattern value="(([1][0-2])|([0][1-9]))[0-9][0-9]" /><xs:whiteSpace value="replace" /></xs:restriction></xs:simpleType><xs:simpleType name="generalDateMMYYallow0000"><xs:annotation><xs:documentation>Date format MMYY</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:pattern value="[0][0][0][0]|((([1][0-2])|([0][1-9]))[0-9][0-9])" /><xs:whiteSpace value="replace" /></xs:restriction></xs:simpleType><xs:simpleType name="generalCode"><xs:restriction base="xs:string"><xs:minLength value="1" /><xs:maxLength value="5" /></xs:restriction></xs:simpleType><xs:simpleType name="generalBoolean"><xs:restriction base="xs:boolean" /></xs:simpleType><xs:simpleType name="generalSequenceNumber"><xs:restriction base="xs:positiveInteger"><xs:totalDigits value="5" /></xs:restriction></xs:simpleType><xs:simpleType name="systemCode"><xs:annotation><xs:documentation>ACP - AXIS Common Payments</xs:documentation><xs:documentation>ACR - AXIS Counter Receipting</xs:documentation><xs:documentation>ADD - AXIS Direct Debits</xs:documentation><xs:documentation>AIM - AXIS Income Management</xs:documentation><xs:documentation>AIP - AXIS Internet Payments</xs:documentation><xs:documentation>AOS - AXIS On-line Services</xs:documentation><xs:documentation>API - AXIS Payments Interface</xs:documentation><xs:documentation>APN - AXIS PAYe.NET</xs:documentation><xs:documentation>APP - AXIS Payment Portal</xs:documentation><xs:documentation>ARP - AXIS Remittance</xs:documentation><xs:documentation>ASR - AXIS Speech Recognition</xs:documentation><xs:documentation>ATP - AXIS Telephone Payments</xs:documentation><xs:documentation>ATT - AXIS Touch Tone</xs:documentation><xs:documentation>DIR - Direct Authorisations from Third
                    Parties</xs:documentation><xs:documentation>EXT - EXTERNAL SYSTEM</xs:documentation><xs:documentation>HPAY - AXIS Health PAYe.NET</xs:documentation><xs:documentation>MAPN - Managed AXIS PAYe.NET</xs:documentation><xs:documentation>MHPAY - Managed AXIS Health PAYe.NET</xs:documentation><xs:documentation>MOTO - AXIS Mail Order Telephone
                    Order</xs:documentation><xs:documentation>PCR - Perception</xs:documentation><xs:documentation>SBS - Secure Bureau Service</xs:documentation><xs:documentation>SCM - AXIS SafeCom</xs:documentation><xs:documentation>SCP - AXIS Stored Card Portal</xs:documentation><xs:documentation>SGW - AXIS Smart Gateway</xs:documentation><xs:documentation>SMS - AXIS Short Message Service</xs:documentation><xs:documentation>THY - Thyron</xs:documentation><xs:documentation>TVWAP - AXIS DigiTV</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:enumeration value="ACP" /><xs:enumeration value="ACR" /><xs:enumeration value="ADD" /><xs:enumeration value="AIM" /><xs:enumeration value="AIP" /><xs:enumeration value="AOS" /><xs:enumeration value="API" /><xs:enumeration value="APN" /><xs:enumeration value="APP" /><xs:enumeration value="ARP" /><xs:enumeration value="ASR" /><xs:enumeration value="ATP" /><xs:enumeration value="ATT" /><xs:enumeration value="DIR" /><xs:enumeration value="EXT" /><xs:enumeration value="HPAY" /><xs:enumeration value="MAPN" /><xs:enumeration value="MHPAY" /><xs:enumeration value="MOTO" /><xs:enumeration value="PCR" /><xs:enumeration value="SCM" /><xs:enumeration value="SCP" /><xs:enumeration value="SGW" /><xs:enumeration value="SMS" /><xs:enumeration value="THY" /><xs:enumeration value="TVWAP" /></xs:restriction></xs:simpleType><xs:simpleType name="systemCodeDirect"><xs:annotation><xs:documentation>DIR - Direct Authorisations from Third
                    Parties</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:enumeration value="DIR" /></xs:restriction></xs:simpleType><xs:simpleType name="siteID"><xs:restriction base="xs:unsignedShort"><xs:maxInclusive value="32767" /></xs:restriction></xs:simpleType><xs:simpleType name="uniqueTranID"><xs:restriction base="xs:string"><xs:minLength value="12" /><xs:maxLength value="12" /></xs:restriction></xs:simpleType><xs:simpleType name="isoCode"><xs:annotation><xs:documentation>Three digit ISO code</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:pattern value="[0-9]{3}" /><xs:whiteSpace value="replace" /></xs:restriction></xs:simpleType><xs:simpleType name="userName"><xs:restriction base="xs:string"><xs:minLength value="1" /><xs:maxLength value="25" /></xs:restriction></xs:simpleType><xs:simpleType name="sourceCode"><xs:restriction base="generalCode" /></xs:simpleType><xs:simpleType name="languageCode"><xs:restriction base="xs:string"><xs:length value="2" /></xs:restriction></xs:simpleType><xs:simpleType name="linkCAN"><xs:restriction base="xs:positiveInteger" /></xs:simpleType><xs:simpleType name="san"><xs:restriction base="xs:positiveInteger" /></xs:simpleType><xs:simpleType name="recordSource"><xs:annotation><xs:documentation>0 - Holding</xs:documentation><xs:documentation>1 - History</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:enumeration value="0" /><xs:enumeration value="1" /></xs:restriction></xs:simpleType><xs:simpleType name="track2Data"><xs:annotation><xs:documentation>Mandatory if card swiped, otherwise
                    should not be present</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:maxLength value="100" /></xs:restriction></xs:simpleType><xs:simpleType name="cardNumber"><xs:annotation><xs:documentation>Mandatory on keyed and chip card
                    transactions, should not be present for swiped</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:pattern value="([0-9]{12,19})" /><xs:whiteSpace value="replace" /></xs:restriction></xs:simpleType><xs:simpleType name="issueNumber"><xs:restriction base="xs:string"><xs:pattern value="[0-9]?[0-9]" /><xs:whiteSpace value="replace" /></xs:restriction></xs:simpleType><xs:simpleType name="keySwipe"><xs:annotation><xs:documentation>0 - Signed voucher</xs:documentation><xs:documentation>1 - Mail order/telephone order/CNP</xs:documentation><xs:documentation>2 - Continuous authority</xs:documentation><xs:documentation>3 - PIN verified (on-line)</xs:documentation><xs:documentation>4 - PIN verified (off-line)</xs:documentation><xs:documentation>5 - Signed voucher (swiped)</xs:documentation><xs:documentation>6 - Signed voucher (keyed)</xs:documentation><xs:documentation>7 - Unattended device without PIN</xs:documentation><xs:documentation>8 - PIN verified transaction
                    (recovered after sale)</xs:documentation><xs:documentation>9 - Signed voucher (recovered after
                    sale)</xs:documentation><xs:documentation>G - Secure e-commerce transaction with
                    cardholder certificate</xs:documentation><xs:documentation>H - Non-authenticated security
                    transaction with SET merchant certificate</xs:documentation><xs:documentation>J - Non-authenticated security
                    transaction without SET merchant certificate (e.g. SSL)</xs:documentation><xs:documentation>K - Non-secure transaction</xs:documentation><xs:documentation>R - Reversal (used in reversal file
                    only)</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:enumeration value="0" /><xs:enumeration value="1" /><xs:enumeration value="2" /><xs:enumeration value="3" /><xs:enumeration value="4" /><xs:enumeration value="5" /><xs:enumeration value="6" /><xs:enumeration value="7" /><xs:enumeration value="8" /><xs:enumeration value="9" /><xs:enumeration value="G" /><xs:enumeration value="H" /><xs:enumeration value="J" /><xs:enumeration value="K" /><xs:enumeration value="R" /></xs:restriction></xs:simpleType><xs:simpleType name="cardType"><xs:annotation><xs:documentation>Mandatory on card transactions</xs:documentation><xs:documentation>D - Debit Card</xs:documentation><xs:documentation>C - Credit Card</xs:documentation><xs:documentation>N - No Auth</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:length value="1" /><xs:enumeration value="D" /><xs:enumeration value="C" /><xs:enumeration value="N" /></xs:restriction></xs:simpleType><xs:simpleType name="merchantNumber"><xs:restriction base="xs:string"><xs:minLength value="1" /><xs:maxLength value="20" /></xs:restriction></xs:simpleType><xs:simpleType name="cardTranType"><xs:annotation><xs:documentation>Mandatory on card transactions</xs:documentation><xs:documentation>09 - Sale, keyed (cardholder not
                    present(CNP), mail order/batch)</xs:documentation><xs:documentation>10 - Sale, swiped or chip (cardholder
                    present)</xs:documentation><xs:documentation>20 - Sale, keyed (cardholder present /
                    magstripe fallback only)</xs:documentation><xs:documentation>B2 - Sale, e-commerce, keyed (CNP)</xs:documentation><xs:documentation>Z1 - Sale, swiped,
                    voice-authorization</xs:documentation><xs:documentation>Z2 - Sale, keyed,
                    voice-authorization</xs:documentation><xs:documentation>Z9 - Sale, keyed, voice-authorization
                    (CNP)</xs:documentation><xs:documentation>47 - Refund, keyed (CNP, mail
                    order/batch)</xs:documentation><xs:documentation>58 - Refund, swiped or chip
                    (cardholder present)</xs:documentation><xs:documentation>61 - Refund, keyed (cardholder present
                    / magstripe fallback only)</xs:documentation><xs:documentation>B4 - Refund, e-commerce, keyed (CNP)</xs:documentation><xs:documentation>25 - Sale reversal</xs:documentation><xs:documentation>86 - Refund reversal</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:enumeration value="09" /><xs:enumeration value="10" /><xs:enumeration value="20" /><xs:enumeration value="B2" /><xs:enumeration value="Z1" /><xs:enumeration value="Z2" /><xs:enumeration value="Z9" /><xs:enumeration value="47" /><xs:enumeration value="58" /><xs:enumeration value="61" /><xs:enumeration value="B4" /><xs:enumeration value="25" /><xs:enumeration value="86" /></xs:restriction></xs:simpleType><xs:simpleType name="eCommerceTerminalType"><xs:annotation><xs:documentation>For E-commerce transactions</xs:documentation><xs:documentation>22 - Chip and Pin transaction</xs:documentation><xs:documentation>25 - Unattended Chip and Pin
                    transaction, controlled by merchant</xs:documentation><xs:documentation>30 - Secure transaction with
                    cardholder certificate</xs:documentation><xs:documentation>31 - Non-authenticated security
                    transaction with SET merchant certificate</xs:documentation><xs:documentation>32 - Non-authenticated security
                    transaction without SET merchant certificate(eg SSL)</xs:documentation><xs:documentation>33 - No additional information
                    (considered as unsecured)</xs:documentation><xs:documentation>35 - Unattended Chip and Pin
                    transaction, controlled by cardholder</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:length value="2" /><xs:enumeration value="22" /><xs:enumeration value="25" /><xs:enumeration value="30" /><xs:enumeration value="31" /><xs:enumeration value="32" /><xs:enumeration value="33" /><xs:enumeration value="35" /></xs:restriction></xs:simpleType><xs:simpleType name="cardSecurityCode"><xs:restriction base="xs:string"><xs:pattern value="[0-9][0-9][0-9]?[0-9]" /><xs:whiteSpace value="replace" /></xs:restriction></xs:simpleType><xs:simpleType name="houseNumber"><xs:restriction base="xs:string"><xs:maxLength value="10" /><xs:minLength value="1" /></xs:restriction></xs:simpleType><xs:simpleType name="postCode"><xs:restriction base="xs:string"><xs:maxLength value="10" /><xs:minLength value="1" /></xs:restriction></xs:simpleType><xs:simpleType name="securityAttempted"><xs:annotation><xs:documentation>M - MasterCard Secure</xs:documentation><xs:documentation>V - Verified By Visa</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:enumeration value="M" /><xs:enumeration value="V" /></xs:restriction></xs:simpleType><xs:simpleType name="securityResult"><xs:restriction base="xs:string"><xs:enumeration value="Y" /><xs:enumeration value="A" /><xs:enumeration value="U" /><xs:enumeration value="N" /></xs:restriction></xs:simpleType><xs:simpleType name="eci"><xs:restriction base="xs:string"><xs:pattern value="[0-9][0-9]" /><xs:whiteSpace value="replace" /></xs:restriction></xs:simpleType><xs:simpleType name="surchargeType"><xs:annotation><xs:documentation>F - Fixed Amount</xs:documentation><xs:documentation>N - None</xs:documentation><xs:documentation>P - Percentage</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:length value="1" /><xs:enumeration value="F" /><xs:enumeration value="N" /><xs:enumeration value="P" /></xs:restriction></xs:simpleType><xs:simpleType name="cardMnemonic"><xs:restriction base="xs:string"><xs:length value="4" /></xs:restriction></xs:simpleType><xs:simpleType name="cardDescription"><xs:restriction base="xs:string"><xs:enumeration value="VISA" /><xs:enumeration value="MASTERCARD" /><xs:enumeration value="AMERICAN EXPRESS" /><xs:enumeration value="LASER" /><xs:enumeration value="DINERS" /><xs:enumeration value="JCBC" /><xs:enumeration value="NONE" /></xs:restriction></xs:simpleType><xs:simpleType name="statusCode"><xs:annotation><xs:documentation>0 - Operation completed successfully</xs:documentation><xs:documentation>Non-zero - Operation failed, more
                    details available in description</xs:documentation></xs:annotation><xs:restriction base="xs:int" /></xs:simpleType><xs:simpleType name="responseCode"><xs:annotation><xs:documentation>Card Authorisation Response Codes:-</xs:documentation><xs:documentation>From the underlying application. Some
                    examples:</xs:documentation><xs:documentation>00 - Transaction Authorized</xs:documentation><xs:documentation>Non-zero - Transaction Not Authorized,
                    some possible values are given below</xs:documentation><xs:documentation>02 - Referral B</xs:documentation><xs:documentation>05 - Declined</xs:documentation><xs:documentation>30 - Bank validation failed, invalid
                    merchant etc</xs:documentation><xs:documentation>54 - Expired Card</xs:documentation><xs:documentation>91 - Comms Fault</xs:documentation><xs:documentation>92 - Manual Auth</xs:documentation><xs:documentation>Validate Card Response Codes:-</xs:documentation><xs:documentation>0 - Request processed successfully</xs:documentation><xs:documentation>10 - Request failed schema validation
                    exception</xs:documentation><xs:documentation>20 - Request failed data access
                    exception</xs:documentation><xs:documentation>30 - Request failed validation
                    exception</xs:documentation><xs:documentation>90 - Request failed other error</xs:documentation><xs:documentation>Stored Card Response Codes:-</xs:documentation><xs:documentation>0 - Request processed successfully</xs:documentation><xs:documentation>5 - Card not found</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:pattern value="[0-9A-Z][0-9]?" /><xs:whiteSpace value="replace" /></xs:restriction></xs:simpleType><xs:simpleType name="maskedCardNumber"><xs:annotation><xs:documentation>Card number with all but first six and
                    last four digits masked with asterisks</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:pattern value="[0-9]{6}\*+[0-9]{4}" /><xs:whiteSpace value="replace" /></xs:restriction></xs:simpleType><xs:simpleType name="responseAVVCVV"><xs:restriction base="xs:string"><xs:pattern value="\d{6}" /><xs:whiteSpace value="replace" /></xs:restriction></xs:simpleType><xs:simpleType name="surchargeRate"><xs:annotation><xs:documentation>Percentage rate on which surcharge is
                    based, not present for fixed rate surcharges</xs:documentation></xs:annotation><xs:restriction base="xs:decimal" /></xs:simpleType><xs:simpleType name="cardLastFourDigits"><xs:restriction base="xs:string"><xs:pattern value="[0-9][0-9][0-9][0-9]" /><xs:whiteSpace value="replace" /></xs:restriction></xs:simpleType><xs:simpleType name="panEntryMethod"><xs:annotation><xs:documentation>ECOM - E-Commerce (Default)</xs:documentation><xs:documentation>CNP - Card Not Present</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:enumeration value="ECOM" /><xs:enumeration value="CNP" /></xs:restriction></xs:simpleType><xs:simpleType name="portalAction"><xs:annotation><xs:documentation>authorise (Default)</xs:documentation><xs:documentation>storeOnly</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:enumeration value="authorise" /><xs:enumeration value="storeOnly" /></xs:restriction></xs:simpleType><xs:simpleType name="phone"><xs:restriction base="xs:string"><xs:pattern value="|\+[1-9][0-9]{8}[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?" /><xs:whiteSpace value="replace" /></xs:restriction></xs:simpleType><xs:simpleType name="email"><xs:restriction base="xs:string"><xs:pattern value="|[A-Za-z0-9._%+\-]+@[A-Za-z0-9.\-]+\.[A-Za-z]{2,6}" /><xs:whiteSpace value="replace" /></xs:restriction></xs:simpleType><xs:simpleType name="integrator"><xs:restriction base="xs:positiveInteger" /></xs:simpleType><xs:simpleType name="lineId"><xs:restriction base="xs:token"><xs:minLength value="1" /><xs:maxLength value="50" /></xs:restriction></xs:simpleType><xs:simpleType name="bacsReference"><xs:restriction base="xs:string"><xs:pattern value="[A-Za-z0-9.\-/&amp; ]{1,18}" /></xs:restriction></xs:simpleType><xs:simpleType name="bankSortCode"><xs:restriction base="xs:token"><xs:pattern value="[0-9]{6}" /></xs:restriction></xs:simpleType><xs:simpleType name="bankAccountNumber"><xs:restriction base="xs:token"><xs:pattern value="[0-9]{8}" /></xs:restriction></xs:simpleType><xs:simpleType name="httpUrl"><xs:restriction base="xs:token"><xs:pattern value="https?://.+" /></xs:restriction></xs:simpleType><xs:annotation><xs:documentation>Schema Version: 7.4.2.0</xs:documentation><xs:documentation>Schema Description: Type definitions for
                use by Common Foundation</xs:documentation></xs:annotation><xs:element name="credentials" type="credentials" /><xs:complexType name="credentials"><xs:sequence><xs:element name="subject" type="subject" /><xs:element name="requestIdentification" type="requestIdentification" /><xs:element name="signature" type="signature" /></xs:sequence></xs:complexType><xs:complexType name="subject"><xs:sequence><xs:element name="subjectType" type="subjectType" /><xs:element name="identifier" type="xs:int" /><xs:element minOccurs="0" name="systemCode" nillable="true" type="systemCode" /></xs:sequence></xs:complexType><xs:complexType name="requestIdentification"><xs:sequence><xs:element name="uniqueReference" type="xs:string" /><xs:element name="timeStamp" type="timeStamp" /></xs:sequence></xs:complexType><xs:complexType name="signature"><xs:sequence><xs:element name="algorithm" type="algorithm" /><xs:element name="hmacKeyID" type="xs:int" /><xs:element name="digest" type="xs:string" /></xs:sequence></xs:complexType><xs:simpleType name="timeStamp"><xs:restriction base="xs:string"><xs:pattern value="(20)\d\d(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])([0-1]\d|2[0-3])([0-5]\d)([0-5]\d)" /></xs:restriction></xs:simpleType><xs:simpleType name="algorithm"><xs:annotation><xs:documentation>Original</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:enumeration value="Original" /></xs:restriction></xs:simpleType><xs:simpleType name="subjectType"><xs:annotation><xs:documentation>Capita Site</xs:documentation><xs:documentation>Integrator</xs:documentation><xs:documentation>Other Security Entity</xs:documentation><xs:documentation>Secure Bureau Service Site</xs:documentation><xs:documentation>Capita Portal</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:enumeration value="CapitaSite" /><xs:enumeration value="Integrator" /><xs:enumeration value="OtherSecurityEntity" /><xs:enumeration value="SecureBureauServiceSite" /><xs:enumeration value="CapitaPortal" /></xs:restriction></xs:simpleType><xs:element name="scpSimpleInvokeRequest" type="scpSimpleInvokeRequest" /><xs:element name="scpSimpleInvokeResponse" type="scpInvokeResponse" /><xs:element name="scpSimpleQueryRequest" type="scpQueryRequest" /><xs:element name="scpSimpleQueryResponse" type="scpSimpleQueryResponse" /><xs:complexType name="scpSimpleInvokeRequest"><xs:complexContent><xs:extension base="scpInvokeRequest"><xs:sequence><xs:element minOccurs="0" name="sale" type="simpleSale" /></xs:sequence></xs:extension></xs:complexContent></xs:complexType><xs:complexType name="simpleSale"><xs:complexContent><xs:extension base="saleBase"><xs:sequence><xs:element minOccurs="0" name="postageAndPacking" type="postageAndPacking" /><xs:element minOccurs="0" name="surchargeable" type="surchargeable" /><xs:element minOccurs="0" name="items"><xs:complexType><xs:sequence><xs:element maxOccurs="unbounded" name="item" type="simpleItem" /></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType><xs:complexType name="surchargeable"><xs:sequence><xs:choice><xs:element name="applyScpConfig"><xs:complexType /></xs:element><xs:element name="surcharge" type="surchargeItemDetails" /></xs:choice></xs:sequence></xs:complexType><xs:complexType name="simpleItem"><xs:complexContent><xs:extension base="itemBase"><xs:sequence><xs:element minOccurs="0" name="surchargeable" type="xs:boolean" /></xs:sequence></xs:extension></xs:complexContent></xs:complexType><xs:complexType name="scpSimpleQueryResponse"><xs:complexContent><xs:extension base="scpQueryResponse"><xs:sequence><xs:element minOccurs="0" name="paymentResult" type="simplePaymentResult" /></xs:sequence></xs:extension></xs:complexContent></xs:complexType><xs:complexType name="simplePaymentResult"><xs:complexContent><xs:extension base="paymentResultBase"><xs:choice minOccurs="0"><xs:element name="paymentDetails" type="simplePayment" /><xs:element name="errorDetails" type="errorDetails" /></xs:choice></xs:extension></xs:complexContent></xs:complexType><xs:complexType name="simplePayment"><xs:complexContent><xs:extension base="paymentBase"><xs:sequence><xs:element name="saleSummary" type="simpleSaleSummary" /><xs:element minOccurs="0" name="surchargeDetails" type="surchargeDetails" /></xs:sequence></xs:extension></xs:complexContent></xs:complexType><xs:complexType name="simpleSaleSummary"><xs:sequence><xs:element minOccurs="0" name="items"><xs:complexType><xs:sequence><xs:element maxOccurs="unbounded" name="itemSummary" type="simpleItemSummary" /></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType><xs:complexType name="simpleItemSummary"><xs:complexContent><xs:extension base="itemSummaryBase" /></xs:complexContent></xs:complexType><xs:element name="scpVersionRequest" type="scpVersionRequest" /><xs:element name="scpVersionResponse" type="scpVersionResponse" /><xs:complexType name="requestWithCredentials"><xs:sequence><xs:element ref="credentials" /></xs:sequence></xs:complexType><xs:complexType name="scpVersionRequest"><xs:complexContent><xs:extension base="requestWithCredentials" /></xs:complexContent></xs:complexType><xs:complexType name="scpVersionResponse"><xs:sequence><xs:element name="version" type="xs:string" /><xs:element name="schemaVersion" type="xs:string" /></xs:sequence></xs:complexType><xs:complexType name="scpInvokeRequest"><xs:complexContent><xs:extension base="requestWithCredentials"><xs:sequence><xs:element name="requestType" type="requestType" /><xs:element name="requestId" type="xs:token" /><xs:element name="routing" type="routing" /><xs:element name="panEntryMethod" type="cpt:panEntryMethod" /><xs:element minOccurs="0" name="additionalInstructions" type="additionalInstructions" /><xs:element minOccurs="0" name="billing" type="billingDetails" /></xs:sequence></xs:extension></xs:complexContent></xs:complexType><xs:simpleType name="requestType"><xs:restriction base="xs:token"><xs:enumeration value="payOnly" /><xs:enumeration value="authoriseOnly" /><xs:enumeration value="storeOnly" /><xs:enumeration value="payAndStore" /><xs:enumeration value="payAndAutoStore" /></xs:restriction></xs:simpleType><xs:complexType name="routing"><xs:sequence><xs:element name="returnUrl" type="returnUrl" /><xs:element minOccurs="0" name="backUrl" type="cpt:httpUrl" /><xs:element minOccurs="0" name="errorUrl" type="cpt:httpUrl" /><xs:element name="siteId" type="xs:int" /><xs:element name="scpId" type="xs:int" /></xs:sequence></xs:complexType><xs:simpleType name="returnUrl"><xs:union memberTypes="cpt:httpUrl scpSpecialUrl" /></xs:simpleType><xs:simpleType name="scpSpecialUrl"><xs:restriction base="xs:token"><xs:enumeration value="scp:close" /></xs:restriction></xs:simpleType><xs:complexType name="additionalInstructions"><xs:all><xs:element minOccurs="0" name="merchantCode" type="cpt:generalCode" /><xs:element minOccurs="0" name="countryCode" type="cpt:isoCode" /><xs:element minOccurs="0" name="currencyCode" type="cpt:isoCode" /><xs:element minOccurs="0" name="acceptedCards" type="acceptedCards" /><xs:element minOccurs="0" name="language" type="cpt:languageCode" /><xs:element minOccurs="0" name="stageIndicator" type="stageIndicator" /><xs:element minOccurs="0" name="responseInterface" type="responseInterface" /><xs:element minOccurs="0" name="cardholderID" type="cpt:generalString" /><xs:element minOccurs="0" name="integrator" type="xs:positiveInteger" /><xs:element minOccurs="0" name="styleCode" type="cpt:generalCode" /><xs:element minOccurs="0" name="frameworkCode" type="cpt:generalCode" /><xs:element minOccurs="0" name="systemCode" type="cpt:generalCode" /><xs:element minOccurs="0" name="walletRequest"><xs:complexType /></xs:element></xs:all></xs:complexType><xs:complexType name="acceptedCards"><xs:sequence><xs:element minOccurs="0" name="includes" type="acceptedCardList" /><xs:element minOccurs="0" name="excludes" type="acceptedCardList" /></xs:sequence></xs:complexType><xs:complexType name="acceptedCardList"><xs:sequence><xs:element maxOccurs="unbounded" name="card" type="acceptedCardType" /></xs:sequence></xs:complexType><xs:complexType name="stageIndicator"><xs:sequence><xs:element name="firstPortalStage" type="stageNumber" /><xs:element name="totalStages" type="stageNumber" /></xs:sequence></xs:complexType><xs:simpleType name="stageNumber"><xs:restriction base="xs:byte"><xs:minInclusive value="1" /></xs:restriction></xs:simpleType><xs:simpleType name="responseInterface"><xs:restriction base="xs:string"><xs:enumeration value="scpWebService" /><xs:enumeration value="commonPaymentsFormPost" /><xs:enumeration value="xmlFormPost" /><xs:enumeration value="htmlFormPost" /><xs:enumeration value="planningFormPost" /></xs:restriction></xs:simpleType><xs:complexType name="billingDetails"><xs:sequence><xs:element minOccurs="0" name="card" type="card" /><xs:element minOccurs="0" name="cardHolderDetails" type="cardHolderDetails" /></xs:sequence><xs:attribute default="true" name="editable" type="xs:boolean" use="optional" /></xs:complexType><xs:complexType name="card"><xs:sequence><xs:choice><xs:element name="cardDetails" type="cardDetails" /><xs:element name="storedCardKey" type="storedCardKey" /></xs:choice><xs:element minOccurs="0" name="paymentGroupCode" type="cpt:generalCode" /></xs:sequence></xs:complexType><xs:complexType name="cardDetails"><xs:sequence><xs:element name="cardNumber" type="cpt:cardNumber" /><xs:element name="expiryDate" type="cpt:generalDateMMYY" /><xs:element minOccurs="0" name="startDate" type="cpt:generalDateMMYY" /><xs:element minOccurs="0" name="issueNumber" type="cpt:issueNumber" /><xs:element minOccurs="0" name="cardSecurityCode" type="cpt:cardSecurityCode" /></xs:sequence></xs:complexType><xs:complexType name="storedCardKey"><xs:sequence><xs:element name="token" type="xs:string" /><xs:element name="lastFourDigits" type="cpt:cardLastFourDigits" /></xs:sequence></xs:complexType><xs:complexType name="cardHolderDetails"><xs:sequence><xs:element minOccurs="0" name="cardHolderName" type="cpt:generalString" /><xs:element minOccurs="0" name="address" type="address" /><xs:element minOccurs="0" name="contact" type="contact" /></xs:sequence></xs:complexType><xs:complexType name="address"><xs:sequence><xs:element minOccurs="0" name="address1" type="cpt:generalString" /><xs:element minOccurs="0" name="address2" type="cpt:generalString" /><xs:element minOccurs="0" name="address3" type="cpt:generalString" /><xs:element minOccurs="0" name="address4" type="cpt:generalString" /><xs:element minOccurs="0" name="county" type="cpt:generalString" /><xs:element minOccurs="0" name="country" type="cpt:generalString" /><xs:element minOccurs="0" name="postcode" type="cpt:postCode" /></xs:sequence></xs:complexType><xs:complexType name="contact"><xs:sequence><xs:element minOccurs="0" name="telephone" type="cpt:phone" /><xs:element minOccurs="0" name="mobile" type="cpt:phone" /><xs:element minOccurs="0" name="email" type="cpt:email" /></xs:sequence></xs:complexType><xs:complexType name="saleBase"><xs:sequence><xs:element name="saleSummary" type="summaryData" /><xs:element minOccurs="0" name="deliveryDetails" type="contactDetails" /><xs:element minOccurs="0" name="lgSaleDetails" type="lgSaleDetails" /></xs:sequence></xs:complexType><xs:complexType name="summaryData"><xs:sequence><xs:element name="description"><xs:simpleType><xs:restriction base="xs:string"><xs:minLength value="1" /><xs:maxLength value="100" /></xs:restriction></xs:simpleType></xs:element><xs:element name="amountInMinorUnits" type="cpt:generalAmount" /><xs:element minOccurs="0" name="reference" type="cpt:generalString" /><xs:element minOccurs="0" name="displayableReference" type="cpt:generalString" /></xs:sequence></xs:complexType><xs:complexType name="contactDetails"><xs:sequence><xs:element minOccurs="0" name="name" type="threePartName" /><xs:element minOccurs="0" name="address" type="address" /><xs:element minOccurs="0" name="contact" type="contact" /></xs:sequence></xs:complexType><xs:complexType name="threePartName"><xs:sequence><xs:element name="surname" type="cpt:generalString" /><xs:element minOccurs="0" name="title" type="cpt:generalString" /><xs:element minOccurs="0" name="forename" type="cpt:generalString" /></xs:sequence></xs:complexType><xs:complexType name="lgSaleDetails"><xs:all><xs:element minOccurs="0" name="areaCode" type="cpt:generalCode" /><xs:element minOccurs="0" name="locationCode" type="cpt:generalCode" /><xs:element minOccurs="0" name="sourceCode" type="cpt:generalCode" /><xs:element minOccurs="0" name="userName" type="cpt:userName" /><xs:element minOccurs="0" name="userCode" type="cpt:generalCode" /></xs:all></xs:complexType><xs:complexType name="postageAndPacking"><xs:sequence><xs:element name="pnpSummary" type="summaryData" /><xs:element minOccurs="0" name="tax" type="taxItem" /><xs:element minOccurs="0" name="lgPnpDetails" type="lgPnpDetails" /></xs:sequence></xs:complexType><xs:complexType name="taxItem"><xs:sequence><xs:element minOccurs="0" name="vat" type="vatItem" /></xs:sequence></xs:complexType><xs:complexType name="vatItem"><xs:complexContent><xs:extension base="vatBase"><xs:sequence><xs:element name="vatAmountInMinorUnits" type="cpt:generalAmount" /></xs:sequence></xs:extension></xs:complexContent></xs:complexType><xs:complexType name="vatBase"><xs:sequence><xs:element minOccurs="0" name="vatCode" type="cpt:generalCode" /><xs:element name="vatRate" type="cpt:generalDecimal" /></xs:sequence></xs:complexType><xs:complexType name="lgPnpDetails"><xs:all><xs:element minOccurs="0" name="fundCode" type="cpt:generalCode" /><xs:element minOccurs="0" name="pnpCode" type="cpt:generalCode" /><xs:element minOccurs="0" name="pnpOptionCode" type="cpt:generalCode" /><xs:element minOccurs="0" name="pnpOptionDescription" type="cpt:generalString" /></xs:all></xs:complexType><xs:complexType name="surchargeItemDetails"><xs:sequence><xs:element minOccurs="0" name="fundCode" type="cpt:generalCode" /><xs:element minOccurs="0" name="reference" type="cpt:generalString" /><xs:element name="surchargeInfo" type="surchargeInfo" /><xs:element minOccurs="0" name="tax" type="taxSurcharge" /></xs:sequence></xs:complexType><xs:complexType name="surchargeInfo"><xs:sequence><xs:element maxOccurs="unbounded" name="cardSurchargeRate" type="cardSurchargeRate" /></xs:sequence></xs:complexType><xs:complexType name="cardSurchargeRate"><xs:sequence><xs:element minOccurs="0" name="surchargeCardType" type="acceptedCardType" /><xs:element name="surchargeBasis" type="surchargeBasis" /></xs:sequence></xs:complexType><xs:complexType name="acceptedCardType"><xs:sequence><xs:element minOccurs="0" name="cardDescription" type="cpt:cardDescription" /><xs:element minOccurs="0" name="cardType" type="cardType" /></xs:sequence></xs:complexType><xs:complexType name="surchargeBasis"><xs:annotation><xs:documentation>At least one of surchargeFixed and/or
                    surchargeRate
                    is required</xs:documentation></xs:annotation><xs:all><xs:element minOccurs="0" name="surchargeFixed" type="cpt:generalAmountPositive" /><xs:element minOccurs="0" name="surchargeRate" type="cpt:generalDecimalPositive" /></xs:all></xs:complexType><xs:complexType name="taxSurcharge"><xs:sequence><xs:element minOccurs="0" name="vat" type="vatSurcharge" /></xs:sequence></xs:complexType><xs:complexType name="vatSurcharge"><xs:complexContent><xs:extension base="vatBase" /></xs:complexContent></xs:complexType><xs:complexType name="itemBase"><xs:sequence><xs:element name="itemSummary" type="summaryData" /><xs:element minOccurs="0" name="tax" type="taxItem" /><xs:element minOccurs="0" name="quantity" type="cpt:generalShort" /><xs:element minOccurs="0" name="notificationEmails" type="notificationEmails" /><xs:element minOccurs="0" name="lgItemDetails" type="lgItemDetails" /><xs:element minOccurs="0" name="customerInfo" type="customerInfo" /><xs:element name="lineId" type="cpt:lineId" /></xs:sequence></xs:complexType><xs:complexType name="notificationEmails"><xs:sequence><xs:element maxOccurs="5" name="email" type="cpt:email" /><xs:element minOccurs="0" name="additionalEmailMessage" type="cpt:generalLongString" /></xs:sequence></xs:complexType><xs:complexType name="lgItemDetails"><xs:all><xs:element minOccurs="0" name="fundCode" type="cpt:generalCode" /><xs:element minOccurs="0" name="isFundItem" type="xs:boolean" /><xs:element minOccurs="0" name="additionalReference" type="cpt:generalString" /><xs:element minOccurs="0" name="narrative" type="cpt:generalString" /><xs:element minOccurs="0" name="accountName" type="threePartName" /><xs:element minOccurs="0" name="accountAddress" type="address" /><xs:element minOccurs="0" name="contact" type="contact" /></xs:all></xs:complexType><xs:complexType name="customerInfo"><xs:sequence><xs:element minOccurs="0" name="customerString1" type="cpt:generalString" /><xs:element minOccurs="0" name="customerString2" type="cpt:generalString" /><xs:element minOccurs="0" name="customerString3" type="cpt:generalString" /><xs:element minOccurs="0" name="customerString4" type="cpt:generalString" /><xs:element minOccurs="0" name="customerString5" type="cpt:generalString" /><xs:element minOccurs="0" name="customerNumber1" type="xs:int" /><xs:element minOccurs="0" name="customerNumber2" type="xs:int" /><xs:element minOccurs="0" name="customerNumber3" type="xs:int" /><xs:element minOccurs="0" name="customerNumber4" type="xs:int" /></xs:sequence></xs:complexType><xs:complexType name="bankDetails"><xs:complexContent><xs:extension base="bacsBankAccount"><xs:sequence><xs:element minOccurs="0" name="bacsReference" type="cpt:bacsReference" /></xs:sequence></xs:extension></xs:complexContent></xs:complexType><xs:complexType name="bacsBankAccount"><xs:sequence><xs:element name="sortCode" type="cpt:bankSortCode" /><xs:element name="bacsAccountNumber" type="cpt:bankAccountNumber" /></xs:sequence></xs:complexType><xs:complexType name="scpInvokeResponse"><xs:complexContent><xs:extension base="scpResponse"><xs:sequence><xs:element name="invokeResult"><xs:complexType><xs:sequence><xs:element name="status" type="status" /><xs:choice><xs:element name="redirectUrl" type="xs:token" /><xs:element name="errorDetails" type="errorDetails" /></xs:choice></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType><xs:complexType name="scpResponse"><xs:sequence><xs:element minOccurs="0" name="requestId" type="xs:token" /><xs:element name="scpReference" type="xs:string" /><xs:element name="transactionState" type="transactionState" /></xs:sequence></xs:complexType><xs:simpleType name="transactionState"><xs:restriction base="xs:string"><xs:enumeration value="IN_PROGRESS" /><xs:enumeration value="COMPLETE" /><xs:enumeration value="INVALID_REFERENCE" /></xs:restriction></xs:simpleType><xs:simpleType name="status"><xs:restriction base="xs:string"><xs:enumeration value="SUCCESS" /><xs:enumeration value="INVALID_REQUEST" /><xs:enumeration value="CARD_DETAILS_REJECTED" /><xs:enumeration value="CANCELLED" /><xs:enumeration value="LOGGED_OUT" /><xs:enumeration value="NOT_ATTEMPTED" /><xs:enumeration value="ERROR" /></xs:restriction></xs:simpleType><xs:complexType name="errorDetails"><xs:sequence><xs:element minOccurs="0" name="errorId" type="xs:string" /><xs:element minOccurs="0" name="errorMessage" type="xs:string" /></xs:sequence></xs:complexType><xs:complexType name="scpQueryRequest"><xs:complexContent><xs:extension base="requestWithCredentials"><xs:sequence><xs:element name="siteId" type="xs:int" /><xs:element name="scpReference" type="xs:string" /></xs:sequence><xs:attribute default="false" name="acceptNonCardResponseData" type="xs:boolean" use="optional" /></xs:extension></xs:complexContent></xs:complexType><xs:complexType name="scpQueryResponse"><xs:complexContent><xs:extension base="scpResponse"><xs:sequence><xs:element minOccurs="0" name="storeCardResult" type="storeCardResult" /><xs:element minOccurs="0" name="emailResult" type="emailResult" /></xs:sequence></xs:extension></xs:complexContent></xs:complexType><xs:complexType name="storeCardResult"><xs:sequence><xs:element name="status" type="status" /><xs:choice minOccurs="0"><xs:element name="storedCardDetails" type="storedCardDetails" /><xs:element name="errorDetails" type="errorDetails" /></xs:choice></xs:sequence></xs:complexType><xs:complexType name="storedCardDetails"><xs:sequence><xs:element name="storedCardKey" type="storedCardKey" /><xs:element name="cardDescription" type="cpt:cardDescription" /><xs:element name="cardType" type="cardType" /><xs:element minOccurs="0" name="expiryDate" type="cpt:generalDateMMYY" /></xs:sequence></xs:complexType><xs:complexType name="emailResult"><xs:sequence><xs:element name="status" type="status" /><xs:element name="errorDetails" type="errorDetails" /></xs:sequence></xs:complexType><xs:complexType name="paymentResultBase"><xs:sequence><xs:element name="status" type="status" /></xs:sequence></xs:complexType><xs:complexType name="paymentBase"><xs:sequence><xs:element name="paymentHeader" type="paymentHeader" /><xs:choice><xs:element name="authDetails" type="authDetails" /><xs:element name="nonCardPayment" type="nonCardPayment" /></xs:choice></xs:sequence></xs:complexType><xs:complexType name="paymentHeader"><xs:sequence><xs:element name="transactionDate" type="cpt:generalDate" /><xs:element name="machineCode" type="cpt:generalCode" /><xs:element name="uniqueTranId"><xs:simpleType><xs:restriction base="xs:string"><xs:length value="12" /></xs:restriction></xs:simpleType></xs:element></xs:sequence></xs:complexType><xs:complexType name="authDetails"><xs:sequence><xs:element name="authCode" type="cpt:generalString" /><xs:element name="amountInMinorUnits" type="cpt:generalAmount" /><xs:element name="maskedCardNumber" type="cpt:maskedCardNumber" /><xs:element name="cardDescription" type="cpt:cardDescription" /><xs:element name="cardType" type="cardType" /><xs:element name="merchantNumber" type="cpt:generalString" /><xs:element minOccurs="0" name="expiryDate" type="cpt:generalDateMMYY" /><xs:element minOccurs="0" name="continuousAuditNumber" type="cpt:generalSequenceNumber" /></xs:sequence></xs:complexType><xs:complexType name="nonCardPayment"><xs:sequence><xs:element name="amountInMinorUnits" type="cpt:generalAmount" /><xs:element minOccurs="0" name="continuousAuditNumber" type="cpt:generalSequenceNumber" /><xs:element name="paymentType" type="cpt:generalString" /><xs:element name="paymentProviderReference" type="cpt:generalString" /></xs:sequence></xs:complexType><xs:complexType name="itemSummaryBase"><xs:sequence><xs:element name="lineId" type="cpt:lineId" /><xs:element name="continuousAuditNumber" type="cpt:generalSequenceNumber" /></xs:sequence></xs:complexType><xs:complexType name="surchargeDetails"><xs:sequence><xs:element name="fundCode" type="cpt:generalCode" /><xs:element name="reference" type="cpt:generalString" /><xs:element name="amountInMinorUnits" type="cpt:generalAmount" /><xs:element name="surchargeBasis" type="surchargeBasis" /><xs:element minOccurs="0" name="continuousAuditNumber" type="cpt:generalSequenceNumber" /><xs:element name="vatAmountInMinorUnits" type="cpt:generalAmount" /></xs:sequence></xs:complexType></xs:schema></wsdl:types><wsdl:message name="scpSimpleQueryRequest"><wsdl:part element="tns:scpSimpleQueryRequest" name="scpSimpleQueryRequest" /></wsdl:message><wsdl:message name="scpSimpleInvokeRequest"><wsdl:part element="tns:scpSimpleInvokeRequest" name="scpSimpleInvokeRequest" /></wsdl:message><wsdl:message name="scpVersionResponse"><wsdl:part element="sch3:scpVersionResponse" name="scpVersionResponse" /></wsdl:message><wsdl:message name="scpVersionRequest"><wsdl:part element="sch3:scpVersionRequest" name="scpVersionRequest" /></wsdl:message><wsdl:message name="scpSimpleQueryResponse"><wsdl:part element="tns:scpSimpleQueryResponse" name="scpSimpleQueryResponse" /></wsdl:message><wsdl:message name="scpSimpleInvokeResponse"><wsdl:part element="tns:scpSimpleInvokeResponse" name="scpSimpleInvokeResponse" /></wsdl:message><wsdl:portType name="scp"><wsdl:operation name="scpSimpleQuery"><wsdl:input message="tns:scpSimpleQueryRequest" name="scpSimpleQueryRequest" /><wsdl:output message="tns:scpSimpleQueryResponse" name="scpSimpleQueryResponse" /></wsdl:operation><wsdl:operation name="scpSimpleInvoke"><wsdl:input message="tns:scpSimpleInvokeRequest" name="scpSimpleInvokeRequest" /><wsdl:output message="tns:scpSimpleInvokeResponse" name="scpSimpleInvokeResponse" /></wsdl:operation><wsdl:operation name="scpVersion"><wsdl:input message="tns:scpVersionRequest" name="scpVersionRequest" /><wsdl:output message="tns:scpVersionResponse" name="scpVersionResponse" /></wsdl:operation></wsdl:portType><wsdl:binding name="scpSoap11" type="tns:scp"><soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /><wsdl:operation name="scpSimpleQuery"><soap:operation soapAction="" /><wsdl:input name="scpSimpleQueryRequest"><soap:body use="literal" /></wsdl:input><wsdl:output name="scpSimpleQueryResponse"><soap:body use="literal" /></wsdl:output></wsdl:operation><wsdl:operation name="scpSimpleInvoke"><soap:operation soapAction="" /><wsdl:input name="scpSimpleInvokeRequest"><soap:body use="literal" /></wsdl:input><wsdl:output name="scpSimpleInvokeResponse"><soap:body use="literal" /></wsdl:output></wsdl:operation><wsdl:operation name="scpVersion"><soap:operation soapAction="" /><wsdl:input name="scpVersionRequest"><soap:body use="literal" /></wsdl:input><wsdl:output name="scpVersionResponse"><soap:body use="literal" /></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service name="scpService"><wsdl:port binding="tns:scpSoap11" name="scpSoap11"><soap:address location="https://sbsctest.e-paycapita.com:443/scp/scpws" /></wsdl:port></wsdl:service></wsdl:definitions>
longsonr commented 9 years ago

Alternatively the files are here: http://filebin.net/m1pfx976sa

FWIW I used this tool to reformat it: http://www.freeformatter.com/xml-formatter.html#ad-output

predic8 commented 9 years ago

@longsonr thx for the files at filebin. We are a bit busy this week but we can have a look at it and your other issues next week.

predic8 commented 9 years ago

I can reproduce the bug on my computer

predic8 commented 9 years ago

The bug is in the dependency soa-model. Membrane 4.0.X uses soa-model-1.3.0 that is affected by the bug. We should upgrade the head Membrane 4.1.X to use soa-model-1.5.0 that has already a fix for that bug.

rrayst commented 9 years ago

The recent 4.0.X branch also depends on soa-model-1.5.0.

Versions 4.0.19 and 4.0.20 were tagged in the source code repository, but only 4.0.19 has an official binary build. It was not announced on the homepage, but is available at http://repository.membrane-soa.org/service/local/artifact/maven/redirect?r=releases&g=org.membrane-soa.service-proxy&a=membrane-service-proxy&v=4.0.19&e=zip .

So just upgrade to this version. ;)

predic8 commented 9 years ago

@rrayst great! It works with @longsonr files. THX

predic8 commented 9 years ago

Works!

longsonr commented 9 years ago

I can confirm this is fixed in 4.0.19 thanks.