- From: David Orchard <dorchard@bea.com>
- Date: Wed, 20 Jul 2005 17:02:51 -0700
- To: <www-ws-desc@w3.org>
- Message-ID: <32D5845A745BFB429CBDBADA57CD41AF1156694E@ussjex01.amer.bea.com>
Gotcha. I understand the scenario. Again, I don't agree that it is as easy to solve as the "unknown" scenario. My main concern has been that extensions can be added that "ought" to be easily expressible in schema but aren't possible given the schema language. For example, adding a new name. What you are asking for is something like: <type name="shipto"> <sequence> <element ref="ad:name" minOccurs="1"/> <element ref="nad:country" maxOccurs="0"/> </sequence> </type> To have all the maxOccurs changed from "0" to unbounded and to insert an <xs:any namespace="##any"/> everywhere. So something like the following would be allowed: <shipTo> <nad:country>UK</nad:country> <ad:name>HM Queen</ad:name> <ad:city>London</ad:city> <nad:country>US</nad:country> <ad:street>Buck House</ad:street> <ad:street>Buck House</ad:street> <nad:country>Canada</nad:country> <ad:city>London</ad:city> <wsa:action>foo</wsa:action/> <nad:country>Australia</nad:country> </shipTo> I think this will be harder to program to, validate, do interop on, and meet our schedule. Dave _____ From: Arthur Ryman [mailto:ryman@ca.ibm.com] Sent: Wednesday, July 20, 2005 2:51 PM To: David Orchard Cc: Arthur Ryman; www-ws-desc@w3.org; www-ws-desc-request@w3.org Subject: RE: LC124: Comment on V2S and [validity]=notKnown David, As we discussed today, the use case is that a customer wants to evolve their message to include <nad:country/> which is already defined in a corporate schema but not in the V1 version of the <shipTo> schema. They create V2 which adds <nad:country> but don't want existing V1 clients to break when they recieve the V2 messages. The <nad:country/> would be defined as optional in V2. It is therefore additive content. We want to ignore it. It is known but unexpected according to V1 of the <shipTo> schema. Arthur Ryman, Rational Desktop Tools Development phone: +1-905-413-3077, TL 969-3077 assistant: +1-905-413-2411, TL 969-2411 fax: +1-905-413-4920, TL 969-4920 mobile: +1-416-939-5063, text: 4169395063@fido.ca intranet: http://labweb.torolab.ibm.com/DRY6/ "David Orchard" <dorchard@bea.com> Sent by: www-ws-desc-request@w3.org 07/20/2005 02:47 PM To "Arthur Ryman" <arthur.ryman@gmail.com>, <www-ws-desc@w3.org> cc Subject RE: LC124: Comment on V2S and [validity]=notKnown If the customer has <nad:country> in their type library and this gets validated, then what's the problem? If they don't have <nad:country> then it gets ignored. If they want to say shipTo must have <and:country>, then they come up with a new type and the one with <nad:country> will fail because it's not valid. This is all goodness. Cheers, Dave > -----Original Message----- > From: www-ws-desc-request@w3.org [mailto:www-ws-desc-request@w3.org] On > Behalf Of Arthur Ryman > Sent: Tuesday, July 19, 2005 8:02 PM > To: www-ws-desc@w3.org > Subject: LC124: Comment on V2S and [validity]=notKnown > > > I reviewed Henry Thomas' presentation [1] that described the validate > twice with surgery (V2S) algorithm for ignoring additive content. This > algorithm makes certain assumptions about the additive content, which > I think need examination. > > The basis of V2S is that a schema processor attempts to validate a > message and in the process makes contributions to the PSVI. The key > contribution being the [validity] property which can be valid, > invalid, or notKnown. The later means that validation has not been > attempted because, e.g. there is no declaration available for the > element. > > Consider the following example from Henry's presentation: > > <shipTo> > <ad:name>HM Queen</ad:name> > <ad:street>Buck House</ad:street> > <ad:city>London</ad:city> > <nad:country>UK</nad:country> > </shipTo> > > Here it is supposed that the <nad:country> element has been added to > version 2 of the schema for the message. After attempting validation, > the <nad:country> element has [validity]=notKnown, presumably because > the processor only has version 1 of the schema available. The surgery > step chops this element out, and then the message is valid wrt version > 1. > > I am troubled by this approach because it assumes you will only add > elements that are brand new, i.e. are not part of version 1 or any > schema it references. > > I work with one customer that defines standard elements for common > data items such as customer ids, account numbers, etc. These are used > as the building blocks of messages. It seems very likely to me that > this customer may want to add one of these predefined elements to an > existing message. Even Henry's example suggest this type of > versioning. Adding something as standard as a country would likely be > done using an existing element declaration. So the element is in fact > known in this case, and the first validation pass would mark it as > [validity]=valid. The enclosing <shipTo> would still be invalid since > <nad:country> is not part of its content model. In this case V2S fails > to give the desired result. > > I think we need to carefully understand the assumptions behind V2S and > decide if they are useful enough in practice to be enshrined in WSDL > 2.0. > > [1] http://www.markuptechnology.com/XMLEu2004/
Received on Thursday, 21 July 2005 00:03:00 UTC