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

One of the "interesting" aspects of the problem is that we must solve is how we decide on the interpretation of ambiguous results.
 
For example, it will be legal to take your example:
 

<type name="shipto">

<sequence>

<element ref="ad:name" minOccurs="1" maxOccurs="unbounded"/>

<element ref="nad:country" minOccurs="0"/>

</sequence>

</type>

 

(yes, I meant to change that to minOccurs)

 

and feed it data like:

 

<shipto>

<ad:name>fred</ad:name>

<nad:country>Australia</nad:country>

<ad:name>bill</ad:name>

</shipto>

 

which can legitimately be interpreted (after ignorance has been applied) as:

 

<shipto>

<ad:name>fred</ad:name>

<ad:name>bill</ad:name>

</shipto>

 

OR

 

<shipto>

<ad:name>fred</ad:name>

<nad:country>Australia</nad:country>

</shipto>

 

The latter is my expected interpretation (and may well be the easier to program), but the former is legitimate (it takes the approach of grabbing as many ad:name elements as it can, and it still satisfies the schema).

 

What do other people think? 

 

Tony Rogers

 

	-----Original Message----- 
	From: www-ws-desc-request@w3.org on behalf of David Orchard 
	Sent: Thu 21-Jul-05 10:02 
	To: www-ws-desc@w3.org 
	Cc: 
	Subject: 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:51:03 UTC