Tutoriel XML

ACCUEIL XML Introduction XML XML Comment utiliser Arbre XML Syntaxe XML Éléments XML Attributs XML Espaces de noms XML Affichage XML Requête HTTP XML Analyseur XML DOM XML XPath XML XML XSLT XQuery XML XMLXLink Validateur XML DTD XML Schéma XML Serveur XML Exemples XML XML Quiz Certificat XML

XMLAJAX

Présentation d'AJAX AJAX XMLHttp Requête AJAX Réponse AJAX Fichier XML AJAX PHP AJAX ASP AJAX Base de données AJAX Applications AJAX Exemples AJAX

DOM XML

Présentation du DOM Nœuds DOM Accès au DOM Informations sur le nœud DOM Liste des nœuds DOM Traversée du DOM Navigation DOM DOM Obtenir des valeurs Nœuds de changement DOM DOM Supprimer les nœuds DOM Remplacer les nœuds DOM Créer des nœuds DOM Ajouter des nœuds Nœuds de clonage DOM Exemples DOM

Tutoriel XPath

Présentation de XPath Nœuds XPath Syntaxe XPath Axes XPath Opérateurs XPath Exemples XPath

Tutoriel XSLT

Présentation de XSLT Langages XSL Transformation XSLT XSLT <modèle> XSLT <valeur-de> XSLT <pour-chaque> XSLT <sort> XSLT <si> XSLT <choisir> Appliquer XSLT XSLT sur le client XSLT sur le serveur XSLT Éditer XML Exemples XSLT

Tutoriel XQuery

Présentation de XQuery Exemple XQuery XQuery FLWOR XQuery HTML Termes XQuery Syntaxe XQuery Ajouter XQuery Sélection XQuery Fonctions XQuery

DTD XML

Présentation de la DTD Blocs de construction DTD Éléments DTD Attributs DTD Éléments DTD vs Attr Entités DTD Exemples de DTD

Schéma XSD

Présentation XSD Comment XSD XSD <schéma> Éléments XSD Attributs XSD Restrictions XSD

Complexe XSD

Éléments XSD XSD vide Éléments XSD uniquement Texte XSD uniquement XSD Mixte Indicateurs XSD XSD <tout> XSD <anyAttribute> Remplacement XSD Exemple XSD

Données XSD

Chaîne XSD Date XSD Numérique XSD Divers XSD Référence XSD

Services Web

Services XML XMLWSDL SAVON XML XML RDF XML RSS

Les références

Types de nœuds DOM Nœud DOM Liste de nœuds DOM DOM NamedNodeMap Documents DOM Élément DOM Attribut DOM Texte DOM DOM CDATA DOM Comment DOM XMLHttpRequest Analyseur DOM Éléments XSLT Fonctions XSLT/XPath

Espaces de noms XML


Les espaces de noms XML fournissent une méthode pour éviter les conflits de noms d'éléments.


Conflits de noms

En XML, les noms d'éléments sont définis par le développeur. Cela entraîne souvent un conflit lorsque vous essayez de mélanger des documents XML provenant de différentes applications XML.

Ce XML contient des informations de tableau HTML :

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

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

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

Si ces fragments XML étaient additionnés, il y aurait un conflit de noms. Les deux contiennent un élément <table>, mais les éléments ont un contenu et une signification différents.

Un utilisateur ou une application XML ne saura pas comment gérer ces différences.


Résolution du conflit de nom à l'aide d'un préfixe

Les conflits de noms en XML peuvent facilement être évités à l'aide d'un préfixe de nom.

Ce XML contient des informations sur un tableau 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>

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



Espaces de noms XML - L'attribut xmlns

Lors de l'utilisation de préfixes dans XML, un espace de noms pour le préfixe doit être défini.

L'espace de noms peut être défini par un attribut xmlns dans la balise de début d'un élément.

La déclaration d'espace de noms a la syntaxe suivante. 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.w3schools.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 :

L'attribut xmlns dans le premier élément <table> donne au préfixe h: un espace de noms qualifié.

L'attribut xmlns dans le deuxième élément <table> donne au préfixe f: un espace de noms qualifié.

Lorsqu'un espace de noms 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 noms.

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

Remarque : L'URI de l'espace de noms n'est pas utilisé par l'analyseur pour rechercher des informations.

Le but de l'utilisation d'un URI est de donner à l'espace de noms un nom unique.

Cependant, les entreprises utilisent souvent l'espace de noms comme pointeur vers une page Web contenant des informations sur l'espace de noms.


Identifiant de ressource uniforme (URI)

Un identificateur de ressource uniforme (URI) est une chaîne de caractères qui identifie une ressource Internet.

L'URI le plus courant est l' URL ( Uniform Resource Locator ) qui identifie une adresse de domaine Internet. Un autre type d'URI, moins courant, est l' URN ( Uniform Resource Name ).


Espaces de noms par défaut

Définir un espace de noms par défaut pour un élément nous évite d'utiliser des préfixes dans tous les éléments enfants. Il a la syntaxe suivante :

xmlns="namespaceURI"

Ce XML contient des informations de 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.w3schools.com/furniture">
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

Espaces de noms en utilisation réelle

XSLT est un langage qui peut être utilisé pour transformer des documents XML en d'autres formats.

Le document XML ci-dessous, est un document utilisé pour transformer XML en HTML.

L'espace de noms "http://www.w3.org/1999/XSL/Transform" identifie les éléments XSLT à l'intérieur d'un 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 en savoir plus sur XSLT, veuillez lire notre didacticiel XSLT .