XML Namespaces


XML-Namespaces bieten eine Möglichkeit, Elementnamenskonflikte zu vermeiden.


Namenskonflikte

In XML werden Elementnamen von Entwicklern definiert. Wenn zwei verschiedene Dokumente denselben Elementnamen verwenden, kommt es zu Namenskonflikten.

Dieses XML enthält Informationen über eine HTML-Tabelle:

<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>

Dieses XML-Dokument enthält Informationen über einen Tisch (ein Möbelstück):

<table>
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>

Wenn diese beiden XML-Dokumente zusammen verwendet werden, kommt es zu Namenskonflikten, weil beide Dokumente <table>-Elemente mit unterschiedlichem Inhalt und unterschiedlichen Definitionen enthalten.

XML-Parser können nicht bestimmen, wie mit dieser Art von Konflikt umgegangen werden soll.


Verwenden von Präfixen zur Vermeidung von Namenskonflikten

Namenskonflikte in XML lassen sich leicht vermeiden, indem Namenspräfixe verwendet werden.

Diese XML enthält Informationen über eine HTML-Tabelle und ein Möbelstück:

<h:table>
<h:tr>
<h:td>Äpfel</h:td>
<h:td>Bananen</h:td>
</h:tr>
</h:table>

<f:table>
<f:name>Afrikanischer Couchtisch</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>

Im obigen Beispiel gibt es keinen Konflikt, weil die beiden <table>-Elemente unterschiedliche Namen haben.


XML-Namensräume - Das xmlns-Attribut

Wenn Präfixe in XML verwendet werden, muss ein sogenannterNamensraumfür das Präfix definiert werden.

Der Namensraum wird imxmlns-Attributdes Start-Tags des Elements definiert.

Die Syntax zum Deklarieren eines Namensraums lautet wie folgt. xmlns:Präfix="URI"。

<root>

<h:table xmlns:h="http://www.w3.org/TR/html4/">
<h:tr>
<h:td>Äpfel</h:td>
<h:td>Bananen</h:td>
</h:tr>
</h:table>

<f:table xmlns:f="http://www.w3cschool.cc/furniture">
<f:name>Afrikanischer Couchtisch</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>

</root>

Im obigen Beispiel definiert das xmlns-Attribut des <table>-Tags den qualifizierten Namensraum für die Präfixe h: und f:.

Wenn ein Namensraum im Start-Tag eines Elements definiert wird, werden alle untergeordneten Elemente mit demselben Präfix demselben Namensraum zugeordnet.

Namensräume können in den Elementen deklariert werden, in denen sie verwendet werden, oder im XML-Wurzelelement:

<root xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="http://www.w3cschool.cc/furniture"
>

<h:table>
<h:tr>
<h:td>Äpfel</h:td>
<h:td>Bananen</h:td>
</h:tr>
</h:table>

<f:table>
<f:name>Afrikanischer Couchtisch</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>

</root>

Hinweis:Der Namensraum-URI wird vom Parser nicht verwendet, um Informationen nachzuschlagen.

Sein Zweck ist es, dem Namensraum einen eindeutigen Namen zu geben. Allerdings verwenden viele Unternehmen den Namensraum oft als Zeiger auf eine tatsächliche Webseite, die Informationen über den Namensraum enthält.

Bitte besuchen Siehttp://www.w3.org/TR/html4/。


Uniform Resource Identifier (URI, vollständiger Name: Uniform Resource Identifier)

Der Uniform Resource Identifier(URI) ist eine Zeichenkette, die Internetressourcen identifizieren kann.

Die am häufigsten verwendete URI ist diejenige, die zur Identifizierung von Internet-Domainnamen-Adressen verwendet wird, derUniform Resource Locator(URL). Eine andere weniger häufig verwendete URI ist derUniform Resource Name(URN)。

In unseren Beispielen verwenden wir nur URLs.


Standard-Namensräume

Wenn wir einen Standard-Namensraum für ein Element definieren, ersparen wir uns die Verwendung von Präfixen in allen untergeordneten Elementen. Die Syntax lautet wie folgt:

xmlns="namespaceURI"

Dieses XML enthält Informationen über eine HTML-Tabelle:

<table xmlns="http://www.w3.org/TR/html4/">
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>

Dieses XML enthält Informationen über ein Möbelstück:

<table xmlns="http://www.w3schools.com/furniture">
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>


Namensräume in der Praxis

XSLT ist eine XML-Sprache, die verwendet wird, um XML-Dokumente in andere Formate wie HTML umzuwandeln.

Im folgenden XSLT-Dokument können Sie sehen, dass die meisten Tags HTML-Tags sind.

Die Nicht-HTML-Tags haben alle das Präfix xsl und werden durch diesen Namensraum identifiziert: xmlns:xsl="http://www.w3.org/1999/XSL/Transform":

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<body>
<h2>Meine CD-Sammlung</h2>
<table border="1">
<tr>
Titel
Künstler
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>

</xsl:stylesheet>

Wenn Sie mehr über XSLT erfahren möchten, besuchen Sie bitte unsereHomepage, um das XSLT-Tutorial zu finden.


Andere Erweiterungen