RE: What WSDL defines - the diagram!

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