Der Namespace-URI gibt den XML-Namespace an, aus dem der SOAP-Anforderungsrahmen für den angegebenen SOAP-Vorgang erstellt wird. Die Domänenkomponente der URL-Klausel wird verwendet, wenn der Namespace-URI nicht definiert ist.
Der SOAP-Prozessor auf dem Server verwendet diesen URI, um die Namen der verschiedenen Entitäten im Nachrichtenhauptteil der Anforderung zu interpretieren. Die NAMESPACE-Klausel der Anweisungen CREATE PROCEDURE und CREATE FUNCTION gibt den Namespace-URI an.
Möglicherweise müssen Sie einen Namespace-URI angeben, damit Prozeduraufrufe gelingen. Diese Informationen werden normalerweise in der öffentlichen Webserver-Dokumentation erläutert, Sie können jedoch den erforderlichen Namespace-URI auch über WSDL vom Webserver erhalten. Sie können WSDL durch Zugriff auf den DISH-Dienst generieren, wenn Sie versuchen, mit einem SQL Anywhere-Webserver zu kommunizieren.
Im Allgemeinen kann der NAMESPACE aus dem targetNamespace-Attribut, das am Beginn des WSDL-Dokuments innerhalb des wsdl:definition Elements angegeben wird, kopiert werden. Gehen Sie mit großer Sorgfalt vor, wenn Sie nachgestellte '/' einbeziehen, denn sie sind signifikant. Prüfen Sie außerdem, ob der angegebene SOAP-Vorgang ein soapAction-Attribut enthält. Es sollte dem SOAPAction-HTTP-Header entsprechen, der wie in den folgenden Absätzen erläutert generiert wird.
Die NAMESPACE-Klausel erfüllt zwei Funktionen. Sie gibt den Namespace für den Hauptteil des SOAP-Envelope an. Falls für die Prozedur TYPE 'SOAP:DOC' angegeben wurde, wird sie außerdem als Domänenkomponente des SOAPAction-HTTP-Headers benutzt.
Das folgende Beispiel veranschaulicht die Verwendung der NAMESPACE-Klausel:
CREATE FUNCTION an_operation(a_parameter LONG VARCHAR) RETURNS LONG VARCHAR URL 'http://wsdl.domain.com/fictitious.asmx' TYPE 'SOAP:DOC' NAMESPACE 'http://wsdl.domain.com/' |
Führen Sie die folgende SQL-Anweisung in Interactive SQL aus:
SELECT an_operation('a_value'); |
Die Anweisung erstellt eine SOAP-Anforderung ähnlich wie die folgende Ausgabe:
POST /fictitious.asmx HTTP/1.0 SOAPAction: "http://wsdl.domain.com/an_operation" Host: wsdl.domain.com Content-Type: text/xml Content-Length: 387 Connection: close <?xml version="1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://wsdl.domain.com/"> <SOAP-ENV:Body> <m:an_operation> <m:a_parameter>a_value</m:a_parameter> </m:an_operation> </SOAP-ENV:Body> </SOAP-ENV:Envelope> |
Der Namespace für das Präfix 'm' ist auf http://wsdl.domain.com/ gesetzt und der SOAPAction-HTTP-Header gibt eine vollständig qualifizierte URL für den SOAP-Vorgang an.
Der nachgestellte Schrägstrich ist keine Voraussetzung für die richtige Funktion von SQL Anywhere. Er kann jedoch zu einem Antwortfehler führen, der schwer zu diagnostizieren ist. Der SOAPAction-HTTP-Header wird unabhängig von dem nachgestellten Schrägstrich richtig generiert.
Wenn kein NAMESPACE angegeben ist, wird die Domänenkomponente der URL-Klausel als Namespace für den SOAP-Hauptteil verwendet. Wenn für die Prozedur TYPE 'SOAP:DOC' angegeben ist, wird er außerdem verwendet, um die HTTP-Header für HTTP-SOAPAction zu generieren. Wenn im oben genannten Beispiel die NAMESPACE-Klausel nicht angegeben ist, dann wird http://wsdl.domain.com als Namespace verwendet. Der feine Unterschied liegt darin, dass kein nachgestellter Schrägstrich '/' vorhanden ist. In jeder anderen Beziehung ist die SOAP-Anforderung, einschließlich des SOAPAction-HTTP-Headers, mit dem oben genannten Beispiel identisch.
Die NAMESPACE-Klausel dient zur Festlegung des Namespace für den SOAP-Hauptteil, wie oben für SOAP:DOC beschrieben. Der SOAPAction-HTTP-Header wird jedoch mit einem leeren Wert generiert: SOAPAction: ""
Bei Verwendung des SOAP:DOC-Anforderungstyps wird der Namespace auch benutzt, um den SOAPAction-HTTP-Header zu erstellen.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |