Espaces de noms XML
- Page précédente Attributs XML
- Page suivante Affichage XML
L'espace de nom XML fournit une méthode pour éviter les conflits de nommage des éléments.
Conflit de nommage
Dans XML, le nom de l'élément est défini par le développeur. Lorsque deux documents différents utilisent le même nom d'élément, un conflit de nommage se produit.
Ce document XML contient des informations sur un tableau :
<table> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table>
Ce document XML contient des informations sur la 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, en raison du fait que les deux documents contiennent des éléments <table> avec des contenus et des définitions différents, un conflit de nommage se produira.
Les utilisateurs ou les applications XML ne peuvent pas déterminer comment traiter ce type de conflit.
Résoudre les conflits de noms en utilisant des préfixes
L'utilisation de préfixes permet de éviter facilement les conflits de noms dans XML.
Ce XML contient des informations sur les tableaux HTML et un meuble :
<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>
Maintenant, il n'y a plus de conflit de nommage, car les deux documents utilisent des noms différents pour nommer leurs éléments <table> (<h:table>
et <f:table>
)。
En utilisant un préfixe, nous avons créé deux types différents d'éléments <table>.
Espace de nom XML - attribut xmlns
Lorsque des préfixes sont utilisés dans XML, il est nécessaire de définir le préfixe deEspaces de noms(Namespaces).
Les espaces de nom peuvent être définis via xmlns
attribut pour définir.
La déclaration d'espace de nom utilise cette syntaxe : xmlns:préfixe="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.codew3c.com/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 :
premier élément <table> : xmlns
l'attribut est h:
Le préfixe fournit un espace de nom qualifié.
deuxième élément <table> : xmlns
l'attribut est f:
Le préfixe fournit un espace de nom qualifié.
Si un espace de nom est défini pour un élément, tous les éléments enfants avec le même préfixe sont associés au même espace de nom.
Les espaces de noms peuvent également être déclarés dans l'élément racine XML :
<root xmlns:h="http://www.w3.org/TR/html4/" xmlns:f="https://www.codew3c.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>
Attention :L'analyseur ne utilisera pas l'URI de l'espace de noms pour rechercher des informations.
L'objectif de l'utilisation d'URI est simplement de fournir un nom unique pour l'espace de noms.
Cependant, de nombreuses entreprises utilisent souvent des espaces de noms comme des pointeurs pour pointer vers des pages web existantes, qui contiennent des informations sur l'espace de noms.
Identifiant de ressource uniforme (URI)
Identifiant de ressource uniforme (Identifiant de ressource uniforme,URI) est une chaîne de caractères qui identifie les ressources Internet.
Le type URI le plus commun estLocalisateur de ressource uniforme (Localisateur de ressource uniforme,URL),il identifie les adresses de domaine Internet.
Un autre type de URI moins commun estNom de ressource uniforme (Nom de ressource uniforme,URN)。
Espace de noms par défaut (Default Namespaces)
Définir un espace de nom par défaut pour un élément nous permet d'éviter d'utiliser un préfixe pour tous les éléments enfants.
Utilisez la syntaxe suivante :
xmlns="namespaceURI"
Ce document XML contient des informations sur un tableau HTML :
<table xmlns="http://www.w3.org/TR/html4/"> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table>
Ce XML contient des informations sur un meuble :
<table xmlns="https://www.codew3c.com/furniture"> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table>
Application réelle de l'espace de nom
XSLT est un langage que l'on peut utiliser pour convertir un document XML en d'autres formats.
Le document XML suivant est utilisé pour convertir un XML en HTML.
Si vous regardez attentivement le document XSL ci-dessous, vous verrez que la plupart des balises sont des balises HTML.
Les balises non HTML ont un préfixe xsl, indiqué par cet espace de nom : "http://www.w3.org/1999/XSL/Transform" :
L'espace de nom "http://www.w3.org/1999/XSL/Transform" identifie les éléments XSLT dans le document HTML :
<?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>
Si vous souhaitez approfondir vos connaissances sur XSLT, veuillez lire notre Tutoriel XSLT.
- Page précédente Attributs XML
- Page suivante Affichage XML