Neueste Web-Entwicklung Tutorials
 

XML Namespaces


XML-Namespaces stellen ein Verfahren Elementnamenskonflikte zu vermeiden.


Namenskonflikte

In XML-Elementnamen werden vom Entwickler festgelegt. Dies führt häufig zu einem Konflikt, wenn sie versuchen XML-Dokumente aus verschiedenen XML-Anwendungen zu mischen.

Diese XML trägt HTML-Tabelle Informationen:

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

Diese XML trägt Informationen über eine Tabelle (a piece of furniture) :

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

Wenn diese XML-Fragmente zusammenaddiert wurden, gäbe es einen Namenskonflikt sein. Beide enthalten ein <table> Element, aber die Elemente haben unterschiedliche Inhalt und Bedeutung.

Ein Benutzer oder eine XML-Anwendung wird nicht wissen, wie diese Unterschiede zu behandeln.


Die Lösung des Namenskonflikt ein Präfix

Namenskonflikte in XML können leicht einen Namen Präfix vermieden werden.

Diese XML trägt Informationen über eine HTML-Tabelle, und ein Möbelstück:

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

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

In dem obigen Beispiel wird es keinen Konflikt , weil die beiden <table> Elemente unterschiedliche Namen haben.


XML - Namespaces - Die xmlns Attribut

Wenn Präfixe in XML, ein mit namespace für das Präfix muss definiert werden.

Der Namensraum kann durch eine definiert werden xmlns Attribut in dem Start - Tag eines Elements.

Die Namespace-Deklaration hat die folgende Syntax. xmlns: prefix =" URI " .

<root>

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

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

</root>

In dem obigen Beispiel:

Die xmlns - Attribut in der ersten <table> Element gibt dem h: einen qualifizierten Namespacepräfix.

Die xmlns - Attribut in der zweiten <table> Element gibt dem f: einen qualifizierten Namespacepräfix.

Wenn ein Namespace für ein Element, alle untergeordneten Elemente mit dem gleichen Präfix definiert ist, werden mit dem gleichen Namensraum zugeordnet ist.

Namespaces können auch im XML-Wurzelelement deklariert werden:

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

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

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

</root>

Note: Der Namespace - URI wird nicht vom Parser verwendet , um Informationen zu suchen.

Der Zweck der Verwendung eines URI ist der Namespace einen eindeutigen Namen zu geben.

Allerdings verwenden die Unternehmen oft den Namespace als Zeiger auf eine Webseite mit Namespace-Informationen.


Uniform Resource Identifier (URI)

A Uniform Resource Identifier (URI) ist eine Zeichenfolge , die eine Internet - Ressource identifiziert.

Die häufigste URI ist , den Uniform Resource Locator (URL) , der eine Internet - Domain - Adresse identifiziert. Eine andere, nicht so häufige Art von URI ist der Universal Resource Name - Universal Resource Name (URN) .


Standard-Namespaces

ein Standard-Namespace für ein Element festlegen erspart uns von Präfixen in allen untergeordneten Elemente verwenden. Er hat die folgende Syntax:

xmlns="namespaceURI"

Diese XML trägt HTML-Tabelle Informationen:

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

Diese XML trägt Informationen über ein Möbelstück:

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

Namespaces in Echt Nutzung

XSLT ist eine Sprache, die verwendet werden kann, XML-Dokumente in andere Formate zu transformieren.

Das XML-Dokument unten, ist ein Dokument verwendet, um XML in HTML zu transformieren.

Der Namensraum "http://www.w3.org/1999/XSL/Transform" identifiziert XSLT - Elemente in einem HTML - Dokument:

<?xml version="1.0" encoding="UTF-8 " ?>

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

<xsl:template match="/">
<html>
<body>
  <h2>My CD Collection</h2>
  <table border="1">
    <tr>
      <th style="text-align:left">Title</th>
      <th style="text-align:left">Artist</th>
    </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, lesen Sie bitte unsere XSLT Tutorial .