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
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
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 --> |
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