[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]