eXtensible Markup Language - PowerPoint PPT Presentation

1 / 81
About This Presentation
Title:

eXtensible Markup Language

Description:

Selecteur indique quel est (ou quels sont) l' l ment affect par ces propri t s. Les propri t s sont des indications sur la forme, CSS d finit 122 propri t s ... – PowerPoint PPT presentation

Number of Views:47
Avg rating:3.0/5.0
Slides: 82
Provided by: Rao99
Category:

less

Transcript and Presenter's Notes

Title: eXtensible Markup Language


1
eXtensible Markup Language
  • Xavier Blanc
  • Xavier.Blanc_at_lip6.fr

2
Plan
  • De HTML à XML
  • Documents bien formés
  • Documents valides
  • Liens
  • Feuilles de style
  • Traitement de documents XML
  • Applications

3
de HTML à XML
  • Généralités

4
HTML
  • Langage à balises
  • Balises obligatoires (head, body, )
  • Balises à valeur sémantique (h1, meta, )
  • Balises à valeur dhabillage (center, small, ..)
  • Nombre fini de balises
  • Balises différentes suivant les navigateurs
  • Pas dévolution possible pour lutilisateur

5
HTML
  • Aucune séparation de la forme et du fond
  • Balises de fond (Meta, Head, )
  • Balises de forme (center, small, )
  • Balises de fond forme (h1, h2, )

?Durée de vie limitée à la durée de vie des
outils capables de visionner ces documents.
6
Lapport de XML
  • Ensemble non fini de balises
  • Lutilisateur peut créer de nouvelles balises
  • Séparation de la forme et du fond
  • Un document XML sera constitué dau moins deux
    entités (le fond et la forme)
  • Séparation du contenu et de la grammaire
  • Permet la validation des documents

7
Historique
  • XML est un standard un W3C (World Wide Web
    Consortium)
  • XML est basé sur le standard SGML
  • Les travaux de XML ont commencé en 1996
  • En 1999, XML est considéré comme étant le
    standard déchange dinformation du futur

8
Documents bien formés
  • règles syntaxiques de XML

9
Un document XML bien formé
  • Exemple de document XML

ltlivregt lttitregt le super livre
lt/titregt ltchapitregt ltnumerogt 1
lt/numerogt lttitregt titre du chapitre 1
lt/titregt ltcontenugt blabla blabla
lt/contenugt lt/chapitregt ltchapitregt lt/chapitr
egtlt/livregt
10
Documents XML bien formés
  • Un document XML bien formé est un document qui
    est conforme aux règles syntaxiques du langage
    XML.
  • Un document bien formé pourra être traité par un
    parseur XML sans générer dexception.
  • Un document XML bien formé pourra être associé
    avec une feuille de style.

11
Règles syntaxiques XML
  • Un document XML est constitué de
  • Un prologue qui contient un ensemble
    dinformations sur le document
  • Un ensemble déléments avec leurs contenus les
    éléments et leurs contenus sont les données du
    document
  • Des commentaires qui peuvent être inclus
    nimporte où dans le document

12
Le prologue
  • La déclaration XMLlt?xml version1.0
    encodingISO-8859-1 standaloneyes ?gt
  • Permet de préciser la version du document
  • Permet de préciser lencodage utilisé
  • Permet de savoir si le document est autonome ou
    pas (lien vers dautres documents)

13
Le prologue
  • XML permet de définir des types de documents.
  • Un type de documents est une sorte de grammaire,
    on peut alors valider un document par rapport à
    une grammaire.
  • Le prologue permet de déclarer le type dun
    document.lt!DOCTYPE livre SYSTEM "livre.dtd" gt

14
Ensemble déléments
  • Les éléments des documents XML sont composés
    dune balise douverture, dun contenu et dune
    balise de clôture.
  • ltnomgt contenue de lélément lt/nomgt
  • Le nom dune balise est composé de caractères
    alphanumériques, du tiret-souligné, du signe
    moins ou du point. Il ne faut pas quil soit
    composé despaces. Un nom doit commencer par un
    caractère alphabétique ou du caractère
    tiret-souligné. Un nom ne doit pas commencer par
    XML/Xml/xML/...

15
Ensemble déléments
  • Une balise douverture peut avoir un ensemble
    dattributs. Ex ltlivre date 01-01-2000 gt
  • Un attribut est une paire nomvaleur
  • Les noms des attributs suivent les mêmes règles
    que les noms des éléments
  • La valeur est une chaîne de caractères encadrée
    par les caractères guillemets ou apostrophe
  • Lattribut xmllang est prédéfini et sa valeur
    représente le langage utilisé dans le
    document Ex ltp xmllang fr gt ...

16
Ensemble déléments
  • Le contenu dun élément peut être
  • un ensemble déléments
  • et/ou des données sous forme de chaînes de
    caractères ne contenant pas les caractères et lt
  • et/ou des références

17
Ensemble déléments
  • Une référence peut être
  • une référence à un caractère alphanumérique, elle
    doit commencer par x, puis inclure le numéro du
    caractère et finir par Ex x38 est une
    référence vers
  • une référence prédéfinie comme par exemple amp
    ou apos qui sont deux références vers et  
  • une référence vers quelque chose défini dans la
    DTD (Data Type Definition). Elle commence alors
    par , puis par le nom de la référence, et finit
    par Ex ma_reference (avec
    ma-reference texte long  
  • Ce couple (nom, valeur) est appelé une entité

18
Ensemble déléments
  • Les balises de clôture sont composées des noms
    correspondant aux balises douvertures précédés
    du caractère / Ex lt/livregt
  • En élément peut être vide (sans contenu), dans ce
    cas, il na quune seule balise (composée du nom
    suivi du caractère /) Ex ltElement_vide/gt

19
Sections littérales
  • Lorsque le parseur scanne un élément, il remplace
    toutes les références par leurs valeurs.
  • Pour empêcher cela, il faut utiliser une section
    littérale. Une section littérale est encadrée par
    lt!CDATA et par gtEx lt!CDATA ltauteursgt
    Dupond amp gt

20
Instructions de traitement
  • Il est possible dinclure des instructions de
    traitement dans un document XML
  • La déclaration dune instruction de traitement se
    fait de la facon suivante lt?nom arg1 arg2 .. ?gt
  • nom est le nom de lapplication cible
  • arg1, arg2, sont les arguments de
    l application
  • Les noms XML, XmL, sont réservés

21
Commentaire
  • Des commentaires peuvent être inclus dans le
    contenu dun élément XML. Ils doivent être
    encadrés par les marques lt!-- et --gt
  • Un commentaire est une chaîne de caractères
    quelconque qui ne contient pas la chaîne --
  • Exemple lt!-- un commentaire --gtlt!-- un
    commentaire qui nest -- pas bien formé --gt

22
Documents bien formés
  • Le plus petit lt?xml version1.0
    encodingISO-8859-1 standaloneyes
    ?gtltlivre/gt
  • Un autre lt?xml version1.0 encodingISO-8859-
    1 standaloneyes ?gtltlivre date 01-01-2000 gt
    ltchapitregt XML amp HTML lt/chapitregt lt!--
    préciser la version de HTML--gtlt/livregt

23
Documents valides
  • XML et grammaire

24
Document Type Definition
  • En XML, un type de document représente une
    structure (une grammaire) Ex le type livre
    précise quun livre est composé de chapitres,
    qui sont composés de parties
  • Un type de document est défini dans une DTD
    (Document Type Definition)
  • Une DTD peut être inclue ou référencée par un
    document XML

25
Document Type Definition
  • On peut vérifier la validité dun document par
    rapport à la DTD quil référence ou quil inclut.
    On parlera alors de document XML valide
  • Un document XML valide est donc un document XML
    bien formé qui a une DTD et qui est conforme à
    cette DTD
  • Il existe déjà de nombreuses DTD, il est alors
    possible de les utiliser pour construire des
    documents XML valides Ex La DTD MathML pour
    les équations

26
Document Type Definition
  • Pour associer un document XML à une DTD, il faut
    le faire avec lélément lt!DOCTYPEgtEx lt!DOCTYPE
    livre SYSTEM "livre.dtd" gt
  • On considère quun document XML est constitué de
    deux choses La DTD et la donnée.
  • Un document XML bien formé peut ne pas être
    composé de DTD
  • Un document XML valide doit avoir une DTD

27
Data Type Definition
  • Une DTD est définie dans lélémentlt!DOCTYPE name
    SYSTEM "fichier.dtd" delaration gt
  • name est le nom du type de document
  • SYSTEM "fichier.dtd" est une référence vers le
    fichier.dtd. Ce fichier contient tout ou une
    partie de la DTD. Cest la partie externe de la
    DTD
  • declaration permet de définir tout ou une
    partie de la DTD. C est la partie interne de la
    DTD

28
Contenu dune DTD
  • Déclarations des entités
  • Déclarations des éléments et de leurs contenus
  • Déclarations des attributs des éléments
  • Commentaires

29
Les entités
  • Une entité est un couple (nom, valeur). On
    référence le nom pour utiliser la valeur. Ex
    amp (amp,)
  • Une entité peut être interne (définie dans le
    document) ou externe (définie ailleurs)
  • Les entités internes ont des valeurs de chaînes
    de caractères XML et sont utilisées comme moyen
    dabréviation.
  • Les entités externes peuvent être de type
  • XML utilisé pour segmenter un document en
    parties
  • non XML utilisé pour inclure des sons, images
    ...

30
Déclaration des entités
  • Les entités doivent être déclarées dans la DTD
  • Un document peut référencer nimporte quelle
    entité qui a été déclaré dans la DTD mais aussi
    les entités prédéfinis (amp, apos, )
  • La déclaration dune entité se fait de la manière
    suivante lt!ENTITY nom valeurgt
  • La valeur doit être entre guillemets

31
Les entités externes XML
  • Permet la segmentation dun document XML
  • Ex lt!DOCTYPE livre lt!ENTITY chapitre-1
    SYSTEM "./chap1.xml"gt lt!ENTITY chapitre-2 SYSTEM
    "./chap2.xml"gt gtltlivregt chapitre-1 chapitr
    e-2lt/livregt
  • Le mot clé SYSTEM indique une URL, voir le mot
    clé PUBLIC avec les identificateurs public

32
Les entités externes non-XML
  • Les entités externes non-XML servent à inclure
    des images, du son ou autre dans un document XML
  • Avant de définir l entité, il faut définir son
    format en utilisant une NOTATIONEx lt!NOTATION
    img  "./PsP" gt
  • Puis définir lentitéEx lt!ENTITY fond SYSTEM
    "./fond.img" NDATA imggt
  • L utilisation se fait donc ainsi Ex ltphoto
    val fond /gt

33
Les entités paramètres
  • Ces entités sont définies dans une DTD mais elles
    sont aussi utilisées dans une DTD
  • Une entités paramètre est forcement XML
  • Une entités paramètre se définie comme une entité
    générale si ce nest quil y a le caractère .Ex
    lt!ENTITY nom valeurgt
  • Pour référencer une entité paramètre on utilise
    le caractère Ex nom

34
Les éléments dans la DTD
  • La déclaration dun élément se fait de la manière
    suivante lt!ELEMENT nom modèlegt
  • Le nom correspond au nom de lélément
  • Le modèle défini le contenu de lélément
  • éléments fils
  • données
  • mélanges éléments fils et données
  • nimporte quoi respectant la syntaxe XML
  • élément vide

35
Les éléments dans la DTD
  • Pour décrire les éléments fils dun élément, il
    suffit de donner leurs noms entre parenthèses.
  • Si lordre des élément fils est important on les
    sépare par des virgules sinon par des barres
    verticales.
  • Pour préciser les multiplicités des éléments fils
    on utilise (soit fils le nom de lélément fils)
  • fils une fois et une seule
  • fils? 0 ou 1 fois
  • fils 0, 1 ou plus dune fois
  • fils au moins un fois
  • il est possible de faire des groupes déléments
    fils en utilisant des parenthèses.

36
Les éléments dans la DTD
  • Exemples de définition délément lt!ELEMENT
    livre (titre, intro, chapitre)gtlt!ELEMENT
    chapitre (titre , (titre_partie, partie))gt...

37
Les éléments dans la DTD
  • Lorsquun élément ne contient que des données
    (i.e. un chaîne de caractère), on le défini de
    cette manière avec le mot clé PCDATAT
  • Ex lt!ELEMENT partie (PCDATA)gt

38
Les éléments dans la DTD
  • Il est possible quun élément ait des éléments
    fils mais aussi des données. Il est tout à fait
    possible de définir ce type délément dans une
    DTD.
  • Ex lt!ELEMENT toto (PCDATA, titi, tutu)gt

39
Les éléments dans la DTD
  • Lorsquun élément peut contenir soit du texte,
    soit nimporte quel ensemble délément fils, il
    faut utiliser le mot clé ANYEx lt!ELEMENT elmt
    ANYgt
  • Lorsquun élément est un élément vide, il faut
    utiliser le mot clé EMPTYEx lt!ELEMENT elmt
    EMPTYgt

40
Les attributs dans la DTD
  • La déclaration des attributs dun élément se fait
    de la manière suivante lt!ATTLIST element
    (attribut type default)gt
  • element correspond au nom de lélément qui
    contient lattribut
  • attribut correspond au nom de lattribut
  • type correspond au type de lattribut
  • default contient des indications sur la valeur
    par défaut

41
Les attributs dans la DTD
  • Le type de lattribut peut être
  • CDATA pour une chaîne de caractère
  • ID ou IDREF pour des références internes au
    document
  • ENTITY ou ENTITIES pour des références externes
    non-XML
  • NOTATION pour associer le contenu de lélément à
    une application

42
Les attributs dans la DTD
  • Lindication sur la valeur par défaut peut être
  • REQUIRED indique que lattribut doit avoir une
    valeur une fois le document créé.
  • IMPLIED indique que lattribut est optionnel.
  • FIXED valeur indique que lattribut est une
    constante

43
Les attributs dans la DTD
  • Quelques exemples lt!ATTLIST ex1 att1 CDATA
    IMPLIEDgtlt!ATTLIST ex2 att1 CDATA
    IMPLIED att2 ENTITY REQUIREDgt...

44
Sections conditionnelles
  • lt! INCLUDE contenu gt fait que le contenu
    appartient à la DTD
  • lt!IGNORE contenu gt fait que le contenu
    nappartient pas à la DTD
  • En utilisant des entités paramètres et en les
    redéfinissant dans le document, il est alors
    possible davoir une DTD conditionnelle

45
Liens
  • Navigation XML

46
Avec les attributs ID et IDREF
  • Lattribut ID permet dassocier un identifiant à
    un élémentEx lt!ELEMENT cible
    (PCDATA)gtlt!ATTLIST cible identifiant ID
    IMPLIEDgt
  • L attribut IDREF permet de référencer un élément
    qui possède un attribut IDEx lt!ELEMENT
    référence EMPTYgtlt!ATTLIST référence ref IDREF
    REQUIREDgtDoùltcible identifiant01234gt
    blabla lt/ciblegtlt!-- une référence --gtltréférence
    ref01234/gt

47
XPointer XML Pointer Language
  • XPointer est le standard qui permet de référencer
    des ressources
  • Un XPointer est constitué dune référence de base
    puis dune cascade de références. Ainsi il est
    possible de référencer la valeur de lattribut
    couleur du 3ème éléments fils de lélément de
    type voiture.

48
XPointer XML Pointer Language
  • La référence de base dun XPointer est
  • root() la racine du document cible
  • origin() lorigine du pointeur.
  • id(nb) lélément ayant un attribut id avec nb
    comme valeur
  • html(val) un élément ltAgt ayant un attribut name
    avec val comme valeur

49
XPointer XML Pointer Language
  • Les cascades de référence peuvent être
  • child(), descendant(), ancestor(), avec les
    paramètres suivant
  • nb le numéro de l occurrence
  • element, pi, comment, text, all
  • nom le nom dun élément
  • un nom dattribut et/ou une valeur dattribut
  • attr(nom) pour la valeur dun attribut nom
  • ...

50
XPointer XML Pointer Language
  • Un XPointer peut être précédé dun URL, il faut
    utiliser le caractère comme séparateur
  • Exemples de XPointerhttp//un.deux.fr/toto.xmlro
    ot().child(1,titre)http//un.deux.fr/toto.xmlid(
    0123)...

51
XLink XML Linking Language
  • Un XLink permet de lier plusieurs ressource entre
    elles.
  • Les XLink peuvent être
  • simples / étendus les liens simples nont
    quune seule cible contrairement aux liens
    étendus
  • inclus / exclus La ressource qui décrit les
    liens inclus est inclue dans le liens, elle est
    considérée comme lorigine.

52
XLink XML Linking Language
  • DTD du lien simplelt!ELEMENT lk-simple
    EMPTYgtlt!ATTLIST lk-simple xmllink CDATA FIXED
    simple  href CDATA REQUIRED inline (true
    false) true role CDATA IMPLIED title CDATA
    IMPLIED content-role CDATA IMPLIED content-tit
    le CDATA IMPLIED show (embed replace new)
    IMPLIED actuate (auto user)
    IMPLIED behavior CDATA IMPLIEDgt

53
XLink XML Linking Language
  • Pour les liens étendus, la valeur de lattribut
    xml.link est extended
  • Un lien étendu est composé de plusieurs cibles.
    Chaques cibles est représenté par un élément avec
    lattribut xml.link qui a comme valeur locator

54
Feuilles de style
  • Lhabillage de documents XML

55
La forme et le fond
  • Un document XML contient des informations qui
    vont être présentées sur différents supports
    (ecran, feuille, son, )
  • Il est possible de créer des feuilles de style
    pour décrire comment se fait cette présentation
  • Les feuilles de style sont référencées par les
    documents XML, elles nen font pas parties

56
CSS Cascading Style Sheets
  • CSS est un standard du W3C pour décrire des
    feuilles de style.
  • CSS-1 a été défini en 1996, CSS-2 en 1998
  • CSS-1 est supporté par les navigateur version 4
    de netscape et microsoft.
  • CSS-2 est supporté par les navigateur version 5
    de netscape et microsoft
  • Le W3C sest engagé pour quune version N soit
    toujours valide par rapport au version Nx de la
    norme.

57
CSS Cascading Style Sheets
  • Il est possible de définir plusieurs feuilles de
    style pour un document XML
  • Il est possible de définir une feuille de style
    avec des propriétés valables uniquement pour les
    écrans et des propriétés valables uniquement pour
    les imprimantes.
  • Il est possible quune feuille de style importe
    dautres feuilles de style

58
CSS Cascading Style Sheets
  • Le principe de base de CSS est le
    suivantselecteur propriété1
    valeur propriété2 valeur
  • Selecteur indique quel est (ou quels sont)
    lélément affecté par ces propriétés.
  • Les propriétés sont des indications sur la forme,
    CSS définit 122 propriétés

59
CSS Cascading Style Sheets
  • Ex de feuille de style CSS
  • _at_media screen, print
  • background black
  • color yellow
  • font-weight bold
  • font-size14pt
  • font-family Garamond
  • font-style normal

60
CSS Cascading Style Sheets
61
CSS Cascading Style Sheets
62
XSL eXtensible Stylesheet Language
  • XSL est un standard pour décrire des feuilles de
    style
  • La spécification date de Avril 1999, elle nest
    pas encore totalement stabilisée
  • XSL permet plus de chose que CSS
  • La présentation nest pas basé sur larbre du
    document XML
  • Il est possible de rajouter des informations (ex
    table des matières, )

63
XSL eXtensible Stylesheet Language
  • Pour afficher un document
  • Larbre source est transformé en fonction des
    directives de la feuille de style XSL
  • Larbre transformé est mis en sortie (écran,
    papier)
  • Une feuille de style XSL décrit les directives de
    transformation de larbre source.

64
XSL eXtensible Stylesheet Language
  • Structure dun feuille XSLltxslgt ltdefine-scriptgt
    var foo function bar(xx)
    lt/define-scriptgt ltdefine-style name
    "style-para"   lt! attributs de formatage
    --gt /gt ltdefine-macro nameitem lt! forme
    resultat --gt lt/define-macrogt ltimport
    href"feuille.xsl" /gt ltid attribute"sqd" /gt

65
XSL eXtensible Stylesheet Language
  • Structure dune feuille XSL (suite) ltrulegt ltroo
    t/gt ltHTMLgt ltBODYgt ltchildren/gt lt/BODYgt
    lt/HTMLgt lt/rulegt ltrulegt ltelement
    type"para"/gt lttarget-element type"code"
    /gt ltPREgt ltchildren/gtlt/PREgt lt/rulegt

66
XSL eXtensible Stylesheet Language
  • Exemple de feuille XSLltxslgt ltrulegt ltroot/gt lt
    HTMLgt ltBODYgt ltchildren/gt lt/BODYgt lt/HTM
    Lgt lt/rulegt ltrulegt ltelement type"cours"/gt lt
    target-element type"auteur"/gt ltH1gt Salut je
    lis auteur lt/H1gt lt/rulegtlt/xslgt

67
XSL eXtensible Stylesheet Language
68
Traitement de documents XML
  • DOM et SAX

69
Parseur
  • XML offre de nouveaux horizons applicatifs
  • Il nest pas possible dimaginer létendu de ce
    domaine applicatif
  • Cependant, toutes les applications auront besoin
    de parseur
  • Il y a deux types de parseur normalisés
  • SAX
  • DOM

70
SAX Simple API for XML
  • SAX est un type de parseur XML
  • SAX a été construit par des internautes en 1997,
    ils voulaient standardiser ce type de parseur
  • SAX est implanté en Java et en Python
  • SAX est un parseur événementiel
  • Lorsque que le parseur lit un élément du
    document, il lance un événement
  • Il est utilisé par les applications qui
    considèrent les documents XML comme des flots de
    données

71
SAX Simple API for XML
  • SAX étant un parseur événementiel, il propose un
    ensemble dinterface pour implanter des handler
  • DocumentHandler
  • startElement()
  • starDocument()
  • ErrorHandler
  • Error()
  • Il suffit ensuite de créer un parseur XML,
    daffecter les handler puis de commencer à
    scanner le document

72
SAX Simple API for XML
  • Exemple dapplication utilisant SAX
  • public class MyHandler extends DocumentHandler
    public void startElement(String n,
    AttributeList att)
  • System.out.println("Start element " n)
  • .DocumentHandler dh new MyHandler()parser.se
    rDocumentHandler(dh)

73
DOM Document Object Model
  • DOM est un type de parseur XML
  • DOM a été standardisé par le W3C
  • LAPI du DOM est définit en IDL CORBA
  • DOM est un parseur compilé
  • Lecture de la totalité du document XML
  • Création dune structure arborescente dobjet qui
    représente le document XML

74
DOM Document Object Model
  • Le DOM est un parseur compilé, son API est
    composé de toutes les entités dun document XML
  • Document Objet qui représente le document XML
  • Element Objet qui représente un élément XML
  • Node Objet dont tous les autres objets héritent
  • Pour construire une application qui utilise le
    DOM, il suffit de créer un parseur et dappeler
    la méthode parse qui retourne un objet de type
    Document

75
DOM Document Object Model
  • Exemple dapplication utilisant DOM
  • try DOMParserWrapper parser new Document
    docu parser.parser(uri)

76
Conclusion pour les traitements
  • SAX et DOM sont deux types de parseur
    standardisés par les internautes pour SAX et par
    le W3C pour DOM
  • SAX est plus orienté traitement du document comme
    un flot dinformation
  • DOM est plus orienté transformation de document
    ou archivage
  • Il existe de nombreuses implantations gratuites
    en Java de SAX et de DOM (Sun, IBM, )

77
Applications
  • XMI

78
MOF Meta Object Facility
79
XMI XML Metadata Interchange
80
Bibliographie
  • A vous de jouer

81
Les documents utilisé pour ce support
  •  XML Langage et applications  EyrollesAlain
    Michard
  • www.w3c.org le site du W3C
  • http//www.alphaworks.ibm.com/formula/xml/
  • http//babel.alis.com/web_ml/xml/ 
  • http//www.xmltechno.com/
Write a Comment
User Comments (0)
About PowerShow.com