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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-cppa message

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


Subject: Defaults for information in ThisPartyActionBinding


Hello,
 
The proposal for adding an MshDeliveryChannel element made me wonder whether the idea of having default values on PartyInfo that can be changed for a specific action binding could be extended to other information in ThisPartyActionBinding.
 
[1] With an attribute @tp:defaultBusinessChannelId, the sub-element "ChannelId" could be optional, with semantics as for MshDeliveryChannel below.
 
[2] With an attribute @tp:defaultBusinessPackageId, the attribute @tp:packageId could be optional.
 
[3] In an earlier message today (http://lists.oasis-open.org/archives/ebxml-cppa/200606/msg00008.html) I proposed an attribute @tp:businessTransactionCharacteristics.  There could also be a default value for this attribute specified as tp:PartyInfo/@tp:defaultBusinessTransactionCharacteristics attribute.
 
These three attributes could allow for very succinct, readable and more easily human-editable CPAs. 
 
The impact on CPA processors would be minimal, as it just a syntactic extension. 
The attached stylesheet transforms a CPA that uses these defaults to one that doesn't.
 
Pim
 
 


From: Dale Moberg [mailto:dmoberg@cyclonecommerce.com]
Sent: 02 February 2006 00:30
To: ebxml-cppa@lists.oasis-open.org
Subject: [ebxml-cppa] MshChannel preliminary proposal and questions

Here is a draft based on Sacha Schlegel’s analysis of the problem of per Action configuration of delivery channels for mshSignals.

 

 

 

 

The proposed element name, subject to change, is MshDeliveryChannel.

 

Some questions about the content:

 

1. The packaging will not normally be the same as the packaging for the Action. It will normally just be a simple SOAP message or a SWA message perhaps. So an optional packageRef attribute is available to refer to a Package element for the Msh signal.

2. The channelRef refers to a DeliveryChannel element with both a reference to transport details and docExchange details. It is also possible to directly refer to these items. Normally the Transport element will be relevant, but the DocExchange can describe security aspects of the Msh signal data exchange.

 

 

<xsd:element name="MshDeliveryChannel">

                        xsd:annotation>

                        <xsd:documentation>

                        If the MshDeliveryChannel is not present, the defaultMSHChannel will be used.

                        If the MshDeliveryChannel is present but the syncReplyMode of the delivery channel referenced in "ChannelId" indicates synchronous transport the element will be neglected.

                        If the MshDeliveryChannel is present, and syncReplyMode indicates asynchronous transport and there is an OverrideMSHChannelId, then MshDeliveryChannel value has precedence.              

                        </xsd:documentation>

                                    </xsd:annotation>

                        <xsd:complexType>

                                    <xsd:attribute name="channelRef" type="xsd:IDREF"/>

                                    <xsd:attribute name="packageRef" type="xsd:IDREF" use="optional"/>

                        </xsd:complexType>

            </xsd:element>

 

 

The element is found in the context, and can occur zero or one times.

 

Should this instead be zero or unbounded times? (for CPP usage for example.)

 

 

 

<xsd:complexType name="ActionBindingType">

                        <xsd:complexContent>

                                    <xsd:restriction base="tns:ActionBindingBaseType">

                                                <xsd:sequence>

                                                            <xsd:element ref="tns:BusinessTransactionCharacteristics"/>

                                                            <xsd:element ref="tns:ActionContextHead" minOccurs="0"/>

                                                            <xsd:element ref="tns:ChannelId" maxOccurs="unbounded"/>

                                                            <xsd:element ref="tns:MshDeliveryChannel" minOccurs="0"/>

                                                            <xsd:any namespace="##other" processContents="lax" minOccurs="0"

                                                                        maxOccurs="unbounded"/>

                                                </xsd:sequence>

                                                <xsd:attribute name="id" type="xsd:ID" use="required"/>

                                                <xsd:attribute name="action" type="tns:non-empty-string" use="required"/>

                                                <xsd:attribute name="packageId" type="xsd:IDREF" use="required"/>

                                                <xsd:attribute ref="xlink:href" use="optional"/>

                                                <xsd:attribute ref="xlink:type" fixed="simple"/>

                                    </xsd:restriction>

                        </xsd:complexContent>

            </xsd:complexType>

 

I will be sending the entire draft of the 2.1 schema later in the week when I resolve which of the tools I am using is correct (one says valid, the other complains about an improper type restriction… Also I am still working on identifying which sections need to be updated.)

 

 

<?xml version="1.0" ?>
<xsl:stylesheet 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
    xmlns:tp="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd"; 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
    xsi:schemaLocation="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd 
    http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd"; 
    version="2.0"
    >

<xsl:output  method="xml" encoding="utf-8" indent="yes" />

<xsl:template match="tp:ThisPartyActionBinding">
    <xsl:copy>
        <xsl:if test="not(@tp:businessTransactionCharacteristics)">
            <xsl:if test="ancestor::tp:PartyInfo/@tp:defaultBusinessTransactionCharacteristics">
                <xsl:attribute name="tp:businessTransactionCharacteristics"><xsl:value-of select="ancestor::tp:PartyInfo/@tp:defaultBusinessTransactionCharacteristics" /></xsl:attribute>
            </xsl:if>
        </xsl:if>
        <xsl:if test="not(@tp:packageId)">
            <xsl:if test="ancestor::tp:PartyInfo/@tp:defaultBusinessPackageId">
                <xsl:attribute name="tp:packageId"><xsl:value-of select="ancestor::tp:PartyInfo/@tp:defaultBusinessPackageId" /></xsl:attribute>
            </xsl:if>
        </xsl:if>
        <xsl:apply-templates select="@*" />
        <xsl:apply-templates />
        <xsl:if test="not(tp:ChannelId)">
            <xsl:if test="ancestor::tp:PartyInfo/@tp:defaultBusinessChannelId">
                <tp:ChannelId><xsl:value-of select="ancestor::tp:PartyInfo/@tp:defaultBusinessChannelId" /></tp:ChannelId>
            </xsl:if>
        </xsl:if>    
    </xsl:copy>
</xsl:template>
 
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*" />
            <xsl:apply-templates />
        </xsl:copy>
    </xsl:template>
   
</xsl:stylesheet>


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