Inhaltliche Strukturierung von Ressourcen

Eine Einführung in XML

8. Namespaces


von Margarete Payer und Alois Payer

mailto: payer@hdm-stuttgart.de


Zitierweise / cite as:

Payer, Margarete <1942 - > ; Payer, Alois <1944 - >: Inhaltliche Strukturierung von Ressourcen : eine Einführung in XML. -- 8. Namespaces. -- Fassung vom 2002-11-19. -- URL: http://www.payer.de/xml/xml08.htm. -- [Stichwort].

Erstmals publiziert: 2002-10-29

Überarbeitungen: 2002-11-19 [inhaltliche Korrekturen]

Anlass: Lehrveranstaltung an der HdM Stuttgart, SS 2002

Unterrichtsmaterialien (gemäß § 46 (1) UrhG)

©opyright: Dieser Text steht der Allgemeinheit zur Verfügung. Eine Verwertung in Publikationen, die über übliche Zitate hinausgeht, bedarf der ausdrücklichen Genehmigung der Herausgeberin.

Dieser Teil ist ein Kapitel von: 

Payer, Margarete <1942 - > ; Payer, Alois <1944 - >: Inhaltliche Strukturierung von Ressourcen : eine Einführung in XML. -- 0. Übersicht. -- URL: http://www.payer.de/xml/xml00.htm

Dieser Text ist Teil der Abteilung Informationswesen, Bibliothekswesen, Dokumentationswesen  von Tüpfli's Global Village Library.


Zum Zeitpunkt der Abfassung dieses Kapitels gilt Namespaces in XML. -- W3C Recommendation. -- 14-January-1999. -- Die jeweils neueste Version findet man unter URL: http://www.w3.org/TR/REC-xml-names/. -- Zugriff am 2002-10-29

Deutsche Übersetzung: Namensräume in XML.  -- Deutsche Übersetzung 18. Juni 2001. -- Übersetzer: Stefan Schumacher. -- URL: http://www.schumacher-netz.de/TR/1999/REC-xml-names-19990114-de.html. -- Zugriff am 2002-11-19


0. Übersicht



1. Namespaces (Namensräume)


Namespaces dienen theoretisch dazu, dass in einer Ressource Elemente und Attribute aus verschiedenen DTDs gleichzeitig benutzt werden können. Da aber Namespaces fast 30 Jahre nach den DTDs erfunden wurden, sind sie in der DTD nicht vorgesehen. Für ein gültiges XML-Dokument ist nur eine einzige DTD zulässig. Deswegen nützen Namespaces in einer DTD wenig. XML-Dokumente, in denen Namespaces aus verschiedenen DTDs vorkommen, sind  definitionsgemäß bestenfalls nur noch wohlgeformt, nie gültig.

Durch die Syntax von namespaces soll verhindert werden, dass zwei oder mehrere DTDs/Schemas in einer Ressource kollidieren, weil sie gleiche Element- oder Attribut-Namen haben: dadurch, dass dem Namen ein namespace-Präfix vorangestellt ist, sind gleichlautende Element- oder Attributnamen aus mehreren DTDs/Schemas nicht mehr identisch.

Syntax eines durch ein namespace-Präfix qualifizierten Namens Beispiel
namespace_prefix:local_name <xsl:template> <!-- ein Element aus XSLT --!>

<math:mfrac> <!-- ein Element aus MathML --!>

Im Grunde besteht die ganze Namespace-Spezifikation nur darin, dass definiert wird, dass zwischen ein Präfix und den Element- bzw. Attributnamen ein Doppelpunkt gesetzt wird.

Da die W3C Recommendation für namespaces sehr viele wichtige Fragen ungeklärt lässt, ist es empfehlenswert namespaces nur für öffentliche namespaces zu verwenden, die vom W3C oder anderen Institutionen festgelegt sind. (Eine Liste solcher namespaces folgt unten).

Zu den Problemen mit namespaces siehe

XML Namespaces FAQ / Maintained by Ronald Bourret. -- URL: http://www.rpbourret.com/xml/NamespacesFAQ.htm. -- Zugriff am 2002-10-29


2. Namespace Declaration


Bevor man zum Markup einer Ressource einen Namensraum benutzen kann, muss man ihn in der Ressource deklarieren. Die namespace declaration erfolgt in Form eines Attributs eines Elements (s. Kapitel 4). Alle Nachkommen dieses Elementes können Teile dieses Namensraumes werden. Namensräume, die in der gesamten Ressource verwendet werden, müssen also im Grundelement als Attribute angegeben werden.

Syntax einer namespace declaration Beispiele
xmlns:{Name}="{URL}" <xsl:stylesheet  version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <!-- Namespace-Declaration für XSLT, obligatorisch -->

3. Wichtige öffentliche Namespaces


Anwendung namespace
XLink xmlns:xlink="http://www.w3.org/1999/xlink"
XSLT xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
XSL-FO xmlns:fo="http://www.w3.org/1999/XSL/Format"
XML-Schema xmlns:xsd="http://www.w3.org/2001/XML-Schema"
MathML
Mathematical Markup Language
xmlns:math="http.//www.w3.org/1998/Math/MathML"
XHTML
XML-konformes HTML 4
xmlns:html="http.//www.w3.org/1999/xhtml"
SVG
Scalable Vector Graphics
xmlns:svg="http.//www.w3.org/2000/svg"
SMIL
Synchronized Multimedia Integration Language
xmlns:smil="http.//www.w3.org/2001/smil-animation"

Anwendungen von namespaces finden sich unten in den Kapiteln über XLink, XSLT und XML-Schema


Zu Kapitel 9: Verknüpfungen: XLink, XPointer, XPath