Die komplexe Eigenschaft '@xml' enthält Daten, die sich auf den Laufzeitzugriff eines Web-Service (SOAP)
auswirken. Diese Eigenschaft ist in Serviceabschnitten (Service), in Schnittstellenabschnitten (Interface)
und in Funktionen innerhalb von Service- und Schnittstellenabschnitten
verfügbar.
Die Eigenschaft '
@xml' ist in den folgenden Fällen von Nutzen:
- Sie erstellen eine WSDL-Datei und wollen vermeiden, die Namenskonventionen Ihres Unternehmens den Empfängern der WSDL-Datei zugänglich zu machen.
- Sie erstellen einen Schnittstellenabschnitt auf Basis einer WSDL-Datei und wollen einen anderen EGL-Paketnamen verwenden als denjenigen, der Ihnen
bereitgestellt wird. Die Eigenschaft ist auch dann nützlich, wenn Namen, die aus der WSDL-Datei kopiert werden, in EGL nicht gültig sind.
Die Eigenschaft '
@xml' enthält die folgenden Eigenschaftsfelder, die weiter unten in diesem Thema erläutert werden:
- name
- Eine Zeichenfolge, die ein Namenspaar zuordnet:
- Im Hinblick auf einen EGL-Serviceabschnitt oder EGL-Schnittstellenabschnitt handelt es sich um folgendes Paar: den Namen des
EGL-Serviceabschnitts oder EGL-Schnittstellenabschnitts und den Namen des entsprechenden Elements 'portType' im WSDL-Dokument.
- Im Hinblick auf eine EGL-Funktion handelt es sich um folgendes Paar: den Namen der EGL-Funktion und den Namen des entsprechenden Elements 'operation'
im WSDL-Dokument.
- namespace
- Eine Zeichenfolge, die ein Namenspaar zuordnet:
- Im Hinblick auf einen EGL-Serviceabschnitt oder EGL-Schnittstellenabschnitt handelt es sich um folgendes Paar: den Namen des
EGL-Pakets und den Namen des Zielnamensbereichs im WSDL-Dokument.
- Im Hinblick auf eine EGL-Funktion wird die Eigenschaft 'namespace' ignoriert.
Es folgt eine ausführlichere Erläuterung:
- Wenn Sie eine WSDL-Datei auf Basis eines EGL-Serviceabschnitts erstellen
(wie es beim Generieren eines Web-Service der Fall ist), sieht das Standardverhalten wie folgt aus:
- Das Element 'portType' erhält den Namen des EGL-Service.
- Der Zielnamensbereich der WSDL-Datei erhält den Namen des EGL-Pakets, und zwar in umgekehrter Reihenfolge und mit dem Präfix
http://.
Lautet der Paketname beispielsweise com.ibm.egl.mypkg, so erhält der Zielnamensbereich in der WSDL-Datei den Namen
http://mypkg.egl.ibm.com.
Sie können eine Eigenschaft vom Typ '@xml' hinzufügen, um den Namen des Elements
'portType' (mithilfe des Eigenschaftsfelds 'name'), den Namen des Zielnamensbereichs des WSDL-Dokuments (mithilfe des
Eigenschaftsfelds 'namespace') oder beide Namen anzugeben.
Der in WSDL für EGL-Web-Services generierte
Endpunkt nimmt standardmäßig den Wert 'http://localhost:9081' an. Unter Umständen müssen Sie die WSDL-Datei manuell ändern, um den entsprechenden Server-Port
anzugeben, der auf Ihrer Maschine verwendet wird. Informationen zum verwendeten Server-Port finden Sie in der Dokumentation für Ihren Server.
- Wenn ein EGL-Tool einen Schnittstellenabschnitt auf Basis eines WSDL-Dokuments erstellt, sieht das Standardverhalten wie folgt aus:
In bestimmten Fällen sind die Namen in EGL nicht gültig. Trifft dies zu, erstellt das EGL-Tool gültige Namen und
verwendet die Eigenschaft '@xml', um die Namen anzugeben, die sich im WSDL-Dokument befinden. Anhand dieser Eigenschaft wird
sichergestellt, dass Serviceaufrufe erfolgreich ausgeführt werden, obwohl die Namen nicht übereinstimmen.
Mithilfe des EGL-Tools können Sie die Namen
ändern, die das Tool dem Schnittstellenabschnitt und dem Paket zugeordnet hat.
Funktionen in einem EGL-Serviceabschnitt oder EGL-Schnittstellenabschnitt stellen Operationselemente dar, die in ein WSDL-Element vom Typ 'portType' eingebettet
sind. In diesem Fall wird bei der Workbench-Verarbeitung niemals der Zielnamensbereich für das Operationselement berücksichtigt. Stattdessen wird davon ausgegangen,
dass der Namensbereich mit demjenigen des Elements 'portType' identisch ist. Der
Name des Operationselements in der WSDL-Datei bedarf jedoch besonderer Aufmerksamkeit:
- Beim Erstellen der WSDL-Datei wird der Operationsname aus dem Eigenschaftsfeld 'name' der Eigenschaft
'@xml' übernommen. Der Standardwert ist der EGL-Funktionsname.
- Wenn ein EGL-Tool einen Schnittstellenabschnitt auf Basis eines WSDL-Dokuments erstellt und der Operationsname in EGL nicht gültig ist, erstellt
das EGL-Tool einen anderen Namen für die EGL-Funktion, verwendet jedoch die Eigenschaft 'name', um den Namen des Operationselements
beizubehalten.