Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Ws Wiki" for change 
notification.

The following page has been changed by JohnKaputin:
http://wiki.apache.org/ws/FrontPage/Woden/WSDLExtensions

The comment on the change is:
Added links to Part1 and Part2 specs and notes about XMLAttr implementations

------------------------------------------------------------------------------
  
  The Woden API has 2 WSDL models; the Component model 
({{{org.apache.woden.wsdl20}}}) represents the abstract WSDL component model 
described in the WSDL 2.0 Part 1 spec and the Element model 
({{{org.apache.woden.wsdl20.xml}}}) represents the WSDL 2.0 XML Infoset (i.e. 
the XML representation of the WSDL 2.0 components described in Part 1).  Both 
WSDL models are extensible. The Element model supports ''extension elements'' 
and ''extension attributes''. The Component model supports ''extension 
properties''. Extension properties are an abstraction of extension elements and 
extension attributes - i.e. WSDL Components may be extended by extension 
properties which may originate from extension elements or attributes in a WSDL 
document, but this distinction is not reflected in the Component model.
  
+ See the editors copy of the WSDL 2.0 Part 1 Core Language spec at: 
+ 
http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl20/wsdl20.html?content-type=text/html;%20charset=utf-8
+ 
  Woden's WSDL extension architecture is based on that used in WSDL4J for 
handling extension elements and attributes. It has been enhanced in Woden to 
support Component extension properties too. Applications can follow the Woden 
Extension model to define WSDL extensions and register them in an extension 
registry. At runtime Woden will query the extension registry when it encounters 
unknown (i.e. non-WSDL) content and invoke any registered extension artifacts 
via a well defined API to handle the unknown content. These artifacts include 
Java classes or objects, such as serializers and deserializers and Java type 
mappings. 
  
  So for example, if Woden encounters some unknown content in a WSDL document 
(i.e. non-WSDL elements or attributes) it will check if an extension has been 
registered for this content and if so, will use the registered deserializer to 
convert the XML content into the registered Java type. A similar approach will 
exist for serializing Java types into extension elements or attributes. When 
initializing the Component model from the Element model, Woden will use 
registered component extensions to map the extension elements or attributes in 
the Element model to extension properties in the Component model.
  
  The Woden API will include two extensions based on this extension 
architecture and the Woden implementation will pre-register them in the 
extension registry. These extensions will be the SOAP binding extensions and 
HTTP binding extensions described in the WSDL 2.0 Part 2 Adjuncts spec.  
Applications can use this same extension architecture to create their own 
extensions and register them in the extension registry.
+ 
+ See the editors copy of the WSDL 2.0 Part 2 Adjuncts spec at:
+ 
http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl20/wsdl20-adjuncts.html?content-type=text/html;%20charset=utf-8
  
  The Woden Extension API is defined by the interfaces declared in package 
{{{org.apache.woden.wsdl20.extensions}}}. These are implemented by classes from 
the WSDL Element and Component models or by the extension classes themselves. 
These interfaces form a well defined API used by Woden to invoke 
extension-specific logic without the need for extension-specific additions to 
the Woden API. Some of these methods are discussed below.
  
@@ -55, +61 @@

   * wsoap:mepDefault of type ''xs:anyURI'' is represented by {{{URIAttr}}}. 
  
  The <wsdl:fault> element within <wsdl:binding> has 2 SOAP extension 
attributes, which are registered as attribute extensions of 
{{{BindingFaultElement}}}:
-  * wsoap:code of type ''union of xs:QName and xs:token'' is represented by 
{{{QNameOrTokenAttr}}}.
-  * wsoap:subcodes of type ''union of List of xs:QName and xs:token'' is 
represented by {{{QNameListOrTokenAttr}}}.
+  * wsoap:code of type ''union of xs:QName and xs:token'' is represented by 
{{{QNameOrTokenAttr}}}. Note that the implementation class actually registered 
in the extension registry is called {{{QNameOrTokenAnyAttrImpl}}} and this 
performs an additional check that an xs:token has the value ''#any''.
+  * wsoap:subcodes of type ''union of List of xs:QName and xs:token'' is 
represented by {{{QNameListOrTokenAttr}}}. Note that implementation class 
actually registered in the extension registry is called 
{{{QNameListOrTokenAnyAttrImpl}}} and this  performs an additional check that 
an xs:token has the value ''#any''.
  
  The <wsdl:operation> element within <wsdl:binding> has 2 SOAP extensions 
attributes, which are registered as attribute extensions of 
{{{BindingOperationElement}}}:
   * wsoap:mep of type ''xs:anyURI'' is represented by {{{URIAttr}}}.

Reply via email to