+

Search Tips   |   Advanced Search

WSDL reference for cooperative portlets


WSDL is often used in the context of Web Services, in order to define interfaces implemented by a Web Service. The elements in the WSDL used by click-to-action are described, along with extensions to the <binding> element and the WSDL Extensions schema.

WSDL is often used in the context of Web Services, in order to define interfaces implemented by a Web Service. Usually, a SOAP binding is used to specify the concrete realization of the interface by a Web Service which supports the SOAP protocol. The following shows how Click-to-Action uses some of the elements in the WSDL document. The extensions to the <binding> element are described and the complete schema for WSDL Extensions is provided.

If we are familiar with WSDL, we might notice that the service section (enclosed by the <service> element in WSDL) is not used in the C2A action declaration file. This is because the file is associated with a specific portlet implementing the operations defined in the file through external means (an entry in the portlet.xml file associated with the portlet).


Extensions to the <binding> element

The <binding> element has been extended to support cooperative portlets. Each extension element is prefixed with "portlet:", which refers to the C2A namespace, http://www.ibm.com/wps/c2a. The "portlet:" prefix is used to identify the extension elements in this section, but a different name may be used for the prefix as long as it refers to the C2A namespace. See WSDL Extension Schema


WSDL Extension Schema

The following is the schema for the extensibility elements introduced for the portlet action invocation using Click-to-Action. Lines have been broken to allow viewing on the printed page.

<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
               targetNamespace="http://www.ibm.com/wps/c2a"
               xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"                 xsi:schemaLocation="http://schemas.xmlsoap.org/wsdl/                                     http://schemas.xmlsoap.org/wsdl/                                     http://www.w3.org/2001/XMLSchema                                    http://www.w3.org/2001/XMLSchema.xsd"                 xmlns:portlet="http://www.ibm.com/wps/c2a">
   <!-- The binding  element indicates that the binding section         contains custom extensions describing a mapping of operations to         portlet actions. This must be placed within a WSDL         binding element. -->
<element name="binding" type="portlet:bindingType"/>
<complexType name="bindingType">
   <!-- DEPRECATED, retained for compatibility with version 4. Use the  type attribute with the action element instead. Set value to be     "struts" for a portlet implemented using the struts framework. -->
   <attribute name="style" type="string" use="optional"/>
</complexType>
<!-- The action element is used to provide all the information    about the portlet action necessary for the property broker to   invoke it. This must be placed within an wsdl:operation element    in the wsdl:binding section. -->
<element name="action" type="portlet:actionType"/>
<complexType name="actionType">
    <sequence>
        <!-- The constant-params element is used to provide constant
             parameters associated with the action. These are bound
             as request parameters when the action is invoked -->
        <element name="constant-params" type="portlet:constantParamsType"
             minOccurs="0" maxOccurs="1"/>
        </sequence>
         <!-- 
         The name of the action.                
         Will be set as the portlet action name.                 
         If omitted, the name of the corresponding operation                
         element will be used as the action name. 
         -->

        <attribute name="name" type="string" use="optional"/>

        <!-- 
        The type of the action. Currently recognized values              
        are default, simple, struts, and standard,           
        with default being the default.               
        The values specify whether the legacy DefaultPortletAction,          
        legacy simple portlet action, legacy portlet              
        struts action, or standard (JSR-168) portlet               
        action mechanism is used to invoke the portlet action.               
        The use of DefaultPortletAction is              
        deprecated, and the default is set to this              
        value for backwards compatibility.
        -->

        <attribute name="type" type="string" use="optional" default="default"/>

        <!-- 
        A short name for the action which is displayed to the
        user.If a message resource file is
        provided for the portlet,
        the value is used as a key to retrieve a translated string 
        -->
        <attribute name="caption" type="string" use="optional"/>

        <!-- 
        A description for the action which is
        displayed to the user.
        If a message resource file is provided for the portlet, the
        value is used as a key to retrieve a translated string 
        -->

        <attribute name="description" type="string" use="optional"/>

        <!--
        If more than one portlet action can simultaneously process
        a property value, only those with the
        invokeOnMultipleMatch attribute
        set to true will be invoked
        -->
        <attribute name="selectOnMultipleMatch" type="boolean"             use="optional" default="false"/>

        <!--
        If the activeOnStartup attribute is true,
        the action may be selected for invocation
        at any time unless  programmatically         deactivated on a per-session basis. 
        If the activeOnStartup is false, the action may not be
        selected for invocation, unless
        programmatically activated on a per-session basis 
        -->

        <attribute name="activeOnStartup" type="boolean" use="optional" default="true"/>

        <!-- 
        The actionNameParameter attribute is used to specify         the name of a request parameter whose value will carry
        the action name. IBM recommends that all actions of
        a portlet use the same value of this parameter. This is
        used to identify the specific action which is being executed
        on the portlet, as the processAction method in JSR 168
        does not explicitly pass any information identifying the
        action. If this attribute is omitted, the
        actionNameParameter value defaults to
        com.ibm.portal.propertybroker.action 
        -->

        <attribute name="actionNameParameter" type="string" use="optional" default="com.ibm.portal.propertybroker.action"/>
    </complexType>
    <complexType name="constantParamsType">

        <!-- The constant-params element is used to provide constant
             parameters associated with the action. These are bound
             as request parameters when the action is invoked -->
        <sequence>

        <!--
        The constant-param element is used to provide a name
        and a value which will be bound as a request parameter
        when the portlet's action is invoked 
        -->

        <element name="constant-param" type="portlet:constantParamType" minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
    </complexType>

    <complexType name="constantParamType">
        <!--
        The constant-param element is used to provide a name
        and a value which will be bound as a request parameter
        when the portlet's action is invoked
        -->

        <!-- The name of the constant-parameter -->
        <attribute name="name" type="string" use=" required"/>

        <!-- The value of the constant-parameter -->
        <attribute name="value" type="string" use=" required"/>
    </complexType>
    <!--
    The param element is used to indicate information
    about the input or output property associated with the
    action and the mechanism for passing parameters to or from
    the action. It must be placed within a
    wsdl:input or wsdl:output element.
    -->
    <element name="param" type="portlet:paramType"/>
    <complexType name="paramType">
    <!--
    The param element indicates how the parameter is to be
    delivered to the portlet action or retrieved from
    it once the action has executed
    -->

    <!--
    The name of the parameter which will be used on     action invocation. If omitted, the partname is used.
    This name will also be set as the name of the
    corresponding property. 
    -->

        <attribute name="name" type="string" use="optional"/>

        <!--
        The name of the corresponding part. May be omitted only if
        there is a single parameter for the action,
        in which case it will be inferred from
        the associated operation definition
        -->
        <attribute name="partname" type="string" use="optional"/>

        <!--
        Where to place the parameter prior to invoking the action         (in case of in parameters), or where to look for it
        after invoking the action (in case of out parameters).
        request-attribute, request-parameter, session are
        allowed for both standard and legacy portlets. A value of
        action is allowed for legacy portlets only, and a value
        of render-parameter is allowed for standard portlets only
        -->
        <attribute name="boundTo" type="string" default="request-parameter"/>
        <!--
        If the parameter is found but its value is null, this attribute
        determines if the parameter is deemed to be present for brokered
        communication purposes. If the value is set to true, the parameter
        is deemed to be present and the null value will be propagated. The         default is false.
        -->
        <attribute name="presentIfNullValue" type="string" default="false" use="optional"/>
        <!--
        The java class for the parameter. 
        The default is java.lang.String. 
        If a non-default value is provided, it will be
        used in conjunction with type and namespace to
        restrict matches
        -->
        <attribute name="class" type="string" default="java.lang.String"/>
        <!--
        A short name for the parameter which is displayed 
        to the user. If a message resource file is 
        provided for the portlet,
        the value is used as a key to retrieve a
        translated string
        -->
        <attribute name="caption" type="string" use="optional"/>
        <!--
        A description for the parameter which is displayed to the
        user. If a message resource file is provided for the
        portlet, the value is used as a key to retrieve a
        translated string
        -->
        <attribute name="description" type="string" use="optional"/>
    </complexType>
</xsd:schema>



Parent: Cooperative portlets
Related:
Cooperative portlets overview
Cooperative portlet programming model
Packaging, deploying and compiling cooperative portlets