- From: David Booth <dbooth@w3.org>
- Date: Mon, 10 Nov 2003 16:44:56 -0500
- To: "Martin Gudgin" <mgudgin@microsoft.com>
- Cc: <www-ws-desc@w3.org>, <paul.downey@bt.com>, "Anne Thomas Manes" <anne@manes.net>, "Mark Baker" <distobj@acm.org>, "Glen Daniels" <gdaniels@sonicsoftware.com>, Sanjiva Weerawarana <sanjiva@watson.ibm.com>, Savas Parastatidis <Savas.Parastatidis@newcastle.ac.uk>
At 02:11 AM 11/7/2003 -0800, Martin Gudgin wrote: >It's not about a 'document'. It's about a set of WSDL components. You >can't tell by looking at a single document whether it violates the >unique definitions rule. You have to follow imports to do that, which is >something only a WSDL processor can do ( whether that processor is >implemented in wetware, XSLT, Java or whatever ). Sorry, I thought it would be clear that when I said "document" I was referring to the logical document, i.e., the infoset or set of components obtained after expanding any imports, etc. >So, I disagree that our job is only to state what it means to be a WSDL >document. We do need to state that. But we also need to state what it >mean to be a valid set of WSDL components. Note that the distinction >here is EXACTLY the same as that between a schema document and a schema. Hmm, if I'm understanding you correctly, we seem to be in violent agreement. Are you referring to the difference between a physical schema document and the logical schema that such a document represents? If so, I agree with you 100%. When you say "we also need to state what it means to be a valid set of WSDL components", I assume (and hope) you are talking about the set of WSDL components logically defined by a *single* sentence in the WSDL language, i.e., the components logically defined by a single <wsdl:definitions> element. For example, if you have: File A contains <wsdl:definitions> and imports only file B. File B contains <wsdl:definitions> and does not import anything. File C contains <wsdl:definitions> and does not import anything. Then the components logically defined by file A include those that are physically defined in B. However, the components logically defined by file B do NOT include those that are physically defined in C. So if we say: A_Comp is the set of components logically defined by file A B_Comp is the set of components logically defined by file B C_Comp is the set of components logically defined by file C then the WSDL 2.0 spec should define whether A_Comp is valid. (Note that A_Comp corresponds to a *single* sentence in the WSDL language.) However, in my opinion the WSDL 2.0 spec should NOT define whether the union of X_Comp and Y_Comp is valid. (X_Comp and Y_Comp correspond to *two* sentences in the WSDL language.) HOWEVER, that was not really my point. My point was that we SHOULD be defining what constitutes a valid or invalid sentence in the WSDL language, but we should NOT be prescribing what a WSDL processor must *do* with such a sentence. This distinction may be subtle, but it is fundamental. It can be particularly confusing when a (logical) processing model is used to describe the validity rules. It is fine to define a logical processing model as a means for determining whether a given sentence is valid. However, it should be clearly stated that such a processing model is logical only -- not physical. In other words, the processing model does not constrain what an implementation must do. It only constrains what sentences are valid in the language. The point is that it's one thing to talk about what constitutes a valid or invalid sentence in a given language. It's a totally different thing to prescribe what a processor of that language must *do* when presented with such a sentence. The diagram[1] I drew at the F2F was merely used to communicate this point. 1. http://lists.w3.org/Archives/Public/www-archive/2003Nov/0002.html -- David Booth W3C Fellow / Hewlett-Packard Telephone: +1.617.253.1273
Received on Monday, 10 November 2003 16:45:08 UTC