XML -Tutorial

XML-HOME XML-Einführung XML-Wie zu verwenden XML-Baum XML-Syntax XML-Elemente XML-Attribute XML-Namespaces XML-Anzeige XML-HttpRequest XML-Parser XML-DOM XML-XPath XML-XSLT XML-XQuery XML-XLink XML-Validierer XML-DTD XML-Schema XML-Server XML-Beispiele XML-Quiz XML-Zertifikat

XML-AJAX

AJAX-Einführung AJAX-XMLHttp AJAX-Anfrage AJAX-Antwort AJAX-XML-Datei AJAX-PHP AJAX ASP AJAX-Datenbank AJAX-Anwendungen AJAX-Beispiele

XML-DOM

DOM-Einführung DOM-Knoten DOM-Zugriff DOM-Knoten-Info DOM-Knotenliste DOM-Traversierung DOM-Navigation DOM Get-Werte DOM-Änderungsknoten DOM-Knoten entfernen DOM-Ersetzungsknoten DOM-Knoten erstellen DOM-Knoten hinzufügen DOM-Klonknoten DOM-Beispiele

XPath -Tutorial

XPath-Einführung XPath-Knoten XPath-Syntax XPath-Achsen XPath-Operatoren XPath-Beispiele

XSLT -Tutorial

XSLT-Einführung XSL-Sprachen XSLT-Transformation XSLT <Vorlage> XSLT <Wert von> XSLT <für-jeden> XSLT <sortieren> XSLT <wenn> XSLT <auswählen> XSLT anwenden XSLT auf dem Client XSLT auf dem Server XSLT XML bearbeiten XSLT-Beispiele

XQuery- Tutorial

XQuery-Einführung XQuery-Beispiel XQuery FLWOR XQuery-HTML XQuery-Bedingungen XQuery-Syntax XQuery hinzufügen XQuery-Auswahl XQuery-Funktionen

XML -DTD

DTD-Einführung DTD-Bausteine DTD-Elemente DTD-Attribute DTD-Elemente vs. Attr DTD-Entitäten DTD-Beispiele

XSD- Schema

XSD-Einführung XSD-Anleitung XSD <Schema> XSD-Elemente XSD-Attribute XSD-Einschränkungen

XSD- Komplex

XSD-Elemente XSD leer Nur XSD-Elemente Nur XSD-Text XSD gemischt XSD-Indikatoren XSD <beliebig> XSD <beliebiges Attribut> XSD-Ersetzung XSD-Beispiel

XSD -Daten

XSD-String XSD-Datum XSD Numerisch XSD Sonstiges XSD-Referenz

Webdienste _

XML-Dienste XML-WSDL XML-SOAP XML-RDF XML-RSS

Verweise

DOM-Knotentypen DOM-Knoten DOM-Knotenliste DOM NamedNodeMap DOM-Dokument DOM-Element DOM-Attribut DOM-Text DOM-CDATA DOM-Kommentar DOM-XMLHttpRequest DOM-Parser XSLT-Elemente XSLT/XPath-Funktionen

XML -Namespaces


XML-Namespaces bieten eine Methode zur Vermeidung von Elementnamenskonflikten.


Namenskonflikte

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

Dieses XML enthält HTML-Tabelleninformationen:

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

Dieses XML 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 XML-Fragmente zusammengefügt würden, würde es zu einem Namenskonflikt kommen. Beide enthalten ein <table>-Element, aber die Elemente haben unterschiedliche Inhalte und Bedeutungen.

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


Den Namenskonflikt mit einem Präfix lösen

Namenskonflikte in XML lassen sich einfach durch ein Namenspräfix vermeiden.

Dieses XML enthält 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>

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



XML-Namespaces - Das xmlns-Attribut

Bei der Verwendung von Präfixen in XML muss ein Namensraum für das Präfix definiert werden.

Der Namensraum kann durch ein xmlns - Attribut im Start-Tag eines Elements definiert werden.

Die Namespace-Deklaration hat die folgende Syntax. xmlns: Präfix = " 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="https://www.w3schools.com/furniture">
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

</root>

Im obigen Beispiel:

Das xmlns-Attribut im ersten <table>-Element gibt dem h:-Präfix einen qualifizierten Namensraum.

Das xmlns-Attribut im zweiten <table>-Element gibt dem f:-Präfix einen qualifizierten Namensraum.

Wenn ein Namespace für ein Element definiert wird, werden alle untergeordneten Elemente mit demselben Präfix demselben Namespace zugeordnet.

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

<root xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="https://www.w3schools.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>

Hinweis: Der Namespace-URI wird vom Parser nicht zum Nachschlagen von Informationen verwendet.

Der Zweck der Verwendung eines URI besteht darin, dem Namensraum einen eindeutigen Namen zu geben.

Unternehmen verwenden den Namensraum jedoch häufig als Verweis auf eine Webseite, die Namensrauminformationen enthält.


Uniform Resource Identifier (URI)

Ein Uniform Resource Identifier (URI) ist eine Zeichenfolge, die eine Internetressource identifiziert.

Der gebräuchlichste URI ist der Uniform Resource Locator (URL), der eine Internetdomänenadresse identifiziert. Ein weiterer, nicht so verbreiteter URI-Typ ist der Uniform Resource Name (URN).


Standard-Namespaces

Das Definieren eines Standardnamensraums für ein Element erspart uns die Verwendung von Präfixen in allen untergeordneten Elementen. Es hat die folgende Syntax:

xmlns="namespaceURI"

Dieses XML enthält HTML-Tabelleninformationen:

<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="https://www.w3schools.com/furniture">
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

Namespaces in der realen Verwendung

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

Das folgende XML-Dokument ist ein Dokument, das verwendet wird, um XML in HTML umzuwandeln.

Der Namespace "http://www.w3.org/1999/XSL/Transform" identifiziert XSLT-Elemente innerhalb eines HTML-Dokuments:

<?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 unser XSLT-Tutorial .