Issue 6413: WS-Transfer with Extensible Fragment Support

Following discussions on issue 6413 during the March F2F, Dave and I were 
tasked to create a new proposal that integrated basic fragment support 
(from WS-RT) into WS-T:   

Dave, Doug and I have worked on this and have the following proposal:

A key requirement of this action item was minimum change to the core WS-T 
specification (as the amount of change to the WS-T spec was a concern with 
the initial proposal).  With this in mind, our proposal adds only an 
optional 'Dialect' attribute to each operation.  This attribute specifies 
how the extensibility elements in the in the body will be processed - thus 
providing a fully extensible mechanism to the WS-Transfer spec, but with 
minimum changes. 

We were sensitive to the fact that WS-T implementations should not need to 
process the soap body unnecessarily.  The dialect attribute has the useful 
side effect of indicating whether processing of extensibility elements in 
the soap body is required.   More importantly, its absence indicates when 
processing is not required.  For the Get and Delete operations, (where 
processing of the body is not necessary if there is no extensibility), we 
state: "When this attribute is not present, child elements of the wst:Get 
MUST be ignored." 

In terms of dialect definition, we have defined one dialect only: XPath 
Level 1 Expression Dialect and this is contained in Appendix A. 
 Implementation of this dialect is optional and other (optional) dialects 
may be defined by other specifications.  The XPath Level 1 Expression 
Dialect was chosen because it satisfies the core fragment use cases 
without introducing additional complexity.   XPath Level 1 restricts the 
evaluation of an XPath 1.0 expression to a single element thus providing 
simple fragment support for the majority of use cases.  Multiple elements 
could still be targeted via an XPath Level 1 expression by inclusion of a 
parent element by the application to encapsulate child multiple elements. 

Note the following with respect to the defined  XPath Level 1 expression 
- We have restricted the dialect to disallow multiple fragment support 
(i.e. only one expression/fragment per request).   Again, this was to 
ensure that we were covering core use case without introducing unnecessary 
- For simplification, we have not introduced the Put 'Mode' element from 
WS-RT.  Fragment deletion may be performed with Delete and the XPath Level 
1 expression dialect.  Fragment insertion may be performed with Create and 
the XPath L 1 Dialect.

Note that the schema has not been updated to reflect the proposal as it 
seemed prudent to await decision by the group prior to spending time on 

The proposed document with markup in word and html is here:


Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU

Received on Wednesday, 25 March 2009 16:24:13 UTC