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 ),
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 :
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
:
& et & sont quivalents &
En
outre il existe aussi des entit s pr d finies pour
les caract res utilis s par XML:
-
< pour
<,
-
& pour
&
-
&apos pour
',
-
" 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".
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 " ">
<!ENTITY iexcl "¡">
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)
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.
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.
|