Ich muss eine generische Vorlage schreiben, um einen Operationsnamen und den Namespace dafür aus einer Soap-Antwort zu finden. Generisch ich meine, das gilt für jede Operation. Daher kenne ich den Namen der Operation und den Namen des Namensraums nicht, möchte sie aber abrufen und ändern, wenn ich die Antwort sende. HierAbfrage auf XPATH-Anweisung
ist die Struktur der Antwort:
Typs 1: Namensraum für den Betrieb ist definiert in <soapenv:Envelope>
:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:inf="http://bad.com/abc/infrastructure"
xmlns:ret="http://bad.com/FirstOperationToExecute"
xmlns:com="http://bad.com/commercial">
<soapenv:Header/>
<soapenv:Body>
<ret:retrieveSummaryRequest>
<!-- ... result ... -->
</ret:retrieveSummaryRequest>
</soapenv:Body>
</soapenv:Envelope>
Typ 2: Namensraum in dem Elemente definiert <ret:retrieveSummaryRequest>
:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:inf="http://bad.com/abc/infrastructure"
xmlns:ret="http://bad.com/FirstOperationToExecute"
xmlns:com="http://bad.com/commercial">
<soapenv:Header/>
<soapenv:Body>
<ret:retrieveSummaryRequest xmlns:ret="http://bad.com/FirstOperationToExecute" >
<!-- ... result ... -->
</ret:retrieveSummaryRequest>
</soapenv:Body>
</soapenv:Envelope>
Typ 3: Standardnamespace in <retrieveSummaryRequest>
:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:inf="http://bad.com/abc/infrastructure"
xmlns:ret="http://bad.com/FirstOperationToExecute"
xmlns:com="http://bad.com/commercial">
<soapenv:Header/>
<soapenv:Body>
<retrieveSummaryRequest xmlns="http://bad.com/FirstOperationToExecute" >
<!-- ... result ... -->
</retrieveSummaryRequest>
</soapenv:Body>
</soapenv:Envelope>
Kann mir jemand helfen zu sagen, ob es eine einfache XPath-Anweisung dafür gibt, um den Operationsnamen und den Namespace zu erhalten.