Verwenden Sie Namespaces zum Qualifizieren von Nachrichtenmodellobjektnamen.
Ein einzelnes XML-Instanzdokument kann Elemente und Attribute enthalten, die für mehrere Anwendungen definiert sind und von mehreren Anwendungen verwendet werden können. Möglicherweise müssen zwei unterschiedliche Elemente oder Attribute innerhalb desselben Dokuments denselben Namen haben. Einzelne Anwendungen müssen in der Lage sein, die Elemente und Attribute, die sie verarbeiten sollen, zu erkennen. In solchen Situationen können die Definitionen voneinander unterschieden werden, indem jedes Element durch einen anderen Namespace qualifiziert wird. Dadurch werden Probleme durch Namenskollisionen und fehlerhafte Erkennung vermieden.
Für XML-Schemas kann ein Zielnamespace definiert werden. In einem XML-Schema definierte globale Elemente, Attribute, Gruppen und Typen werden durch den Zielnamespace (falls definiert) qualifiziert. Optional können auch lokale Elemente und Attribute durch den Zielnamespace qualifiziert werden. Namespaces unterstützen daher die Entwicklung einer Bibliothek aus XML-Schemas, die unabhängig voneinander entwickelt werden können. Wenn der Name des Namespace für ein XML-Schema eindeutig ist, müssen Sie keine Namenskonflikte mit Objekten befürchten, die in anderen XML-Schemas definiert sind.
Der Geltungsbereich eines Namespace geht über den des enthaltenen Dokuments hinaus und wird durch einen Uniform-Resource-Identifier (URI) identifiziert. Damit er seine Aufgabe erfüllen kann, muss der URI eindeutig sein. Möglicherweise sind Sie mit dem Konzept des Universal-Resource-Locator (URL) besser vertraut. URIs haben oft dieselbe Syntax wie URLs, die URI-Definition ist allerdings breiter angelegt als die Spezifikation einer URL. Beispiel für einen URI: http://mycompany.com/xml_schema
Ein Namespacepräfix wird als Kurzform für den vollen URI-Namen deklariert und dazu verwendet, alle Elemente, die zum betreffenden Namespace gehören, zu qualifizieren. Das Präfix, das einen Namespace in einem XML-Instanzdokument oder XML-Schema ersetzen soll, wird über ein xmlns-Attribut spezifiziert. Mithilfe des xmlns-Attributs kann auch ein Standardnamespace definiert werden. In diesem Fall wird jedes Element oder Attribut ohne ein Präfix mit dem Standardnamespace qualifiziert. Ist kein Standardnamespace definiert, werden Elemente oder Attribute ohne Präfix nicht durch einen Namespace qualifiziert.
Ein einzelne Anwendung, Bibliothek oder eine Nachrichtengruppe kann eine Reihe verschiedener Namespaces enthalten. Jeder Namespace wird durch eine eigene Nachrichtemodellschema- oder Nachrichtendefinitionsdatei dargestellt. Beim Erstellen einer Datei können Sie wählen, ob ihr ein Namespace zugeordnet werden soll oder ob sie zum Namespace notarget gehören soll. Wird ein Namespace zugeordnet, müssen Sie auch ein Präfix auswählen.
Wurde der Datei ein Namespace zugeordnet, werden die folgenden globalen Objekte durch den Namespace qualifiziert:
Optional können lokale Elemente und Attribute mit dem Namespace qualifiziert werden.
Die in einer Datei definierten Objekte können auf Objekte in anderen Dateien verweisen. Dazu wird eine Datei in eine andere Datei importiert. In eine Nachrichtenmodellschemadatei kann eine andere Datei eingefügt oder importiert werden, die sich in derselben Anwendung oder Bibliothek oder in einer separaten WebSphere Message Broker-Bibliothek befindet. In eine Nachrichtendefinitionsdatei dagegen kann nur eine Datei eingefügt oder importiert werden, die sich in derselben Nachrichtengruppe befindet.
Namespaces können auch für Daten verwendet werden, bei denen es sich nicht um XML-Daten handelt. DFDL-Schema-, Adapterschema- und Nachrichtendefinitionsdateien können mit einem zugeordneten Zielnamespace erstellt werden. In den Daten selbst sind zwar keine Namen mit Präfixen enthalten, doch kann der Namespace aus dem entsprechenden Element in der Datei abgerufen werden. Name und Namespace des Elements werden wiederum in der Nachrichtenbaumstruktur gespeichert.
Sie können Namespaces beim Schreiben von ESQL- oder Java™-Code angeben. Werden keine Namespaces verwendet, muss kein ESQL- oder Java-Code geschrieben werden, der Namespaces unterstützt. Sollen Namespaces verwendet werden, müssen Sie allerdings den entsprechenden ESQL- oder Java-Code erstellen. Der Namespace, in dem ein Element enthalten ist, wird während der Analyse in der Nachrichtenbaumstruktur gespeichert. Dies ist eine logische Eigenschaft, die unabhängig von dem physischen Format, in dem Nachrichten analysiert und geschrieben werden, beibehalten wird. ESQL wurde eine neue Syntax hinzugefügt, die den Verweis auf Namespaces anderer Elemente mithilfe von definierten Präfixen erleichtert. In Java wird über XPath-Ausdrücke auf Elemente verwiesen.
Auf der Website von World Wide Web Consortium (W3C) siehe unter: