Namespaces

Einführung

In diesem Abschnitt werden Namespaces vorgestellt und ihre Vorteile in 3B2 aufgezeigt. Die nachfolgenden Informationen setzen Grundkenntnisse in XML voraus.

Die Namespace-Funktionalität wurde in 3B2 in Hinblick auf die Unterstützung von XML-Namespaces implementiert. XML ist eine Syntax für die Auszeichnung von Dokumenten in unterschiedlichen Formaten.

Was sind XML-Namespaces?

Mit XML können Anwender eigene Elemente (Tags) definieren, was bedeutet, dass XML-Dokumente viele verschiedene Markups enthalten können. Wenn in einem Dokument für zwei Elemente der gleiche Name vergeben wird, kann es zu Schwierigkeiten kommen. Elemente können außerdem, je nach Umgebung, unterschiedliche Bedeutungen haben, was das Erkennen und Vervielfältigen erschwert und dazu führt, dass das XML nicht wie gewünscht verarbeitet wird.

Ein Beispiel: Das Element <title> tritt zwei Mal und das Element <body> vier Mal in einem XML-Dokument auf und zwar jedes Mal in einem anderen Kontext oder einem anderen Elternelement. Das Element muss daraufhin jedes Mal anders formatiert werden. 3B2 konnte mit solchen Publishing-Aufgaben schon immer umgehen, doch mit Namespaces werden sie standardisiert.

Namespaces in 3B2 sind mit Ordnern in einem Stammverzeichnis vergleichbar, in denen Elemente, Attribute etc. gespeichert werden.

Sie werden für die eindeutige Definition des Kontextes eines Elementes verwendet, um seine Verarbeitung zu erleichtern. Ein XML-Dokument ist hierarchisch aus einzelnen Elementen aufgebaut, die jeweils einen Namen und eine Reihe von Eigenschaften zugewiesen bekommen. Mit Namespaces wird die Hierarchie in einem XML-Dokument definiert, indem jedes Element mit einem Präfix versehen wird.

Laut W3C muss dieser Präfix ein Uniform Resource Identifier (URI) sein, mit dem jeder Namespace eindeutig benannt wird. Vorgegebene URIs können für Elemente ohne Präfix vergeben werden und kennzeichnen Elemente vieler XML-Anwendungen. Das Namespace-Attribut wird in den Anfangstag eines Elementes aufgenommen. Ein Uniform Resource Identifier (URI) ist eine kurze Zeichenfolge, die auf Internet-Ressourcen verweist, wie z.B. Dokumente, Bilder, Dateien, Dienste, elektronische Mailboxen etc. Der geläufigste URI ist der Uniform Resource Locator (URL), der Internetadressen bezeichnet. In 3B2 können die Identifier viele Formate annehmen, wie etwa: <ns:element>

Warum Namespaces?

Mit Hilfe von Namespaces kann Software Tags und Attribute schnell und auf einheitliche Art erkennen. XML-Dokumente können unterschiedliche Auszeichnungen enthalten (z.B. MathML) und durch Namespaces lassen sich gleichnamige Elemente und Attribute unterscheiden. Außerdem können damit alle verwandten Elemente und Attribute einer XML-Anwendung zusammengefasst werden, so dass sie für die Software leichter erkennbar sind.

Vorteile von Namespaces:

Namespaces in 3B2

Ein 3B2-Namespace ist eine benannte Sammlung von 3B2-Elementen, d.h. ein Namespace ist praktisch ein Behälter für andere Elemente. In 3B2 funktionieren Namespaces nach demselben Prinzip wie Verzeichnisse und Ordner und haben daher auch ähnliche Eigenschaften, z.B.:

Zusätzliche Eigenschaften:

Vorteile

Mit XML-Namespaces können XML-Dokumente besser gehandhabt werden. Sie klassifizieren Element- und Attributnamen anhand von Namespace-Identifiern. Elemente mit demselben Namen können so auf viele Arten formatiert werden.

Weitere Informationen und Referenzen

Weitere Informationen zu Namespaces in XML finden Sie auf der Website des World Wide Web Consortiums (W3C) unter:

www.w3.org/TR/REC-xml-names/


Siehe auch