Latest web development tutorials

XML Namespaces

Namespaces XML offrent une méthode pour éviter les conflits de nom élément.


Nommer les conflits

En XML, les noms d'éléments sont définis par le développeur, lorsque deux documents différents utilisent le même nom de l'élément, un conflit de nom se produira.

Cette XML porte HTML informations de table:

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

Cette XML comporte des informations sur une table (un meuble):

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

Si ces deux documents XML sont utilisés ensemble, étant donné que les deux documents sont inclus avec un contenu différent et la définition de l'élément <table>, les conflits de noms se produisent.

analyseur XML ne peut pas déterminer comment faire face à de tels conflits.


Utilisez préfixes pour éviter les conflits de noms

Les conflits de noms en XML peuvent être obtenus en utilisant le préfixe si facilement évité.

Cette XML porte tableau HTML et un meuble dans un message:

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

Dans l'exemple ci-dessus, il n'y a pas de conflit parce que les deux <table> éléments ont des noms différents.


espace de noms XML - attribut xmlns

Lors de l' utilisation des préfixes en XML, unespace de nomsque l' on appelle pour le préfixe doit être défini.

xmlns Namespace attributest défini dans la balise de début de l'élément.

syntaxe de déclaration d'espace de noms est la suivante. 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.w3cschool.cc/furniture" >
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>

</root>

Dans l'exemple ci-dessus, attribut xmlns balise <table> définit h: namespace prefix qualifié: et f.

Quand un espace de noms est défini dans la balise de début de l'élément, tous les éléments de l'enfant avec le même préfixe et sont associés à un espace de noms.

Namespace, vous pouvez déclarer ou ils sont utilisés dans l'élément dans l'élément racine XML:

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

Remarque: L'espace de noms URI analyseur ne sera pas utilisé pour trouver des informations.

Son but est de donner l'espace de noms d'un nom unique. Cependant, de nombreuses entreprises utilisent souvent l'espace de noms comme un pointeur pour pointer vers l'existence réelle d'une page, cette page contient des informations sur l'espace de noms.

Visitez http://www.w3.org/TR/html4/ .


identifiant de ressource uniforme (URI, signifie Uniform Resource Identifier)

Uniform Resource Identifier (URI) est une chaîne de caractères qui peuvent identifier les ressources Internet.

L'URI le plus commun est leUniform Resource Locator utilisé pour identifier une adresse de domaine Internet (URL).Un URI moins commun est leUniform Resource Name (URN).

Dans notre exemple, nous utilisons seulement URL.


Default namespace

Element définit l'espace de noms par défaut nous permet d'omettre le préfixe dans tous les sous-éléments dans le travail. Sa syntaxe est la suivante:

xmlns="namespaceURI"

Cette XML porte HTML informations de table:

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

Cette XML porte des informations sur un meuble:

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


L'utilisation réelle de l'espace de noms

XSLT est un processus pour les documents XML dans un autre format de langage XML, tels que HTML.

Dans le document XSLT ci-dessous, vous pouvez voir que la plupart des balises sont des balises HTML.

balises non HTML ont le préfixe xsl, et identifie ainsi l'espace de noms: 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>My CD Collection</h2>
<table border="1">
<tr>
<th align="left">Title</th>
<th 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>

Si vous voulez en apprendre davantage sur XSLT, s'il vous plaît notre page d'accueil pour trouver XSLT tutoriel.