RFC 4112 - Electronic Commerce Modeling Language (ECML) Vers(2)

时间:2006-10-31 来源: 作者: 点击:
usethetransactioninstrumentbuiltintoaCellphonesubscriber foridentification."phoneid"indicatesuseforthetransaction ofabillablephonenumber."None"indicatesthatautomatic fieldfillisoperatingbutthattherei
  
        use the transaction instrument built into a Cellphone subscriber
        for identification.  "phoneid" indicates use for the transaction
        of a billable phone number.  "None" indicates that automatic
        field fill is operating but that there is no further
        information.

   (18) A unique order ID string generated by the consumer software.

   (19) The user ID and password fields can be used if the user has a
        pre-established account with the merchant to which access is
        authenticated by such values.  For that use, one would expect an

        application to require exactly one user ID, and one password
        field be present.

   (20) URI [RFC3986] indicating version of this set of fields.  Equal
        to "urn:ietf:params:ecml:v2.0" for this version.  See Section 5.
        (See also Note 101.)

   (21) A string to identify the source and version of form fill
        software that is acting on behalf of a user.  Should contain
        company and/or product name and version; for example, "Wallets
        Inc., SuperFill, v42.7".  (See also Note 101.)

   (22) A flag to indicate that this web-page/aggregate is the final one
        for this transaction.  (See also Note 101.)

   (23) The merchant domain name [RFC1034], such as
        www.merchant.example.  (See also Note 101.)

   (24) The domain name [RFC1034] of the gateway transaction processor
        that is actually accepting the payment on behalf of the
        merchant, such as www.processor.example.  (See also Note 101.)

   (25) A Transaction identification string whose format is specific to
        the processor.

   (26) A URL [RFC3986] that can be invoked to inquire about the
        transaction.  (See also Note 100.)

   (27) The amount of the transaction in ISO currency format [ISO4217].
        This is two integer numbers with a period in between but with no
        other currency mark (such as a "$" dollar sign).

   (28) This is the three-letter ISO currency code [ISO4217].  For
        example, US dollars is USD.

   (29) ISO Transaction date.

   (30) The type of the transaction, if known.  Currently a value from
        the following list:

                     debit
                     credit

   (31) A digital signature, base64 encoded [RFC2045].  (See also Note
        101.)

   (32) The ReceiptTo fields are used when the BillTo entity, location,
        or address and the ReceiptTo entity, location, or address are
        different.  For example, when using some forms of Corporate
        Purchasing Cards or Agent Purchasing Cards, the individual card
        holder would be in the ReceiptTo fields, and the corporate or
        other owner would be in the BillTo fields.

   (33) An IETF Language Tag, as defined in [RFC3066].

   (34) User preferences, as specified by the merchant.  (See also Note
        102.)

   (35) The Uniform Resource Locator [RFC3986] for accessing the
        customer’s "wallet" software.  (See also Note 100)

   (36) A single capital letter: M=male, F=Female, U=Unknown [ISO5218].

   (37) An immutable device identification or serial number.  (See also
        Note 102.)

   (38) User understandable device brand name.  (See also Note 102)

   (39) [ISO8583] field "card acceptor terminal identification".

   (40) [ISO8583] field "processing code".

   (41) [ISO8583] field "acquiring institution identification code".

   (42) [ISO8583] field "forwarding institution identification code".

   (43) [ISO8583] field "system trace audit field".

   (44) [ISO8583] field "date effective".

   (45) [ISO8583] field "point of sale date code".

   (46) [ISO8583] field "approval code".

   (47) [ISO8583] field "action code".

   (48) [ISO8583] field "date settlement".

   (49) [ISO8583] field "date capture".

   (50) [ISO8583] field "trace 1 data".

   (51) [ISO8583] field "trace 2 data".

   (52) User-recognizable loyalty card brand name.  Values for this
        field are not controlled, and there is no IANA or other registry
        for them.  (See also Note 102.)

   (53) The card issuer number required by the UK-based Switch and Solo
        acquirers.

   (54) The field names "first_name" and "last_name" have been retained
        for compatibility with earlier versions of ECML.  However,
        "last_name" should be understood to refer to family or inherited
        names(s), whereas "first_name" is the first given or non-
        inherited name and "middle_name" is the subsequent given or
        non-inherited name or names, if any.

   (55) The Uniform Resource Locator [RFC3986] for accessing the user’s
        X.509v3 certificate encoded as binary DER.  (See also Note 100.)

   Meta Notes (referenced by other notes)

   (100) ECML, a basic field-naming and structuring convention, does not
         impose any particular requirements on these URLs.  It is to be
         expected that most applications that make use of ECML will
         impose such limitations and perform checking to be sure that
         provided URLs conform to such limitations before attempting to
         invoke them.

   (101) This is a field that, when presented in a web page, is usually
         hidden.

   (102) An ASCII [ASCII] character string with no leading or trailing
         white space.

2.2.  Exemplar XML Syntax

   The following sections provide an XML DTD and an XML Schema that
   express the ECML fields with ECML v2 naming and ECML v2 hierarchical
   structure.  In case of conflict between this DTD and Schema, the
   Schema should prevail.  Note that the ECML v2 naming and structure
   may be used in non-XML syntaxes.

   The ECML v2 XML syntax is deliberately liberal because it is assumed
   that specific applications making use of ECML will impose their own
   additional constraints.

   For internationalization of ECML, use the general XML character-
   encoding provisions [XML] (which mandate support of UTF-8 and UTF-16
   and permit support of other character sets) and the xml:lang
   attribute, which may be used to specify language information.

2.2.1.  ECML v2 XML DTD

   The following is an XML DTD for ECML v2.

      <!-- Electronic Commerce Modeling Language v2 -->

      <!ELEMENT Ecom ( #PCDATA | ShipTo | BillTo | ReceiptTo | Payment |
                       Loyalty | User | Merchant | Transaction |
                       TransactionComplete )* >
      <!ATTLIST Ecom
                id        ID         #IMPLIED
                ConsumerOrderID CDATA #IMPLIED
                Merchant  CDATA      #IMPLIED
                Mode      (Query|Assert) #IMPLIED
                Processor CDATA      #IMPLIED
                SchemaVersion (urn:ietf:params:ecml:v2.0)
                                     #IMPLIED
                WalletID  CDATA      #IMPLIED
                WalletLocation CDATA #IMPLIED >

      <!ELEMENT ShipTo ( #PCDATA | Postal | Telecom | Online )* >
      <!ATTLIST ShipTo
                id        ID         #IMPLIED
                Mode      (Query|Assert) #IMPLIED >

      <!ELEMENT BillTo  ( #PCDATA | Postal | Telecom | Online )* >
      <!ATTLIST BillTo
                id        ID         #IMPLIED
                Mode      (Query|Assert) #IMPLIED >

      <!ELEMENT ReceiptTo ( #PCDATA | Postal | Telecom | Online )* >

      <!ATTLIST ReceiptTo
                id        ID         #IMPLIED
                Mode      (Query|Assert) #IMPLIED >

      <!ELEMENT Postal ( #PCDATA | Name | Company |
                                   Street | City | StateProv )* >
      <!ATTLIST Postal
                id        ID         #IMPLIED
                PostalCode NMTOKEN   #IMPLIED
                Mode      (Query|Assert) #IMPLIED
                CountryCode NMTOKEN  #IMPLIED >

      <!ELEMENT Name EMPTY >
      <!ATTLIST Name
                id        ID         #IMPLIED
                Mode      (Query|Assert) #IMPLIED

                Prefix    NMTOKEN    #IMPLIED
                First     NMTOKEN    #IMPLIED
                Middle    NMTOKEN    #IMPLIED
                Last      NMTOKEN    #IMPLIED
                Suffix    NMTOKEN    #IMPLIED >

      <!ELEMENT Street EMPTY >
      <!ATTLIST Street
                id        ID         #IMPLIED
                Mode      (Query|Assert) #IMPLIED
                Line1     CDATA      #REQUIRED
                Line2     CDATA      #IMPLIED
                Line3     CDATA      #IMPLIED >

      <!ELEMENT Company (#PCDATA) >
      <!ATTLIST Company
                Mode      (Query|Assert) #IMPLIED >

      <!ELEMENT City (#PCDATA) >
      <!ATTLIST City
                Mode      (Query|Assert) #IMPLIED >

      <!ELEMENT StateProv (#PCDATA) >
      <!ATTLIST StateProv
                Mode      (Query|Assert) #IMPLIED >

      <!ELEMENT Telecom ( #PCDATA | Phone )* >
      <!ATTLIST Telecom
                Mode      (Query|Assert) #IMPLIED >

      <!ELEMENT Phone EMPTY >
      <!ATTLIST Phone
                id         ID        #IMPLIED
                Mode       (Query|Assert) #IMPLIED
                Number     CDATA     #REQUIRED >

      <!ELEMENT Online ( #PCDATA | Email )* >
      <!ATTLIST Online
                Mode      (Query|Assert) #IMPLIED >

      <!ELEMENT Email EMPTY >
      <!ATTLIST Email
                id         ID        #IMPLIED
                Mode       (Query|Assert) #IMPLIED
                Address    CDATA     #REQUIRED >

      <!ELEMENT Payment (Card) >
      <!ATTLIST Payment

                Mode       (Query|Assert) #IMPLIED >

      <!ELEMENT Card (ExpDate, ValidDate?) >
      <!ATTLIST Card
                id          ID        #IMPLIED
                Mode       (Query|Assert) #IMPLIED
                Name        CDATA     #IMPLIED
                Type        NMTOKEN   #IMPLIED
                Number      NMTOKEN   #REQUIRED
                Protocols   NMTOKENS  #IMPLIED
                Verification NMTOKEN  #IMPLIED
                Issuer      NMTOKEN   #IMPLIED >

      <!ELEMENT Loyalty (ExpDate?, ValidDate?) >
      <!ATTLIST Loyalty
                id          ID        #IMPLIED
                Mode        (Query|Assert) #IMPLIED
                Name        CDATA     #IMPLIED
                Type        NMTOKEN   #IMPLIED
                Number      NMTOKEN   #REQUIRED
                Verification NMTOKEN  #IMPLIED >

      <!ELEMENT ExpDate EMPTY >
      <!ATTLIST ExpDate
                id          ID        #IMPLIED
                Mode        (Query|Assert) #IMPLIED
                Day         NMTOKEN   #IMPLIED
                Month       NMTOKEN   #REQUIRED
                Year        NMTOKEN   #REQUIRED >

      <!ELEMENT ValidDate EMPTY >
      <!ATTLIST ValidDate
                id          ID        #IMPLIED
                Mode        (Query|Assert) #IMPLIED
                Day         NMTOKEN   #IMPLIED
                Month       NMTOKEN   #IMPLIED
                Year        NMTOKEN   #REQUIRED >

      <!ELEMENT User ( #PCDATA | UserID | Password )* >
      <!ATTLIST User
                id          ID        #IMPLIED
                Mode        (Query|Assert) #IMPLIED
                CertificateURL CDATA  #IMPLIED
                DataCountry NMTOKEN   #IMPLIED
                DataLanguage CDATA    #IMPLIED >

      <!ELEMENT UserID (#PCDATA) >
      <!ATTLIST UserID

                Mode      (Query|Assert) #IMPLIED >

      <!ELEMENT Password (#PCDATA) >
      <!ATTLIST Password
                Mode      (Query|Assert) #IMPLIED >

      <!ELEMENT Merchant (Terminal) >
      <!ATTLIST Merchant
                Mode        (Query|Assert) #IMPLIED
                id          ID        #IMPLIED >

      <!ELEMENT Terminal EMPTY >
      <!ATTLIST Terminal
                Id          ID     #IMPLIED
                Mode        (Query|Assert) #IMPLIED
                Data        CDATA  #IMPLIED >

      <!ELEMENT Transaction ( #PCDATA | Id | Code | Date | Data |
                              Inquiry | Signature )* >
      <!ATTLIST Transaction
                Amount      CDATA     #IMPLIED
                Currency    NMTOKEN   #IMPLIED
                Mode        (Query|Assert) #IMPLIED
                Type        NMTOKEN   #IMPLIED >

      <!ELEMENT Id EMPTY >
      <!ATTLIST Id
                Id          ID        #IMPLIED
                Mode        (Query|Assert) #IMPLIED
                CID         NMTOKEN   #IMPLIED
                Reference   NMTOKEN   #IMPLIED
                Acquire     NMTOKEN   #IMPLIED
                Forward     NMTOKEN   #IMPLIED >

      <!ELEMENT Code EMPTY >
      <!ATTLIST Code
                Mode        (Query|Assert) #IMPLIED
                Processing  CDATA     #IMPLIED
                Approval    NMTOKEN   #IMPLIED
                Retrieval   NMTOKEN   #IMPLIED
                Action      NMTOKEN   #IMPLIED
                Reason      NMTOKEN   #IMPLIED
                POS         NMTOKEN   #IMPLIED >

      <!ELEMENT Date (Effective?, Settle?, Capture?) >
      <!ATTLIST Date
                Mode        (Query|Assert) #IMPLIED
                id          ID        #IMPLIED >

      <!ELEMENT Effective EMPTY >
      <!ATTLIST Effective
                id          ID        #IMPLIED
                Mode        (Query|Assert) #IMPLIED
                Day         NMTOKEN   #REQUIRED
                Month       NMTOKEN   #REQUIRED
                Year        NMTOKEN   #REQUIRED >

      <!ELEMENT Settle EMPTY >
      <!ATTLIST Settle
                id          ID        #IMPLIED
                Mode        (Query|Assert) #IMPLIED
                Day         NMTOKEN   #REQUIRED
                Month       NMTOKEN   #REQUIRED
                Year        NMTOKEN   #REQUIRED >

      <!ELEMENT Capture EMPTY >
      <!ATTLIST Capture
                id          ID        #IMPLIED
                Mode        (Query|Assert) #IMPLIED
                Day         NMTOKEN   #REQUIRED
                Month       NMTOKEN   #REQUIRED
                Year        NMTOKEN   #REQUIRED >

      <!ELEMENT Data (#PCDATA | Trace | PrivateUse | Response |
                       AAV | Track1 | Track2 )* >
      <!ATTLIST Data
                Mode      (Query|Assert) #IMPLIED >

      <!ELEMENT Trace (#PCDATA) >
      <!ATTLIST Trade
                id        ID         #IMPLIED
                Mode      (Query|Assert) #IMPLIED >

      <!ELEMENT PrivateUse (#PCDATA) >
      <!ATTLIST PrivateUse
                id        ID         #IMPLIED
                Mode      (Query|Assert) #IMPLIED >

      <!ELEMENT Response (#PCDATA) >
      <!ATTLIST Response
                id        ID         #IMPLIED
                Mode      (Query|Assert) #IMPLIED >

      <!ELEMENT AAV (#PCDATA) >
      <!ATTLIST AAV
                id        ID         #IMPLIED
                Mode      (Query|Assert) #IMPLIED >

      <!ELEMENT Track1 (#PCDATA) >
      <!ATTLIST Track1
                id        ID         #IMPLIED
                Mode      (Query|Assert) #IMPLIED >

      <!ELEMENT Track2 (#PCDATA) >
      <!ATTLIST Track2
                id        ID         #IMPLIED
                Mode      (Query|Assert) #IMPLIED >

      <!ELEMENT Inquiry (#PCDATA) >
      <!ATTLIST Inquiry
                id        ID         #IMPLIED
                Mode      (Query|Assert) #IMPLIED >

      <!ELEMENT Signature (#PCDATA) >
      <!ATTLIST Signature
                id        ID         #IMPLIED
                Mode      (Query|Assert) #IMPLIED >

      <!ELEMENT TransactionComplete EMPTY >

2.2.2.  ECML v2 XML Schema

   The following is an XML Schema for ECML v2.

   <?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">
------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容