Langages de balises : XML 1 - PowerPoint PPT Presentation

1 / 76
About This Presentation
Title:

Langages de balises : XML 1

Description:

Donner des points de rep res pour entrer plus facilement dans le monde XML quand ... DTD mod r e (transitional DTD) qui autorise quelques ajustements de pr sentation ... – PowerPoint PPT presentation

Number of Views:427
Avg rating:3.0/5.0
Slides: 77
Provided by: lium8
Category:

less

Transcript and Presenter's Notes

Title: Langages de balises : XML 1


1
Langages de balises XML (1)
Cours 8
XML description dun document
Élisabeth Delozanne, M2-ISV, Paris 5, 2004-2005
2
Objectifs
  • 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)

3
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

4
Ré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)

5
Ré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)

6
XML 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

7
XML 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

8
XML 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

9
XML ! 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

10
XML 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

11
XML 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)

12
XML 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

13
Le monde XML (extrait)
(tiré du cours XML de Jacques Lemaître
Université de Toulon)
14
Deux 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

15
XML 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

16
Généalogie XML
(Tiré de Cours XML Jérôme Lehuen, Université du
Maine)
17
XML 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)

18
XML 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

19
XML 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

20
XML 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 ?

21
XML 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

22
XML et Web sémantique (3)
  • Exemple de déclaration RDF

23
XML 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.

24
Les 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

25
Plan
  • 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

26
Structure 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.

27
Exemple
  • 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

28
DTD
  • 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

29
Un 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.
30
Le 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

31
Le 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

32
Production 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.

33
Structure 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.

34
Noms 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

36
Contenu 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.

38
Section 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

39
Attributs
  • 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

44
Liens 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

45
Commentaires
  • 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

46
Ré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

47
Ré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

48
Pourquoi 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

49
Que 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

50
Dé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.

51
Dé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
  • 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.

52
Dé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.

53
Dé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é.

54
Rè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.).

55
DTD 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

56
Les 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

57
Types 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.

58
Dé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

59
Ré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

60
Entité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

61
Entité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

62
Remplacement 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.

63
Organisation 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.

64
Organisation 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.

65
Document XML monofichier
  • lt?xml version"1.0" encoding ISO-8859-1"
    standalone"yes" ?gt
  • ltDOCTYPE nom
  • déclarations
  • gt
  • ltnomgt
  • ltnomgt
  • 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.

66
Document 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
  • 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.

67
Réalisation physique du document
68
Espace 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

69
Dé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é.

70
Exemple
  • 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

71
Noms 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.

72
Exemple 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

73
Codage 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.

74
Codage 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.

75
Codage 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
Write a Comment
User Comments (0)
About PowerShow.com