Skip to main content
Skip table of contents

SOAP-Webservices: Input- und Output-XML

Zu jedem SOAP-Webservice lässt sich in der Webservice-Konfiguration ein Input-/Output-Handler (in den Knoten <InputHandler/> und <OutputHandler/>) definieren. Diese steuern, welche XML-Datenstruktur erwartet bzw. bei der Übergabe an Webservices erzeugt wird.

Modus SOAP-Envelope: Input-Handler

Wenn als Input-Handler der Modus SOAP-Envelope gewählt wurde (XML-Speicherformat: <InputHandler type="SOAP-Envelope"/>), so wird das komplette XML des SOAP-Requests inklusive Header-Informationen und Inhalt im Body übergeben, beispielsweise:

XML
 <?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Header/>
   <soapenv:Body>
      <GetEntry>
         <id>?</id>
      </GetEntry>
   </soapenv:Body>
</soapenv:Envelope>

Modus SOAP-Envelope-Validated: Input-Handler

Wenn als Input-Handler der Modus SOAP-Envelope-Validated gewählt wurde, so wird das komplette XML-Dokument des SOAP-Requests inklusive Header-Informationen und Inhalt im Body übergeben. Zusätzlich wird jedoch der Input gegen die verknüpfte WSDL-Definition und die darin enthaltenen XML-Schemata validiert.

Bei Validierungsfehlern wird im Ergebnisdokument ein SOAP Fault (z.B. in einem Element <SOAP-ENV:Fault>) zurückgegeben, das die entsprechenden Fehlermeldungen enthält.

Dieser Modus funktioniert nur, wenn bei der Service-Konfiguration das Feld WSDL URL ausgefüllt und die WSDL mit Load Configuration from WSDL verfügbar gemacht wurde. Siehe auch SOAP-Webservice mit externer WSDL-Definition bereitstellen.

Modus SOAP-Envelope: Output-Handler

Analog zum Input-Handler gilt, wenn als Output-Handler der Modus SOAP-Envelope gewählt wurde (XML-Speicherformat: <OutputHandler type="SOAP-Envelope"/>), so ist der Technical Process für die Erstellung des vollständigen SOAP-Dokuments verantwortlich, d.h. der Technical Process muss sich selber um die Erstellung von SOAP-Envelope, SOAP-Header und SOAP-Body kümmern.

XML
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
     <SomeHeader />
  </soap:Header>
  <soap:Body>
    <SomeData />
  </soap:Body>
</soap:Envelope/>

Modus SOAP-Content: Input-Handler

Wenn als Input-Handler der Modus SOAP-Content gewählt wurde (XML-Speicherformat: <InputHandler type="SOAP-Envelope"/>), so wird der erste Knoten des Bodys innerhalb des SOAP-Requests übergeben, beispielsweise:

Beispiel: SOAP-Request

XML
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
     <SomeHeader />
  </soap:Header>
  <soap:Body>
    <GetEntry>
   		<id>101</id>
	</GetEntry>
  </soap:Body>
</soap:Envelope/>

Beispiel: Prozess-Input

XML
<?xml version="1.0" encoding="UTF-8"?>
<GetEntry>
   <id>101</id>
</GetEntry>

Modus SOAP-Content-Validated: Input-Handler

Wenn als Input-Handler der Modus SOAP-Content-Validated gewählt wurde, so wird der erste Knoten des Bodys innerhalb des SOAP-Requests übergeben. Zusätzlich wird jedoch der Input gegen die verknüpfte WSDL-Definition und die darin enthaltenen XML-Schemata validiert.

Bei Validierungsfehlern wird im Ergebnisdokument ein SOAP Fault (z.B. in einem Element <SOAP-ENV:Fault>) zurückgegeben, das die entsprechenden Fehlermeldungen enthält.

Dieser Modus funktioniert nur, wenn bei der Service-Konfiguration das Feld WSDL URL ausgefüllt und die WSDL mit Load Configuration from WSDL verfügbar gemacht wurde. Siehe auch SOAP-Webservice mit externer WSDL-Definition bereitstellen.

Modus SOAP-Content: Output-Handler

Analog zum Input-Handler gilt, wenn als Output-Handler der Modus SOAP-Content gewählt wurde (XML-Speicherformat: <OutputHandler type="SOAP-Content"/>), so wird das Ergebnis des Technical Process als Inhalt des SOAP-Bodys für die SOAP-Response genommen.

XML
<?xml version="1.0" encoding="UTF-8"?>
<GetEntryResponse>
    <Data>
        <customer>
            <customerid>101</customerid>
            <companyname>SoftProject GmbH</companyname>
            <address>Am Erlengraben 3</address>
            <city>Ettlingen</city>
            <postalcode>76275</postalcode>
            <country>Germany</country>
            <phone>+49 (0)7243 | 561 75-0</phone>
        </customer>
    </Data>
</GetEntryResponse>

Transformation des Prozessergebnisses in den Response-Body

Ist das Prozessergebnis <SomeData/> und handelt es sich um ein SOAP 1.1 Request, wird folgende Antwort gesendet:

XML
<SOAP11:Envelope xmlns:SOAP11="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP11:Body>
    <SomeData/>
  </SOAP11:Body>
</SOAP11:Envelope/>

Ist das Prozessergebnis <SomeData/> und handelt es sich um ein SOAP 1.2 Request, wird folgende Antwort gesendet:

XML
<SOAP12:Envelope xmlns:SOAP12="http://www.w3.org/2003/05/soap-envelope">
  <SOAP12:Body>
    <SomeData/>
  </SOAP12:Body>
</SOAP12:Envelope/>
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.