RE: LC124: Comment on V2S and [validity]=notKnown

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