Here are some proposed changes to address issue 47 - Payload extensible
Metadata. I am basing the changes on Working Draft 14 of the Core Spec.
Note that the schema will need to be updated based on these changes. I have
not updated the schema at this point.
----
Section 5.2.1.11 eb:Messaging/eb:UserMessage/eb:MessageProperties
Change "payload" to "message" at line 833. I want to do this to distinguish
between properties that are tied to the entire message, and properties that
are tied to a single payload.
Its actual semantics is beyond the scope of this specification. The element
is intended to be consumed outside the ebMS specified functions. It may
contain some information that qualifies or abstracts message data, or that
allows for binding the message to some business process. A representation in
the header of such properties allows for more efficient monitoring,
correlating, dispatching and validating functions (even if these are out of
scope of ebMS specification) that do not require payload access.
----
Section 5.2.1.13
remove "eb:Description" element lines 861-865.
----
Section 5.2.1.13
Add the following
eb:Messaging/eb:UserMessage/eb:PayloadInfo/eb:PartInfo/eb:PartProperties
This element has zero or more eb:Property child elements.
An eb:Property element is of xs:anySimpleType (e.g. string, URI) and has a
@name attribute, the value of which must be agreed between partners.
Its actual semantics is beyond the scope of this specification. The element
is intended to be consumed outside the ebMS specified functions. It may
contain meta-data that qualifies or abstracts the payload data. A
representation in the header of such properties allows for more efficient
monitoring, correlating, dispatching and validating functions (even
if these are out of scope of ebMS specification) that do not require payload
access.
Example:
<eb:PayloadProperties>
<eb:property name="Description">Purchase Order for 11 widgets</eb:property>
<eb:property name="MimeType">application/xml</eb:property>
</eb:PayloadProperties>
-----
Section 5.2.1.13
Update example XML - remove eb:Description element and add eb:PartProperties
element and sub-elements.
<eb:PayloadInfo>
<eb:PartInfo href="cid:foo@example.com">
<eb:Schema eb:location="http://example.org/bar.xsd" eb:version="2.0"/>
<eb:PartProperties>
<eb:property name="Description">Purchase Order for 11
widgets</eb:property>
<eb:property name="MimeType">application/xml</eb:property>
</eb:PartProperties>
</eb:PartInfo>
<eb:PartInfo href="#goo_payload_id">
<eb:Schema eb:location="http://example.org/bar.xsd" eb:version="2.0"/>
<eb:PartProperties>
<eb:property name="Description">Purchase Order for 10000
widgets</eb:property>
<eb:property name="MimeType">application/xml</eb:property>
</eb:PartProperties>
</eb:PartInfo>
</eb:PayloadInfo>
-----
5.3.1 Example must be updated.
eb:Description element Removed and eb:PartInfo element added
S11:Envelope xmlns:S11="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:eb="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-3
_0.xsd">
<S11:Header>
<eb:Messaging eb:version="3.0" S11:mustUnderstand="1">
<eb:UserMessage>
<eb:MessageInfo>
<eb:Timestamp>2000-07-25T12:19:05</eb:Timestamp>
<eb:MessageId>UUID-1@requester.example.com</eb:MessageId>
</eb:MessageInfo>
<eb:PartyInfo>
<eb:From>
<eb:PartyId>uri:requester.example.com</eb:PartyId>
<eb:Role>http://example.org/roles/Buyer</eb:Role>
</eb:From>
<eb:To>
<eb:PartyId eb:type="someType">QRS543</eb:PartyId>
<eb:Role>http://example.org/roles/Seller</eb:Role>
</eb:To>
</eb:PartyInfo>
<eb:CollaborationInfo>
<eb:AgreementRef>http://registry.example.com/cpa/123456</eb:AgreementRef>
<eb:Service>QuoteToCollect</eb:Service>
<eb:Action>NewPurchaseOrder</eb:Action>
<eb:ConversationID>4321</eb:ConversationID>
</eb:CollaborationInfo>
<eb:MessageProperties>
<eb:property
name="ProcessInst">PurchaseOrder:123456</eb:property>
<eb:property name="ContextID"> 987654321</eb:property>
</eb:MessageProperties>
<eb:PayloadInfo>
<eb:PartInfo href="cid:foo@example.com">
<eb:Schema eb:location="http://example.org/bar.xsd" eb:version="2.0"/>
<eb:PartProperties>
<eb:property name="Description">Purchase Order for 11
widgets</eb:property>
<eb:property name="MimeType">application/xml</eb:property>
</eb:PartProperties>
</eb:PartInfo>
</eb:PayloadInfo>
</eb:UserMessage>
</eb:Messaging>
</S11:Header>
<S11:Body>
...
</S11:Body>
</S11:Envelope>...
----
Regards,
Ric