Bei dem Header einer SOAP-Anforderung handelt es sich um ein XML-Fragment innerhalb des SOAP-Envelope. Während der SOAP-Vorgang und seine Parametern auch als RPC (Remote Procedure Call) betrachtet werden können, kann der Header einer SOAP-Anforderung verwendet werden, um Metadaten in einer spezifischen Anforderung oder Antwort zu übertragen. Die Header einer SOAP-Anforderung übertragen Metadaten wie etwa Autorisierungs- oder Sitzungskriterien.
Der Wert einer SOAPHEADER-Klausel muss ein gültiges XML-Fragment sein, das einem Headereintrag der SOAP-Anforderung entspricht. Es können mehrere Headereinträge für eine SOAP-Anforderung angegeben werden. Die gespeicherte Prozedur oder Funktion injiziert automatisch die Headereinträge der SOAP-Anforderung innerhalb eines SOAP-Headerelements (SOAP-ENV:Header). SOAPHEADER-Werte geben SOAP-Header an, die als statische Konstante deklariert oder dynamisch mithilfe des Parameterersetzungsmechanismus festgelegt werden können. Nachstehend wird ein Fragment aus einer SOAP-Anforderung gezeigt. Es enthält zwei XML-Header namens Authentication und Session.
<?xml version="1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="HTTP://localhost:8082"> <SOAP-ENV:Header> <Authentication xmlns="CustomerOrderURN"> <userName pwd="none" mustUnderstand="1"> <first>John</first> <last>Smith</last> </userName> </Authentication> <Session xmlns="SomeSession">123456789</Session> </SOAP-ENV:Header> <SOAP-ENV:Body> <m:SoapOperation> <m:intVariable>123</m:intVariable> <m:charVariable>data</m:charVariable> </m:SoapOperation> </SOAP-ENV:Body> </SOAP-ENV:Envelope> |
SOAP-Antwort-Header (zurückgegeben vom SOAP-Aufruf) werden für Prozeduren und Funktionen unterschiedlich verarbeitet. Bei Verwendung einer Funktion, was die flexibelste und empfohlene Methode darstellt, wird der gesamte SOAP-Antwortrahmen empfangen. Der Antwort-Envelope kann dann mit dem OPENXML-Operator verarbeitet werden, um SOAP-Header und SOAP-Hauptteildaten zu extrahieren. Bei Verwendung einer Prozedur können SOAP-Antwort-Header nur durch einen Ersetzungsparameter extrahiert werden, der einer IN- oder INOUT-Variable zugeordnet ist. In einer SOAP-Prozedur sind maximal ein IN- oder INOUT-Parameter zulässig.
Eine Webdienstfunktion muss den SOAP-Antwortrahmen syntaktisch analysieren, um die Header-Einträge zu erhalten.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |