La spécification XML Base propose d'affecter à un document XML, une adresse URI (Uniform resource Identifier) utilisée comme base pour l'ensemble des URI relatifs présents dans les atributs xlink:href des éléments liants.
La mise en oeuvre de XML Base s'effectue par l'intermédiaire de l'adjonction à l'élément racine d'un document XML, d'un attribut xml:base, dont la valeur est une adresse URI de base appropriée.
Le préfixe d'espace de noms xml: dépend d'un URI standardisé par le World Wide Web Consortium (W3C).
http://www.w3.org/XML/1998/namespace
L'adresse URI de base se substitue à l'URI du répertoire courant du document, si bien que ce -dernier n'est pas contraint à être placé dans un répertoire précis.
De cette manière, aucune équivoque ne pourrait subsister quant à la localisation des ressources pointées par les liens d'un document, à condition évidemment, que ces ressources soient effectivement accessibles à partir du chemin indiqué.
Le fonctionnement de XML Base peut être apparenté à celui de la balise <base> du langage HTML, définissant également une adresse URL (Uniform Resource Locator) de base pour la page HTML.
Exemple :<?xml version="1.0" standalone="yes"?>
<!DOCTYPE magasin [
<!ELEMENT magasin (service+)>
<!ATTLIST magasin
xmlns:xml CDATA #FIXED "http://www.w3.org/XML/1998/namespace"
xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
xml:base CDATA #REQUIRED>
<!ELEMENT service (produit)>
<!ATTLIST service code ID #REQUIRED>
<!ELEMENT produit (#PCDATA)>
<!ATTLIST produit
code ID #REQUIRED
xlink:type (simple) #FIXED "simple"
xlink:href CDATA #REQUIRED
xlink:show (new|replace|embed|other|none) #IMPLIED "replace"
xlink:actuate (onLoad|OnRequest|other|none) #IMPLIED "onRequest">
]>
<magasin xml:base="http://www.site.com/produit/"
xmlns:xlink="http://www.w3.org/1999/xlink">
<service code="A001">
<produit code="4DE205"
xlink:href="prod4DE205.xml">
Soupe
</produit>
<produit code="2TM206"
xlink:href="prod2TM206.xml">
Condiment
</produit>
<produit code="3KJ227"
xlink:href="prod3KJ227.xml">
Conserve
</produit>
</service>
<service code="A003">
<produit code="1OU152"
xlink:href="prod1OU152.xml">
Lessive
</produit>
<produit code="8AH070"
xlink:href="prod8AH070.xml">
Essui-tout
</produit>
</service>
</magasin> |