
XML-Namensräume haben für den Austausch von Messages eine Bedeutung.
Message-Instanzen müssen im Regelfall einem Namensraum zugeordnet sein. Im ES Builder geben Sie diesen XML-Namensraum für (Fault-)Message-Typen an. In der Voreinstellung wird der Repository-Namensraum übernommen, in dem der (Fault-)Message-Typ angelegt wurde. In den folgenden Fall macht es Sinn, dass der XML-Namensraum vom Repository-Namensraum abweicht:
Zwei miteinander kommunizierende Anwendungen liegen in der Regel in unterschiedlichen Software-Komponentenversionen, die nicht zwingend zusammen an Kunden ausgeliefert werden. Damit beim Kunden vollständige Definitionen von Service-Interfaces verfügbar sind, lässt der ES Builder daher nur Verweise von Service-Interface-Operationen auf (Fault‑)Message-Typen in der gleichen oder einer unterliegenden Software-Komponentenversion zu. Die beiden Anwendungen wollen oft die gleichen Message-Typen für die Kommunikation verwenden. Da kein Verweis möglich ist, kann sich die eine Anwendung einen Message-Typ der anderen Anwendung in ihren Repository-Namensraum kopieren (vorzugsweise mit allen abhängigen Objekten, siehe auch: Objekt kopieren ). Wenn die Anwendungen für den Message-Typ und dessen Kopie dessen Repository-Namensraum als XML-Namensraum übernähme, wäre dies deren einziger Unterschied in der Message-Instanz und würde ein Mapping erfordern.
Über den XML-Namensraum können sich also zwei Anwendungen auf einen Namensraum für eine Message einigen. Der XML-Namensraum wird von der Proxy-Generierung übernommen und von der Proxy-Laufzeit in der Message-Instanz verwendet:
Im folgenden konstruierten Beispiel wird zur besseren Lesbarkeit auf einen Unterscheidung zwischen Entwickler und Entwicklerin verzichtet.
XML-Namensraum für Message-Typen
<ns1:SalesOrder xmlns:ns1="http://sap.com/CRM">
<OrderHeader> ... </OrderHeader> <OrderItems> ... </OrderItems></SalesOrder>
XML-Namensraum für Datentyp-Erweiterungen
In diesem konstruierten Beispiel wurde das Suffix Type aus didaktischen Gründen an die Namen der Datentypen gehängt, um sie von den Wurzelelementen Address und OrderHeader abzugrenzen. Die Verwendung eines Suffix entspricht nicht dem Standard.
<ns1:SalesOrder xmlns:ns1="http://sap.com/CRM" xmlns:ns2=" http://customer.com/CRM/AddrExtension" >
<OrderHeader> <ShipTo> <PartyId>1234</PartyId> <Address ns2:Airport="SFAirport" > <Name>Johnson</Name> <Street>Lombard Street 10</Street> <City>SanFrancisco</City> <Country>US</Country> <ns2:State>California</cus:State> </Address> </ShipTo> </OrderHeader>
<OrderItems> ... </OrderItems>
</ns1:SalesOrder>