Re: Doubly revised extensibility proposal

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