- From: Roberto Chinnici <roberto.chinnici@sun.com>
- Date: Sun, 02 Jun 2002 20:20:58 -0700
- To: Jonathan Marsh <jmarsh@microsoft.com>
- CC: www-ws-desc@w3.org
With the current proposal, there is a difference between the following two cases: (1) having a required extension declaration and an extension element belonging to it and marked optional; (2) having a required extension declaration and an extension element belonging to it and marked as required (either by specifying wsdl:required="true" or omitting it). The difference is in the behavior of a processor in case of failure at handling the extension element: in the first case, the processor MUST continue processing the document as if the extension element had not been present, while in the second case it MUST abort processing. Incidentally, this shows that there are some aspects of the processing rules contained in my proposal which are not captured by the table. This can be seen as being either good or bad, of course! Roberto Jonathan Marsh wrote: > > During the telcon it occurred to me that a couple of values in the table > for Roberto's proposal have little practical value. > > -- wsdl:extension omitted > | -- wsdl:extension @required omitted > | | -- wsdl:extension @required false > | | | -- wsdl:extension @required true > | | | | > @wsdl:required omitted MAY MUST MAY MUST > @wsdl:required false MAY >MAY< MAY >MAY< > @wsdl:required true MUST MUST MUST MUST > > The values marked >MAY< enable an extension namespace to be marked as > required, while making specific elements in that namespace optional, as > in the following example: > > <wsdl:extension namespace="uri1" required="true"/> > ... > <x xmlns="uri1"/> > ... > <y xmlns="uri1" wsdl:required="false"/> > > But, a WSDL processor not understanding the uri1 namespace will stop > when it sees the first required use of this namespace. So, > wsdl:required="false" only has utility if there is no wsdl:extension > with required="true" (in which case wsdl:required="false" is a no-op), > or if every occurrence of the namespace is marked as > wsdl:required="false" (in which case the presence of wsdl:extension with > required="true" is somewhere between irrelevant and semantically > inaccurate). > > The inverse also seems to have little utility: wsdl:extension with > required="false" and wsdl:required="true". > > <wsdl:extension namespace="uri1" required="false"/> > ... > <x xmlns="uri1" wsdl:required="true"/> > ... > <y xmlns="uri1"/> > > The presence of wsdl:required="true" means that a processor not > understanding the uri1 namespace will stop. The optionality of > non-required use of the namespace will not change the behavior. > > So, it seems to me that a single instance of a required extension is > enough to cause the whole WSDL to crash and burn. Doesn't this mean > that any need for finer granularity than a namespace is an illusion? > What differences in behavior are there between the two examples above > and the example below? Doesn't this mean that @wsdl:required is > unnecessary? > > <wsdl:extension namespace="uri1"/> > ... > <x xmlns="uri1"/> > ... > <y xmlns="uri1"/>
Received on Sunday, 2 June 2002 23:20:53 UTC