Schéma XML:Espaces de nom
Un article de WikiTuto.
Sommaire |
[modifier]
Introduction
La notion d'espace de nom est complexe ; elle permet à un document XML quelconque d'utiliser les balises définies dans un schéma donné... quelconque. Nous avons déjà utilisé cette notion :
- dans les feuilles de style XSL, où nous utilisions des éléments préfixés par xsl, après avoir écrit
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- dans un schéma, où nous utilisions des éléments préfixés par xsd, après avoir écrit
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">.
Cela signifie que l'espace de nom auquel ces balises font référence, là où elles sont définies , est un schéma particulier, que l'on peut consulter.
[modifier]
Comment lier un fichier XML à un schéma ?
Nous n'allons pas ici entrer dans les détails de la notion d'espace de nom, mais simplement apprendre à valider un document XML d'après un Schema XML. On utilise pour ce faire le préfixe xmlns.
- Nous avons déjà vu le cas, équivalent à une DTD de type PUBLIC, où le schéma est... public. Un schéma est en effet un document XML, et on trouve dans son élément racine l'attribut xmlns:xsd="http://www.w3.org/2001/XMLSchema". Cela signifie que dans le document, tous les éléments commençant par xsd sont référencés à cette URL. Donc si on a déposé un schéma à l'adresse http://www.monsite.org/collection_schemas/biblio, on peut l'appeler par
<xsd:biblio xmlns="http://www.monsite.org/collection_schemas/biblio">.
- Dans le cas d'une référence locale, correspondant à une DTD de type SYSTEM, on fait référence au schéma dans le document XML en utilisant l'attribut noNamespaceSchemaLocation, par
<biblio xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="lien_relatif_vers_le_schema">. Par exemple, <biblio xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="biblio10.xsd">.
[modifier]



