OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

business-transaction message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Issue 7 update


Peter, Doug, and BTP group,

Attached are the updates to the informal XML section of the spec and the 
schema that resulted from the issue 7 discussion.

The following comment made by Doug during the discussion is not resolved 
in the attached documents...

 > The superior-type element has a default of "atom" but that is not even
 > indicated in text after the table.  The transaction-type element in a
 > BEGIN should be used to set the superior-type of the created CONTEXT
 > but does not have a default.  These elements are pretty much Booleans
 > (have very similar behaviour to an is-cohesion Boolean with a default
 > of false) and I can see the utility of providing that default.  Again,
 > the smaller change would be to remove one sentence (at lines
 > 2175-2176).  I cannot remember if the protocol provides another
 > in-band mechanism to create a CONTEXT beyond BEGIN (without an
 > associated CONTEXT, of course).  If such a mechanism exists, other
 > choices may be prudent.

We did not discuss this issue on the call.  According to the current 
state of the docs, the CONTEXT's transaction-type has a default, but 
BEGIN's transaction-type does not.


Regards,

Alex

2004-03-16.BTP_1.0_with_issue_7.doc

<?xml version="1.0"?>
<schema
    xmlns="http://www.w3.org/2001/XMLSchema";
    targetNamespace="urn:oasis:names:tc:BTP:1.0:core"
    xmlns:btp="urn:oasis:names:tc:BTP:1.0:core"
    elementFormDefault="qualified">



    <!-- Qualifiers -->

    <complexType name="qualifier-type">
        <complexContent mixed="true">
            <restriction base="anyType">
                <sequence>
                    <any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                </sequence>
                <attribute name="must-be-understood" type="boolean" use="optional" default="true"/>
                <attribute name="to-be-propagated" type="boolean" use="optional" default="false"/>
            </restriction>
        </complexContent>
    </complexType>      
    
    <element name="qualifier" type="btp:qualifier-type" abstract="true"/>
    
    <element name="qualifiers">
        <complexType>
            <choice>
                <element ref="btp:qualifier" minOccurs="0" maxOccurs="unbounded"/>
                <any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </choice>
        </complexType>
    </element>

    <!-- example qualifier definition:
        <element name="some-qualifer" type="btp:qualifier-type" substitutionGroup="btp:qualifier"/>
    -->



    <!-- Message set data types -->

    <simpleType name="identifier">
        <restriction base="anyURI" />
    </simpleType>

    <simpleType name="additional-information">
        <restriction base="string" />
    </simpleType>

    <complexType name="address">
        <sequence>
            <element name="binding-name" type="string"/>
            <element name="binding-address" type="string"/>
            <element name="additional-information" type="btp:additional-information" minOccurs="0" />
        </sequence>
        <attribute name="priority" type="positiveInteger" use="optional" default="1"/>
    </complexType>

    <simpleType name="superior-type">
        <restriction base="string">
            <enumeration value="cohesion"/>
            <enumeration value="atom"/>
        </restriction>
    </simpleType>

    <simpleType name="transaction-type">
        <restriction base="string">
            <enumeration value="cohesion"/>
            <enumeration value="atom"/>
        </restriction>
    </simpleType>



    <!-- Compounding -->

    <element name="messages">
        <complexType>
            <sequence>
                <element ref="btp:message" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
    </element>

    <element name="related-group" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element ref="btp:message" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
        </complexType>    
    </element>



    <!-- Message set -->

    <element name="message" abstract="true" />

    <element name="context" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="superior-address" type="btp:address" maxOccurs="unbounded"/>
                <element name="superior-identifier" type="btp:identifier"/>
                <element name="superior-type" type="btp:superior-type" minOccurs="0" default="atom"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="reply-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>

    <element name="context-reply" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="superior-identifier" type="btp:identifier"/>
                <element name="completion-status">
                    <simpleType>
                        <restriction base="string">
                            <enumeration value="completed"/>
                            <enumeration value="incomplete"/>
                            <enumeration value="related"/>
                            <enumeration value="repudiated"/>
                        </restriction>
                    </simpleType>
                </element>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>

    <element name="request-status" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="target-identifier" type="btp:identifier"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="reply-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>  

    <element name="status" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="responders-identifier" type="btp:identifier"/>
                <element name="status-value">
                      <simpleType>
                    <restriction base="string">
                        <enumeration value="created"/>
                        <enumeration value="enrolling"/>
                        <enumeration value="active"/>
                        <enumeration value="resigning"/>
                        <enumeration value="resigned"/>
                        <enumeration value="preparing"/>
                        <enumeration value="prepared"/>
                        <enumeration value="confirming"/>
                        <enumeration value="confirmed"/>
                        <enumeration value="cancelling"/>
                        <enumeration value="cancelled"/>
                        <enumeration value="cancel-contradiction"/>
                        <enumeration value="confirm-contradiction"/>
                        <enumeration value="hazard"/>
                        <enumeration value="contradicted"/>
                        <enumeration value="unknown"/>
                        <enumeration value="inaccessible"/>
                    </restriction>
                      </simpleType>
                </element>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>
    
    <element name="fault" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="superior-identifier" type="btp:identifier" minOccurs="0"/>
                <element name="inferior-identifier" type="btp:identifier" minOccurs="0"/>
                <element name="fault-type">
                    <simpleType>
                    <restriction base="string">
                        <enumeration value="communication-failure"/>
                        <enumeration value="duplicate-inferior"/>
                        <enumeration value="general"/>
                        <enumeration value="invalid-decider"/>
                        <enumeration value="invalid-inferior"/>
                        <enumeration value="invalid-superior"/>
                        <enumeration value="status-refused"/>
                        <enumeration value="invalid-terminator"/>
                        <enumeration value="unknown-parameter"/>
                        <enumeration value="unknown-transaction"/>
                        <enumeration value="unsupported-qualifier"/>
                        <enumeration value="wrong-state"/>
                        <enumeration value="redirect"/>
                    </restriction>                  
                    </simpleType>
                </element>
                <element name="fault-text" type="string" minOccurs="0"/>
                <element name="fault-data" type="anyType" minOccurs="0"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>

    <element name="enrol" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="superior-identifier" type="btp:identifier"/>
                <element name="response-requested" type="boolean" minOccurs="0" default="false"/>
                <element name="inferior-address" type="btp:address" minOccurs="1" maxOccurs="unbounded"/>
                <element name="inferior-identifier" type="btp:identifier"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="reply-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>

    <element name="enrolled" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="inferior-identifier" type="btp:identifier"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="sender-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>

    <element name="resign" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="superior-identifier" type="btp:identifier"/>
                <element name="inferior-identifier" type="btp:identifier"/>
                <element name="response-requested" type="boolean" minOccurs="0" default="false"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="sender-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>
    
    <element name="resigned" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="inferior-identifier" type="btp:identifier"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="sender-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>
    
    <element name="prepare" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="inferior-identifier" type="btp:identifier"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="sender-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>

    <element name="prepared" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="superior-identifier" type="btp:identifier"/>
                <element name="inferior-identifier" type="btp:identifier"/>
                <element name="default-is-cancel" type="boolean"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="sender-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>
    
    <element name="confirm" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="inferior-identifier" type="btp:identifier"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="sender-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>
    
    <element name="confirmed" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="superior-identifier" type="btp:identifier"/>
                <element name="inferior-identifier" type="btp:identifier"/>
                <element name="confirmed-received" type="boolean"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="sender-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>

    <element name="cancel" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="inferior-identifier" type="btp:identifier"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="sender-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>

    <element name="cancelled" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="superior-identifier" type="btp:identifier"/>
                <element name="inferior-identifier" type="btp:identifier" minOccurs="0"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="sender-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>
    
    <element name="confirm-one-phase" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="inferior-identifier" type="btp:identifier"/>
                <element name="report-hazard" type="boolean"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="sender-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>

    <element name="hazard" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="superior-identifier" type="btp:identifier"/>
                <element name="inferior-identifier" type="btp:identifier"/>
                <element name="level">
                    <simpleType>
                        <restriction base="string">
                            <enumeration value="mixed"/>
                            <enumeration value="possible"/>
                        </restriction>
                    </simpleType>           
                </element>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="sender-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>

    <element name="contradiction" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="inferior-identifier" type="btp:identifier"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="sender-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>
    
    <element name="superior-state" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="inferior-identifier" type="btp:identifier"/>
                <element name="status">
                    <simpleType>
                        <restriction base="string">
                            <enumeration value="active"/>
                            <enumeration value="prepared-received"/>
                            <enumeration value="inaccessible"/>
                            <enumeration value="unknown"/>
                        </restriction>
                    </simpleType>
                </element>
                <element name="response-requested" type="boolean" minOccurs="0" default="false"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="sender-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>  

    <element name="inferior-state" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="superior-identifier" type="btp:identifier"/>
                <element name="inferior-identifier" type="btp:identifier"/>
                <element name="status">
                    <simpleType>
                        <restriction base="string">
                            <enumeration value="active"/>
                            <enumeration value="inaccessible"/>
                            <enumeration value="unknown"/>
                        </restriction>
                    </simpleType>
                </element>
                <element name="response-requested" type="boolean" minOccurs="0" default="false"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="sender-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>  

    <element name="redirect" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="superior-identifier" type="btp:identifier" minOccurs="0"/>
                <element name="inferior-identifier" type="btp:identifier" />
                <element name="old-address" type="btp:address" maxOccurs="unbounded"/>
                <element name="new-address" type="btp:address" maxOccurs="unbounded"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>

    <element name="begin" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="transaction-type" type="btp:superior-type"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="reply-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>

    <element name="begun" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="decider-address" type="btp:address" minOccurs="0" maxOccurs="unbounded"/>
                <element name="inferior-address" type="btp:address" minOccurs="0" maxOccurs="unbounded"/>
                <element name="transaction-identifier" type="btp:identifier"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>

    <element name="prepare-inferiors" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="transaction-identifier" type="btp:identifier"/>
                <element name="inferiors-list" minOccurs="0">
                    <complexType>
                        <sequence>
                            <element name="inferior-identifier" type="btp:identifier" maxOccurs="unbounded"/>
                        </sequence>
                    </complexType>
                </element>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="reply-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>

    <element name="confirm-transaction" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="transaction-identifier" type="btp:identifier"/>
                <element name="inferiors-list" minOccurs="0">
                    <complexType>
                        <sequence>
                            <element name="inferior-identifier" type="btp:identifier" maxOccurs="unbounded"/>
                        </sequence>
                    </complexType>
                </element>
                <element name="report-hazard" type="boolean"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="reply-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>

    <element name="transaction-confirmed" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="transaction-identifier" type="btp:identifier"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>

    <element name="cancel-transaction" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="transaction-identifier" type="btp:identifier"/>
                <element name="report-hazard" type="boolean"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="reply-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>
                
    <element name="cancel-inferiors" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="transaction-identifier" type="btp:identifier"/>
                <element name="inferiors-list">
                    <complexType>
                        <sequence>
                            <element name="inferior-identifier" type="btp:identifier" maxOccurs="unbounded"/>
                        </sequence>
                    </complexType>
                </element>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="reply-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>      

    <element name="transaction-cancelled" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="transaction-identifier" type="btp:identifier"/>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>
    
    <element name="request-inferior-statuses" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="target-identifier" type="btp:identifier"/>
                <element name="inferiors-list" minOccurs="0">
                    <complexType>
                        <sequence>
                            <element name="inferior-identifier" type="btp:identifier" maxOccurs="unbounded"/>
                        </sequence>
                    </complexType>
                </element>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
                <element name="reply-address" type="btp:address" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>
    
    <element name="inferior-statuses" substitutionGroup="btp:message">
        <complexType>
            <sequence>
                <element name="responders-identifier" type="btp:identifier"/>
                <element name="status-list">
                  <complexType>
                    <sequence>
                      <element name="status-item" maxOccurs="unbounded">
                        <complexType>
                          <sequence>
                            <element name="inferior-identifier" type="btp:identifier"/>
                            <element name="status">
                              <simpleType>
                                <restriction base="string">
                                    <enumeration value="active"/>
                                    <enumeration value="resigned"/>
                                    <enumeration value="preparing"/>
                                    <enumeration value="prepared"/>
                                    <enumeration value="autonomously-confirmed"/>
                                    <enumeration value="autonomously-cancelled"/>
                                    <enumeration value="confirming"/>
                                    <enumeration value="confirmed"/>
                                    <enumeration value="cancelling"/>
                                    <enumeration value="cancelled"/>
                                    <enumeration value="cancel-contradiction"/>
                                    <enumeration value="confirm-contradiction"/>
                                    <enumeration value="hazard"/>
                                    <enumeration value="invalid"/>
                                  </restriction>
                                </simpleType>
                              </element>
                            <element ref="btp:qualifiers" minOccurs="0"/>
                          </sequence>
                        </complexType>
                      </element>
                    </sequence>
                  </complexType>
                </element>
                <element ref="btp:qualifiers" minOccurs="0"/>
                <element name="target-additional-information" type="btp:additional-information" minOccurs="0"/>
            </sequence>
            <attribute name="id" type="ID" use="optional"/>
        </complexType>
    </element>

</schema>



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]