Namensraum XML

Namensräume (engl. namespaces) sind in XML-Dokumenten ein einfaches Verfahren zur eindeutigen Benennung von Elementnamen und Attributnamen. Dabei werden die Element- und Attributnamen so verknüpft, dass diese durch URI-Referenzen eindeutig identifiziert werden können. Diesbezüglich ist die URI-Referenz lediglich eine eindeutige Kennzeichnung, der XML- Prozessor oder auch Parser sucht anders als bei einer Referenz auf eine Document Type Definition ( DTD) oder ein XML-Schema keine dort konkret hinterlegte Namensliste.

Das Verfahren der Namensräume wurde durch das World Wide Web Consortium ( W3C) bereits 1999 in erster Version in der Empfehlung "Namespaces in XML" vorgestellt. Eine deutsche Übersetzung dieser Empfehlung ist unter dem u.g. Link verfügbar. Der Hintergrund der Vereinbarung von Namensräumen ist es, in XML-Dokumenten die Informationseinheiten eindeutig zu referenzieren und so evtl. Namenskonflikte generell zu vermeiden.

Durch die Verwendung von Namensräumen ist die Verwendung von gleichlautenden Namen mit unterschiedlicher Bedeutung in verschiedenen Vokabularen möglich. Innerhalb eines Namensraums muss damit jeder verwendete Name eindeutig sein, derselbe Name darf aber in unterschiedlichen Namensräumen angewendet werden. Die Notwendigkeit zur Definition von Namensräumen ist auch durch die Eigenschaften von XML selbst gegeben, da XML grundsätzlich eine freie Wahl von Elementnamen und Attributnamen unterstützt. Dies wirft zwangsläufig das Problem auf, dass u.U. gleiche Namen mit unterschiedlicher Bedeutung verwendet werden.

Die Identifizierung der Namensräume

Für die Identifizierung von Namensräumen ist eine URI-Referenz (Uniform Resource Identifier) - meistens ist das eine Uniform Resource Locator ( URL), also eine Internetadresse - erforderlich. Dabei wird diese Adresse nur als Referenz definiert, die ebenso wenig existieren muss wie das für die Weiterverarbeitung des XML-Dokumentes keine Verbindung zum Internet bestehen muss. Man nutzt hier lediglich die Vorgabe, dass URI-Referenzen generell eindeutig sein müssen, um dem XML-Prozessor einen nicht zu verwechselnden Namen für den Namensbereich vorzulegen. Eine URI-Referenz ist in diesem Zusammenhang auch nur dann eindeutig, wenn Groß- und Kleinschreibung der URI beachtet werden. Ein Hinweis ist hierbei noch zu geben: das W3C selbst pflegt eigene Namensräume und hinterlegt unter den zugehörigen URLs entsprechende Hinweise - jedoch keine allgemein gültigen Namenslisten. Aber auch dorthin verzweigt kein XML-Prozessor bei der Verarbeitung eines Namensraumes in einem XML- Dokument. Es wird damit lediglich ein einzuhaltender Formalismus geprägt.

Die Namensräume in einem XML-Dokument werden über das xmlns- Attribut - das steht für XML namespace - deklariert und es werden dabei zwei mögliche Typen unterstützt: 1. Die Vereinbarung eines Default-Namensraums und 2. die Vereinbarung des Namensraums mit Präfixen.

Für die Vereinbarung eines Default-Namensraums wird ein Name in einem Element als Wert des Attributs xmlns mit folgender Syntax definiert.

Beispiel für ein XML-Namensraum

Beispiel für ein XML-Namensraum

Dabei ist zu beachten, dass die Default-Namensräume nicht für Attribute sondern nur für Elemente Gültigkeit haben. Die Attribute selbst gehören zu keinem Namensraum.

Durch ein vorangestelltes Präfix kann explizit gekennzeichnet werden, das ein Name einem definierten Namensraum zugehörig ist. Das Präfix wird bei der Deklaration des Namensraums zugewiesen, und zur Trennung ein Doppelpunkt verwendet. Dieses Präfix ist lediglich aus Gründen der Abkürzung für den Namensraum und der Übersichtlichkeit gedacht, wird aber bei Abarbeitung durch den XML-Prozessor durch die URL-Adresse ersetzt. Die Syntax dafür lautet:

Zuordnung eines Namens zu einem definierten Namensraum

Zuordnung eines Namens zu einem definierten Namensraum

Der gesamte Name besteht dann aus: namepräfix:elementname

und wird als sogenannter qualifizierter Name bezeichnet bzw. der Elementname als lokaler Name.

Eine abschließende Anmerkung zum Thema "Document Type Definition (DTD) und Namensräume". Hier ist zu beachten, dass die Syntax für DTDs bereits vor der Empfehlung des W3C zum Thema "Namensräume" definiert wurde. Somit unterstützen DTDs auch nicht das Konzept der Namensräume und in Folge dessen müssen die Elemente und Attribute einschließlich eines möglichen Präfixes explizit in einer DTD angegeben werden. Dadurch wird eine DTD leicht unübersichtlich und schlecht lesbar. Anders verhält es sich bei XML-Schema - dort integriert das Konzept der Sprache bereits in der Spezifikation die Verwendung von Namensräumen.

Informationen zum Artikel
Deutsch: Namensraum XML
Englisch: namespace XML
Veröffentlicht: 17.11.2013
Wörter: 670
Tags: SW-Technologien
Links: XML-Format, uniform resource identifier (URI), Prozessor, Parser, Dokumenttyp-Deklaration
Übersetzung: EN
Sharing: