
Für die Beschreibung der Message-Struktur zur Laufzeit gibt es eine Reihe von Standard-Schemata. Viele verwenden WSDL (Web Service Description Language), XSD (XML Schema Definition Language) oder DTDs (Document Type Definitions), um ein Message-Schema festzulegen. In Fällen, in denen eine Beschreibung der Struktur einer Message bereits in einem dieser Formate vorliegt, können Sie sie über den Import als externe Definition im ES Repository wiederverwenden, statt sie erneut manuell über den Datentyp-Editor eingeben zu müssen.
Siehe auch: Messages .
Mit einer externen Definition können Sie eine lokale WSDL-, XSD- oder DTD-Datei in das ES Repository importieren und spezifizieren, welche Teile des Schemas als Beschreibung für eine Message extrahiert werden sollen. Die so extrahierten Message-Schemas können Sie für folgende Zwecke verwenden:
Im ES Builder erkennen Sie zugeordnete Message-Schemas an der Bezeichnung
externe Message. Bezogen auf den Aufbau von Service-Interfaces haben Message-Schemas die gleiche Bedeutung wie Message-Typen.
Aus technischen Gründen unterstützen die Proxy-Generierung und die jeweiligen Editoren im ES Builder nicht den gesamten Sprachumfang von XML Schema beziehungsweise WSDL. Eine Übersicht, welche Sprachelemente unterstützt werden, finden Sie im SAP Developer Network (SDN) unter der Internetadresse https://www.sdn.sap.com/irj/sdn → SOA Middleware → Repository-Based Modeling and Design. Im Knowledge Center auf der Seite Repository-Based Modeling and Design wählen Sie Enterprise Services Repository & Registry und auf der folgenden Seite das Dokument Supported XML Schema and WSDL.
Das zu importierende Dokument muss dem WSDL-, XSD- beziehungsweise DTD-Standard genügen.
Extraktion von Message-Schemata
Der ES Builder setzt importierte externe Definitionen in eine für die weitere Verwendung handhabbare WSDL-Definition um, wenn die Datei nicht sowieso schon in WSDL vorliegt. Dabei identifiziert der ES Builder die Definitionen, die die Message-Struktur beschreiben. Abhängig vom importierten Format können Sie für diesen Vorgang den Modus vor dem Import festlegen:
Modi für den Import von externen Definitionen
|
Externes Format |
Auswahl der Listbox Messages |
Bedeutung |
|
WSDL |
keine extrahieren |
Import ohne Konvertierung, um auf die externe Definition zentral zugreifen zu können. |
|
aus allen enthaltenen Message-Definitionen |
Extraktion aller Message-Definitionen im WSDL. Enthält die Message-Definition mehr als einen Part, werden alle Parts über einen übergeordneten Part zusammengefasst. |
|
|
unter Annahme von rpc-style |
Weitere Informationen: Import für WSDL-Dokumente im rpc-style . |
|
|
XSD |
keine extrahieren |
Siehe oben. |
|
aus allen enthaltenen globalen Elementen |
Interpretation aller Element-Definitionen als Message-Schema. |
|
|
aus allen unreferenzierten globalen Elementen |
Es werden nur solche Element-Definitionen als Message-Schema interpretiert, die von keinem anderen Element referenziert werden. |
|
|
DTD |
keine extrahieren |
Siehe oben. |
|
aus dem DOCTYPE |
Interpretation des DOCTYPE-Tags als Message-Schema. |
|
|
aus dem ersten ELEMENT |
Interpretation des ersten ELEMENT-Tags als Message-Schema. |
Quellen und Verweise auf externe Dokumente
WSDL-, XSD- und DTD-Dokumente können aufeinander verweisen. In der externen Definition werden diese Verweise folgendermaßen unterstützt:
In einem verweisenden XSD-Dokument steht <xsd:import schemaLocation="../common.xsd" />. Nach dem Import dieses Dokuments wird auf der Registerkarte externe Verweise, angezeigt, dass auf eine andere externe Definition mit der Quelle ../common.xsd verwiesen werden muss, um den Verweis auflösen zu können. Wenn Sie für die Datei common.xsd eine weitere externe Definition im gleichen Namensraum anlegen, die Datei über diese externe Definition importieren und als Quelle dieser externen Definition den String../common.xsd angeben, kann der Verweis aufgelöst werden. Der Editor zeigt bei der referierenden externen Definition die referierte externe Definition auf der Registerkarte externe Verweise an.
Da Verweise zwischen Dateien in der Regel eine Verzeichnisstruktur auf dem Dateisystem voraussetzen, kann es beim Import in das ES Repository zu Verweiskonflikten kommen. Weitere Informationen und Beispiele: Massenimport für externe Definitionen .
Weitere Informationen: Massenimport für externe Definitionen .
Die folgenden Schritte beschreiben den Einzelimport.
Legen Sie eine externe Definition an (siehe: Anlegen eines Objektes ).
Sie wollen ein XSD-Dokument myMessage in das ES Repository importieren, dass über die <include>-Anweisung auf drei andere XSD-Dokumente myStr1, myStr2 und myStr3 verweist. Wenn Sie die Dokumente einzeln importieren wollen, gehen Sie folgendermaßen vor: Importieren Sie zuerst myMessage. Dann zeigt die Registerkarte externe Verweise an, dass auf drei Dokumente verwiesen wird und dass diese noch nicht im ES Repository gefunden wurden. Danach legen Sie weitere externe Definitionen für myStr1, myStr2 und myStr3 im gleichen Namensraum an und geben jeweils die Quelle für diese Dokumente an. Wenn die Quelle nicht im Dokument selbst enthalten ist, finden Sie sie im verweisenden Dokument. Wenn Sie die Anzeige der externen Definition für myMessage auffrischen, zeigt die Registerkarte Externe Verweise, dass die Dokumente im ES Repository gefunden worden sind. Sie können dann von dort über Doppelklick zu den anderen referenzierten externen Definitionen im ES Repository navigieren.