- From: Jonathan Marsh <jmarsh@microsoft.com>
- Date: Tue, 28 May 2002 15:44:21 -0700
- To: "Roberto Chinnici" <roberto.chinnici@sun.com>, <www-ws-desc@w3.org>
> One small change that might go unnoticed is that the default value for the > "required" attribute of a wsdl:extension element is now "true". So Jeffrey's table changes from: -- wsdl:extension omitted | -- wsdl:extension @required omitted | | -- wsdl:extension @required false | | | -- wsdl:extension @required true | | | | @wsdl:required omitted MAY MAY MAY MUST @wsdl:required false MAY MAY MAY MAY @wsdl:required true MUST MUST MUST MUST to: -- 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 > -----Original Message----- > From: Roberto Chinnici [mailto:roberto.chinnici@sun.com] > Sent: Tuesday, May 28, 2002 11:58 AM > To: www-ws-desc@w3.org > Subject: Doubly revised extensibility proposal > > Here's the latest version of the extensibility proposal. > > I extended it (excuse the pun) with attribute extensions, since we've been > discussing > them on the mailing list. Also, I got rid of the "recommendations" section > (since it > doesn't seem to belong with the rest) and moved some paragraphs around. > > One small change that might go unnoticed is that the default value for the > "required" attribute of a wsdl:extension element is now "true". > > Regards, > Roberto > > -- > Roberto Chinnici > Java and XML Software > Sun Microsystems, Inc. > > ======== > > 1. Allow extension elements on every WSDL element, e.g. by adding > <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" > processContents="lax"/> > to every complex type in the WSDL schema. > > Similarly, allow extension attributes on every WSDL element, e.g. by > adding > <xsd:anyAttribute namespace="##other" processContents="lax"/>. > > Any element or attribute matching the rules above is an Extension. For > clarity, > in what follows we'll sometime use the terms Element Extension (resp. > Attribute > Extension) to indicate an Extension which is an element (resp. an > attribute). > > 2. Modify the wsdl grammar (section 2.1 of the spec) to add Extension > Declarations immediately inside a wsdl:definition element: > > <wsdl:definitions name="nmtoken"? targetNamespace="uri"?> > > <wsdl:extension namespace="uri" required="boolean"?/>* > > <wsdl:import namespace="uri" location="uri"/>* > > <!-- rest of the wsdl grammar follows --> > > The default value for the "required" attribute of the "wsdl:extension" > element is "true". > > [Extension Declarations are at the beginning of the document > so that by the time a processor sees any non-trivial wsdl content, > it's aware of all the processing rules.] > > [Later on, we'll want to add all built-in extensions to the set of > required > extension namespace names, so that they don't get declared in each > wsdl document.] > > 3. Keep the wsdl:required attribute (of type xsd:boolean) from WSDL 1.1. > This > attribute is meaningful only when applied to Element Extensions. > > 4. Define the following terms: > > The "set of extension namespace names" is formed by collecting > the values of all the "namespace" attributes of the "wsdl:extension" > elements. > > The "set of required extension namespace names" is formed by > collecting the values of all the "namespace" attributes of the > "wsdl:extension" > elements whose "required" attribute has a value of "true". > > An Attribute Extension is Required if its namespace name is a member > of the set > of required extension namespace names. > > An Element Extension is Required if: (a) its namespace name is a > member of > the set of required extension namespace names AND the Extension does > not > have a wsdl:required attribute whose value is "false", or (b) the > Extension > has a wsdl:required attribute whose value is "true". > > 5. Mandate the following processing model: > > a) Extension Declarations > > A processor that encounters an Extension Declaration whose > "required" > attribute has the value of "true" and that does not recognize its > namespace > MUST stop processing the wsdl document at once. > > A processor that recognizes an Extension Declaration whose > "required" > attribute has the value of "true" MUST obey its rules for the > entire duration > of its processing of the wsdl document in which it appears. Such > rules are > allowed to override other wsdl processing rules defined by this > specification. > > It is recommended that the effect of these rules be as localized > as possible; > in particular, their effect SHOULD be local to elements that > contain > Extensions belonging to that particular vocabulary. > > b) Required Extensions > > A processor that encounters a Required Extension and that either > doesn't > recognize its vocabulary or fails to process it successfully MUST > stop > processing the wsdl document. > > c) Other Extensions > > A processor that encounters an Extension which is not Required and > whose > vocabulary it does not recognize MUST ignore it. > > A processor that encounters an Extension which is not Required and > whose > vocabulary it understands MUST attempt to process it following the > rules > for that vocabulary. In case of failure, the processor MUST > continue > processing the document as if the Extension had not been present > (thus > having the same effect as if the Extension's vocabulary had not > been > recognized by the processor). >
Received on Tuesday, 28 May 2002 18:44:27 UTC