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 notes on interfaces in org.apache.woden.wsdl20.extensions

------------------------------------------------------------------------------
  
  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.
  
+ 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.
- The Woden Extension API is defined by the interfaces declared in package 
{{{org.apache.woden.wsdl20.extensions}}}:
-  * {{{AttributeExtensible}}}
-  * {{{ElementExtensible}}}
-  * {{{ExtensionElement}}}
-  * {{{ExtensionSerializer}}}
-  * {{{ExtensionDeserializer}}}
-  * {{{UnknownExtensionElement}}}
-  * {{{UnknownExtensionSerializer}}}
-  * {{{UnknownExtensionDeserializer}}}
-  * {{{ComponentExtensions}}}
-  * {{{ExtensionRegistry}}}
  
- WSDL extension attributes are represented in the Woden API by the interfaces 
defined in package {{{org.apache.woden.xml}}}. These interfaces declare methods 
to convert the string values of attributes into the appropriate Java types and 
to query the original string content. When an extension attribute is registered 
in the extension registry, an implementation of one of these interfaces is 
registered as the 'handler' which deserializes it into a Java type and stores 
both the original string value and the typed Java object.
+ The interfaces in package {{{org.apache.woden.wsdl20.extensions}}} are:
+  * {{{AttributeExtensible}}} declares methods like ''getExtensionAttribute'' 
and ''setExtensionAttribute'', used by a parent WSDL element for handling its 
extension attributes. Inherited by 
{{{org.apache.woden.wsdl20.xml.WSDLElement}}}, the super type of all WSDL 
element interfaces.
+  * {{{ElementExtensible}}} declares similar accessor / modifier methods, used 
by a parent WSDL element for handling its extension elements. Also inherited by 
{{{WSDLElement}}}.
+  * {{{ExtensionElement}}} declares methods like ''isRequired'' and 
''getExtensionType'' which are common to all extension elements. Implementors 
are registered as the Java type to which the extension element will be mapped. 
+  * {{{ExtensionSerializer}}} declares the ''marshall'' method for serializing 
an {{{ExtensionElement}}} object into an XML element. The implementor is 
registered as the extension element's serializer.
+  * {{{ExtensionDeserializer}}} declares the ''unmarshall'' method for 
deserializing an XML element into the registered {{{ExtensionElement}}} 
subclass. The implementor is registered as the extension element's deserializer.
+  * {{{UnknownExtensionElement}}} an implementation of {{{ExtensionElement}}} 
which provides a default Java type for extension elements which have not been 
registered (i.e. unknown Java type). This class basically wraps the 
{{{org.w3c.dom.Element}}} representing the extension element.
+  * {{{UnknownExtensionSerializer}}} an implementation of 
{{{ExtensionSerializer}}} for serializing an {{{UnknownExtensionElement}}} 
object to an XML element.
+  * {{{UnknownExtensionDeserializer}}} an implementation of 
{{{ExtensionDeserializer}}} for deserializing an XML element into an 
{{{UnknownExtensionElement}}} object.
+  * {{{ComponentExtensions}}} declaring just the ''getNamespace'' method, this 
interfaces groups together all extension properties of a WSDL component that 
belong to the same namespace. Implementors will add accessor and modifier 
methods specific to those extensions properties. The implementor is registered 
for a given WSDL component and namespace (e.g. the {{{Binding}}} component has 
the {{{ComponentExtensions}}} subtype, {{{SOAPBindingExtensions}}}, registered 
with the SOAP namespace URI). 
+  * {{{ExtensionRegistry}}} defines methods to register and query serializers, 
deserializers and Java types for extension elements or attributes and to 
instantiate those Java types.  Also has methods to register, query and 
instantiate Java subtypes of {{{ComponentExtensions}}}.
  
+ WSDL extension attributes are represented in the Woden API by the interfaces 
defined in package {{{org.apache.woden.xml}}}. These interfaces declare methods 
to convert the string values of XML attributes into the appropriate Java types 
and to query the original string value. An implementator of one of these 
interfaces is registered for each extension attribute and is invoked by Woden 
to deserialize the XML attribute into the appropriate Java type. It then stores 
both the original string value and the typed Java object.
+ 
- The attribute interfaces currently defined in package 
{{{org.apache.woden.xml}}} are: 
+ The interfaces currently defined in package {{{org.apache.woden.xml}}} are: 
   * {{{XMLAttr}}} a super type for all XML attribute types, it defines common 
methods for converting an attribute from a string value into a specific Java 
type.
   * {{{BooleanAttr}}} converts an attribute of type ''xs:boolean'' to 
{{{java.lang.Boolean}}}
   * {{{StringAttr}}} converts an attribute of type ''xs:string'' to 
{{{java.lang.String}}}

Reply via email to