Subject: RE: Otp -> Iotp ??

From: David Burdett <[email-masked]>
Date: Wed, 19 May 1999 01:38:00 +0100

There's also a need to change the valid value for the Relationship attribute
of the Related To element within a Transaction Reference block from
"OtpTransaction" to "IotpTransactio".

David

> ----------
> From: 	Donald E. Eastlake 3rd[SMTP:[email-masked]]
> Sent: 	18 May 1999 06:02
> To: 	Ietf Trade WG
> Subject: 	Re: Otp -> Iotp ?? 
> 
> I think we should go ahead and do the otp -> iotp change.
> 
> Thanks,
> Donald
> 
> From:  David Burdett <[email-masked]>
> Message-Id:  <[email-masked]>
> To:  Ietf Trade WG <[email-masked]>
> Date:  Tue, 18 May 1999 02:17:10 +0100
> 
> >There are still some element or attribute names in the DTD that contain
> >"Otp" rather than "Iotp". Do we want to change them? My view is yes,
> >although if anyone strongly objects I'm open to persuasion.
> >
> >Names to which this applies are:
> >*	OtpMessage, 
> >*	OtpTransId, 
> >*	OtpTransType, 
> >*	RespOtpMsg, 
> >*	OtpMsgIdPrefix, 
> >*	OtpMsgRef, 
> >*	LastReceivedOtpMsgRef, 
> >*	LastSentOtpMsgRef
> >
> >The first is an element. The rest are attributes.
> >
> >Thoughts?
> >
> >David
> >> mailto:<[email-masked]>
> >> Mondex International, US Advanced Technology Office
> >> 111 Pine St, 6th Floor, San Francisco, CA 94111
> >> Tel/Voicemail: +1 415 645 6973	Fax: +1 415 956 9370
> -----------------------------------------------------------------------
> Message addressed to: [email-masked]
> Archive available at: http://www.elistx.com/archives/ietf-trade/
> To (un)subscribe send a message with "subscribe" or "unsubscribe" in the
> body to: [email-masked]
> 

**********************************************************************************************

This Email and any attached files are confidential and may also be privileged. 
If you are not the intended recipient, please notify the postmaster using email 
address [email-masked] or call +44 171 557 5000 and ask for the 
IT Helpdesk.  You should not copy this email and any attached files, use them 
for any purpose or disclose the contents to any other person; all copies of the 
Email and associated files in your possession should be destroyed.

Mondex International Limited
47-53 Cannon Street
London EC4M 5SQ
United Kingdom
Registered No: 3122085, England

Phone:          +44 171 557 5000
Fax:            +44 171 557 5200
Email:          [email-masked]
WebSite:        http://www.mondexinternational.com

*********************************************************************************************
-----------------------------------------------------------------------
Message addressed to: [email-masked]
Archive available at: http://www.elistx.com/archives/ietf-trade/
To (un)subscribe send a message with "subscribe" or "unsubscribe" in the
body to: [email-masked]

---

From: "Smith, Chris" <[email-masked]>
Date: Wed, 26 May 1999 09:55:00 -0400

As a courtesy, could you mail a (non-normative) list of these changes to 
the mailing list? It seems that the indicated Elements, Attributes and 
the single attribute value "OtpTransaction" are the only items, right?

It would help those of us who are actually starting to use the other 
values. DRAFT, yes, but this would guarantee a complete break between 
DRAFT and final, affecting every piece of IOTP code that works with the 
message. (My DOM calls regularly start at the base <OtpMessage> and work 
down.)

It's a simple change now, and if we use a version indicator such as 
"DRAFT1.0" then we can easily detect the difference as final 1.0 
versions start to show up.

...Chris

______________________________ Reply Separator
_________________________________
Subject: Otp -> Iotp ??
Author:  "David Burdett" [SMTP:[email-masked]] at Internet
Date:    1999/05/17 09:17 PM

Thoughts?

David

---

From: David Burdett <[email-masked]>
Date: Wed, 26 May 1999 20:43:33 +0100

I thought it might be simpler if I sent the latest, partially updated,
version of the DTD. Note that I've added DRAFT and todays date to the top,
so that this version can be distinguished from later versions.

As far as changed attribute values are concerned. The only one to change is,
as Chris says, the RelationshipType attribute of the RelatedTo element.

Note that some of the changes still under discussion have not yet been
implemented in the attached DTD. The changes that have been made are
itemised in comments at the start.

David
PS. The DTD is at the END of this email.

> ----------
> From: 	Smith, Chris[SMTP:[email-masked]]
> Sent: 	26 May 1999 06:55
> To: 	"Ietf Trade WG" ; "David Burdett" 
> Subject: 	RE: Otp -> Iotp ??
> 
> 
<!--
DRAFT MAY 26, 1999
******************************************************
*                                                    *
* INTERNET OPEN TRADING PROTOCOL DTD VERSION 04      *
* Filename: iotp-v1.0-protocol-04.dtd                *
*                                                    *
* Changes from version 03 (iotp-v1.0-protocol-04.dtd)*
* - changed SigBlk to Signatures in the IotpMessage  *
*   element to make consistent with the new signature*
*   definition                                       *
* - added LangPrefList and CharSetPrefList to MsgId  *
*   component to indicate language and character set *
*   preference of sender of the message              *
* - replace PayReceiptRefs attribute by              *
*   PayReceiptNameRefs in the Pay Receipt Component  *
* - add PaymentRef as required attribute of          *
*   Payment Scheme Data                              *
* - Changed 'Otp' to 'Iotp' in OtpMessage element    *
* - Changed 'Otp' to 'Iotp' in following attribute   *
*   names: OtpTransId, OtpTransType, RespOtpMsg,     *
*   OtpMsgIdPrefix, OtpMsgRef, LastReceivedOtpMsgRef,*
*   LastSentOtpMsgRef                                *
* - Added AuthenticationId after the Id attribute in *
*   the AuthResp block                               *
* - Deleted IotpMsgIdPrefix from Org Component and   *
*   added IotpMsgIdPrefix to Trading Role Component  *
* - Changed occurence of AuthData in the AuthReq     *
*   block from '?' to '*', so that each AuthData     *
*   component defines an authentication method to be *
*   chosen, and, in the AuthData Component, changed  *
*   Packaged content occurences from '?' to '*' and  *
*   removed AlgorithmRefs attribute                  *
* - Added TradingRoleInfoReq component to request    *
*   information about a Trading Role                 *
* - Changed Pay Response Block (PayRespBlk) to make  *
*   Pay Receipt Component (PayReeipt) optional       *
* - Changed occurence of PackagedContent within the  *
*   PayReceipt component from '+' to '*'             *
* - Add ProtocolBrand element defintion as child of  *
*   Brand element                                    *
*                                                    *
* Copyright Internet Engineering Task Force 1998,99  *
*                                                    *
******************************************************

******************************************************
* IOTP MESSAGE DEFINITION                            *
******************************************************
 -->

<!ELEMENT IotpMessage
   ( TransRefBlk,
     Signatures?,
     ErrorBlk?,
     ( AuthReqBlk |
       AuthRespBlk |
       AuthStatusBlk |
       CancelBlk |
       DeliveryReqBlk |
       DeliveryRespBlk |
       InquiryReqBlk |
       InquiryRespBlk |
       OfferRespBlk |
       PayExchBlk |
       PayReqBlk |
       PayRespBlk |
       PingReqBlk |
       PingRespBlk |
       TpoBlk |
       TpoSelectionBlk
     )*
   ) >
<!ATTLIST IotpMessage
  xmlns:iotp	CDATA	
   'ietf.org/draft-ietf-trade-iotp-v1.0-protocol-04' >

<!--
******************************************************
* TRANSACTION REFERENCE BLOCK DEFINITION             *
******************************************************
 -->

<!ELEMENT TransRefBlk (TransId, MsgId, RelatedTo*) >
<!ATTLIST TransRefBlk
 ID                 ID      #REQUIRED >

<!ELEMENT TransId EMPTY >
<!ATTLIST TransId
 ID                 ID      #REQUIRED
 Version            NMTOKEN #FIXED '1.0'
 IotpTransId        NMTOKEN #REQUIRED
 IotpTransType      CDATA   #REQUIRED
 TransTimeStamp     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 Common Element                    *
******************************************************
 -->

<!ELEMENT PackagedContent (#PCDATA) >
<!ATTLIST PackagedContent
 Name             NMTOKEN   #IMPLIED
 Content          NMTOKEN   "PCDATA"
 Transform (NONE|BASE64)    "NONE" >

<!--
******************************************************
* TRADING COMPONENTS                                 *
******************************************************
 -->
<!-- PROTOCOL OPTIONS COMPONENT -->
<!ELEMENT ProtocolOptions EMPTY >
<!ATTLIST ProtocolOptions
 ID                 ID      #REQUIRED
 xml:lang           NMTOKEN #REQUIRED
 ShortDesc          CDATA   #REQUIRED
 SenderNetLocn      CDATA   #IMPLIED
 SecureSenderNetLocn CDATA  #IMPLIED
 SuccessNetLocn     CDATA   #REQUIRED >

<!-- AUTHENTICATION DATA COMPONENT -->
<!ELEMENT AuthReq (Algorithm, PackagedContent*)>
<!ATTLIST AuthReq
 ID                 ID      #REQUIRED
 AuthenticationId   CDATA   #REQUIRED
 ContentSoftwareId  CDATA   #IMPLIED >

<!-- AUTHENTICATION RESPONSE COMPONENT -->
<!ELEMENT AuthResp (PackagedContent*) >
<!ATTLIST AuthResp
 ID                 ID      #REQUIRED
 AuthenticationId   CDATA   #REQUIRED
 SelectedAlgorithmRef NMTOKEN #REQUIRED
 ContentSoftwareId  CDATA   #IMPLIED >

<!-- TRADING ROLE INFO REQUEST COMPONENT -->
<!ELEMENT TradingRoleInfoReq EMPTY>
<!ATTLIST TradingRoleInfoReq
 ID                 ID      #REQUIRED
 TradingRoleList    NMTOKEN #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
 ContentSoftwareId  CDATA   #IMPLIED >

<!-- 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
 LogoNetLocn        CDATA   #IMPLIED >

<!ELEMENT TradingRole EMPTY >
<!ATTLIST TradingRole
 ID		ID	#REQUIRED
 TradingRole        NMTOKEN #REQUIRED
 IotpMsgIdPrefix    NMTOKEN #REQUIRED
 CancelNetLocn      CDATA   #REQUIRED
 ErrorNetLocn       CDATA   #REQUIRED
 ErrorLogNetLocn	CDATA	#IMPLIED >

<!ELEMENT ContactInfo EMPTY >
<!ATTLIST ContactInfo
 xml:lang           NMTOKEN #IMPLIED
 Tel                CDATA   #IMPLIED
 Fax                CDATA   #IMPLIED
 Email              CDATA   #IMPLIED
 NetLocn            CDATA   #IMPLIED >

<!ELEMENT PersonName EMPTY >
<!ATTLIST PersonName
 xml:lang           NMTOKEN #IMPLIED
 Title              CDATA   #IMPLIED
 GivenName          CDATA   #IMPLIED
 Initials           CDATA   #IMPLIED
 FamilyName         CDATA   #IMPLIED >

<!ELEMENT PostalAddress EMPTY >
<!ATTLIST PostalAddress
 xml:lang           NMTOKEN #IMPLIED
 AddressLine1       CDATA   #IMPLIED
 AddressLine2       CDATA   #IMPLIED
 CityOrTown         CDATA   #IMPLIED
 StateOrRegion      CDATA   #IMPLIED
 PostalCode         CDATA   #IMPLIED
 Country            CDATA   #IMPLIED
 LegalLocation (True | False) 'False' >

<!-- BRAND LIST COMPONENT -->
<!ELEMENT BrandList (Brand+, ProtocolAmount+,
 CurrencyAmount+, PayProtocol+) >
<!ATTLIST BrandList
 ID                 ID      #REQUIRED
 xml:lang           NMTOKEN #REQUIRED
 ShortDesc          CDATA   #REQUIRED
 PayDirection (Debit | Credit) #REQUIRED >

<!ELEMENT Brand (ProtocolBrand*, PackagedContent*) >
<!ATTLIST Brand
 ID                 ID      #REQUIRED
 xml:lang           NMTOKEN #IMPLIED
 BrandId            NMTOKEN #REQUIRED
 BrandName          CDATA   #REQUIRED
 BrandLogoNetLocn   CDATA   #REQUIRED
 BrandNarrative     CDATA   #IMPLIED
 ProtocolAmountRefs IDREFS  #REQUIRED
 ContentSoftwareId  CDATA   #IMPLIED >

<!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
 ContentSoftwareId  CDATA   #IMPLIED >

<!ELEMENT CurrencyAmount EMPTY >
<!ATTLIST CurrencyAmount
 ID                 ID      #REQUIRED
 Amount             CDATA   #REQUIRED
 CurrCodeType       NMTOKEN 'ISO4217'
 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
 ContentSoftwareId  CDATA   #IMPLIED >

<!-- BRAND SELECTION COMPONENT -->
<!ELEMENT BrandSelection (BrandSelBrandInfo?,
     BrandSelProtocolAmountInfo?, 
     BrandSelCurrencyAmountInfo?) >
<!ATTLIST BrandSelection
 ID                 ID      #REQUIRED
 BrandListRef       NMTOKEN #REQUIRED
 BrandRef           NMTOKEN #REQUIRED
 ProtocolAmountRef  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
 StartAfter         NMTOKENS #IMPLIED >

<!-- PAYMENT SCHEME COMPONENT -->
<!ELEMENT PaySchemeData (PackagedContent+) >
<!ATTLIST PaySchemeData
 ID                 ID      #REQUIRED
 PaymentRef         NMTOKEN #REQUIRED
 ConsumerPaymentId  CDATA   #IMPLIED
 PaymentHandlerPayId CDATA  #IMPLIED
 ContentSoftwareId  CDATA   #IMPLIED >

<!-- PAYMENT RECEIPT COMPONENT -->
<!ELEMENT PayReceipt (PackagedContent*) >
<!ATTLIST PayReceipt
 ID                 ID      #REQUIRED
 PaymentRef         NMTOKEN #REQUIRED
 PayReceiptNameRefs NMTOKENS #IMPLIED
 ContentSoftwareId  CDATA   #IMPLIED >

<!-- PAYMENT NOTE COMPONENT -->
<!ELEMENT PaymentNote (PackagedContent+) > 
<!ATTLIST PaymentNote 
  ID                ID      #REQUIRED
  ContentSoftwareId CDATA   #IMPLIED >

<!-- DELIVERY COMPONENT -->
<!ELEMENT Delivery (DeliveryData?, PackagedContent*) >
<!ATTLIST Delivery
 ID                 ID      #REQUIRED
 xml:lang           NMTOKEN #REQUIRED
 DelivExch          (True | False) #REQUIRED
 DelivAndPayResp    (True | False) #REQUIRED
 ActionOrgRef       NMTOKEN #IMPLIED
 ConsumerDeliveryId CDATA   #IMPLIED >

<!ELEMENT DeliveryData (PackagedContent*) >
<!ATTLIST DeliveryData
 xml:lang           NMTOKEN #IMPLIED
 OkFrom             CDATA   #REQUIRED
 OkTo               CDATA   #REQUIRED
 DelivMethod        NMTOKEN #REQUIRED
 DelivToRef         NMTOKEN #REQUIRED
 DelivReqNetLocn    CDATA   #REQUIRED
 SecDelivReqNetLocn CDATA   #REQUIRED
 ContentSoftwareId  CDATA   #IMPLIED >

<!-- DELIVERY NOTE COMPONENT -->
<!ELEMENT DeliveryNote (PackagedContent+) >
<!ATTLIST DeliveryNote
 ID                 ID      #REQUIRED
 xml:lang           NMTOKEN #REQUIRED
 DelivHandlerDelivId CDATA  #IMPLIED
 ContentSoftwareId  CDATA   #IMPLIED >

<!-- STATUS COMPONENT -->
<!ELEMENT Status EMPTY >
<!ATTLIST Status
 ID                 ID      #REQUIRED
 xml:lang           NMTOKEN #REQUIRED
 StatusType         NMTOKEN #REQUIRED
 ElRef              NMTOKEN #REQUIRED
 ProcessState (NotYetStarted | InProgress | 
     CompletedOk | Failed | ProcessError) #REQUIRED
 CompletionCode     NMTOKEN #IMPLIED
 ProcessReference   CDATA   #IMPLIED
 StatusDesc         CDATA   #IMPLIED >

<!-- TRADING ROLE DATA COMPONENT -->
<!ELEMENT TradingRoleData (PackagedContent+) >
<!ATTLIST TradingRoleData
  ID                ID      #REQUIRED
  OriginatorElRef   NMTOKEN #REQUIRED
  DestinationElRefs NMTOKENS #REQUIRED >

<!-- INQUIRY TYPE COMPONENT -->
<!ELEMENT InquiryType EMPTY >
<!ATTLIST InquiryType
 ID                 ID      #REQUIRED
 Type               NMTOKEN #REQUIRED
 ElRef              NMTOKEN #IMPLIED
 ProcessReference   CDATA   #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 >

<!ELEMENT ErrorLocation EMPTY >
<!ATTLIST ErrorLocation
 ElementType        NMTOKEN #REQUIRED
 IotpMsgRef         NMTOKEN #REQUIRED
 BlkRef             NMTOKEN #IMPLIED
 CompRef            NMTOKEN #IMPLIED
 ElementRef         NMTOKEN #IMPLIED
 AttName            NMTOKEN #IMPLIED >

<!--
******************************************************
* TRADING BLOCKS                                     *
******************************************************
 -->

<!-- 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,
     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
 SigVerifyStatusCode (Ok | NotSupported | Fail) #IMPLIED
 xml:lang           NMTOKEN #IMPLIED
 PingStatusDesc     CDATA   #IMPLIED>

<!-- ERROR BLOCK -->
<!ELEMENT ErrorBlk (ErrorComp+, PaySchemeData*) >
<!ATTLIST ErrorBlk
 ID                 ID      #REQUIRED >

<!-- CANCEL BLOCK -->
<!ELEMENT CancelBlk (Status) >
<!ATTLIST CancelBlk
 ID                 ID      #REQUIRED >

<!--
******************************************************
* IOTP SIGNATURES BLOCK DEFINITION                   *
******************************************************
 -->

<!ELEMENT IOTPSignatures (Signature+, Certificate*) >
<!ATTLIST IOTPSignatures
  ID                ID      #IMPLIED >

<!--
******************************************************
* IOTP SIGNAUTRE COMPPONENT DEFINITION               *
******************************************************
 -->

<!ELEMENT Signature (Manifest, Value+) >
<!ATTLIST Signature
  ID                ID      #IMPLIED >

<!ELEMENT Manifest 
  (Algorithm+,
   Digest+,
   Attributes?,
   OriginatorInfo,
   RecipientInfo+,
  )
<!ATTLIST Manifest
  LocatorHRefBase   CDATA   #IMPLIED >

<!ELEMENT Algorithm (Parameter*) >
<!ATTRLIST Algorithm
 ID                 ID      #REQUIRED
 type  (digest|signature|keyagreement) #IMPLIED
 name               NMTOKEN #REQUIRED >
 
<!ELEMENT Digest (Value) >
<!ATTLIST Digest
 LocatorHREF        NMTOKEN #REQUIRED
 DigestAlgorithmRef IDREF   #REQUIRED >

<!ELEMENT Attributes (Attribute+) >

<!ELEMENT Attribute ( #PCDATA ) >
<!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    #REQUIRED
 SignatureCertRef   IDREF    #IMPLIED
 RecipientRefs      NMTOKENS #IMPLIED >

<!ELEMENT Parameter ANY >
<!ATTLIST Parameter
 type               PCDATA  #REQUIRED >

<!--
******************************************************
* IOTP CERTIFICATE COMPPONENT DEFINITION             *
******************************************************
 -->
<!ELEMENT Certificate (
  IssuerAndSerialNumber 
  ( Value | Locator ) )>
<!ATTLIST Certificate
 ID                 ID      #IMPLIED
 type               NMTOKEN #REQUIRED >

<!ELEMENT IssuerAndSerialNumber EMPTY >
<!ATTLIST IssuerAndSerialNumber
 issuer             CDATA   #REQUIRED
 number             CDATA   #REQUIRED >

<!ELEMENT Value ( #PCDATA ) >
<!ATTLIST Value
 id                 ID      #IMPLIED
 encoding ( base64 | none ) #REQUIRED >

<!ELEMENT Locator EMPTY>
<!ATTLIST Locator
 href               CDATA   #REQUIRED >

Phone:          +44 171 557 5000
Fax:            +44 171 557 5200