W3C home > Mailing lists > Public > www-ws-desc@w3.org > May 2002

RE: Extensibility proposal

From: Jonathan Marsh <jmarsh@microsoft.com>
Date: Wed, 8 May 2002 15:04:19 -0700
Message-ID: <330564469BFEC046B84E591EB3D4D59C05FB076D@red-msg-08.redmond.corp.microsoft.com>
To: <www-ws-desc@w3.org>
It looks like your proposal forces some redundancy.  You mark extensions
using an <wsdl:extensions> element, and you mark annotations by placing
them within a <wsdl:annotations> element.  Why not simply say that any
namespaced element/attribute not designated as a required extension by
<wsdl:extensions> is an annotation?

This solves the convenience problem of using attribute-based
annotations.  For instance, Igor's concern over the "location" attribute
might be solved by allowing the purpose to be served by an annotation.

  <wsdl:extension namespace="uri" my:location="uri"?/>

BTW, I think my/your term "annotation" is Igor's term "optional language

> -----Original Message-----
> From: Roberto Chinnici [mailto:roberto.chinnici@sun.com]
> Sent: Tuesday, May 07, 2002 9:57 AM
> To: www-ws-desc@w3.org
> Subject: Extensibility proposal
> Here's my proposal for extensibility in WSDL.next.
> Right now, I won't touch the subject of open attributes, since I feel
> if we
> can agree on element extensibility everything else will fall in place
> (ever the optimist!)
> 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.
>    Any element matching the rule above is an Extension. An Extension
>    considered to be an "Extension to" the element containing it (so we
> speak
>    of an Extension to a Binding, etc.), or even a "XYZ Extension" (as
>    "a Binding Extension").
> 2. Add to every WSDL element a wsdl:annotation child element thus
>     <xsd:element name="annotation">
>       <xsd:complexType>
>         <xsd:complexContent>
>             <xsd:sequence minOccurs="0" maxOccurs="unbounded">
>               <xsd:any namespace="##other" processContents="lax"/>
>             </xsd:sequence>
>         </xsd:complexContent>
>       </xsd:complexType>
>     </xsd:element>
>    Any element that appears as a child of a wsdl:annotation element
>    is an Annotation. Notice that Annotations are *not* Extensions.
> 3. Remove the wsdl:required attribute.
> 4. Modify the wsdl grammar (section 2.1 of the spec) to add Language
>    Extension Declarations immediately inside a wsdl:definition
>     <wsdl:definitions name="nmtoken"? targetNamespace="uri"?>
>         <wsdl:extension namespace="uri" location="uri"?/>*
>         <wsdl:import namespace="uri" location="uri"/>*
>         <!-- rest of the wsdl grammar follows -->
>     The "set of language extension namespace names" is formed by
> collecting
>     the values of all the "namespace" attributes of the
>     elements.
>     The "location" attribute of the wsdl:extension element is for
>     reference purposes only.
>     [Language Extension Declarations are at the beginning of the
>      so that by the time a processor sees any non-trivial wsdl
>      it's aware of all the processing rules.]
> 5. Define the following terms:
>     An Extension whose element has a namespace name which is a member
>     of the set of extension namespace names is called a Language
> Extension.
>     Certain wsdl elements can declare to have architected extension
>     (e.g. wsdl:binding). An Extension of one of these elements and
> is
>     not a Language Extension is called an Architected Extension.
> 6. Mandate the following processing model:
>     a) Annotations
>         A processor MUST ignore any Annotations that it does not
> recognize.
>         A processor that recognizes an Annotation MAY use the
>         contained therein during processing. The presence of an
>         must not modify in any way the processing rules prescribed by
>         specification and followed by the processor.
>     b) Language Extensions
>         A processor that encounters a Language Extension Declaration
>         does not recognize its namespace MUST stop processing the wsdl
>         document at once.
>         A processor that recognizes a Language Extension Declaration
>         obey its rules for the entire duration of its processing of
> wsdl
>         document in which it appears. Such rules are allowed to
> other
>         wsdl processing rules defined by this specification.
>         It is recommended that the effect of these rules be as
> as possible;
>         in particular, their effect SHOULD be local to the elements
> contain
>         Language Extensions belonging to that particular vocabulary.
>         Language Extensions that define new globally named constructs
> (e.g. the
>         way wsdl portType, message, binding and service do) SHOULD
> as
>         children of the wsdl:definitions element; moreover, they
> define
>         their own symbol space and they SHOULD follow the QName
> rules
>         that this specification defines.
>         [Hopefully, this will make it easier to use two extensions at
> same time,
>         although in general all bets are off.]
>     c) Architected Extensions
>         A processor that encounters an Architected Extension that it
> not
>         recognize MUST flag the element that directly contains it as
> understood".
>         [Note: we should define what the implications of not
>          an element are. Intuitively, if a processor does not
recognize an
>          Architected Extension of, say, a binding, it does not fully
> understand
>          the binding itself, so it cannot make any practical use of
> This is
>          not reason enough, though, to reject the whole document.]
>     d) Other Extensions
>         A processor that encounters an Extension element which is
>         a Language Extension nor an Architected Extension MUST stop
> processing
>         the wsdl document at once; such a wsdl document is deemed
>         [Of course, this rule can be overridden by a Language
Extension !]
> Comments?
> Roberto
> --
> Roberto Chinnici
> Java and XML Software
> Sun Microsystems, Inc.
Received on Wednesday, 8 May 2002 18:04:50 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 23:06:23 UTC