Определения типов данных протокола IOTP
Этот раздел содержит XML DTD для IOTP.
<!--
******************************************************
* *
* INTERNET OPEN TRADING PROTOCOL VERSION 1.0 DTD *
* Имя файла: ietf.org/rfc/rfc2801.dtd *
* *
* Отличие от версии 07 (iotp-v1.0-protocol-07.dtd) *
* - никаких изменений *
* *
* Copyright Internet Engineering Task Force 1998-2000*
* *
******************************************************
******************************
* Определение сообщения IOTP *
******************************
-->
<!ELEMENT IotpMessage ( TransRefBlk, IotpSignatures?, ErrorBlk?,
( AuthReqBlk | AuthRespBlk | AuthStatusBlk | CancelBlk | DeliveryReqBlk |
DeliveryRespBlk | InquiryReqBlk | InquiryRespBlk | OfferRespBlk | PayExchBlk |
PayReqBlk | PayRespBlk | PingReqBlk | PingRespBlk | TpoBlk | TpoSelectionBlk
)* ) >
<!ATTLIST IotpMessage xmlns CDATA 'iotp:ietf.org/iotp-v1.0' >
<!--
***************************************
* Определение блока ссылок транзакции *
*************************************** -->
<!ELEMENT TransRefBlk (TransId, MsgId, RelatedTo*)>
<!ATTLIST TransRefBlk ID ID #REQUIRED>
<!ELEMENT TransId EMPTY>
<!ATTLIST TransId ID ID #REQUIRED
Version NMTOKEN #FIXED '1.0'IotpTransId CDATA #REQUIRED
IotpTransType CDATA #REQUIREDTransTimeStamp CDATA #REQUIRED>
<!ELEMENT MsgId EMPTY>
<!ATTLIST MsgId ID ID #REQUIRED
RespIotpMsg NMTOKEN #IMPLIED | xml:lang NMTOKEN #REQUIRED |
LangPrefList NMTOKENS #IMPLIED | CharSetPrefList NMTOKENS #IMPLIED |
SenderTradingRoleRef NMTOKEN #IMPLIED
SoftwareId CDATA #REQUIRED | TimeStamp CDATA #IMPLIED> |
<!ELEMENT RelatedTo (PackagedContent) >
<!ATTLIST RelatedTo ID ID #REQUIRED
xml:lang NMTOKEN #REQUIRED | RelationshipType NMTOKEN #REQUIRED |
Relation CDATA #REQUIRED | RelnKeyWords NMTOKENS #IMPLIED> |
<!--
**********************************
* Общий элемент Packaged Content *
********************************** -->
<!ELEMENT PackagedContent (#PCDATA)>
<!ATTLIST PackagedContent Name CDATA #IMPLIED
Content NMTOKEN "PCDATA" | Transform (NONE|BASE64) "NONE"> |
<!--
***********************
* Торговые компоненты *
*********************** -->
<!-- PROTOCOL OPTIONS COMPONENT -->
<!ELEMENT ProtocolOptions EMPTY >
<!ATTLIST ProtocolOptions ID ID #REQUIRED
xml:lang NMTOKEN #REQUIRED | ShortDesc CDATA #REQUIRED |
SenderNetLocn CDATA #IMPLIED | SecureSenderNetLocn CDATA #IMPLIED |
<!ELEMENT AuthReq (Algorithm, PackagedContent*)>
<!ATTLIST AuthReq ID ID #REQUIRED
AuthenticationId CDATA #REQUIREDContentSoftwareId CDATA #IMPLIED>
<!-- AUTHENTICATION RESPONSE COMPONENT -->
<!ELEMENT AuthResp (PackagedContent*) >
<!ATTLIST AuthResp ID ID #REQUIRED
AuthenticationId CDATA #REQUIREDSelectedAlgorithmRef NMTOKEN #REQUIRED
ContentSoftwareId CDATA #IMPLIED>
<!-- TRADING ROLE INFO REQUEST COMPONENT -->
<!ELEMENT TradingRoleInfoReq EMPTY>
<!ATTLIST TradingRoleInfoReq ID ID #REQUIRED
TradingRoleList NMTOKENS #REQUIRED>
<!-- ORDER COMPONENT -->
<!ELEMENT Order (PackagedContent*)>
><!ATTLIST Order ID ID #REQUIRED
xml:lang NMTOKEN #REQUIRED | OrderIdentifier CDATA #REQUIRED |
ShortDesc CDATA #REQUIRED | OkFrom CDATA #REQUIRED |
OkTo CDATA #REQUIRED | ApplicableLaw CDATA #REQUIRED |
<!-- ORGANISATION COMPONENT -->
<!ELEMENT Org (TradingRole+, ContactInfo?, PersonName?, PostalAddress?)>
<!ATTLIST Org ID ID #REQUIRED
xml:lang NMTOKEN #REQUIRED | OrgId CDATA #REQUIRED |
LegalName CDATA #IMPLIED | ShortDesc CDATA #IMPLIED |
<!ELEMENT TradingRole EMPTY>
><!ATTLIST TradingRole ID ID#REQUIRED
TradingRole NMTOKEN #REQUIRED | IotpMsgIdPrefix NMTOKEN #REQUIRED |
CancelNetLocn CDATA #IMPLIED | ErrorNetLocn CDATA #IMPLIED |
<!ELEMENT ContactInfo EMPTY>
<!ATTLIST ContactInfo xml:lang NMTOKEN #IMPLIED
Tel CDATA #IMPLIED | Fax CDATA #IMPLIED |
Email CDATA #IMPLIED | NetLocn CDATA #IMPLIED> |
<!ATTLIST PersonName xml:lang NMTOKEN #IMPLIED
Title CDATA #IMPLIED | GivenName CDATA #IMPLIED |
Initials CDATA #IMPLIED | FamilyName CDATA #IMPLIED> |
<!ATTLIST PostalAddress xml:lang NMTOKEN #IMPLIED
AddressLine1 CDATA #IMPLIED | AddressLine2 CDATA #IMPLIED |
CityOrTown CDATA #IMPLIED | StateOrRegion CDATA #IMPLIED |
PostalCode CDATA #IMPLIED | Country CDATA #IMPLIED |
<!-- BRAND LIST COMPONENT -->
<!ELEMENT BrandList (Brand+, ProtocolAmount+, CurrencyAmount+, PayProtocol+)>
<!ATTLIST BrandList ID | ID #REQUIRED |
xml:lang NMTOKEN #REQUIRED | ShortDesc CDATA #REQUIRED PayDirection |
<!ELEMENT Brand (ProtocolBrand*, PackagedContent*)>
<! ATTLIST Brand ID ID #REQUIRED
xml:lang NMTOKEN #IMPLIED | BrandId CDATA #REQUIRED |
BrandName CDATA #REQUIRED | BrandLogoNetLocn CDATA #REQUIRED |
BrandNarrative CDATA #IMPLIED | ProtocolAmountRefs IDREFS #REQUIRED |
<!ELEMENT ProtocolBrand (PackagedContent*) >
<!ATTLIST ProtocolBrand ProtocolId CDATA #REQUIRED
ProtocolBrandId CDATA #REQUIRED>
<!ELEMENT ProtocolAmount (PackagedContent*) >
<!ATTLIST ProtocolAmount ID | ID #REQUIRED |
PayProtocolRef IDREF #REQUIRED | CurrencyAmountRefs IDREFS #REQUIRED |
<!ELEMENT CurrencyAmount EMPTY >
<!ATTLIST CurrencyAmount ID | ID #REQUIRED |
Amount CDATA #REQUIRED | CurrCodeType NMTOKEN 'ISO4217-A' |
CurrCode CDATA #REQUIRED>
<!ELEMENT PayProtocol (PackagedContent*) >
<!ATTLIST PayProtocol ID ID #REQUIRED
xml:lang NMTOKEN #IMPLIED | ProtocolId NMTOKEN #REQUIRED |
ProtocolName CDATA #REQUIRED | ActionOrgRef NMTOKEN #REQUIRED |
PayReqNetLocn CDATA #IMPLIED | SecPayReqNetLocn CDATA #IMPLIED |
<!-- BRAND SELECTION COMPONENT -->
<!ELEMENT BrandSelection (BrandSelBrandInfo?,
BrandSelProtocolAmountInfo?, | BrandSelCurrencyAmountInfo?)> |
<!ATTLIST BrandSelection ID | ID #REQUIRED |
BrandListRef NMTOKEN #REQUIRED | BrandRef NMTOKEN #REQUIRED |
CurrencyAmountRef NMTOKEN #REQUIRED>
<!ELEMENT BrandSelBrandInfo (PackagedContent+)>
<! ATTLIST BrandSelBrandInfo ID ID #REQUIRED
ContentSoftwareId CDATA #IMPLIED>
<!ELEMENT BrandSelProtocolAmountInfo (PackagedContent+)>
<!ATTLIST BrandSelProtocolAmountInfo ID ID #REQUIRED
ContentSoftwareId CDATA #IMPLIED>
<!ELEMENT BrandSelCurrencyAmountInfo (PackagedContent+)>
<!ATTLIST BrandSelCurrencyAmountInfo ID ID #REQUIRED
ContentSoftwareId CDATA #IMPLIED >
<!-- PAYMENT COMPONENT -->
<!ELEMENT Payment EMPTY>
<!ATTLIST Payment ID | ID #REQUIRED |
OkFrom CDATA #REQUIRED | OkTo CDATA #REQUIRED |
BrandListRef NMTOKEN #REQUIRED | SignedPayReceipt (True | False) #REQUIRED |
<!-- PAYMENT SCHEME COMPONENT -->
<!ELEMENT PaySchemeData (PackagedContent+) >
<!ATTLIST PaySchemeData ID | ID #REQUIRED |
PaymentRef NMTOKEN #IMPLIED | ConsumerPaymentId CDATA #IMPLIED |
PaymentHandlerPayId CDATA #IMPLIED | ContentSoftwareId CDATA #IMPLIED> |
<!ELEMENT PayReceipt (PackagedContent*) >
<!ATTLIST PayReceipt ID ID #REQUIRED | PaymentRef NMTOKEN #REQUIRED |
PayReceiptNameRefs NMTOKENS #IMPLIED | ContentSoftwareId CDATA #IMPLIED> |
<!ELEMENT PaymentNote (PackagedContent+)>
<!ATTLIST PaymentNote ID ID #REQUIREDContentSoftwareId CDATA #IMPLIED>
<!ELEMENT Delivery (DeliveryData?, PackagedContent*) >
<!ATTLIST Delivery ID | ID #REQUIRED |
xml:lang NMTOKEN #REQUIRED | DelivExch (True | False) #REQUIRED |
DelivAndPayResp (True | False) #REQUIRED | ActionOrgRef NMTOKEN #IMPLIED> |
<!ATTLIST DeliveryData xml:lang | NMTOKEN #IMPLIED |
OkFrom CDATA #REQUIRED | OkTo CDATA #REQUIRED |
DelivMethod NMTOKEN #REQUIRED | DelivToRef NMTOKEN #REQUIRED |
DelivReqNetLocn CDATA #IMPLIED | SecDelivReqNetLocn CDATA #IMPLIED |
<!-- CONSUMER DELIVERY DATA COMPONENT -->
<!ELEMENT ConsumerDeliveryData EMPTY>
<! ATTLIST ConsumerDeliveryData ID ID #REQUIRED
ConsumerDeliveryId CDATA #REQUIRED>
<!-- DELIVERY NOTE COMPONENT -->
<!ELEMENT DeliveryNote (PackagedContent+)>
<!ATTLIST DeliveryNote ID | ID #REQUIRED |
xml:lang NMTOKEN #REQUIRED | DelivHandlerDelivId CDATA #IMPLIED |
<!-- STATUS COMPONENT -->
<!ELEMENT Status EMPTY>
<!ATTLIST Status ID | ID #REQUIRED |
xml:lang NMTOKEN #REQUIRED | StatusType NMTOKEN #REQUIRED |
ElRef NMTOKEN #IMPLIED | ProcessState (NotYetStarted | InProgress | |
CompletedOk | Failed | ProcessError) #REQUIRED CompletionCode NMTOKEN #IMPLIED | |
ProcessReference CDATA #IMPLIED | StatusDesc CDATA #IMPLIED > |
<!ELEMENT TradingRoleData (PackagedContent+)>
<!ATTLIST TradingRoleData ID ID #REQUIRED
<!ELEMENT InquiryType EMPTY>
<!ATTLIST InquiryType ID | ID #REQUIRED |
Type NMTOKEN #REQUIRED | ElRef NMTOKEN #IMPLIED |
<!-- ERROR COMPONENT -->
<!ELEMENT ErrorComp (ErrorLocation+, PackagedContent*)>
<!ATTLIST ErrorComp ID | NMTOKEN #REQUIRED |
xml:lang NMTOKEN #REQUIRED | ErrorCode NMTOKEN #REQUIRED |
ErrorDesc CDATA #REQUIRED | Severity (Warning|TransientError|HardError) #REQUIRED |
MinRetrySecs CDATA #IMPLIED | SwVendorErrorRef CDATA #IMPLIED> |
<!ATTLIST ErrorLocation ElementType | NMTOKEN #REQUIRED |
IotpMsgRef NMTOKEN #IMPLIED | BlkRef NMTOKEN #IMPLIED |
CompRef NMTOKEN #IMPLIED | ElementRef NMTOKEN #IMPLIED |
<!--
**********************
* ТОРГОВЫЕ БЛОКИ *
********************** --> <!-- TRADING PROTOCOL OPTIONS BLOCK -->
<!ELEMENT TpoBlk ( ProtocolOptions, BrandList*, Org* )>
<!ATTLIST TpoBlk ID ID #REQUIRED >
<!-- TPO SELECTION BLOCK -->
<!ELEMENT TpoSelectionBlk (BrandSelection+)>
<!ATTLIST TpoSelectionBlk ID ID #REQUIRED>
<!-- OFFER RESPONSE BLOCK -->
<!ELEMENT OfferRespBlk (Status, Order?, Payment*, Delivery?, TradingRoleData*)>
<! ATTLIST OfferRespBlk ID ID #REQUIRED > <!-- AUTHENTICATION REQUEST BLOCK -->
<!ELEMENT AuthReqBlk (AuthReq*, TradingRoleInfoReq?)>
<!ATTLIST AuthReqBlk ID ID #REQUIRED> <!-- AUTHENTICATION RESPONSE BLOCK -->
<!ELEMENT AuthRespBlk (AuthResp?, Org*)>
<!ATTLIST AuthRespBlk ID ID #REQUIRED> <!-- AUTHENTICATION STATUS BLOCK -->
<!ELEMENT AuthStatusBlk (Status) >
<!ATTLIST AuthStatusBlk ID ID #REQUIRED> <!-- PAYMENT REQUEST BLOCK -->
<!ELEMENT PayReqBlk (Status+, BrandList, BrandSelection,
Payment, PaySchemeData?, Org*, TradingRoleData*)>
<!ATTLIST PayReqBlk ID ID #REQUIRED> <!-- PAYMENT EXCHANGE BLOCK -->
<!ELEMENT PayExchBlk (PaySchemeData)>
<!ATTLIST PayExchBlk ID ID #REQUIRED> <!-- PAYMENT RESPONSE BLOCK -->
<!ELEMENT PayRespBlk (Status, PayReceipt?, PaySchemeData?,
PaymentNote?, TradingRoleData*) >
<!ATTLIST PayRespBlk ID ID #REQUIRED>
<!-- DELIVERY REQUEST BLOCK -->
<!ELEMENT DeliveryReqBlk (Status+, Order, Org*, Delivery,
ConsumerDeliveryData?, TradingRoleData*) >
<!ATTLIST DeliveryReqBlk ID ID #REQUIRED> <!-- DELIVERY RESPONSE BLOCK -->
<!ELEMENT DeliveryRespBlk (Status, DeliveryNote)>
<!ATTLIST DeliveryRespBlk ID ID #REQUIRED> <!-- INQUIRY REQUEST BLOCK -->
<!ELEMENT InquiryReqBlk ( InquiryType, PaySchemeData? )>
<!ATTLIST InquiryReqBlk ID ID #REQUIRED > <!-- INQUIRY RESPONSE BLOCK -->
<!ELEMENT InquiryRespBlk (Status, PaySchemeData?)>
<!ATTLIST InquiryRespBlk ID ID #REQUIRED
LastReceivedIotpMsgRef NMTOKEN #IMPLIED
LastSentIotpMsgRef NMTOKEN #IMPLIED> <!-- PING REQUEST BLOCK -->
<!ELEMENT PingReqBlk (Org*)>
<!ATTLIST PingReqBlk ID ID #REQUIRED> <!-- PING RESPONSE BLOCK -->
<!ELEMENT PingRespBlk (Org+)>
<!ATTLIST PingRespBlk ID ID #REQUIRED
PingStatusCode (Ok | Busy | Down) #REQUIRED
BR/P> xml:lang NMTOKEN #IMPLIEDPingStatusDesc CDATA #IMPLIED> <!-- ERROR BLOCK -->
><!ELEMENT ErrorBlk (ErrorComp+, PaySchemeData*)>
<! ATTLIST ErrorBlk ID ID #REQUIRED> <!-- CANCEL BLOCK -->
<!ELEMENT CancelBlk (Status)>
<!ATTLIST CancelBlk ID ID #REQUIRED>
<!--
*****************************
* Определение блока подписи *
***************************** -->
<!ELEMENT IotpSignatures (Signature+ ,Certificate*)>
<!ATTLIST IotpSignatures ID ID #IMPLIED> <!--
*******************************************
* Определение компонента подписи IOTP *
******************************************* --> <!ELEMENT Signature (Manifest, Value+) >
<!ATTLIST Signature ID ID #IMPLIED> <!ELEMENT Manifest ( Algorithm+,
Digest+,
Attribute*,
OriginatorInfo,
RecipientInfo+ )> <!ATTLIST Manifest LocatorHRefBase CDATA #IMPLIED> <!ELEMENT Algorithm (Parameter*)>
<!ATTLIST Algorithm ID ID #REQUIRED
>type (digest|signature) #IMPLIEDname NMTOKEN #REQUIRED> <!ELEMENT Digest (Locator, Value)>
<!ATTLIST Digest DigestAlgorithmRef IDREF #REQUIRED> <!ELEMENT Attribute ( ANY ) >
<!ATTLIST Attribute type NMTOKEN #REQUIRED
>critical ( true | false ) #REQUIRED> <!ELEMENT OriginatorInfo ANY >
<!ATTLIST OriginatorInfo OriginatorRef NMTOKEN #IMPLIED> <!ELEMENT RecipientInfo ANY >
<!ATTLIST RecipientInfo SignatureAlgorithmRef IDREF #REQUIRED
SignatureValueRef IDREF #IMPLIEDSignatureCertRef IDREF #IMPLIED
RecipientRefs NMTOKENS #IMPLIED> <!ELEMENT KeyIdentifier EMPTY>
<!ATTLIST KeyIdentifier value CDATA #REQUIRED> <!ELEMENT Parameter ANY >
<!ATTLIST Parameter type CDATA #REQUIRED>
<!--
*******************************************
* Определение компонента сертификата IOTP *
******************************************* -->
<!ELEMENT Certificate ( IssuerAndSerialNumber, ( Value | Locator ) )> <!ATTLIST Certificate ID ID #IMPLIEDtype NMTOKEN #REQUIRED> <!ELEMENT IssuerAndSerialNumber EMPTY >
<!ATTLIST IssuerAndSerialNumber issuer CDATA #REQUIRED number CDATA
#REQUIRED>
<!--
**************************************
* Определение компонента SHARED IOTP *
************************************** -->
<!ELEMENT Value ( #PCDATA )>
<!ATTLIST Value ID ID #IMPLIED encoding (base64|none) 'base64'> <!ELEMENT Locator EMPTY>
<!ATTLIST Locator xml:link CDATA #FIXED 'simple' href CDATA #REQUIRED>