VERBUNDANWENDUNGEN - GESTALTUNG UND VERWALTUNG


Syntax von WSDL-Dateien
Um die Typen, Eigenschaften und Aktionen verwenden zu können, die in der bzw. den WSDL-Dateien der Verbundanwendung definiert sind, müssen Sie eine Kopie dieser Datei(en) in der NSF-basierten Verbundanwendung speichern.

WSDL wird häufig im Kontext von Web-Services verwendet, um die von einem Web-Service implementierten Schnittstellen zu definieren. In der Regel wird eine SOAP-Bindung verwendet, um die konkrete Realisierung der Schnittstelle von einem Web-Service anzugeben, der das SOAP-Protokoll unterstützt. Die WSDL-Syntax, die in Dateien verwendet wird, die vom Eigenschaftsbrokereditor in Domino Designer erstellt wurden, ist mit der in WebSphere Portal unterstützten Syntax vergleichbar.

Hinweis Weitere Informationen zum Verwenden von WSDL-Dateien in Portal finden Sie in der WebSphere Portal-Dokumentation.

Wenn Sie eine Kopie der WSDL-Datei in der NSF-basierten Verbundanwendung speichern möchten, öffnen Sie die Anwendung in IBM® Lotus® Domino(TM) Designer und navigieren Sie im Gestaltungsfenster zu Verbundanwendungen - Verbindungseigenschaften. Wählen Sie die WSDL-Datei auf der Festplatte mithilfe der Aktion WSDL importieren aus und erstellen Sie ein Gestaltungselement des Typs "Verbindungseigenschaften". Dieses Gestaltungselement kann anschließend wie alle anderen Notes-Gestaltungselemente gespeichert und aus Schablonen übernommen oder vor Schablonenaktualisierungen geschützt werden.

Mit dem Eigenschaftsbrokereditor können Sie auch Ihre eigenen WSDL-Dateien von Grund auf neu erstellen. Weitere Informationen hierzu finden Sie unter "Den Eigenschaftsbrokereditor in Domino Designer verwenden".

Die folgenden Abschnitte dieses Themas enthalten weitere Informationen zur Syntax der in Domino Designer und WebSphere Portal verwendeten WSDL-Dateien. Das folgende Beispiel zeigt im Besonderen, wie Click-to-Action zwischen Portlets einige der Elemente im WSDL-Dokument verwendet. Es werden die Erweiterungen zum Element <binding> sowie das vollständige Schema für WSDL-Erweiterungen beschrieben.

WSDL-Syntax

Im Folgenden finden Sie spezifische Informationen zur Syntax in WSDL-Dateien in Domino Designer und WebSphere Portal.

<types>

Für Verbundanwendungskomponenten deklariert dieses Element den Datentyp der zu übertragenden Daten. Der Datentyp wird mithilfe von XML-Schema-Datentypen deklariert (XSD, siehe XSD-Spezifikation). Im WSDL-Dokument können mehrere Typen definiert sein. Im Folgenden finden Sie eine Beispieldeklaration für einen Beispieldatentyp mit der Bezeichnung "TrackingIDType":

<types>

     <xsd:simpleType name="TrackingIDType">

        <xsd:restriction base="xsd:string">

        </xsd:restriction>

      </xsd:simpleType>

</types>

<message>

Eingabenachrichten können nur einen Teil enthalten.

<operation>

Bietet eine abstrakte Definition einer Click-to-Action-Operation. Beachten Sie die Einschränkung zu Eingabenachrichten weiter oben.

<portType>

Definiert eine abstrakte Sammlung von Operationen. Die Operationen müssen im Dokument definiert sein. Jede Operation entspricht einer Aktion im Click-to-Action-fähigen Portlet. Es sollten nur Aktionen deklariert werden, die für Click-to-Action aktiviert wurden.

<binding>

Das Element "binding" wird erweitert, um Portletaktionen mit Operationen zu verknüpfen. Für jede Operation muss der Name der Portletaktion festgelegt werden. Der Name der Portletaktion kann mit dem Attribut name des Aktions-Tags im Abschnitt binding der WSDL-Datei angegeben werden. Wenn er nicht angegeben wird, wird das Attribut name aus dem Tag operation als Name für die Portletaktion verwendet. Für jeden Parameter operation muss der Parametername action angegeben werden. Der Parametername portlet kann mit dem Namensattribut des Tags param im Abschnitt "binding" der WSDL-Datei angegeben werden. Wenn er nicht angegeben wird, wird das Attribut "name" des Tags part, das mit dem Tag param verknüpft ist, als Parametername für das Portlet verwendet.

Des Weiteren kann das Attribut boundTo verwendet werden, um anzugeben, wo der Parameter gebunden wird. Zur Auswahl stehen "request-parameter", "request-attribute", "session-attribute" oder "action-attribute".

Das Element <binding> enthält kooperative Portleterweiterungen, die unter "Erweiterungen zum Element <binding>" beschrieben sind (siehe WSDL-Beispiel).

Wenn Sie mit der WSDL-Syntax vertraut sind, werden Sie feststellen, dass der Abschnitt service (Element <service> in der WSDL) in der Beispiel-Deklarationsdatei nicht verwendet wird. Der Grund dafür ist, dass die Datei einem bestimmten Portlet zugeordnet ist, das die in der Datei definierten Operationen über externe Mittel implementiert (ein Eintrag in der Datei portlet.xml, die mit dem Portlet verknüpft ist).

Erweiterungen zum Element <binding>

Das Element <binding> wurde erweitert, um kooperative Komponenten und Portlets zu unterstützen. Die folgenden Beispiele beziehen sich auf die Verwendung mit Portlets.

Jedes Erweiterungselement enthält das Präfix "portlet:", das sich auf den C2A (Click-to-Action)-Namespace, "http://www.ibm.com/wps/c2a", bezieht. Das Präfix "portlet:" wird verwendet, um die Erweiterungselemente in diesem Abschnitt zu identifizieren. Sie können jedoch auch einen anderen Namen als Präfix verwenden, so lange dieser auf den C2A-Namespace verweist. Die Elemente sind im Folgenden beschrieben. Weitere Informationen finden Sie außerdem im Abschnitt zum WSDL-Erweiterungsschema weiter hinten in diesem Thema.

<portlet:binding>

Dies muss das erste untergeordnete Element des WSDL-Elements <binding> sein. Sein Vorhandensein identifiziert den Abschnitt als C2A-Bindungserweiterung für den Aufruf der Portletaktion. Das Element hat das folgende Attribut.


<portlet:action>

Dies muss das erste untergeordnete Element eines WSDL-Elements <operation> im Abschnitt "binding" sein. Es enthält folgende Attribute:


  <binding name="TrackingBinding" type="tns:Tracking_Service">

      <portlet:binding/>

      <operation name="trackingDetails">

        <portlet:action caption="Tracking Details"

               description="Tracking-Details für

               angegebene Tracking-ID abrufen"

               selectOnMultipleMatch="true"/>

        <input>

          <portlet:param name="trackingId" partname="trackingId"/>

        </input>

        <output>

          <portlet:param name="customerName" partname="custName" boundTo="session"/>

        </output>

      </operation>

      <operation name="routingDetails">

        <portlet:action caption="Routing Details"

                        description="Routing-Details für angegebene Tracking-ID abrufen"/>

        <input>

          <portlet:param name="trackingId" partname="trackingId"/>

        </input>

      </operation>

</binding>

<portlet:param>

Dieses Element muss als untergeordnetes Element in den Subelementen <input> oder <output> des Elements <operation> in der Bindung angegeben werden. Es gibt die Parameter an, die von der Portletaktion konsumiert (wenn im Element <input> eingeschlossen) oder produziert (wenn im Element <output> eingeschlossen) werden. Derzeit ist die Anzahl der konsumierten Parameter auf maximal einen beschränkt. Die Anzahl der produzierten Parameter kann eine beliebige sein. Das Element verfügt über folgende Attribute:

In WebSphere Portal verwendetes WSDL-Erweiterungsschema

Im Folgenden finden Sie das Schema für die Erweiterungselemente, die unter Verwendung von Click-to-Action für den Aufruf der Portletaktion eingeführt wurden. Die Zeilen wurden zum Zwecke der Lesbarkeit umbrochen.

<?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">

   <!-- Das Element "binding" gibt an, dass der Abschnitt "binding" benutzerdefinierte
       Erweiterungen enthält, die eine Zuordnung der Operationen zu
       Portletaktionen beschreiben. Dies muss in ein WSDL-Element "binding" eingefügt werden. -->

   <element name="binding" type="portlet:bindingType"/>

   <complexType name="bindingType">

    <!-- VERALTET, wurde aber aus Kompatibilitätsgründen mit Version 4 beibehalten.
   Verwenden Sie stattdessen das Attribut "type"
   des Elements "action". Setzen Sie den Wert
   für ein Portlet, das mit dem Struts-Framework implementiert wurde, auf "struts". -->

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

   </complexType>

   <!-- Das Element "action" wird verwendet, um alle Informationen zur
  Portletaktion zur Verfügung zu stellen, die erforderlich sind, damit der
   Eigenschaftsbroker sie aufrufen kann. Es muss
   in ein Element "wsdl:operation" im Abschnitt "wsdl:binding"
   eingefügt werden. -->

   <complexType name="actionType">

       <sequence>

    <!-- Das Element "param" wird verwendet, um Informationen zu der
   der Aktion zugeordneten Ein- oder Ausgabeeigenschaft und zum
   Mechanismus für die Übergabe der Parameter an oder von der Aktion anzugeben.
      Es muss in ein Element "wsdl:input" oder "wsdl:output" eingefügt werden. -->

          <element name="param" type="portlet:paramType"
             minOccurs="0"maxOccurs="unbounded"/>

</sequence>

         <!-- Der Name der Aktion. Wird als Name der Portletaktion
        festgelegt. Wird dieser nicht angegeben, wird der Name des entsprechenden Elements "operation"
        als Aktionsname verwendet. -->

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

     <!-- "default", "simple" und "struts" sind derzeit gültige Werte,
    wobei "default" die Vorgabe ist. Wird verwendet, um anzugeben, ob zum Aufrufen der Portletaktion der Mechanismus
    "DefaultPortletAction", "simple portlet action" oder "struts action"
    verwendet wird. Beachten Sie, dass die Verwendung von
    "DefaultPortletAction" veraltet ist und die Vorgabe aus Gründen der
    Rückwärtskompatibilität auf diesen Wert gesetzt wurde. Es wird empfohlen, diesen Wert
    auf "simple" zu setzen, um Probleme bei zukünftigen Migrationen zu vermeiden. -->

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

     <!-- Ein kurzer Name für die Aktion, die dem Endbenutzer angezeigt wird.
    Wenn für das Portlet eine Nachrichtenressourcendatei vorhanden ist,
    wird der Wert als Schlüssel zum Abrufen einer übersetzten Zeichenfolge verwendet -->

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

     <!-- Eine Beschreibung der Aktion, die dem Endbenutzer angezeigt wird. Wenn für das Portlet eine Nachrichtenressourcendatei vorhanden ist,
    wird der Wert als Schlüssel zum Abrufen einer übersetzten Zeichenfolge verwendet -->

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

     <!-- Wenn ein Eigenschaftswert von mehreren Portletaktionen gleichzeitig verarbeitet werden kann,
    werden nur diejenigen aufgerufen, deren Attribut "invokeOnMultipleMatch"
    auf "true" gesetzt ist -->

      <attribute name="selectOnMultipleMatch" type="boolean"
          use="optional" default="false"/>

      <!-- Wenn das Attribut "activeOnStartup" auf "true" gesetzt ist, kann die Aktion
     jederzeit für den Aufruf ausgewählt werden, es sei denn, sie wird für einzelne Sitzungen programmatisch
     deaktiviert. Wenn "activeOnStartup" auf
   "false" gesetzt ist, kann die Aktion nur dann für den Aufruf verwendet werden, wenn
   sie für einzelne Sitzungen programmatisch aktiviert wird -->

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

       <!-- Das Element "param" gibt an, wie der Parameter an
      die Portletaktion übergeben bzw. von dieser abgerufen werden soll,
      nachdem die Aktion ausgeführt wurde -->

    </complexType>

    <complexType name="paramType">

        <!-- Der Name des Parameters, der bei dem Aufruf
       der Aktion verwendet werden soll. Wird er ausgelassen, wird "partname" verwendet.
        Dieser Name wird auch als Name der entsprechenden
       Eigenschaft festgelegt. Eine Beschreibung der Eigenschaften finden Sie im Dokument zum Programmiermodell. -->

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

        <!-- Der Name des entsprechenden Teils. Darf nur ausgelassen werden,
       wenn für die Aktion ein einzelner Parameter vorhanden ist. In
       diesem Fall wird er aus der zugeordneten
       Operationsdefinition abgeleitet-->

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

        <!-- Gibt an, wo der Parameter vor dem Aufrufen der
      Aktion (im Fall von Parametern des Typs "in") platziert werden soll, bzw. wo
      nach dem Aufrufen der Aktion nach ihm gesucht werden soll (im Fall von
      Parametern des Typs "out").Gültige Werte sind "request-attribute", "request-parameter", "session",
      und "action". -->

        <attribute name="boundTo" type="string"
                    default="request-parameter"/>

        <!-- Die Java-Klasse für den Parameter. Die Vorgabe ist
      "java.lang.String". Wird derzeit nicht verwendet, kann jedoch zukünftig
      zur Validierung verwendet werden -->

       <attribute name="class" type="string" default="java.lang.String"/>

       <!-- Ein Kurzname für den Parameter, der dem Endbenutzer angezeigt wird. Wenn für das Portlet eine Nachrichtenressourcendatei vorhanden ist, wird
      der Wert als Schlüssel zum Abrufen einer übersetzten Zeichenfolge
verwendet -->

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

       <!-- Eine Beschreibung des Parameters, die dem Endbenutzer angezeigt wird. Wenn für das Portlet eine Nachrichtenressourcendatei vorhanden ist,
    wird der Wert als Schlüssel zum Abrufen einer übersetzten Zeichenfolge verwendet -->

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

    </complexType>

</xsd:schema>

Sie können vorhandene WSDL-Dateien beim Generieren von NSF- und Eclipse-Komponente als Ausgangspunkt verwenden. Es wird jedoch empfohlen, dass Sie bei der Arbeit mit WSDL-Dateien den Eigenschaftsbrokereditor verwenden.

WSDL-Beispiel für Verbundanwendungen in Domino Designer

Verwenden Sie die folgenden Beispielsyntax und die Anmerkungen (in Fett) als Referenz, wenn Sie Ihre eigene Beispiel-Verbundanwendung mit Lotus Notes erstellen.

<?xml version="1.0" encoding="UTF-8" ?>

<definitions name="Property Broker WSDL"

targetNamespace="http://www.ibm.com/wps/c2a/testwsdl"

xmlns="http://schemas.xmlsoap.org/wsdl/"

xmlns:portlet="http://www.ibm.com/wps/c2a"

xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"

xmlns:tns="http://www.ibm.com/wps/c2a/testwsdl"

xmlns:cus="com.ibm.compositeapps.samples" -so können Sie
Ihren eigenen Beispiel-Namespace hinzufügen (1)

xmlns:cut="com.ibm.compositeapps.samples.2" -dies ist ein weiterer
Beispiel-Namespace (2)

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<types>

<xsd:schema targetNamespace="com.ibm.compositeapps.samples">
-this is a custom namespace (1)

<xsd:simpleType name="SubjectType"> -dies ist der Typname

<xsd:restriction base="xsd:string"/>

</xsd:simpleType>

</xsd:schema>

<xsd:schema targetNamespace="com.ibm.compositeapps.samples.2">
zeigt einen weiteren Namespace (2)

<xsd:simpleType name="AccountType">

<xsd:restriction base="xsd:string"/>

</xsd:simpleType>

<xsd:simpleType name="IDType">

<xsd:restriction base="xsd:string"/>

</xsd:simpleType>

<xsd:simpleType name="CustomerType">

<xsd:restriction base="xsd:string"/>

</xsd:simpleType>

</xsd:schema>

</types>

<message name="New_Response_Action_Operation_Input">

<part name="SubjectPart" type="cus:SubjectType"/> -Beachten Sie, dass
"cus" auf den Namespace verweist (1)
 -- ordnet die
Eigenschaft dem Typ zu

</message>

<message name="New_Response_Action_Operation_Output">

<part name="AccountPart" type="cut:AccountType"/> -Beachten Sie, dass
"cut" auf den Namespace verweist (1)

<part name="IDPart" type="cut:IDType"/>

</message>

<message name="OnViewEntrySelectionChange_Property_Operation_Output">

<part name="CustomerPart" type="cut:CustomerType"/>

</message>

<portType name="NotesDB_Operations"> - dieser Abschnitt ist als Teil des WSDL-Standards erforderlich

<operation name="New_Response_Action_Operation">

<input message="tns:New_Response_Action_Operation_Input"/>

<output message="tns:New_Response_Action_Operation_Output"/>

</operation>

<operation name="OnViewEntrySelectionChange_Property_Operation">

<output message="tns:OnViewEntrySelectionChange_Property_Operation_Output"/>

</operation>

</portType>

<binding name="Notes_Binding" type="tns:NotesDB_Operations">

<portlet:binding/>

<operation name="New_Response_Action_Operation"> -dies ist
eine Aktion mit einer Eingabeeigenschaft und zwei Ausgabeeigenschaften.
Weitere Informationen finden Sie im Hinweis unten.

<portlet:action name="New Response Action"
caption="NewResponseCaption"
-dieser Name ist der Name, der in der Domino Designer-Benutzeroberfläche in der InfoBox "Aktion" angezeigt wird
 description="NewResponseDesc.id"/>

<input>

<portlet:param name="Subject" -dieser Name ist
der Eigenschaftsname, er muss in einer WSDL-Datei eindeutig sein
partname="SubjectPart" -"partname" wird für die Zuordnung zu
"part name=" unter <message> caption="subjectCaption"
description="subjectDesc.id"/> verwendet

</input>

<output> -es können 0-N Ausgabeeigenschaften in einer Aktion vorhanden sein

<portlet:param name="Account" partname="AccountPart" caption="accountCaption" description="accountDesc.id"/>

<portlet:param name="ID" partname="IDPart" caption="id" description="idDesc.id"/>

</output>

</operation>

<operation name="OnViewEntrySelectionChange_Property_Operation"> -dies ist eine Ausgabeeigenschaft

<portlet:action name="OnDocSelectionChange"
-dieser Name spielt keine Rolle, er muss jedoch in einer WSDL-Datei eindeutig sein
caption="DocSelectionCaption" description="DocSelectionDesc.id"/>

<output>

<portlet:param name="Customer" partname="CustomerPart" caption="customer" description="customer.id"/>

</output>

</operation>

</binding>

</definitions>

Richtlinien für WSDL-Dateien

Befolgen Sie beim Erstellen der WSDL-Dateien folgende Richtlinien:


Hinweis Eigenschaften und Aktionen können verbunden werden, wenn sie denselben Datentyp und Namespace aufweisen.
Siehe auch