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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-msg message

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


Subject: Errata for ebMS UPA issue, draft of text.


[ fulfills an action item assigned Nov. 5]

Errata: 

In msg-header-2_0.xsd, an "Acknowledgment" element is defined that has a content model with the following sequence:

<sequence>
   <element ref="tns:Timestamp"/>
   <element ref="tns:RefToMessageId"/>
   <element ref="tns:From" minOccurs="0"/>
   <element ref="ds:Reference" minOccurs="0" maxOccurs="unbounded"/>                      
   <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</sequence>

This definition is incorrect because it leads to a violation of the Unique Particle Attribution constraint.

The most conservative correction, that leaves functionality specified in Version 2.0 of ebXML Messaging intact, is to remove the "any" element. In other words, a schema would be created that replaced the above by the following,

<sequence>
   <element ref="tns:Timestamp"/>
   <element ref="tns:RefToMessageId"/>
   <element ref="tns:From" minOccurs="0"/>
   <element ref="ds:Reference" minOccurs="0" maxOccurs="unbounded"/>                      
</sequence>

The ebXML Messaging specification Version 2.0 does not specify any functionality actually using the "Acknowledgment" element's extension point supplied by the "any" element. 

If parties are using an extension in their acknowledgments, and need to have signatures and to do checks on instances with respect to their schema validity, then a suggested "work around" is to make a local copy of the schema that modifies the 'namespace="##other"' to refer to the namespace(s) of the element(s) that are, by bilateral agreement, allowed to be inserted at the extension point. For example, if an element

<cinfo:ContactInfo xmlns.cinfo="http://extension.example.com/AckExtensions";> 
http://example.com/Contact.html</cinfo:ContactInfo>

is an extension element, then the content model could be modified to read:

<sequence>
   <element ref="tns:Timestamp"/>
   <element ref="tns:RefToMessageId"/>
   <element ref="tns:From" minOccurs="0"/>
   <element ref="ds:Reference" minOccurs="0" maxOccurs="unbounded"/>                      
   <any namespace="http://extension.example.com/AckExtensions"; processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
</sequence>



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