Issue 6413-I: Review of XPath Dialect. Was: Issue 6413: WS-Transfer with Extensible Fragment Support

Issue I: Review of XPath Dialect

We would like to review the XPath dialect in detail, but have the following questions:

First, it is not clear what, within a resource, is in scope of needing to be identified.  Is it:

*        Elements by themselves?

*        Elements and their children?

*        Attributes?

*        Text?

*        Substrings of text?

*        Comments?

*        Processing instructions?
All of the above, or only some of the above?

Second, what are the environmental constraints on this dialect?   For example, the proposed text had an advocacy note of "This grammar is small enough that it can be easily implemented in resource-constrained implementations." Is the charter targeting resource constrained implementations?  If so, how constrained?

Third, what is resource management model of WS-RA for a standard appropriate to the World Wide Web? For example, the dialect identifies repeating elements by position.  That would be fine for documents which are static, but what happens when the service structures the document based on 'environmental factors', or where there are multiple clients independently adding and removing elements to a collection?   Such an approach seems to violate the assumptions called out in the introduction to the original WS-Transfer submission, as shown below:
While the usual case should be that resources are long-lived and stable, there are no guarantees, and clients should code defensively.
There is no requirement for uniformity in resource representations between the messages defined in this specification.   For example, the representations required by Create or Put may differ from the representation returned by Get, depending on the semantic requirements of the service.   Additionally, there is no requirement that the resource content is fixed for any given endpoint reference. The resource content may vary based on environmental factors, such as the security context, time of day, configuration, or the dynamic state of the service.


--Geoff


From: public-ws-resource-access-request@w3.org [mailto:public-ws-resource-access-request@w3.org] On Behalf Of Katy Warr
Sent: Wednesday, March 25, 2009 9:23 AM
To: public-ws-resource-access@w3.org
Cc: David Snelling; Doug Davis
Subject: 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: http://www.w3.org/2002/ws/ra/tracker/actions/39.

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 dialect:
- 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 complexity.
- 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 this.

The proposed document with markup in word and html is here:
http://www.soaphub.org/public/files/w3c/WSTWithBasicFragmenSupport.htm
http://www.soaphub.org/public/files/w3c/WSTWithBasicFragmenSupport.doc

Thanks,
Katy


________________________________


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

Received on Saturday, 11 April 2009 00:08:50 UTC