Manuel techniqu...login
Manuel technique XML
auteur:php.cn  temps de mise à jour:2022-04-14 15:57:53

Espace de noms XML



Les espaces de noms XML permettent d'éviter les conflits de noms d'éléments.


Conflit de noms

En XML, les noms d'éléments sont définis par les développeurs. Des conflits de noms se produisent lorsque deux documents différents utilisent le même nom d'élément.

Ce XML porte les informations du tableau HTML :

<table>
​ <tr>
​​ <td>Pommes</td>
​​ <td>Bananes</td>
​ </tr>
</table>

Ce document XML contient des informations sur une table (un meuble) :

<table>
​ <nom>Table basse africaine</nom>
​ <largeur>80</largeur>
​ <length>120</length>
</table>

Si ces deux documents XML sont utilisés ensemble, puisque les deux documents contiennent un élément < avec un contenu et des définitions différents ;table> un conflit de nom se produira.

L'analyseur XML ne peut pas déterminer comment gérer ce type de conflit.


Utilisez des préfixes pour éviter les conflits de noms

Les conflits de noms en XML peuvent être facilement évités en utilisant des préfixes de noms.

Ce XML contient des informations sur une table HTML et un meuble :

<h:table>
​ <h:tr>
​​ <h:td>Pommes</h:td>
​​ <h:td>Bananes</h:td>
​ </h:tr>
</h:table>

<f:table>
<f:name>Table basse africaine</f:name>
<f:largeur>80</f:largeur>
<f:longueur>120</f:longueur>
</f:table>

Dans l'exemple ci-dessus, il n'y aurait pas de conflit car les deux éléments <table>


Espace de noms XML - attribut xmlns

Lors de l'utilisation de préfixes en XML, un soi-disant espace de noms pour le préfixe doit être défini. L'espace de noms

est défini dans l'attribut xmlns de la balise d'ouverture de l'élément.

La syntaxe de la déclaration de l'espace de noms est la suivante. xmlns :Préfixe="URI".

<racine>

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

<f:table xmlns:f="http://www.w3cschool.cc/furniture">
<f:name>Table basse africaine</f:name>
<f:largeur>80</f:largeur>
<f:longueur>120</f:longueur>
</f:table>

</root>

Dans l'exemple ci-dessus, l'attribut xmlns de la balise <table> définit l'espace de noms qualifié pour les préfixes h: et f:.

Lorsqu'un espace de noms est défini dans la balise d'ouverture d'un élément, tous les éléments enfants avec le même préfixe seront associés au même espace de noms.

les espaces de noms peuvent être déclarés dans l'élément dans lequel ils sont utilisés ou 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>Pommes</h:td>
<h:td>Bananes</h:td>
</h:tr>
</h:table>

<f:table>
<f:name>Table basse africaine</f:name>
<f:largeur>80</f:largeur>
<f:longueur>120</f:longueur>
</f:table>

</root>

Remarque : Les URI des espaces de noms ne sont pas utilisés par les analyseurs pour trouver des informations.

Le but est de donner à l'espace de noms un nom unique. Cependant, de nombreuses entreprises utilisent souvent des espaces de noms comme pointeurs vers des pages Web existantes contenant des informations sur l'espace de noms.

Veuillez visiter http://www.w3.org/TR/html4/.


Uniform Resource Identifier (URI, nom complet : Uniform Resource Identifier) ​​​​

Uniform Resource Identifier (URI) est une chaîne de caractères qui peut identifier Ressources Internet.

L'URI le plus couramment utilisé est le Uniform Resource Locator (URL) utilisé pour identifier les adresses de domaine Internet. Un autre URI moins couramment utilisé est Uniform Resource Name (URN).

Dans notre exemple, nous utilisons simplement l'URL.


Espace de noms par défaut

Définir un espace de noms par défaut pour un élément nous évite le travail d'utilisation de préfixes sur tous les éléments enfants. Sa syntaxe est la suivante :

xmlns="namespaceURI"

Ce XML porte les informations de la table HTML :

<table xmlns="http://www.w3.org/TR/html4/">
​ <tr>
​​ <td>Pommes</td>
​​ <td>Bananes</td>
​ </tr>
</table>

Ce XML contient des informations sur un meuble :

<table xmlns="http://www.w3schools.com/furniture ">
​ <nom>Table basse africaine</nom>
​ <largeur>80</largeur>
​ <longueur>120</longueur>
</table>


Espaces de noms utilisés

XSLT est un langage XML utilisé pour transformer des documents XML dans d'autres formats, tels que HTML.

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

Les balises non HTML sont préfixées par xsl et identifiées par cet espace de noms : xmlns:xsl="http://www.w3.org/1999/XSL/Transform":

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

<xsl:version de la feuille de style="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<corps>
<h2>Ma collection de CD</h2>
<bordure du tableau="1">
<tr>
                                                                                                                                                                                                 <th align="left">Titre</th>
                                                      <th align="left">Artiste</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:valeur-de select="titre"/></td>
<td><xsl:valeur de select="artiste"/></td>
</tr>
</xsl:pour-chacun>
</table>
</corps>
</html>
</xsl:modèle>

</xsl:stylesheet>

Si vous souhaitez en savoir plus sur XSLT, retrouvez les tutoriels XSLT sur notre page d'accueil.


Site Web PHP chinois