Title: Langages de balises : XML 1
1Langages de balises XML (1)
Cours 8
XML description dun document
Élisabeth Delozanne, M2-ISV, Paris 5, 2004-2005
2Objectifs
- Enseignement
- On ne devient pas expert XML en 6 h
- Donner des points de repères pour entrer plus
facilement dans le monde XML quand vous serez en
stage ou dans la vie active - Apprentissage Avoir
- Une vue générale sur les technologies XML
- Une première approche de la syntaxe
- Une première approche des principales
utilisations - Description de documents
- Parcours de documents
- Transformation de documents
- À travers un exemple présenté par J. Le Maître
(Université de Toulon)
3Plan
- Cours 8
- Références
- XML ? Extensible Markup Langage
- En 10 points
- Les outils
- Description dun document
- Cours 9
- Parcours dun document
- Le Langage XPath
- Liens Hypertextuels le langage XLink
- Transformation dun document
- Le langage XSLT
4Références (1)
- Ce cours a emprunté des passages entiers aux
cours XML suivants - Jacques Lemaître, Université de Toulon
- Jérôme Lehuen, Université du Maine
- Alain Seigneur, Université Paris 5
- Jean-Marc Labat, Université Paris 5
- La référence XML
- http//www.w3.org/XML/
- Outillage XML
- http//www.xmlsoftware.com (portail outillage
XML) - http//www.alphaworks.ibm.com/xml/ (outils
développés par IBM) - http//xml.apache.org (outils développés par
Apache) - http//www.jclark.com/xml/ (outils développés par
James Clark)
5Références (2)
- Points dentrées francophones
- http//www.xmltechno.com (portail XML)
- http//www.chez.com/xml/ (exemples, trucs et
astuces) - http//xmlfr.org (listes de diffusion françaises)
- Points dentrées anglophones
- http//www.xmlpitstop.com (portail XML)
- http//www.xml.com (portail XML)
- http//www.w3schools.com (des tutoriels sympas)
- http//xmlhack.com (des news et des articles)
- http//msdn.microsoft.com/xml/ (le monde XML vu
par Microsoft) - http//schema.net (dépôt de DTD et de schémas)
6XML en 10 points
- XML est un langage pour structurer des données
- XML ressemble un peu à HTML, mais ce nest pas
HTML - XML est du texte, mais sont but nest pas dêtre
lu - XML est bavard mais ce nest pas un problème
- XML est une famille de technologies
- XML est nouveau, mais pas vraiment
- XML conduit HTML au XHTML
- XML est modulaire
- XML sert de base au RDF et au Web Sémantique
- XML est indépendant de la plateforme, compatible
avec plusieurs applications, et libre de droits. - http//www.w3.org/XML/1999/XML-in-10-points
7XML structurer des données
- Données structurées
- feuilles de calcul, carnets dadresses,
paramètres de configuration, transactions
financières, dessins techniques, etc. - XML
- un ensemble de règles, de lignes directrices, de
conventions, pour la conception de formats texte
(au sens anglo-saxon dagencement structuré) pour
de telles données - Objectif
- Les générer, lire, traiter, échanger facilement
par des programmes - Les structures ne soient pas ambigus,
- permettre lextensibilité des formats,
linternationalisation et la portabilité des
données - A lorigine
- Publication électronique à grande échelle
- Échange de données
- Sur le web
- Plus généralement entre programmes
8XML ressemble à HTML mais nest pas du HTML
- Comme HTML
- utilise des balises entre  lt et  gt et des
attributs dans les balises sous la forme
nom"valeur" - mais
- HTML donne un sens aux balises et attributs
- ltpgt paragraphe en HTML
- XML nutilise les balises que pour délimiter les
éléments de données et laisse leur interprétation
aux applications - ltpgt aucun sens particulier en XML
- Pas le même objectif
- HTML définit structure et mise en page dun
document destiné à être affiché dans un
navigateur - XML permet de décrire uniquement la structure du
document - Langage de description de format
9XML ! HTML
- HTML
- Affiche linformation dans un navigateur
- Utilise des balises de présentation
- Les balises sont prédéfinies
- La syntaxe est tolérante
- XML
- Structure linformation pour la rendre utilisable
par des programmes - Utilise des balises de structuration
- Les balises sont à définir en fonction des
besoins - La syntaxe est stricte
10XML textuel mais pas destiné à être lu
- Les programmes mémorisent les données structurées
dans un format - binaire ou un format texte.
- Intérêts du format texte
- pouvoir consulter les données sans le programme
qui les a produites - facilite le débogage par des programmeurs
(éditeurs) - Comme HTML, XML
- est destiné à être lu par un programme pas par un
humain - peut être lu par un humain à loccasion pour
débogage rapide - Contrairement à HTML,
- un format XML est très strict
- une erreur de balisage rend le document invalide
- La spécification XML interdit de deviner le
balisage, sil est incorrect le traitement est
interrompu et une erreur est rapportée
11XML verbeux, mais ce nest pas un problème
- XML
- est un format textuel
- ajoute des balises aux données
- Conséquences
- La taille des documents est toujours plus grande
quavec un format binaire - Mais
- zip et gzip les compressent particulièrement bien
- Espace disque est de en un problème
- les protocoles de communication (protocoles de
modem et HTTP/1.1) peuvent compresser des données
à la volée - économise de la bande passante aussi efficacement
quun format binaire - Les avantages sont très grands (cf. format texte)
- Le journal Le Monde en passant au format XML a
gagné 22 minutes par jour sur lheure de bouclage
(source cours dA. Seigneur, licence pro. Info,
Paris 5)
12XML famille de technologies
- Spécifications de XML 1.0
- Définit ce que sont les balises et les attributs
- De nombreux modules décrivant des jeux de balises
pour des tâches spécifiques - DTD, Schémas XML créer des classes de documents
- XLink ajouter des liens Hypertextes à un
fichier XML - XSL, XSLT les transformer et les formater
- XPath et XPointer pour rechercher dans un fichier
XML - DOM les manipuler et traiter les éléments de
fichier XML en utilisant une technologie objet - RDF pour les décrire (metadata)
- Etc.
- Des dialectes
- MathML, SVG (graphique), SMIL (Multimédia)
- Technologies du document
13Le monde XML (extrait)
(tiré du cours XML de Jacques Lemaître
Université de Toulon)
14Deux types de documents XML
- Documents XML orientés publication
- Publication avancée sur le web
- XSLT permet de générer des pages Html à partir de
documents XML - Idéal pour concevoir des sites web structurés et
évolutifs (à base darticles) - Dans la publication de documents imprimables
- XSLFO (Formatting Objects) et le processeur
APACHE FOP (FO to PDF) - Ont pour objectif de concurrencer LaTex, Quark
Xpress - Documents XML orientés données
- Fichiers de configuration de logiciel
- Échanges de documents informatisés
15XML nouveau, mais pas tant que cela
- XML
- a commencé en 1996
- est standardisé depuis février 1998
- XML 1.0 (octobre 2000)
- Mais
- XML est une évolution de SGML
- inventé dans les années 80 et standard ISO depuis
1986 - SGML est largement utilisé
- Dans documentation technique (aéronautique etc.)
- et par HTML
- XML
- Aussi puissant
- Réunir en un document plusieurs sources
dinformation - Définir une structure de document avec schéma ou
DTD pouvant être validé - mais beaucoup plus simple dapplications
16Généalogie XML
(Tiré de Cours XML Jérôme Lehuen, Université du
Maine)
17XML de HTML vers XHTML
- XHTML
- Langage intermédiaire pour récupérer
linformation codée en HTML - Apparu en 2000 comme reformulation de la version
4 de HTML en XML - W3C a défini trois DTD (rédigées en SGML)
- Strict (Strict DTD) mène à du pur XML
- Tout ce qui concerne le style nest pas repris
(il faut utiliser les CSS) - DTD modérée (transitional DTD) qui autorise
quelques ajustements de présentation - Framset DTD permet dutiliser les cadres)
18XML modulaire
- XML permet
- De définir un nouveau format en combinant et
utilisant des formats - Pour éviter les conflits de noms, XML définit un
mécanisme pour les espaces de noms
19XML base de RDF et du Web sémantique
- Definition
- The Semantic Web is the representation of data on
the World Wide Web. - It is based on the Resource Description Framework
(RDF), which integrates a variety of applications
using XML for syntax and URIs for naming. - "The Semantic Web is an extension of the current
web in which information is given well-defined
meaning, better enabling computers and people to
work in cooperation." -- Tim Berners-Lee, James
Hendler, Ora Lassila, The Semantic Web,
Scientific American, May 2001 - De la même manière que les humains ont besoin de
se mettre d'accord sur les mots qu'ils utilisent
en communicant entre eux, les machines ont aussi
besoin de mécanismes pour communiquer
efficacement. Les descriptions formelles de
terminologies dans un domaine particulier (la
grande distribution ou l'industrie, par exemple)
sont appelées ontologies
20XML et Web sémantique (1)
- La recherche sur le web est purement lexicale et
syntaxique - Si on soumet windows gates à un moteur de
recherche, - Dabord des sites sur les portes et les fenêtres,
puis des sites sur Microsoft - Solution doter le web dun modèle sémantique
- permettre de spécifier si on sintéresse au
patron de Microsoft ou si on veux changer sa
porte dentrée - Idée ajouter des méta-données et de relations
conceptuelles - permettre à des moteurs de recherche évolués et Ã
des agents intelligents de comprendre le web
et de faire des déductions - exemple RDF (Resource Description Framework)
- Définir un mécanisme pour décrire les ressources
disponibles sur le web sans faire dhypothèses
sur un domaine dapplication particulier - suppose de définir une sémantique non-dédiée,
indépendante des thèmes et des domaines
dapplication - cela est-ce réaliste ?
21XML et Web sémantique (2)
- Exemple de déclaration RDF
- On part dune phrase en langage naturel
- Jérôme Lehuen est le créateur du site
http//www-ic2.univ-lemans.fr/lium - On identifie les ressources, les propriétés et
les chaînes littérales - On représente la phrase à laide dun graphe
conceptuel
22XML et Web sémantique (3)
- Exemple de déclaration RDF
23XML est libre dusage
- En choisissant XML pour vos projets, vous
disposez dun réservoir doutils et dexpérience
très important et en croissance - XML est aux formats de données ce que SQL est aux
langages de requêtes vous pouvez peut-être vous
en passer, mais il faut vraiment une bonne raison
! - XML en tant que technologie W3C est libre de
droits - vous pouvez vous en servir pour construire votre
propre logiciel sans avoir à payer quoi que ce
soit à qui que ce soit. - Sa mise en oeuvre est importante et ne cesse de
croître - vous n'êtes pas lié à un seul fournisseur.
- Une solution XML n'est pas toujours la meilleure,
mais il vaut toujours la peine de la considérer.
24Les outils
- Éditeur XML
- Un simple éditeur fait laffaire, sauvergarder au
format .xml - Il existe des éditeurs spécialisés
- http//www.atica.gouv.fr/XML/outilsxml.shtml
- (éditeurs gratuits)
- http//www.xmlsoftware.com/
- Parseurs
- Analyseur syntaxique qui vérifie et valide un
document XML - Xerces développé par Apache (http//xml.apache.org
/) - Processeurs
- Convertit un document dun langage dans un autre
- Ex Word ou OpenOffice
- Outils intégrés
- Jedit (nécéssite dinstaller une machine
virtuelle Java) - www.jedit.org
25Plan
- XML ? Extensible Markup Langage
- XML en 10 points
- Les outils
- Description dun document XML
- Structure
- Écrire une DTD
- Parcours dun document XML
- Transformation dun document XML
- Références
26Structure logique
- Un document XML est découpé en éléments
structurés hiérarchiquement - Un document a un élément racine appelé élément du
document - Un élément est composé
- dun nom qui spécifie son type
- dattributs
- dun contenu formé déléments ou de textes.
- Un texte est une chaîne de caractères.
- Un attribut a un nom et une valeur (chaîne de
caractères) - Syntaxiquement, les éléments dun document XML
sont marqués dans le document lui-même par des
paires de balises ouvrantes et fermantes.
27Exemple
- Par exemple, un livre peut être représenté en XML
par - un élément livre composé
- dun attribut isbn dont la valeur est lISBN de
ce livre, - dun élément titre
- de plusieurs éléments chapitre
- un élément chapitre est composé par
- un élément titre
- plusieurs éléments paragraphe
- un élément titre est composé
- du texte de ce titre
- un élément paragraphe est composé
- du texte de ce paragraphe
28DTD
- Les éléments qui décrivent un document peuvent
- être définis dans une
- DTD (Définition de Type de Document)
- mais ce nest pas obligatoire.
- Un document XML est dit valide
- sil est précédé de sa DTD et
- si sa description est conforme à cette DTD
- Un document XML est dit bien formé
- sil nest pas précédé dune DTD mais
- si sa description est syntaxiquement correcte
29Un exemple de document
- Itinéraires skieurs dans la Vallée de la Clarée
- par Jean-Gabriel Ravary
- Le Polygraphe, éditeur
- 1991
Vallon des Muandes Vallon situé à lest du refuge
des Drayères. Le vallon le plus utilisé pour la
traversée sur la Vallée Etroite. Ce vallon est
également accessible du refuge Laval. Col de
Névache (2 794 m) n 1 Sélever au-dessus du
refuge des Drayères en direction est. Suivre la
rive droite du torrent de Brune puis sengager
sur le flanc droit du ravin des Muandes que lon
quitte vers 2500m pour rejoindre le col situé au
nord. Descente possible sur Valmeinier. Départ
assez raide. Pointe de Névache (2 892 m) n
2 Du col de Névache (itinéraire n 1), suivre la
ligne de crête qui mène à la pointe de Névache.
Attention corniches possibles. Crampons utiles
au printemps.
30Le guide en XML(1)
- lt?xml version"1.0"?gt
- ltguidegt
- lttitregtItinéraires skieurs dans la vallée de la
Claréelt/titregt - ltauteurgtJean-Gabriel Ravarylt/auteurgt
- ltediteurgtLe Polygraphelt/editeurgt
- ltanneegt1991lt/anneegt
-
- ltvallon id"V15"gt
- ltnomgtVallon des Muandeslt/nomgt
- ltintrogt
- ltparagtVallon situé à lest du refuge des
Drayères.lt/paragt - ltparagtLe vallon le plus utilisé pour la traversée
sur la Vallée - Etroite. Ce vallon est également accessible du
refuge Laval.lt/paragt - lt/introgt
- ... Itinéraires ...
- lt/vallongt
- lt/guidegt
31Le guide en XML(2)
- ltitineraire id"I15.1"gt
- ltnomgtCol de Névachelt/nomgtltaltgt2794lt/altgtltcotationgt
lt/cotationgt - ltnumgt1lt/numgt
- ltparagtSélever au-dessus du refuge des Drayères
en direction est. - Suivre la rive droite du torrent de Brune puis
sengager sur le flanc droit du ravin des Muandes
que lon quitte vers 2500 m pour rejoindre le col
situé au nord. Descente possible sur Valmeinier. - ltnote type"prudence"gtDépart assez
raide.lt/notegtlt/paragt - lt/itinerairegt
- ltitineraire id"I15.2"gt
- ltnomgtPointe de Névachelt/nomgt ltaltgt2892lt/altgt
- ltcotationgtlt/cotationgtltnumgt2lt/numgt
- ltparagtDu col de Névache ltrenvoi cible"I15.1"/gt,
suivre la ligne de crête qui mène à la pointe de
Névache. - ltnote type"prudence"gtAttention corniches
possibles.lt/notegt - ltnote type"materiel"gtCrampons utiles au
printemps.lt/notegtlt/paragt - lt/itinerairegt
32Production dun document XML
- Pour produire un document XML, un utilisateur
dispose des outils logiciels suivants - éditeurs de texte classiques
- éditeurs syntaxiques (Emacs ou XML Notepad, par
exemple) - qui permettent de produire des documents XML bien
formés - analyseurs ou parseurs
- qui contrôlent la validité dune DTD ou dun
document et le traduisent sous une forme interne
adaptée pour son traitement par une application - éditeurs validants, qui combinent les
fonctionnalités des éditeurs syntaxiques et des
analyseurs.
33Structure dun document XML
- Un document XML est composé
- dun prologue facultatif (voir ci-après
Organisation dun document XML ), - de lélément du document
- qui est lui-même composé déléments et de textes.
- Dans le prologue et dans le contenu dun élément,
on peut insérer - des commentaires
- des instructions de traitement (que nous
nétudierons pas dans ce cours) qui sont destinés
aux applications traitant le document. - Un document peut être découpé en entités
enregistrées dans un ou plusieurs fichiers.
34Noms et tokens de noms
- Un caractère de nom
- est soit une lettre, soit un chiffre, soit un
point, soit un tiret, soit un espace souligné,
soit un deux-points. - Un nom
- est une suite de un ou plusieurs caractères dont
- le premier est soit une lettre, soit un espace
souligné, soit un deux-points (réservé à la
séparation dun nom et de son préfixe, voir
ci-après Espaces de noms ), - chacun des suivants est un caractère de nom.
- Par exemple
- xmllan extrait_de titre poeme-79
- Un token de nom
- est une suite de un ou plus caractères de nom.
35Élément
- Un élément est composé
- dune balise de début qui contient le nom de
lélément et éventuellement ses attributs - dun contenu
- dune balise de fin
- Par exemple
- ltnote type"prudence"gtDépart assez raide.lt/notegt
- balise de début ltnote type"prudence"gt
- nom note
- attribut type"prudence"
- contenu Départ assez raide.
- balise de fin lt/notegt
36Contenu dun élément
- vide
- ltrenvoi cible"I15.1"gtlt/renvoigt
- ou ltrenvoi cible"I15.1"/gt
- composé déléments
- ltintrogt
- ltparagtVallon situé à lest du refuge lt/paragt
- ltparagtLe vallon le plus utilisé pour la traversée
lt/paragt - lt/introgt
- mixte mélange de textes et déléments
- ltnomgtCol de Névachelt/nomgt
- ltparagtDu col de Névache ltrenvoi cible"I15.1"/gt,
suivre la ligne de crête qui mène à la pointe de
Névache.ltnote type "prudence"gtAttention
corniches possibles. lt/notegtltnote
type"matériel"gt Crampons utiles au
printemps.lt/notegt - lt/paragt
37Élément mixte
- Le contenu dun élément mixte est constitué dune
chaîne de caractères dans laquelle peuvent être
insérés des éléments. Cette insertion découpe ce
contenu en deux types de constituants - les plus longues suites dau moins un caractère
dans lesquelles ne sont pas insérés déléments
appellées textes, - les éléments
- Par exemple, le contenu
- Du col de Névache ltrenvoi cible"I15.1"/gt, suivre
la ligne de crête qui mène à la pointe de
Névache. - comprend dans lordre
- le texte Du col de Névache
- lélément ltrenvoi cible"I15.1"/gt
- le texte , suivre la ligne de crête qui mène Ã
la pointe de Névache.
38Section CDATA
- Lorsquun texte contient des caractères qui
jouent un rôle de délimiteur dans la syntaxe XML,
il est nécessaire de pouvoir annihiler ce rôle. - Ceci peut être fait en insérant le texte
contenant ces délimiteurs dans une section CDATA
sous la forme suivante - lt!CDATAtexte contenant des délimiteursgt
- Le texte inséré peut contenir nimporte quels
caractères excepté la chaîne . - Une section CDATA ne peut donc pas en contenir
une autre. - Par exemple, la phrase
- L'expression ltALTgt2794lt/ALTgt est un élément
XML. - peut être représentée par lélément suivant
- ltphrasegtL'expression lt!CDATAltALTgt2794lt/ALTgtgt
est un élément XML.lt/phrasegt
39Attributs
- Un attribut est un couple nom-valeur où
- le nom est un nom XML
- la valeur est une suite de caractères
- Par exemple
- type"prudence"
- Apostrophes ou guillemets ?
- Si une valeur dattribut est placée entre
guillemets, elle peut contenir des apostrophes - si elle est placée entre apostrophes, elle peut
contenir des guillemets - Par exemple
- select"itinérairecotation''"
- select'itinérairecotation""'
- Préférez les guillemets sauf
- ltpersonne nomGeorge  Dobleiou Bushgt
40Éléments ou attributs(1) ?
- Les données peuvent être stockées dans des
éléments ou des attributs - Linformation reste la même, la syntaxe change
- Il y a les partisans des éléments et les
partisans des attributs - Il ny a pas de règle stricte
- Exemple
41Éléments ou attributs(2) ?
- Arguments en faveur des attributs
- La DTD donne un meilleur contrôle sur le type des
attributs - Établissent une relation plus étroite avec leur
père que les éléments - Arguments en faveur des éléments
- Plus simple de les repérer et de les modifier
dans un document - Possible dappliquer des styles CSS aux éléments,
pas aux attributs - Et surtout,
- on peut décomposer linformation des éléments
42Éléments ou attributs(3) ?
- Les éléments permettent une décomposition de
linformation - Les attributs ne contiennent que des chaînes de
caractères - Remarque La première solution nest pas dénuée
dintérêt - On peut faire des comparaisons alphabétiques
entre 2 dates
43Éléments ou attributs(4) ?
- Bien sûr, on peut aussi tout mettre dans des
attributs - ltnote day"01" month"11" year"2001" to"Pierre"
from"Marie" header"..." body"..."/gt - On perd une dimension de XML la hiérarchisation
des informations - On perd notamment linformation date day
month year - Deux conventions généralement acceptées
- Les attributs servent à contextualiser
linformation de lélément - ltprix devise"Euros"gt200lt/prixgt
- Les attributs servent à définir des identifiants
uniques (clés primaires) - ltnote ID"REF_3051"gt ... lt/notegt
- ltitineraire id"I15.1"gt
44Liens Internes
- Tout élément peut avoir un attribut ayant pour
valeur un token de nom qui l'identifie dans le
document - les tokens de nom I15.1 et I15.2 identifient les
itinéraires n 1 et n 2 du Vallon des Muandes
dans le document Itinéraires skieurs - ltitineraire id"I15.1"gt
- ltnomgtCol de Névachelt/nomgt
- ltitineraire id"I15.2"gt
- ltnomgtPointe de Névachelt/nomgt
- Lidentificateur dun élément permet dy faire
référence depuis dautres éléments - lélément ltrenvoi cible"I15.1"gt fait référence Ã
litinéraire n 1 de ce même vallon
45Commentaires
- Un commentaire est une phrase ayant la forme
suivante - lt!--texte du commentaire--gt
- Un commentaire
- peut contenir nimporte quel caractère excepté
--. - ne peut donc pas inclure un autre commentaire.
- peut être inclus dans le contenu dun élément
- ne peut pas être à lintérieur dune balise.
- Exemple
- lt!-- Les itinéraires sont classés par vallon --gt
46Résumé Structure dun document (1)
- Un document XML Prologue arbre déléments
- Prologue
- Facultatif mais bonne habitude à prendre
- Composé de
- 1) une déclaration XML
- - 3 attributs (dans cet ordre) version,
encoding, standalone - - syntaxe lt?xml version"1.0" encoding
'ISO-8859' - standalone 'yes'?gt
- 2) des instructions de traitement
- -Elles ne font pas partie du document,
- -Elles doivent être transmises à une application
- 3) une déclaration de DTD
- - pour les documents valides
- - syntaxe lt!DOCTYPE rapport SYSTEM
"rapport.dtd" déclarations gt - ou lt!DOCTYPE lettre déclarationsgt
47Résumé Structure dun document (2)
- L'arbre d'éléments
- corps du document composé d'éléments
- un élément est défini par
- balise d'ouverture ltmabalisegt
- balise de clôture lt/mabalisegt
- son contenu
- Remarque pour les éléments vides ltbalisevide
/gt - 1 racine unique
- Þ Un document est toujours formé d'un élément
unique contenant tous les autres - Les éléments sont obligatoirement inclus les uns
dans les autres - pas de chevauchement des balises
- Contenu
- très souvent du texte pur nommé PCDATA (Parsed
Character DATA) - les espaces vierges sont conservés
48Pourquoi définir et utiliser des DTD ?
- Lorsque plusieurs personnes doivent séchanger
des données, elles doivent se mettre daccord sur
un format déchange commun - Lorsquun logiciel reçoit des données,il doit
vérifier que ces données correspondent bien à ce
quil attend avant de les traiter - Un traitement de schéma (schema processing)
vérifie la validité dun document XML - Le premier langage de schéma retenu pour ce cours
est le langage des DTD (Définition de Type de
Documents) - La communauté XML sorganise pour définir des DTD
standard dans de nombreux domaines dapplication - http//www.schema.net
- Il existe des DTD pour le commerce, les finances,
léducation, le multimédia, les maths etc. - XMLSchema est un langage pour typer les données
qui est amené à remplacer les DTD
49Que trouve-t-on dans une DTD ?
- Une DTD décrit la structure dune classe de
documents, dun type de documents - Contraintes sur les éléments noms, séquence,
hiérarchie - Contraintes sur les attributs noms, types de
données - Définitions des entités sortes de constantes
associées à des valeurs
50Définitions dun élément
- Un élément est défini par la déclaration
- lt!ELEMENT nom modèle de contenugt
- Un élément mixte pouvant contenir des éléments
T1, , Tn a pour modèle de contenu - (PCDATA T1 Tn)
- Un élément composé dune suite déléments T1, ,
Tn a pour modèle de contenu lexpression
régulière construite sur le vocabulaire T1,
,Tn à laide des opérateurs - , (infixe) concaténation
- (suffixes) 0 ou plusieurs répétitions et 1
ou plusieurs répétitions - ? (suffixe) optionalité
- Un élément vide a pour modèle de contenu EMPTY
- Un élément de contenu quelconque a pour modèle
de contenu ANY.
51Définition dattributs (1)
- A chaque type délément est attaché un ensemble
dattributs. - Une définition dattributs a la forme suivante
- lt!ATTLIST nom-élément
- nom-attribut type déclaration-de-défaut
-
- nom-attribut type déclaration-de-défautgt
- où
- le type est celui des valeurs de lattribut,
- la déclaration de défaut spécifie si la valeur
de lattribut doit être ou non présente dans le
document et fournit éventuellement une valeur par
défaut. - Les noms dattributs sont locaux à chaque type
délément - Deux éléments de type différent peuvent avoir des
attributs de même nom.
52Définition dattributs (2)
- Le type de valeur peut être
- CDATA texte,
- ID nom identifiant lélément dans le document
(identificateur), - IDREF ou IDREFS
- identificateur ou suite didentificateurs séparés
par une suite de séparateurs espace, CR, LF,
tabulation - NMTOKEN ou NMTOKENS nom ou suite de tokens de
nom, - (nom1 nomn) un des tokens de nom
énumérés. - ENTITY, ENTITIES et NOTATION que nous
nétudierons pas.
53Définition dattributs (3)
- La déclaration de défaut peut être
- REQUIRED lattribut doit être présent dans la
balise de lélément - IMPLIED lattribut est facultatif,
- valeur valeur à affecter à lattribut sil est
absent de la balise de lélément (valeur par
défaut), - FIXED valeur valeur que doit avoir lattribut
sil est présent dans la balise de lélément ou
qui lui sera affectée sil est absent de cette
balise. - Les déclarations de défaut sont prises en compte
par un analyseur XML afin de compléter le
document analysé.
54Règles de composition dun itinéraire à skis
- Un guide est composé dun titre, dune liste dun
ou plusieurs auteurs, dun éditeur, dune année
et dune liste dun ou plusieurs vallons. - Un titre, un auteur, un éditeur et une année sont
des textes. - Un vallon est composé dun nom, dune
introduction et de la liste des itinéraires que
lon peut y réaliser (un ou plusieurs
itinéraires). - Un nom est un texte.
- Une introduction est composée dune liste dun ou
plusieurs paragraphes. - Un paragraphe est un texte dans lequel sont
insérés des renvois vers dautres itinéraires et
des notes. - Une note est un texte donnant des consignes de
prudence ou recommandant lutilisation dun
matériel spécifique (crampons, piolet, etc.).
55DTD dun guide ditinéraires
- lt!ELEMENT guide (titre, auteur, editeur, annee,
vallon)gt - lt!ELEMENT titre (PCDATA)gt
- lt!ELEMENT auteur (PCDATA)gt
- lt!ELEMENT editeur (PCDATA)gt
- lt!ELEMENT annee (PCDATA)gt
- lt!ELEMENT vallon (nom, intro, itineraire)gt
- lt!ATTLIST vallon id ID REQUIREDgt
- lt!ELEMENT nom (PCDATA)gt
- lt!ELEMENT intro (para)gt
- lt!ELEMENT para (PCDATA renvoi note)gt
- lt!ELEMENT renvoi EMPTYgt
- lt!ATTLIST renvoi cible IDREF REQUIREDgt
- lt!ELEMENT note (PCDATA)gt
- lt!ATTLIST note type (prudence materiel)
"prudence"gt - lt!ELEMENT itineraire (nom, alt, cotation, num,
para)gt - lt!ATTLIST itineraire id ID REQUIREDgt
- lt!ELEMENT alt (PCDATA)gt
- lt!ELEMENT cotation (PCDATA)gt
- lt!ELEMENT num (PCDATA)gt
56Les entités
- Un document XML est physiquement découpé en
entités. - Quest-ce qune entité ?
- Une entité est un fragment nommé de document
- Ces sont des  raccourcis vers des portions de
documents allant du caractère au document complet - Pourquoi utiliser des entités ?
- Pour gagner du temps dans les mises à jour
- Pour mémoriser des caractères particuliers ou
des phrases fréquentes
57Types dentités
- On distingue
- entités prédéfinies
- entités caractères
- entités générales qui sont des fragments de
lélément du document, - entités paramètres qui sont des fragments de DTD.
58Déclaration dune entité
- Déclaration dune entité paramètre
- interne
- lt!ENTITY nom "entité"gt
- externe
- lt!ENTITY nom SYSTEM nom du fichier contenant
lentitégt - Déclaration dune entité générale
- interne
- lt!ENTITY nom "entité"gt
- externe
- lt!ENTITY nom SYSTEM "nom du fichier contenant
lentité"gt - Par exemple
- lt!ENTITY identificateur ID REQUIREDgt
- lt!ENTITY ref "refuge"gt
- lt!ENTITY vallon-muandes SYSTEM "mon_site/muandes.x
ml"gt
59Référence à une entité
- Une référence à une entité paramètre a la forme
suivante - nom
- Par exemple
- lt!ATTLIST renvoi cible identificateurgt
- au lieu de
- lt!ATTLIST renvoi cible ID REQUIREDgt
- Une référence à une entité générale a la forme
suivante - nom
- Par exemple
- ltparagtS'élever au-dessus du ref des Drayères en
direction est. Suivrelt/paragt - au lieu de
- ltparagtS'élever au-dessus du refuge des Drayères
en direction est. Suivrelt/paragt
60Entités caractères
- Un caractère non disponible sur la station de
travail peut être représenté par son code Unicode
(voir ci-après Codage des caractères ) en
décimal ou en hexadécimal, sous la forme dune
référence a une entité - code décimal
- xcode hexadécimal
- Par exemple
- 38 caractère
- x03A6 lettre grecque F
61Entités prédéfinies
- Les caractères lt gt ' " qui sont des délimiteurs
XML peuvent être remplacés dans un texte par une
référence à une entité prédéfinie. - Ces entités sont les suivantes
- lt référe le caractère lt
- gt référe le caractère gt
- amp référe le caractère
- apos référe le caractère '
- quot référe le caractère "
- Par exemple, la phrase
- L'expression ltALTgt2794lt/ALTgt est un élément
XML. - peut être représentée par lélément suivant
- ltphrasegtL'expression ltALTgt2794lt/ALTgt est un
élément XML.lt/phrasegt
62Remplacement des entités
- Une référence à une entité est remplacée par sa
valeur lorsque lélément ou la DTD qui la
contient est traité par un analyseur XML. - Ce remplacement pourra entraîner des
remplacements en cascade si cette entité contient
elle-même des références à des entités et ainsi
de suite.
63Organisation dun document XML valide (1)
- Un document XML valide est composé dune entité
document (sans nom) et dun ensemble dentités
externes. - L'entité document est composé d'un prologue et de
l'élément du document. - Le prologue est composé d'une déclaration XML et
d'une DTD. - La déclaration XML indique la version de XML,
le jeu de caractères et l'éclatement ou non du
document en plusieurs entités externes. - La DTD est constituée dune partie interne placée
dans lentité document et dune partie externe,
enregistrée dans un fichier à part dont le nom
est déclaré dans lentité document. - La partie interne de la DTD, l'élément du
document et les entités externes peuvent appeler
des entités externes. Ces appels doivent être non
récursifs et non circulaires.
64Organisation dun document XML bien formé (2)
- Lorganisation dun document bien formé est
similaire à celle dun document valide Ã
lexception de la DTD qui est - soit absente,
- soit présente mais ne contient que des
déclarations dentités générales.
65Document XML monofichier
- lt?xml version"1.0" encoding ISO-8859-1"
standalone"yes" ?gt - ltDOCTYPE nom
- déclarations
- gt
- ltnomgt
-
- ltnomgt
- où
- L'attribut standalone'yes' indique que le
document est contenu en entier dans le fichier. - Le nom de l'élément du document doit être
identique à celui de la DTD.
66Document XML multifichier
- lt?xml version"1.0" encoding"" standalone "no"
?gt - ltDOCTYPE nom SYSTEM nom fichier
- partie interne de la DTD
- gt
- élément du document
- où
- nom fichier est le nom du fichier contenant la
partie externe de la DTD - l'attribut standalone"no" indique quil est fait
appel à des entités externes soit dans la partie
interne de la DTD, soit dans l'élément du
document - le nom de l'élément du document doit être celui
de la DTD - une entité externe peut débuter (et c'est
conseillé) par une déclaration XML sans attribut
standalone.
67Réalisation physique du document
68Espace de noms
- Limportation déléments ou dattributs contenus
dans des entités externes peut entraîner des
conflits de noms - Ces conflits peuvent être évités en définissant
des espaces de noms - Un espace de noms est identifié de façon unique
par une URI (Uniform Resource Identifier) - Pour obtenir des noms uniques, il suffit de
qualifier chaque nom par lURI de lespace de
noms dont il provient - le nom obtenu est appelé nom étendu
- Pour simplifier lécriture des noms étendus, on
associe un préfixe (un nom XML) à chaque espace
de noms
69Déclaration dun espace de noms
- La déclaration dun espace de noms et de son
préfixe associé consiste à insérer dans la balise
ouvrante dun élément contenant des noms
(déléments ou dattributs) issus de cet espace,
l'attribut - xmlnspréfixe"URI de l'espace de noms"
- On peut déclarer un espace de noms par défaut par
lattribut - xmlns"URI de l'espace de noms"
- ou lannihiler par la déclaration
- xmlns""
- La déclaration dun espace de noms est visible
- dans lélément la contenant et
- dans tous ses descendants à moins quun nouvel
espace de même préfixe ou bien un nouvel espace
par défaut ne soit déclaré.
70Exemple
- lt?xml version"1.0" ?gt
- ltexemple xmlnsH"http//www.w3.org/REC-html40"Â
- xmlns"Mhttp//www.w3.org/REC-MathMLÂ
- ltHbgt
- ltMmngt2lt/Mmngt
- lt/Hbgt
- lt/exemplegt
71Noms qualifiés
- Tout nom délément ou tout nom dattribut qui
nest pas une déclaration despace de noms, est
un nom qualifié ayant lune des deux formes
suivantes - préfixenom-local
- nom-local
- Un nom qualifié préfixé appartient à lespace de
noms associé à ce préfixe dans lélément
englobant le plus imbriqué. - Un nom qualifié non préfixé
- appartient à lespace de noms par défaut déclaré
dans le plus imbriqué des éléments contenant ce
nom, sil en existe un. - nappartient pas à un espace de noms sil
nexiste pas de déclaration despace de noms par
défaut dans les éléments le contenant.
72Exemple despace de noms
- Supposons que
- lURI monSite/dtdLivre.xml contienne une DTD
pour la description de livres et - que les éléments auteur, editeur et annee du
guide Itinéraires skieurs soient conformes Ã
ces définitions, la description de ce guide
pourrait être la suivante - ltguide xmlnslivre"monSite/dtdLivre.xml"gt
- ltlivretitregtItinéraires skieurs dans la Vallée
de la Claréelt/livretitregt - ltlivreauteurgtJean-Gabriel Ravarylt/livreauteurgt
- ltlivreediteurgtLe Polygraphelt/livreediteurgt
- ltlivreanneegt1991lt/livreanneegt
-
- ltvallongt
- ltnomgtVallon des Muandeslt/nomgt
-
- lt/guidegt
73Codage des caractères (1)
- La norme ISO 10646 en accord avec lUnicode
définit un jeu de caractères universel - lUCS ( Universal Character Set )
- qui permet de représenter les caractères de
toutes les langues actuelles mais aussi
anciennes. - Chaque caractère UCS est identifié par un code
- un nombre représenté sur 4 octets (232 - 1
positions). - Les 65 536 premières positions de l'UCS (c.-à -d.
les deux octets de poids faible) forment le BMP
( Basic Multilingual Plane ) et codent les jeux
de caractères les plus courants (latin, grec,
arabe, etc.). Doù deux codages - UCS-4 totalité de lUCS,
- UCS-2 BMP.
74Codage des caractères (2)
- Plusieurs codages de transformation ont été
définis - UTF-8 permet de coder les caractères de lUCS
en longueur variable en codant sur un octet les
caractères ASCII qui sont les plus fréquents. - UTF-16 permet dinclure des caractères de
lUCS-4 dans une chaîne codée en UCS-2.
75Codage des caractères (3)
- Toutes les applications XML doivent accepter les
codages UTF-8 et UTF-16. - Dautres codages peuvent être acceptés,
- tels que le codage ISO-8859-1 ( ISO-Latin ).
- Le codage des caractères dune entité doit être
déclaré dans la déclaration XML de cette entité,
comme valeur de lattribut encoding . - Sil ne lest pas, lapplication considérera être
en présence dun codage UTF-8.
76 la suite
- Plan
- Cours 8
- Références
- XML ? Extensible Markup Langage
- En 10 points
- Les outils
- Description dun document
- Cours 9
- Parcours dun document
- Le Langage XPath
- Liens Hypertextuels le langage XLink
- Transformation dun document
- Le langage XSLT