logo Mkadmi
Accueil               ISD               Equipe de recherche              Laboratoire Paragraphe            Enssib            ECP              Contact  

Accueil

 
 
 
 
 
   

 
 

webmaster

 
 
Chapitre 1 : Les documents XML

1- Les Regles d'ecriture

  • Il faut noter que la casse des caract res dans un document XML est importante (la casse est discriminante), alors que de facon gcncrale les espaces, tabulations et retours de chariots ne le sont pas.
  • Comme en HTML, les espaces, tabulations, retours et sauts la ligne sont consideres comme des separateurs et sont generes par le parseur sous forme d'espace simple.
  • Il est possible d'ins rer des commentaires dans les documents XML, en utilisant la syntaxe suivante:

<!-- Voici le commentaire -->

  • un commentaire s' crit entre <!- -  et - - > et ne peut contenir le caract re tiret'-'.
  • Les instructions pour les applications sont comprises entre <? et ?> Exemple : <? XXXXXX ?>
  • Un nom (ou Token) commence par une lettre et peut contenir : Lettre, Chiffre, (point),  (tiret), '_' (tiret soulign ), ':' (deux points)

            Tous les mots commen ant par XML ou xml sont r serv s.

2. La Structure du document

Il existe deux types de documents XML : le document bien form et le document valide.

Un document bien form est un document respectant la syntaxe XML.

Un document valide est un document bien form qui respecte une structure type d finie dans une DTD.

Le document XML se compose de :

un prologue (facultatif mais conseill ),

un arbre d' l ments qui constitue le contenu du document,

des commentaires et des instructions de traitement.

2.1. Le prologue

Le prologue des documents XML joue trois r les importants:

1.      Pr ciser qu'il s'agit d'un document XML

2.      Identifier le jeu de caract res utilis

3.      Identifier la grammaire (DTD) utilis e

Les trois l ments sont facultatifs, mais il est en général pr f rable d'include la déclaration XML qui contient les deux premiers éléments d'information.

Si aucun jeu de caract res n'est spécifié, une application XML doit supposer qu'il s'agit du jeu de caract res Unicode, encodé en UTF-8 ou en UTF-16.

Si aucune DTD n'est identifiée, le document est considéré bien form . Si une DTD est spécifiée, le document est alors valide (s'il respecte les r gles dictées dans la DTD bien sur).

Le prologue peut contenir donc :

  • une d claration XML,

         des instructions de traitement,

         une d claration de DTD.

2.1.1. La déclaration XML

. Exemple

< ?xml version=  "1.0"  encoding = "ISO-8859-1" standalone = "yes" ?>

Dans cet exemple, il y a trois parties :

-  L'identification du document XML est n cessairement au d but du document et a la forme suivante :

<?xml version="1.0"?> : Version du langage utilis

-    L'encodage, s'il est sp cifi , se retrouve dans l'instruction de traitement qui identifie le document XML:

<?xml version="1.0" encoding="ISO-8859-1"?>

Dans cet exemple, il s'agit d'un document XML dont le jeu de caracteres est l'ISO-Latin 1 (norme ISO 8859-1), et donc pas l'Unicode. Dans l'exemple pr c dent, le jeu de caracteres tait l'Unicode, avec encodage UTF-8 ou UTF-16, soit la valeur par d faut

 

- standalone='Yes' veut dire que toutes les recherches de déclarations se feront uniquement dans le document.

Un document XML commence donc généralement par la balise <?xml version="1.0" ?> qui peut avoir quelques attributs supplémentaires:

Nom de l'attribut

valeurs possibles

explications

version

1.0

(obligatoire) indique le num ro de version du standard auquel le document se conforme.

encoding

UTF-8, UTF-16, ISO-10646-UCS-2, ISO-10646-UCS-4, ISO-8859-1 ISO-8859-9, ISO-2022-JP, Shift_JIS, EUC-JP

nom de l'encodage de caract res employ dans le fichier

standalone

yes, no

si le document XML fait reference a une DTD ou a des entites definies dans un autre fichier, il faut mettre "no". Sinon, on utilise "yes".

L'encodage est important car il permet au parseur de savoir comment interpr ter le document. Sans cette information, il y a une erreur provoquee lors de la rencontre d'un caractere accentue.

2.1.2. Les instructions de traitement

<?nom param1 param2 ... ?> le nom est une application ou une fonction que l'on appelle en lui passant des param tres.

Les instructions de traitement sont surtout utilis es par les applications qui g n rent du code XML comme les diteurs XML ou par les applications qui interpr tent le code XML comme les navigateurs.

2.1.3. Declaration de type de document (DTD)

La DTD peut etre réfèrencée de la façon suivante:

<!DOCTYPE racine PUBLIC "identificateur public" "uri de la DTD">

Ici, "racine" identifie l'élément qui contient tous les autres dans le document, la mention PUBLIC et la cha ne de caractères qui suit, optionnelles, précise un identificateur public pour cette DTD, et enfin la chaine de caract res qui la suit, obligatoire, précise la localisation de la DTD l'aide d'une URI.

Tr s souvent, un appel une DTD sera de la forme suivante:

<!DOCTYPE racine SYSTEM "racine.dtd">

La déclration d une DTD de cette façon signifie que la DTD est dans un fichier nommé "racine.dtd" et qui se situe dans le meme répertoire que le document.

Soulignons également qu'il est possible d'inclure la DTD à l'int rieur du document lui-meme, de la façon suivante:

<!DOCTYPE racine [

  <!ELEMENT racine EMPTY>

]>

Dans cet exemple, la DTD est incluse dans le document (fournie entre crochets). Il s'agit d'une pratique assez rare, mais cette technique est aussi utilis e pour d clarer des entit s.

2.2. L'arbre d'éléments

Les éléments sont les objets les plus importants des documents XML. En effet, fondamentalement, les documents XML sont des hiérarchies strictes d'éléments. Ainsi, il existe toujours un (et un seul) élément supérieur qui contient tous les autres. De plus, un l ment peut contenir d'autres éléments ou du texte (un type particulier d'élément), et se situe l'int rieur d'un seul élément.

Chaque élément est d fini de la fa on suivante :

<nom> contenu de l'élément </nom>

Le nom indiqué par les balises d'ouverture et de cloture

  • doit commencer par une lettre,

         peut comporter des chiffres, des lettres, les caractères moins (-), tiret soulign ('_'), point ('.')

         la casse est discriminante

         le nom ne peut commencer par XML que ce soit en minuscule, majuscule ou en combinaison des deux.

L'arbre d'éléments décrit la structure hi rarchique d'un l ment. Les éléments les plus fins sont dits l ments terminaux.

2-2-1 élément racine :

Un élément racine est le premier élément déclaré dans un document XML, qui contient tous les autres l ments. Dans notre exemple, l'élément PRODUIT est l'élément racine de notre document.

Exemple

< ?xml version='1.0' ?>

<PRODUIT>

<TOPIC>

                        <TITLE>Création dùun r pertoire de schémas XML</TITLE>

                        <AUTHOR>Abderrazak MKADMI</AUTHOR>

            <PUBLISHER>EDIFRANCE</PUBLISHER>

 

</TOPIC>

<TOPIC>

                        <TITLE>Les bases de donn es relationnelles</TITLE>

            <AUTHOR>Imad Saleh</AUTHOR>

<PUBLISHER>Eyrolles</PUBLISHER>

</TOPIC>

</PRODUIT>

Comme nous avons vu, un seul élément racine est autoris par document.

2.2.2 l ment vide

Un l ment vide est un élément dont le contenu entre la balise d'ouverture et la balise de fermeture est vide (<baliseDOuverture suiteDAttributs></baliseDOuverture suiteDAttributs>); il peut tre abrégé <baliseDOuverture suiteDAttributs /> (il ne faut pas croire qu'un élément vide ne contient pas d'information; les informations qu'il contient sont dans ses attributs).

Un élément vide s'écrit sous la forme suivante :

<exemple></exemple> ou  <exemple/>

3. Les attributs, les entités, les sections littérales

3.1. Pr sentation

L'arbre d' l ments XML peut contenir différents objets :

  • Des attributs : les éléments peuvent contenir des informations complémentaires stock es sous forme d'association nom=valeur. Ces informations permettront d'effectuer des traitements spécifiques (par des applications, des navigateurs ou des feuilles de style XSL) en utilisant des critères distincts des données affichées. Cela permet par exemple de gérer des liens.

-        Des entités : une entit est un objet disposant d'un nom et d'un contenu. Cet objet peut etre interne (une chaine de caract re), externe en format XML (autre fichier XML) ou non (fichier WORD par exemple). Une entité pourra etre référencée sur un attribut.

-         Des sections litt rales : une section litt rale est une cha ne de caract res non interpr t e par le parseur XML. Cela permet ainsi d'inclure des caract res sp ciaux. Par exemple pour inclure des exemples de syntaxes XML dans une page XML.

-         Des données : toutes cha nes de caractères ne r pondant pas aux éléments ci-dessus.

3.2. les attributs

Les attributs sont toujours associés aux éléments. Ils viennent en quelque sorte les qualifier. Ils sont toujours spécifiés dans la balise d'ouverture de l'élément.

3-2-1 utilisation

<exemple attribut= 'valeur'>

Le nom d'attribut respecte les memes règles que les noms d'éléments. La valeur est exprimée en des quotes ou des apostrophes et ne peut contenir les caractères ^,  % et &.

Exemple

<?xml version ="1.0" ?>

<article>

                <editeur nom ="EYROLLES">

                               <ed-adresse>

                                               <rue>1, rue Th nard</rue>

                                               <cp>75005</cp>

                                               <ville>Paris</ville>

                               </ed-adresse>

                </editeur>

                <editeur=nom="First Interactive">

                               <ed-adresse>

                                               <rue>13, rue Buffon</rue>

                                               cp>75005</cp>

                                               <ville>Paris</ville>

                               </ed-adresse>

                </editeur>

<topic>

                <title>XML : le guide de l utilisateur</title>

                <author>Elliotte Rusty Harold</author>

                <editeur nom="EYROLLES"></editeur>

</topic>

<topic>

                <title>Moteurs de recherche pour le web</title>

                <author>Alfred, Emily Glossbrenner</author>

                <editeur nom="First Interactive"></editeur>

</topic>

</article>

Dans l'exemple ci-dessus, l'utilisation des attributs permet de simplifier l' criture puisqu'elle n'oblige pas r crire les informations compl tes sur un diteur lorsque plusieurs ouvrages y font r f rence. Il pourrait tre, cependant, n cessaire d'effectuer un traitement  suppl mentaire (lors des impressions par exemple) afin de remplacer l'attribut par les informations correspondantes.

3.2.2. Utilisation des caract res sp ciaux

Pour inclure des caract res sp ciaux dans les donn es, il est n cessaire d'utiliser l'une des critures suivantes :

  • &# suivi du num ro d cimal du caract re dans les pages UNICODE

        &#x suivi du num ro hexad cimal du caract re dans les pages UNICODE.

Exemple :

            &#38 et &#x26 sont quivalents &

            &#x2200 est quivalent "

En outre il existe aussi des entit s pr d finies pour les caract res utilis s par XML:

  • &gt pour   >,

-         &lt pour   <,

-         &amp pour   &

-         &apos pour   ',

-         &quot pour   '' 

3.2.4. Les attributs pr d finis

Il existe un certain nombre d'attributs pr d finis. C'est le cas par exemple de l'attribut xml:lang qui permet de d finir la langue du document.

Exemple

<p xml :lang = 'fr'>Exemple</p>

Cet attribut est h rit par l'ensemble des l ments fils de l' l ment sur lequel il est d fini.

Autres attributs pr d finis :

  • xml :space='preserve' ou xml :space='default' permet d'indiquer si les caract res d'espacement (espace, tabulation, rupture de ligne, ligne blanche) sont pr serv s ou si l'application peut appliquer le traitement par d faut.

3-3 Les entit s param triques

Servent d finir des symboles qui seront utilis s ailleurs dans la DTD. Ce sont en quelque sorte des raccourcis d' criture : partout o une entit est mentionn e, elle peut tre remplac e par la cha ne de caract res qui lui est associ e. Ce m canisme s'apparente un m canisme de "macro"[2].

Exemple tir de la sp cification du langage HTML:

<!ENTITY % heading "H1|H2|H3|H4|H5|H6">

  • l'exemple ci-dessus a pour effet d'indiquer au syst me que toute occurence de %heading; doit tre remplac e par H1|H2|H3|H4|H5|H6

La d finition d'une entit peut elle-m me faire r f rence d'autres entit s. La substitution est alors effectu e r cursivement. Par exemple, avec les d finitions suppl mentaires suivantes:

<!ENTITY % list "UL | OL">
<!ENTITY % preformatted "PRE">
<!ENTITY % block
"P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT | BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">

L'entit %block; sera d finie comme "P | H1 | H2 | H3 | H4 | H5 | H6 | UL | OL | PRE | DL | DIV | NOSCRIPT | BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS"

3-4 Les entit s de caract res

Servent donner un nom facilement lisible des caract res qui ne sont peut- tre pas repr sentables dans l'alphabet utilis , ou qui ne sont pas disponibles au clavier.

Exemple tir de la sp cification du langage HTML:

<!ENTITY nbsp "&#160;">
<!ENTITY iexcl "&#161;">

Les entit s de caract res d finies dans une DTD peuvent tre utilis es dans un document XML r f ren ant cette DTD l'aide de la notation &NomEntit ;

3.5 Les entit s internes

Les entit s internes permettent de remplacer une valeur par une abr viation. Cette abr viation est appel e Entit Interne et doit tre d clar e dans la d claration du document.

Exemple : entit interne

<?xml version ="1.0" ?>

<?xml:stylesheet href=" 3b-EntiteInterne.xsl" type="text/xsl" ?>

<!DOCTYPE catalogue [

            <!ENTITY INTER "Internet " >

] >

<catalogue>

            <stage>

                        <intitule>XML et les bases de donn es</intitule>

                        <grp-produit>&INTER; </grp-produit>

            </stage>

</catalogue>

Lors de la r f rence l entit interne, son nom est pr fix par & et suffix par ;.

L ordre de d claration des entit s est sans importance.

3.6 Les sections litt rales

Les sections litt rales permettent de cr er des cha nes contenant des caract res sp ciaux.

Exemple

<exemple>contenu :

< ! [CDATA [ <TITLE>l EDI et l Internet</TITLE>]]>

</exemple>

C est l utilisation des d limiteurs < ! [CDATA [ et  ]]> qui d termine le contenu de la section litt rale. Cette derni re ne sera pas interpr t e. Cela signifie que l l ment  exemple  contient :

 contenu : <TITLE>l EDI et l Internet</TITLE>  .

3.7 Les entit s externes

3.7.1 l adressage par URL

Exemple d une entit externe

 

<?xml version ="1.0" ?>

<?xml:stylesheet href=" 3b-EntiteExterne.xsl"  type="text/xsl" ?>

<!DOCTYPE catalogue [

            <!ENTITY INTER " Internet ">

            <!ENTITY Obj_Xmlp SYSTEM "3b_OBJ_XMLP.xml">

] >

<catalogue>

            <stage>

                        <intitule>XML et les bases de donn es</intitule>

                        <grp-produit>&INTER; </grp-produit>

                        &Obj_Xmlp;

            </stage>

</catalogue>

Les fichiers .xml r f renc s n ont pas contenir de prologue. En effet, celui-ci est inclu dans le document principal.

C est le mot cl SYSTEM qui indique qu il s agit d une r f rence de type URL.

3.7.2. Adressage par identificateur public (FPI[3])

L'adressage par identificateur public permet de r aliser une indirection via un fichier externe (fichier catalogue).

<!ENTITY nom PUBLIC "FPI"   "URL">

Le mot cl PUBLIC indique qu'il s'agit d'un FPI. IL est possible d'ajouter une URL qui sera utilis e lorsque l'application ne pourra pas r soudre l'identificateur public.

Exemple :

Code pour r f rencer les entit s pr d finies XHTML

< ! - - character entity set. Typical invocation :

< ! ENTITY % HTMLlat1  PUBLIC

                        "-//W3C//ENTITIES  Latin 1 for XHTML//EN"

                        http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent>

%HTMLlat1 ;

-->

 

Le FPI est de la forme: pr fixe//auteur//description//CodeLangue

3.7.2.1. R solution des identificateurs publics :

La r solution des adressages par FPI se fait de la fa on suivante :

1. recherche d'un fichier catalogue partir d'une variable d'environnement de type PATH,

2. Recherche dans le fichier catalogue d'une entr e correspondante au FPI,

3. R cup ration de l URL associ e l'identificateur,

4. Si l'identificateur n'est pas trouv , utilisation de l URL par d faut.

3.7.2.2. Avantages

L'utilisation de ce mode d'adressage augmente la maintenabilit de l'application en permettant une r utilisation des liens. Lorsqu'une URL change, il n'y a que le fichier catalogue modifier que tous documents XML prennent en compte la modification.

3.8 Les entit s non-XML

La d claration de telles entit s n cessite la d finition pr alable du format de l entit , c est dire de l application capable d interpr ter cette entit .

Exemple

< !DOCTYPE article [

            < !NOTATION perso SYSTEM  "winword.exe" >

            < !ENTITY exemple SYSTEM   "Nonxml.test"  NDATA  perso >

] >

<article>

            <title  test = 'exemple' >

</article>

La r f rence une entit non-XML ne peut se faire qu au niveau d un attribut. Il n est pas possible de r f rencer une entit non-XML dans la valeur d un l ment.

3.9 R capitulatif sur les entit s

1. nom est une r f rence une entit interne ou externe XML

<TEST>&nom</TEST>                                             Autoris

<TEST>Ceci est &nom ;</TEST>                              Autoris

<TEST attribut=&nom ;></TEST>                             Autoris

<TEST attribut =&nom ;>exemple</TEST>                Autoris

 

2. nom  est une r f rence une entit externe non-XML

<TEST attribut ='nom'></TEST>                                Autoris

<TEST>'nom'</TEST>                                              Non Autoris

Conseil d' criture

1. l ment versus attribut

Il n'est pas toujours facile de choisir entre l ment et attribut, car il n'y a pas de r gles absolues car tout peut se r duire des l ments sans attributs.

Les crit res de choix sont li s  :

        La structure de l'information

- Structur e ou non structur e multi-lignes   l ments

- Non structur e attribut

        Qui et comment est exploit e l'information

- Homme ou machine et type d'application

        L'ordre de l'information a-t-il une importance

- Ordre important l ments

- Ordre non important attribut

(Le parseur traite et restitue les attributs sans r gle impos e)

2 Inclure les m ta-donn es sous forme d'attributs dans un l ment vide

exemple

<exemple>

                  <meta  cat = 'Exemple'

                             num='7.3'

                             auteur='Mkadmi'

                             date_cre='2002-11-15'

                             date_mod=' '>

                  </meta>

      </exemple>

3 Utiliser des marquages m ta-typographiques pour indiquer les l ments devant b n ficier de mise en forme particuli re. Ce marquage n'indiquant pas la mise en forme r aliser.

Exemple

<p>Dans l exemple suivant le texte important est indiqu entre des marqueurs<me>sp ciaux</me></p>

L l ment me indique ici le texte qui doit b n ficier d'une mise en forme particuli re, mais n indique nullement quelle mise en forme il faut appliquer.

 
Accueil            Institut supérieur de documentation                       Université Paris 8            Enssib         Centrale Supélec (ECP)           Information Studies Department (SQU)         Contact