doubango/schemas/ECMLv2.xml

380 lines
14 KiB
XML
Executable File

<?xml version="1.0" encoding="utf-8"?>
<!-- Electronic Commerce Modeling Language v2 -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:attribute name="Mode">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Query"/>
<xs:enumeration value="Assert"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="id" type="xs:ID"/>
<xs:complexType name="EcomSimpleText">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:element name="Ecom">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ShipTo"/>
<xs:element ref="BillTo"/>
<xs:element ref="ReceiptTo"/>
<xs:element ref="Payment"/>
<xs:element ref="Loyalty"/>
<xs:element ref="User"/>
<xs:element ref="Merchant"/>
<xs:element ref="Transaction"/>
<xs:element ref="TransactionComplete"/>
</xs:choice>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
<xs:attribute name="ConsumerOrderID" use="optional"/>
<xs:attribute name="Merchant" use="optional"/>
<xs:attribute name="Processor" use="optional"/>
<xs:attribute name="SchemaVersion" type="xs:string"
fixed="urn:ietf:params:ecml:v2.0"/>
<xs:attribute name="WalletID" use="optional"/>
<xs:attribute name="WalletLocation" type="xs:anyURI"
use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="ShipTo">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Postal"/>
<xs:element ref="Telecom"/>
<xs:element ref="Online"/>
</xs:choice>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="BillTo">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Postal"/>
<xs:element ref="Telecom"/>
<xs:element ref="Online"/>
</xs:choice>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="ReceiptTo">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Postal"/>
<xs:element ref="Telecom"/>
<xs:element ref="Online"/>
</xs:choice>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Postal">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Name"/>
<xs:element ref="Company"/>
<xs:element ref="Street"/>
<xs:element ref="City"/>
<xs:element ref="StateProv"/>
</xs:choice>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
<xs:attribute name="PostalCode" type="xs:NMTOKEN"
use="optional"/>
<xs:attribute name="CountryCode" type="xs:NMTOKEN"
use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Telecom">
<xs:complexType mixed="true">
<xs:sequence maxOccurs="unbounded">
<xs:element name="Phone">
<xs:complexType>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
<xs:attribute name="Number"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute ref="Mode" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Online">
<xs:complexType mixed="true">
<xs:sequence maxOccurs="unbounded">
<xs:element name="Email">
<xs:complexType>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
<xs:attribute name="Address"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute ref="Mode" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Payment">
<xs:complexType>
<xs:sequence>
<xs:element name="Card">
<xs:complexType>
<xs:sequence>
<xs:element ref="ExpDate"/>
<xs:element ref="ValidDate" minOccurs="0"/>
</xs:sequence>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
<xs:attribute name="Name" use="optional"/>
<xs:attribute name="Type" type="xs:NMTOKEN"
use="optional"/>
<xs:attribute name="Number" type="xs:decimal"/>
<xs:attribute name="Protocols" type="xs:NMTOKENS"
use="optional"/>
<xs:attribute name="Verification"
type="xs:NMTOKEN" use="optional"/>
<xs:attribute name="Issuer" type="xs:NMTOKEN"
use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute ref="Mode" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Loyalty">
<xs:complexType>
<xs:sequence>
<xs:element ref="ExpDate"/>
<xs:element ref="ValidDate" minOccurs="0"/>
</xs:sequence>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
<xs:attribute name="Name" use="optional"/>
<xs:attribute name="Type" type="xs:NMTOKEN"
use="optional"/>
<xs:attribute name="Number" type="xs:NMTOKEN"/>
<xs:attribute name="Verification" type="xs:NMTOKEN"
use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="ExpDate">
<xs:complexType>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
<xs:attribute name="Day" type="xs:positiveInteger"/>
<xs:attribute name="Month" type="xs:positiveInteger"/>
<xs:attribute name="Year" type="xs:positiveInteger"/>
</xs:complexType>
</xs:element>
<xs:element name="ValidDate">
<xs:complexType>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
<xs:attribute name="Day" type="xs:positiveInteger"/>
<xs:attribute name="Month" type="xs:positiveInteger"/>
<xs:attribute name="Year" type="xs:positiveInteger"/>
</xs:complexType>
</xs:element>
<xs:element name="User">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="UserID"/>
<xs:element ref="Password"/>
</xs:choice>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
<xs:attribute name="CertificateURL" type="xs:anyURI"
use="optional"/>
<xs:attribute name="DataCountry" type="xs:NMTOKEN"
use="optional"/>
<xs:attribute name="DataLanguage" type="xs:language"
use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Transaction">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Id"/>
<xs:element ref="Code"/>
<xs:element ref="Date"/>
<xs:element ref="Data"/>
<xs:element ref="Inquiry"/>
<xs:element ref="Signature"/>
</xs:choice>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute name="Currency" type="xs:NMTOKEN"
use="optional"/>
<xs:attribute name="Type" type="xs:NMTOKEN"
use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Date">
<xs:complexType>
<xs:sequence>
<xs:element ref="Effective" minOccurs="0"/>
<xs:element ref="Settle" minOccurs="0"/>
<xs:element ref="Capture" minOccurs="0"/>
</xs:sequence>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Data">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Trace"/>
<xs:element ref="PrivateUse"/>
<xs:element ref="Response"/>
<xs:element ref="AAV"/>
<xs:element ref="Track1"/>
<xs:element ref="Track2"/>
</xs:choice>
<xs:attribute ref="Mode" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Merchant">
<xs:complexType>
<xs:sequence>
<xs:element name="Terminal">
<xs:complexType>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
<xs:attribute name="Data" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="AAV" type="EcomSimpleText"/>
<xs:element name="Capture">
<xs:complexType>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
<xs:attribute name="Day" type="xs:NMTOKEN"/>
<xs:attribute name="Month" type="xs:NMTOKEN"/>
<xs:attribute name="Year" type="xs:NMTOKEN"/>
</xs:complexType>
</xs:element>
<xs:element name="City" type="EcomSimpleText"/>
<xs:element name="Code">
<xs:complexType>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute name="Processing" use="optional"/>
<xs:attribute name="Approval" type="xs:NMTOKEN"
use="optional"/>
<xs:attribute name="Retrieval" type="xs:NMTOKEN"
use="optional"/>
<xs:attribute name="Action" type="xs:NMTOKEN"
use="optional"/>
<xs:attribute name="Reason" type="xs:NMTOKEN"
use="optional"/>
<xs:attribute name="POS" type="xs:NMTOKEN"
use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Company" type="EcomSimpleText"/>
<xs:element name="Effective">
<xs:complexType>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
<xs:attribute name="Day" type="xs:NMTOKEN"/>
<xs:attribute name="Month" type="xs:NMTOKEN"/>
<xs:attribute name="Year" type="xs:NMTOKEN"/>
</xs:complexType>
</xs:element>
<xs:element name="Id">
<xs:complexType>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
<xs:attribute name="CID" type="xs:NMTOKEN"
use="optional"/>
<xs:attribute name="Reference" type="xs:NMTOKEN"
use="optional"/>
<xs:attribute name="Acquire" type="xs:NMTOKEN"
use="optional"/>
<xs:attribute name="Forward" type="xs:NMTOKEN"
use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Inquiry">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Name">
<xs:complexType>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
<xs:attribute name="Prefix" type="xs:NMTOKEN"
use="optional"/>
<xs:attribute name="First" type="xs:NMTOKEN"
use="optional"/>
<xs:attribute name="Middle" type="xs:NMTOKEN"
use="optional"/>
<xs:attribute name="Last" type="xs:NMTOKEN"
use="optional"/>
<xs:attribute name="Suffix" type="xs:NMTOKEN"
use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Password" type="EcomSimpleText"/>
<xs:element name="PrivateUse" type="EcomSimpleText"/>
<xs:element name="Response" type="EcomSimpleText"/>
<xs:element name="Settle">
<xs:complexType>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
<xs:attribute name="Day" type="xs:NMTOKEN"/>
<xs:attribute name="Month" type="xs:NMTOKEN"/>
<xs:attribute name="Year" type="xs:NMTOKEN"/>
</xs:complexType>
</xs:element>
<xs:element name="Signature">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="StateProv" type="EcomSimpleText"/>
<xs:element name="Street">
<xs:complexType>
<xs:attribute ref="Mode" use="optional"/>
<xs:attribute ref="id" use="optional"/>
<xs:attribute name="Line1"/>
<xs:attribute name="Line2" use="optional"/>
<xs:attribute name="Line3" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Trace" type="EcomSimpleText"/>
<xs:element name="Track1" type="EcomSimpleText"/>
<xs:element name="Track2" type="EcomSimpleText"/>
<xs:element name="TransactionComplete">
<xs:complexType/>
</xs:element>
<xs:element name="UserID" type="EcomSimpleText"/>
</xs:schema>