La spécification XML Inclusions propose un mécanisme d'inclusion de ressources distantes dans un document XML.
La mise en oeuvre de cette proposition s'effectue par l'intermédiaire de l'insertion d'un élément <xi:include> à la position désirée pour l'inclusion de la ressource distante.
<xi:include href="URI" parse="type" encoding="encodage"/>
L'élément <xi:include> possède un espace de noms standardisé par le World Wide Web Consortium (W3C)
http://www.w3.org/2001/XInclude
Les inclusions peuvent se réaliser sur tout type de ressources XML, à l'image des noeuds d'éléments, d'attributs, de textes, d'instructions de traitement, de commentaire, mais aussi gràce aux XPointers, d'intervalles de noeuds ou de texte.
Les attributsAttribut | Valeur | Description |
---|---|---|
href | URI | spécifie l'adresse URI de la ressource distante. |
parse | xml text |
indique le type de format souhaité. |
encoding | CDATA | indique l'encodage de la ressource distante. |
L'adresse URI de l'attribut href peut être absolue ou relative et peut contenir des fragments de localisation, soit des expressions XPointer.
L'attribut parse accepte deux valeurs,
Enfin, l'attribut d'encodage encoding accepte n'importe quel jeu de caractères standardisé, afin de traduire les données textuelles dans le format adéquat. Cet attribut n'a aucun effet lorsque parse possède la valeur xml.
La déclaration dans la DTDL'utilisation des éléments et attributs d'inclusion nécessite une déclaration préalable dans la Définition de Type de Document (DTD).
Exemple :<!ELEMENT xi:include EMPTY> <!ATTLIST xi:include xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude" href CDATA #REQUIRED parse (xml|text) "xml" encoding CDATA #IMPLIED>
<!-- Document des éléments à inclure : page.xml --> <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE page SYSTEM "def_page.dtd"> <page> <partie id="entete"> Librairie du Grand Colbert ... </partie> <partie id="baspage"> Copyright 2001 Groupe Library Ent. SA 100 000 Francs ... </partie> </page> <!-- Document accueillant les inclusions : biblio.xml--> <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE bibliothèque [ <!ELEMENT bibliothèque ANY> <!ELEMENT xi:include EMPTY> <!ATTLIST xi:include xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude" href CDATA #REQUIRED parse (xml|text) "xml" encoding CDATA #IMPLIED> <!ELEMENT livre (titre,numero)> <!ELEMENT collection (titre,numero)> <!ELEMENT titre (#PCDATA)> <!ELEMENT numero (#PCDATA)> ]> <bibliothèque> <xi:include parse="xml" href="page.xml#xpointer(id('entete'))"/> <livre> <titre>La bible XML</titre> <numero>XML0023</numero> </livre> <collection> <titre>XML, par la pratique</titre> <numero>XML1023</numero> </collection> <piedpage> <xi:include parse="text" encoding="ISO-8859-1" href="page.xml#xpointer(string-range(/*[1]/*[2], 'Copyright 2001 Groupe Library Ent.'))"/> </piedpage> </bibliothèque> <!-- Document résultant --> <?xml version="1.0" encoding="ISO-8859-1"?> <bibliothèque> <partie id="entete"> Librairie du Grand Colbert ... </partie> <livre> <titre>La bible XML</titre> <numero>XML0023</numero> </livre> <collection> <titre>XML, par la pratique</titre> <numero>XML1023</numero> </collection> <piedpage> Copyright 2001 Groupe Library Ent. </piedpage> </bibliothèque> |