+ All Categories
Home > Documents > CoursXML-id1966

CoursXML-id1966

Date post: 04-Apr-2018
Category:
Upload: zbouzgha
View: 216 times
Download: 0 times
Share this document with a friend

of 111

Transcript
  • 7/30/2019 CoursXML-id1966

    1/111

    Tarak CHAARI - Dpt Tlcommunications XML - 1

    XML: eXtensible Markup Language

    Fondements,Modlisation,

    Prsentation et

    Programmation

  • 7/30/2019 CoursXML-id1966

    2/111

    Tarak CHAARI - Dpt Tlcommunications XML - 2

    Sommaire

    Fondements de la technologie XML

    Modlisation et validation de documents XML

    Prsentation des documents XML

    Programmation en utilisant XML

  • 7/30/2019 CoursXML-id1966

    3/111

    Tarak CHAARI - Dpt Tlcommunications XML - 3

    Fondements et notions de base

    XML: eXtensible Markup Language

    Partie 1:

  • 7/30/2019 CoursXML-id1966

    4/111

    Tarak CHAARI - Dpt Tlcommunications XML - 4

    Notion de document lectronique

    Dfinitions Objet qui joue un rle de mdiateur entre les

    hommes dans le temps et l'espace (changedinformation) Moyen de communication de la pense, de la

    connaissance, de l'information et du savoir Un document est un ensemble form par unsupport et une information (ISO TC-46)

    Se prsente sous la forme de textes, tableaux,dessins, photos, ... Un document a un contenu (structure logique) et

    un fond (structure physique)

  • 7/30/2019 CoursXML-id1966

    5/111

    Tarak CHAARI - Dpt Tlcommunications XML - 5

    Modles de document

    Structure logique Dcrit le contenu dun document (information)

    Par exemple: Chapitre, section, paragraphes, figures,notes

    Structure physique

    Dcrit la forme et le support du document (formatage) Par exemple: tomes, pages, cadres, pavs, fentres

    Caractristiques communes des 2 structures: Composes ou lmentaires (molcule / atomes)

    Gnrique ou spcifique (date / le 29-11-2006)

  • 7/30/2019 CoursXML-id1966

    6/111

    Tarak CHAARI - Dpt Tlcommunications XML - 6

    Exemple dun document (article)XML: eXtensible Markup Language

    Wikipdia

    1. IntroductionXML (Extensible Markup Language, langage debalisage extensible ) est un langage informatique debalisage gnrique. Le W3C recommande XML pourexprimer des langages de balisages spcifiques(exemples : XHTML, SVG, XSLT).

    Son objectif initial est de faciliter l'change automatisde contenus entre systmes d'informations htrognes,notamment, sur Internet. XML est un sous-ensemblede SGML dont il retient plusieurs principes dont : lastructure d'un document XML est dfinissable etvalidable par un schma, un document XML estentirement transformable dans un autre documentXML.

    2. Objectif initial

    L'objectif initial de XML tait de proposer un SGMLsimplifi. Cette technologie

    Titre

    Auteur

    Section

    Paragraphe

    Paragraphe

    Section

  • 7/30/2019 CoursXML-id1966

    7/111

    Tarak CHAARI - Dpt Tlcommunications XML - 7

    Exemple dun document: Structure logique

    XML: eXtensible Markup Language

    Wikipdia

    XML (Extensible Markup Language, langage de balisage extensible ) est unlangage informatique de balisage gnrique. Le W3C recommande XML pour exprimerdes langages de balisages spcifiques (exemples : XHTML, SVG, XSLT).

    Son objectif initial est de faciliter l'change automatis de contenus entresystmes d'informations htrognes, notamment, sur Internet. XML est un sous-ensemblede SGML dont il retient plusieurs principes dont : la structure d'un document XML estdfinissable et validable par un schma, un document XML est entirement transformabledans un autre document XML.

  • 7/30/2019 CoursXML-id1966

    8/111

    Tarak CHAARI - Dpt Tlcommunications XML - 8

    Exemple dun document: Structure

    physique

  • 7/30/2019 CoursXML-id1966

    9/111

    Tarak CHAARI - Dpt Tlcommunications XML - 9

    World Wide Web Consortium W3C - Fond en 1994

    Consortium industriel international accueilli par

    diffrents sites MIT/LCS aux Etats-Unis

    INRIA en Europe

    Keio University au Japon 448 membres industriels en septembre 2000

    Accroitre le potentiel du WEB Standards et Normes

    Techniques, langages et architectures pour lchange dedocuments sur le WEB

    Origines

  • 7/30/2019 CoursXML-id1966

    10/111

    Tarak CHAARI - Dpt Tlcommunications XML - 10

    Langages de reprsentation de documents

    Par ordre chronologique: SGML (Norme ISO 8879 en 1986, rvise en

    1988 et 1994) Mta-langage gnral

    HTML (Standard W3C depuis 1989) Structure gnrale fige

    XML (Standard W3C depuis 1998) Mta-langage simplifi compatible SGML

  • 7/30/2019 CoursXML-id1966

    11/111

    Tarak CHAARI - Dpt Tlcommunications XML - 11

    SGML: prsentation Une norme internationale :

    Standard Generalized Markup Language

    ISO 8879 - 1989 Un mtalangage de balisage de documents

    lisible par ltre humain et traitable par une machine

    permet de dfinir des langages de balisage Les documents sont baliss conformment la

    grammaire (la DTD)

    instances de DTD

    permet un balisage smantique du fond.

    Implique la notion de validit d'un document

    SGML

  • 7/30/2019 CoursXML-id1966

    12/111

    Tarak CHAARI - Dpt Tlcommunications XML - 12

    SGML : objectifs

    Sparation du fond et de la forme possibilit de multiples prsentations

    un seul document en SGML

    plusieurs formats : Postcript, HTML, etc.

    Support de traitements sur le contenu desdocuments sans prise en compte de la forme

    Proposition dun cadre dfini pour lexpression desmodles documentaires (validit, contrle)

    Format de stockage et dchange normalis

    SGML

  • 7/30/2019 CoursXML-id1966

    13/111

    Tarak CHAARI - Dpt Tlcommunications XML - 13

    SGML : critiques

    Trs lourd et complexe pour la mise en uvre dedocuments respectant ce format

    Une grande rigueur est demande l'entre desdocuments

    Standard complexe et complet pour le traitement

    des documents

    Liens hypertextes possibles mais complexes

    SGML

  • 7/30/2019 CoursXML-id1966

    14/111

    Tarak CHAARI - Dpt Tlcommunications XML - 14

    HTML : prsentation Propos par le W3C comme format de documents sur

    le Web

    Langage simple avec des balises standardisespermettant la mise en forme dun texte.

    Standard reconnu par tous les navigateurs.

    Langage trs populaire sur le Web

    HTML

    Exemple

    Contenu du document

    une rfrence externe

  • 7/30/2019 CoursXML-id1966

    15/111

    Tarak CHAARI - Dpt Tlcommunications XML - 15

    HTML : inconvnients

    Normalisation des diffrentes balises difficile les constructeurs ont eu tendance dfinir leurs propres balises

    pour rpondre leurs besoins (incompatibilit) HTML est ddi pour un seul type de terminaux

    Mises jour difficiles

    restructuration ou remise en forme de lensemble des pages dusite fastidieux

    Incapacit dextension sans "plugins" cot client (formulesmathmatiques, modlisations de molcules, scnes 3D)

    Mlange de structures logique et physique donnes utiles mlange avec la mise en forme

    Difficults trouver linformation recherche

    HTML

  • 7/30/2019 CoursXML-id1966

    16/111

    Tarak CHAARI - Dpt Tlcommunications XML - 16

    SGML et HTML : Rsum

    SGML lange puissant

    pouvant dcrire

    toute structure Documents difficile

    dfinir

    Documentsdifficiles utiliser

    HTML

    HTML spcialisation deSGML

    adapt laprsentation

    inadapt l'change

    entre programmes

  • 7/30/2019 CoursXML-id1966

    17/111

    Tarak CHAARI - Dpt Tlcommunications XML - 17

    XML : Prsentation

    XML= un nouveau langage d'change bassur le balisage

    XML= plus simple que SGML

    XML= plus ouvert que HTML

    XML = dvelopp par XML Working Groupdirig par le W3C (depuis 1996)

    XML 1.0 = recommandation officielle duW3C depuis le 10 fvrier 1998

    Origines

  • 7/30/2019 CoursXML-id1966

    18/111

    Tarak CHAARI - Dpt Tlcommunications XML - 18

    XML: objectifs fixs par le W3C (1)

    XML doit pouvoir tre utilis sans difficultsur Internet

    XML doit soutenir une grande varitd'applications

    XML doit tre compatible avec SGML etHTML

    Il doit tre facile d'crire des programmes

    traitant les documents XML Le nombre d'options dans XML doit tre

    rduit au minimum, idalement aucuneOrigines

  • 7/30/2019 CoursXML-id1966

    19/111

    Tarak CHAARI - Dpt Tlcommunications XML - 19

    XML: objectifs fixs par le W3C (2)

    Les documents XML doivent tre lisibles parl'homme

    Les documents XML doivent treraisonnablement clairs

    La spcification de XML doit tre disponiblerapidement

    La conception de XML doit tre formelle etconcise

    Il doit tre facile de crer des documents XML

    Origines

  • 7/30/2019 CoursXML-id1966

    20/111

    Tarak CHAARI - Dpt Tlcommunications XML - 20Origines

    Forces de XML

    Sparation de la structure et de la prsentation

    Moins confus que HTML

    Plus simple que SGML

    Idal pour l'change de donnes semi-structures

    Utilisable entre machines htrognes

  • 7/30/2019 CoursXML-id1966

    21/111

    Tarak CHAARI - Dpt Tlcommunications XML - 21

    XML: utilits (1) XML est un Mta-langage universel pour reprsenter les

    donnes changes sur le Web qui permet au dveloppeur

    de dlivrer du contenu depuis les applications d'autresapplications ou aux navigateurs

    XML standardise la manire dont l'information est :

    change prsente

    archive

    retrouve transforme

    crypte

    ...XML

  • 7/30/2019 CoursXML-id1966

    22/111

    Tarak CHAARI - Dpt Tlcommunications XML - 22

    XML: utilits (2)

    Dfinir vos propres langages dchange Commande, facture, bordereau de livraison, etc.

    Modliser des documents et des messages Modle logique de donnes Elments typs agrgs (DTD, XML Schema)

    Publier des informations Neutre du point de vue format Mise en forme avec des feuilles de style

    Archiver des donnes Auto-description des archives (recherche

    dinformation)Pourquoi XML ?

  • 7/30/2019 CoursXML-id1966

    23/111

    Tarak CHAARI - Dpt Tlcommunications XML - 23

    Concepts de XML

    Balise (ou tag ou label) Marque de dbut et fin permettant de reprer un lment textuel

    Forme: de dbut, de fin

    Elment de donnes Texte encadr par une balise de dbut et une de fin

    Les lments de donnes peuvent tre imbriques

    A. Einstein

    Villeurbanne

    Attribut

    Doublet nom="valeur" qualifiant une balise

    XML

  • 7/30/2019 CoursXML-id1966

    24/111

    Tarak CHAARI - Dpt Tlcommunications XML - 24

    Exemple 1 dun document XML

  • 7/30/2019 CoursXML-id1966

    25/111

    Tarak CHAARI - Dpt Tlcommunications XML - 25

    Exemple 2 dun document XML

  • 7/30/2019 CoursXML-id1966

    26/111

    Tarak CHAARI - Dpt Tlcommunications XML - 26

    Structure Arborescente dun document XML

  • 7/30/2019 CoursXML-id1966

    27/111

    Tarak CHAARI - Dpt Tlcommunications XML - 27

    La base dun document XML: llment

    Quand utiliser les attributs?

    - Valeur unique de type simple (information monovalue) Quand utiliser les lments?

    - Valeur de type complexe (numrations, possde des proprits)

  • 7/30/2019 CoursXML-id1966

    28/111

    Tarak CHAARI - Dpt Tlcommunications XML - 28

    Espaces de noms

    Comment mixer des tags (ou balises) issus de diffrentslangages?

    Un espace de noms est caractris par un prfixe

    Mcanisme intressant pour l'intgration de contenus

    XML

    Le prfixe permet de retrouver le langage

    Villeurbanne69100Villeurbanne 69 Rhne

  • 7/30/2019 CoursXML-id1966

    29/111

    Tarak CHAARI - Dpt Tlcommunications XML - 29

    XML: contextes dutilisation

    Architectures N-tiers

    Production de documents XML partir deservices (couche mtier)

    Transformation de ces documents pour desformats daffichage, dimpression, de transfert..

  • 7/30/2019 CoursXML-id1966

    30/111

    Tarak CHAARI - Dpt Tlcommunications XML - 30

    XML: contextes dutilisation

    Stockage de donnes Format spcifiques (exemple: SVG)

  • 7/30/2019 CoursXML-id1966

    31/111

    Tarak CHAARI - Dpt Tlcommunications XML - 31

    XML: contextes dutilisation

    Stockage de donnes Fichiers de configuration (exemple: JBOSS)

    LegoBlocksEJBlegoBean.LegoBlocksSessionHomelegoBean.LegoBlocksSessionlegoBean.LegoBlocksSessionBeanStatefulContainer

  • 7/30/2019 CoursXML-id1966

    32/111

    Tarak CHAARI - Dpt Tlcommunications XML - 32

    XML: contextes dutilisation

    Echange de donnes changes Business to Business, services web

  • 7/30/2019 CoursXML-id1966

    33/111

    Tarak CHAARI - Dpt Tlcommunications XML - 33

    Bases de donnes vs XML

    Approche Donne Structuration forte et simple

    Compatibilit SGBDR existants Mise jour en place

    Intgrit smantique

    Indexation exacte

    Adapt au transactionnel et

    dcisionnel Performances attendues

    moyenne forte pourune volumtrie moyenne

    Approche Document Structuration faible et complexe

    Systmes documentairesspcialiss

    Gestion de versions

    Recherche textuelle

    Indexation approche

    Accs type moteur de recherche

    Performances attendues moyenne pour une volumtrie forte

    Pourquoi XML ?

  • 7/30/2019 CoursXML-id1966

    34/111

    Tarak CHAARI - Dpt Tlcommunications XML - 34

    Equivalences BD / XML Une table dans une BD peut correspondre un document

    XML (elle correspond en rel une classe dobjets)

    Une ligne dans la table dcrit une instance dun objet.Elle correspond un lment XML

    Chaque colonne de la ligne correspond une proprit delobjet22

    Un autre contexte dutilisation de XML:- Mapping relationnel/objet- Fusion de sources de donnes htrognes

  • 7/30/2019 CoursXML-id1966

    35/111

    Tarak CHAARI - Dpt Tlcommunications XML - 35

    Ltat actuel de XML

    Un standard d'change Lisible : texte balis avec marquage

    Clair : sparation du fond et de la forme Extensible : supporte les volutions applicatives Scuris : pare-feu, encryption, signature

    Dvelopp par le W3C Pour le Web (Internet, Intranet) S'tend l'entreprise et ses partenaires

    Support par les grands constructeurs IBM, Microsoft .net, SUN, BEA, etc.

    Des outils gnriques et ouvertsPourquoi XML ?

  • 7/30/2019 CoursXML-id1966

    36/111

    Tarak CHAARI - Dpt Tlcommunications XML - 36

    Langages XML : une nbuleuse en expansion

    XML

    HTML DTD

    HyTime

    JAXP

    CSSXSL

    XLink

    XPointer

    DSSSL

    MathML CML

    XML-Schema

    SVG SMIL

    XPath

    RDF

    Mpeg-7

    SGML

    MS-XML

    ThMLDOM SAX

    XML Query

    CC/PP

    Interrogation / recherche Description de ressources

    Programmation

    Les anctresTransformations / prsentation Les liens

    Besoins spcifiques

    SunML XFORMS

    UIML XUL

    USIXML

    Interfaces utilisateurs

    Validation

    XML Encyption

    WAP

    SOAP

    XML-RPC

    OWL

    WSDL

  • 7/30/2019 CoursXML-id1966

    37/111

    Tarak CHAARI - Dpt Tlcommunications XML - 37

    XML: Exercice (structuration de donnes) Donnez une version structure du document suivant:

    Une bouteille d'eau Cristaline de 150 cl contient par litre 71 mg d'ions positifs calcium,et 5,5 mg d'ions positifs magnsium. On y trouve galement des ions ngatifs commedes chlorures 20 mg par litre et des nitrates avec 1 mg par litre. Elle est recueillie St-Cyr la Source, dans le dpartement du Loiret. Son code barre est 3274080005003 et sonpH est de 7,45. Comme la bouteille est sale, quelques autres matriaux comme du fer s'ytrouvent en suspension.

    Une seconde bouteille d'eau Cristaline a t, elle, recueillie la source d'Aurle dans lesAlpes Maritimes. La concentration en ions calcium est de 98 mg/l, et en ions magnsium

    de 4 mg/l. Il y a 3,6 mg/l d'ions chlorure et 2 mg/l de nitrates, pour un pH de 7,4. Lecode barre de cette bouteille de 50 cl est 3268840001008.

    Une bouteille de mme contenance est de marque Volvic, et a t puise ... Volvic,bien connu pour ses sources donnant un pH neutre de 7. Elle comprend 11,5 mg/l d'ionscalcium, 8,0 mg/l d'ions magnsium, 13,5 mg/l d'ions chlorures et 6,3 mg/l d'ions

    nitrates. Elle contient galement des particules de silice. Son code barre est3057640117008.

    PS : Volvic est dans le Puy-de-Dme...

    i ( i d d )

  • 7/30/2019 CoursXML-id1966

    38/111

    Tarak CHAARI - Dpt Tlcommunications XML - 38

    ML: Exercice (structuration de donnes)

    -

    -

    Cristaline

    -

    calcium 71mg/l

    magnsium 5,5mg/l

    chlorure 20mg/l

    nitrate 1mg/l

    fer

    -

    St-Cyr la SourceLoiret

    3274080005003

    150

    7,45

    Cristaline

    - calcium 98mg/l

    - - AurleAlpes Maritimes326884000100850

    7,4

    - Volvic

    -

    -

  • 7/30/2019 CoursXML-id1966

    39/111

    Tarak CHAARI - Dpt Tlcommunications XML - 39

    Modlisation des documents:

    DTD et Schma

    XML: eXtensible Markup Language

    Partie 2:

    I t d ti

  • 7/30/2019 CoursXML-id1966

    40/111

    Tarak CHAARI - Dpt Tlcommunications XML - 40Introduction

    Introduction

    Un document XML peut tre associ :

    une DTD ou un schma pour dcrire les balises Une feuille de style pour prsenter les donnes

    Une DTD ou/et un schma permettent de

    dfinir son propre langage bas sur XML Vocabulaire (balises)

    Grammaire (imbrications) Dialecte ou Jargon

    V lidit d d t

  • 7/30/2019 CoursXML-id1966

    41/111

    Tarak CHAARI - Dpt Tlcommunications XML - 41

    Validit des documents Document bien form (Well Formed document)

    Guillemets (ou apostrophes) obligatoires autour des valeurs

    Les lments vides utilisent une notation spcifique

    Les balises doivent tre correctement imbriques NON !

    Le document a une seule racine

    Un attribut est unique dans son lment

    Document valide (Valid document) bien form + conforme la DTD ou au schma qui lui est associ

    Introduction

    E i d t bi f ?

  • 7/30/2019 CoursXML-id1966

    42/111

    Tarak CHAARI - Dpt Tlcommunications XML - 42

    Exercice: documents bien forms?

    QUESTION: Est-ce que les documents suivants sont bien forms ?

    REPONSE 1:

    REPONSE 2:

    REPONSE 3:

    DTD

  • 7/30/2019 CoursXML-id1966

    43/111

    Tarak CHAARI - Dpt Tlcommunications XML - 43

    DTD

    Permet de dfinir le vocabulaire et lastructure qui seront utiliss dans le

    document XML

    Grammaire du langage dont les phrases sontdes documents XML (instances)

    Peut tre mise dans un fichier (DTDexterne) et tre appele dans le documentXML

    DTD

    Dclaration d'lment simple

  • 7/30/2019 CoursXML-id1966

    44/111

    Tarak CHAARI - Dpt Tlcommunications XML - 44

    Dclaration d'lment simple

    Le paramtre dfinition reprsente soit un type de donne

    prdfini, soit un lment de donnes compos, constitului mme d'lments

    Types prdfinis

    ANY : L'lment peut contenir tout type de donne EMPTY : L'lment ne contient pas de donnes spcifiques

    #PCDATA : L'lment doit contenir une chane de caractre

    Exemple

    Victor Hugo

    DTD

    Dclaration d'lment compos

  • 7/30/2019 CoursXML-id1966

    45/111

    Tarak CHAARI - Dpt Tlcommunications XML - 45

    Dclaration d'lment compos

    Dfinit une squence ou un choixd'lments

    Syntaxe spcifique avec oprateurs decomposition d'lments :

    Oprateur Signification Exemple

    + L'lment doit tre prsent au minimum une fois A+

    * L'lment peut tre prsent plusieurs fois (ou aucune) A*

    ? L'lment peut tre optionnellement prsent A?

    | L'lment A ou B peuvent tre prsents (pas les deux) A|B

    , L'lment A doit tre prsent et suivi de l'lment B A,B

    ()Les parenthses permettent de regrouper des lments afin de leur appliquer lesautres oprateurs

    (A,B)+

    DTD

    Exemple d'lment compos

  • 7/30/2019 CoursXML-id1966

    46/111

    Tarak CHAARI - Dpt Tlcommunications XML - 46

    Exemple d lment compos

    Hugo

    Victor

    Charles

    01120243

    Paris

    DTD

    Dclaration d'attributs

  • 7/30/2019 CoursXML-id1966

    47/111

    Tarak CHAARI - Dpt Tlcommunications XML - 47

    Dclaration d attributs

    balise spcifie l'lment auquel est attach l'attribut

    Attributest le nom de l'attribut dclar

    Type dfinit le type de donne de l'attribut choisi parmi: CDATA

    Chanes de caractres entre guillemets ("aa") non analyses

    Enumration

    Liste de valeurs spares par |

    ID et IDREF

    Cl et rfrence cl

    Modeprcise le caractre obligatoire ou non de l'attribut #REQUIRED, #IMPLIED ou #FIXED

    DTD

    Exemple d'attributs

  • 7/30/2019 CoursXML-id1966

    48/111

    Tarak CHAARI - Dpt Tlcommunications XML - 48

    Exemple d attributs

    num ID,

    age CDATA,

    genre (Masculin | Feminin ) >

    ville CDATA #IMPLIED>

    ville CDATA #FIXED "Paris">

    DTD

    Exemple de DTD

  • 7/30/2019 CoursXML-id1966

    49/111

    Tarak CHAARI - Dpt Tlcommunications XML - 49

    Exemple de DTD

    DTD

    Exemple de DTD interne

  • 7/30/2019 CoursXML-id1966

    50/111

    Tarak CHAARI - Dpt Tlcommunications XML - 50

    Exemple de DTD interne

    ]>

    Marie

    Jean

    Pierre

    Julie

    DTD

    DTD externe

  • 7/30/2019 CoursXML-id1966

    51/111

    Tarak CHAARI - Dpt Tlcommunications XML - 51

    DTD externe

    Modle pour plusieurs documents partage des balises, attributs et structures

    Dfinition locale ou externe

    Exemple de document

    ...

    DTD

    DTD : Entit paramtre

  • 7/30/2019 CoursXML-id1966

    52/111

    Tarak CHAARI - Dpt Tlcommunications XML - 52

    DTD : Entit paramtre Permet la dfinition d'un groupe d'lments sous un nom

    (macro)

    Rutilisable dans une DTD par simple appel %nom;

    Exemple :

    Peuvent tre externes :

    DTD

    DTD : Entit gnrale

  • 7/30/2019 CoursXML-id1966

    53/111

    Tarak CHAARI - Dpt Tlcommunications XML - 53

    DTD : Entit gnrale

    Permet la dfinition d'un texte sous un nom

    Rutilisable dans un document par simple appel &nom; Exemple

    ]>

    &cie; &imp;

    DTD

    Quelques rgles d'criture

  • 7/30/2019 CoursXML-id1966

    54/111

    Tarak CHAARI - Dpt Tlcommunications XML - 54

    Quelques rgles d criture

    Modularit dfinir dans des entits spares les parties rutilisables

    Prcdence Regrouper les dclarations d'entits en tte Abstraction

    Utiliser des entits pour les modles de contenus Spcificit

    viter les DTD trop gnrales

    Simplicit Dcouper les DTD trop complexes

    DTD

    DTD: Exercice (Catalogue de films)

  • 7/30/2019 CoursXML-id1966

    55/111

    Tarak CHAARI - Dpt Tlcommunications XML - 55

    DTD: Exercice (Catalogue de films)

    On se propose de dfinir un format XML de stockagedun catalogue de films sur DVD.

    Le catalogue comprend un ensemble de fiches de films Chaque fiche comprend:

    Un numro unique Le titre du film

    Un ou plusieurs ralisateurs Un ou plusieurs diteurs Les acteurs principaux

    Le genre du film (comdie, horreur, action) (en option) Un commentaire optionnel qui prsente brivement lhistoiredu film

    Un lien ventuel vers le site du film

    : xerc ce ata ogue efil )

  • 7/30/2019 CoursXML-id1966

    56/111

    Tarak CHAARI - Dpt Tlcommunications XML - 56

    films)

    numero CDATA #REQUIRED>

    Insuffisance des DTD

  • 7/30/2019 CoursXML-id1966

    57/111

    Tarak CHAARI - Dpt Tlcommunications XML - 57

    su s ce des

    Pas de types de donnes part du texte (#PCDATA)

    Expression de cardinalits limite (?, * et +)

    Syntaxe spcifique (pas XML)

    difficile interprter difficile traduire en schma objets

    Propositions de complments XML-schema du W3C

    DTD

    XML Schma

  • 7/30/2019 CoursXML-id1966

    58/111

    Tarak CHAARI - Dpt Tlcommunications XML - 58

    Un schma d'un document dfinit: les lments possibles dans le document

    les attributs associs ces lments

    la structure du document et les types de donnes

    Le schma est spcifi en XML pas de nouveau langage

    balisage de dclaration

    utilise un espace de nom xs: (ou xsd:)

    Prsente de nombreux avantages

    types de donnes personnaliss

    extensibilit par hritage et ouverture

    analysable par un parseur XML standard

    Schema

    Objectifs des schmas

  • 7/30/2019 CoursXML-id1966

    59/111

    Tarak CHAARI - Dpt Tlcommunications XML - 59

    j

    Reprendre les acquis des DTD Plus riche et complet que les DTD

    Permettre de typer les donnes Elments simples et complexes

    Attributs simples

    Permettre de dfinir des contraintes Existence obligatoire ou optionnelle

    Domaines de valeurs, cardinalits, rfrences

    Patterns, ...

    S'intgrer la nbuleuse XML Espace de noms

    Structure d'arbre logique

    Schema

    Les types XML

  • 7/30/2019 CoursXML-id1966

    60/111

    Tarak CHAARI - Dpt Tlcommunications XML - 60

    yp

    La base dun schma XML: llment

    Un lment peut avoir un type: Simple si sa valeur a un type prdfini en XML-SCHEMA(xs:string, xs:int, xs:decimal, xs:double) ou une extensionde ces types

    Complexe sil contient des sous lments ou sil comporte unattribut

    xs:all tous les lments doivent exister (peu importe lordre) xs:choice un des lments doit exister

    xs:sequence tous les lments doivent exister dans lordre spcifi

    Modles de contenu et types

  • 7/30/2019 CoursXML-id1966

    61/111

    Tarak CHAARI - Dpt Tlcommunications XML - 61

    yp

    Quatre catgories de modles de contenu

    Deux catgories de types de donnes: simple et complexe

    Les types simples

  • 7/30/2019 CoursXML-id1966

    62/111

    Tarak CHAARI - Dpt Tlcommunications XML - 62

    yp p string

    Confirm this is electric

    byte-1, 126

    integer-126789, -1, 0, 1, 126789

    positiveInteger1, 126789

    negativeInteger-126789, -1

    hexBinary0FB7 int

    -1, 126789675

    unsignedInt0, 1267896754

    booleantrue, false 1, 0

    date1999-05-31

    Schema

    ID"A212"

    IDREF"A212"

    IDREFS"A212" "B213"

    anyURIhttp://www.example.com/e1.html#5

    languageen-GB, en-US, fr

    dateTime1999-05-31T13:20:00.000-05:00

    Et beaucoup dautresShort, long, float

    Les types complexes

  • 7/30/2019 CoursXML-id1966

    63/111

    Tarak CHAARI - Dpt Tlcommunications XML - 63

    Dfinition d'objets complexes : collection ordonne d'lments typs

    : collection non ordonne d'lments typs

    : choix entre lments typs Exemple

    Schema

    Hritage de types

  • 7/30/2019 CoursXML-id1966

    64/111

    Tarak CHAARI - Dpt Tlcommunications XML - 64

    Dfinition de sous-typespar hritage Par extension : ajout

    d'informations

    Par restriction : ajout decontraintes

    Possibilit de contraindrela drivation

    Exemple dextension :

  • 7/30/2019 CoursXML-id1966

    65/111

    Tarak CHAARI - Dpt Tlcommunications XML - 65

    Contraintes sur type simple prdfini Utilisation d'expression rgulires

    Similaires celles de Perl

    Exemple de restriction

    Autres facettes de restriction- xs:mininclusive, xs:maxexclusive, xs:enumeration,

    xs:length

    Schema

    Rutilisation de types

  • 7/30/2019 CoursXML-id1966

    66/111

    Tarak CHAARI - Dpt Tlcommunications XML - 66

    Type simple avec extension

    Type complexe (squence)

    Les occurences

  • 7/30/2019 CoursXML-id1966

    67/111

    Tarak CHAARI - Dpt Tlcommunications XML - 67

    Une bibliothque contient au moins un livre

    Les attributs 1/2

  • 7/30/2019 CoursXML-id1966

    68/111

    Tarak CHAARI - Dpt Tlcommunications XML - 68

    Les lments contenu simple avec attributs

    La bible de XML

    Les attributs 2/2

  • 7/30/2019 CoursXML-id1966

    69/111

    Tarak CHAARI - Dpt Tlcommunications XML - 69

    Les lments contenu complexe avec attributs

    Michael

    Groupage dlments

  • 7/30/2019 CoursXML-id1966

    70/111

    Tarak CHAARI - Dpt Tlcommunications XML - 70

    Rfrence un Schma XML

  • 7/30/2019 CoursXML-id1966

    71/111

    Tarak CHAARI - Dpt Tlcommunications XML - 71

    Rfrence sans espace de noms

    Rfrence avec espace de noms

    Schema

    Bilan DTD et Schma

  • 7/30/2019 CoursXML-id1966

    72/111

    Tarak CHAARI - Dpt Tlcommunications XML - 72

    Les DTD dfinissent la grammaire des documents

    Elles sont de plus en plus souvent remplaces pardes schmas

    Le standard XML-Schma est un peu complexe Une solution intermdiaire entre les DTD et les Schmas

    http://www.relaxng.org

    RELAX est en cours de standardisation ISO

    DTD et Schema

  • 7/30/2019 CoursXML-id1966

    73/111

    Tarak CHAARI - Dpt Tlcommunications XML - 73

    Prsentation et transformations de

    documents

    XML: eXtensible Markup Language

    Partie 3:

    Formatage de document XML

  • 7/30/2019 CoursXML-id1966

    74/111

    Tarak CHAARI - Dpt Tlcommunications XML - 74

    Un document et sa DTD ou schma nedonnent pas dindications sur sareprsentation. Une description supplmentaire est ncessaire:

    DSSSL

    Document StyleSemantics and

    Specification language

    CSS

    Cascading StyleSheets

    XSL

    eXtensible StylesheetLanguage

    Cascading Style Sheets (CSS)

  • 7/30/2019 CoursXML-id1966

    75/111

    Tarak CHAARI - Dpt Tlcommunications XML - 75

    Recommandation W3C (CSS1: 1996, CSS2:1998)

    Sapplique HTML et XML Support approximatif par les navigateurs

    Voirhttp://www.richinstyle.com/bugs/table.html Meilleurs support dans Mozilla et IE6

    Principes

    Cascade Correspondance dlments (slecteurs)

    CSS: Syntaxe

  • 7/30/2019 CoursXML-id1966

    76/111

    Tarak CHAARI - Dpt Tlcommunications XML - 76

    Attachement dune feuille de style un document

    Syntaxe gnrale

    Slecteur {proprit: valeur; proprit: valeur;} Slecteur

    Voirhttp://www.w3.org/TR/REC-CSS2/selector.html

    La premire ligne dun lment elel:first-line

    Un lment el lorsquil est survol parla souris

    el:hover

    Les lments el contenant un attributatt de valeur foo

    el [att=foo ]

    Les lments el2 descendants de el1el1 el2

    Les lments elel

    CSS: proprits

  • 7/30/2019 CoursXML-id1966

    77/111

    Tarak CHAARI - Dpt Tlcommunications XML - 77

    Mesure des longueurs Mesure relatives: em, ex, %

    font-size: 1.2em; (1.2 * la taille de llment parent)

    line-height: 3ex; (3 * la taille dune minuscule) Mesures absolues: px, pt, mm, cm

    Couleurs Prdfinis: black, blue, green, maroon, yellow, Numriques: #rrvvbb, rgb (n, n, n)

    Exempletexte { font-size: 1.2em; line-height: 3ex; }

    CSS: proprits usuelles

  • 7/30/2019 CoursXML-id1966

    78/111

    Tarak CHAARI - Dpt Tlcommunications XML - 78

    PropritCSS: Exemple (extrait)

  • 7/30/2019 CoursXML-id1966

    79/111

    Tarak CHAARI - Dpt Tlcommunications XML - 79

    Valeur

    instructionslecteur

    Faiblesses de CSS

  • 7/30/2019 CoursXML-id1966

    80/111

    Tarak CHAARI - Dpt Tlcommunications XML - 80

    CSS a t initialement prvu pou laprsentation des documents HTML

    Mme dfauts que HTML

    - Syntaxe non modifiable et non extensible

    - Syntaxe difficile normaliser

    - Difficults pour trouver des lments

    XPath: adressage dans un document XML

  • 7/30/2019 CoursXML-id1966

    81/111

    Tarak CHAARI - Dpt Tlcommunications XML - 81

    Identification de nuds dans un document XML

    Base du langage de transformation XSLT et des pointeurs

    XLink

    Syntaxe: chemin dans larborescence du document

    slecteur/slecteur/slecteur La syntaxe gnrale dun slecteur: lment[prdicat]

    Exemples: image [@imgsrc=joconde.jpg] /livre/listeEmprunts/emprunt[2]/sortie

    XSL: eXtensible style sheetLanguage

  • 7/30/2019 CoursXML-id1966

    82/111

    Tarak CHAARI - Dpt Tlcommunications XML - 82

    Description du formatage appliquer undocument XML

    Compos de deux sous-ensembles

    XSLT: XSL transformation

  • 7/30/2019 CoursXML-id1966

    83/111

    Tarak CHAARI - Dpt Tlcommunications XML - 83

    Langage de transformation dun arbre XML dans unautre Restructuration Gnration (indexes, tables, )

    Recommandation W3C depuis 1999 http://www.w3.orgTR/1999/REC-xslt-19991116

    Transformation possible ct client ou ct serveur

    Ct client Support intgr dans IE (aprs mise jour de MSXML dansIE5)

    En utilisant un formateur XML externe via javascript (ActiveX)

    Ct serveur En invoquant un formateur par CGI, PHP ou ASP En invoquant un formateur programm (ex: Saxon, Xalan) En utilisant un cadre de publication XML ( ex: Cocoon)

    XSLT: principes gnraux

  • 7/30/2019 CoursXML-id1966

    84/111

    Tarak CHAARI - Dpt Tlcommunications XML - 84

    Une feuille XSLT est un document XML

    Ensemble de rgles

    Slection dlments et description de

    rendu produire en sortie

    Rgles XSL: slection

  • 7/30/2019 CoursXML-id1966

    85/111

    Tarak CHAARI - Dpt Tlcommunications XML - 85

    Syntaxe XPath par rapport au nud courant

    Utilisation de llment

    Rgles nommes

    Rgles XSL: production

  • 7/30/2019 CoursXML-id1966

    86/111

    Tarak CHAARI - Dpt Tlcommunications XML - 86

    Rptition

    Emprunteur

    sortieRetour

    Conditions

    Exemple XSLT(1/4):Document XML dorigine

  • 7/30/2019 CoursXML-id1966

    87/111

    Tarak CHAARI - Dpt Tlcommunications XML - 87

    Exemple XSLT(2/4):feuille de style

  • 7/30/2019 CoursXML-id1966

    88/111

    Tarak CHAARI - Dpt Tlcommunications XML - 88

    Exemple XSLT(2/4):feuille de style (suite)

  • 7/30/2019 CoursXML-id1966

    89/111

    Tarak CHAARI - Dpt Tlcommunications XML - 89

    Exemple XSLT(2/4):document produit

  • 7/30/2019 CoursXML-id1966

    90/111

    Tarak CHAARI - Dpt Tlcommunications XML - 90

  • 7/30/2019 CoursXML-id1966

    91/111

    Tarak CHAARI - Dpt Tlcommunications XML - 91

    Programmation en utilisant XML

    XML: eXtensible Markup Language

    Partie 4:

    et angages eprogrammation

    C d l bl d l di XML

  • 7/30/2019 CoursXML-id1966

    92/111

    Tarak CHAARI - Dpt Tlcommunications XML - 92

    Comment rsoudre le problme de la distance entre XML etles programmes objets?

    Les services sont souvent programms en langage objet:Java, C++, C#, VB, PHP ...

    XML les messages XML doivent tre traduits en objets analyseurs XML ou parseurs (terme technique utilis) diffrents niveau d'interfaces :

    Flux d'vnements (SAX) Traduction en objet gnriques (DOM)

    Serveurs d'applications

    Les parseurs XML

    SAX (Si l API f XML)

  • 7/30/2019 CoursXML-id1966

    93/111

    Tarak CHAARI - Dpt Tlcommunications XML - 93

    SAX (Simple API for XML) Dveloppement communautaire

    http://sax.sourceforge.net

    DOM (Document Object Model) Recommandation W3C

    http://www.w3.org/DOM/

    JAXP (Java API for XML Processing) Dveloppement communautaire SUN

    http://java.sun.com/xml/jaxp Couche dabstraction de SAX, DOM et XSLT indpendantede limplmentation

    XML et JAVA = un couple parfait

    SAX: Simple API for XML

  • 7/30/2019 CoursXML-id1966

    94/111

    Tarak CHAARI - Dpt Tlcommunications XML - 94SAX

    SAX (Simple API for XML) modle simplifi d'vnements

    dvelopp par un groupe indpendant.

    Types d'vnement : dbut et fin de document ;

    dbut et fin d'lments ;

    attributs, texte, .

    Nombreux parseurs publics XP de James Clark, Aelfred, Saxon

    MSXML3 de Microsoft Xerces de Apache

    JAXP de SUN

    : r nc pe efonctionnement

  • 7/30/2019 CoursXML-id1966

    95/111

    Tarak CHAARI - Dpt Tlcommunications XML - 95

    Document

    XMLParser

    EvnementstartDocument

    EvnementstartElement

    EvnementendDocument

    .

    StreamXML

    Mthodes

    utilisateur

    Default Handler

    SAX

    Les mthodes essentielles deDefaultHandler

    XMLR d E H dl

  • 7/30/2019 CoursXML-id1966

    96/111

    Tarak CHAARI - Dpt Tlcommunications XML - 96

    XMLReader setContentHandler

    setErrrorHandler

    parse

    ContentHandler

    startDocument endDocument

    startElement

    endElement

    characters

    ErrorHandler fatalError

    error

    warning

    EntityResolver

    resolveEntity

    SAX

    Default Handler

    Principales mthodes:

  • 7/30/2019 CoursXML-id1966

    97/111

    Tarak CHAARI - Dpt Tlcommunications XML - 97

    Principales mthodes:

    Exemple SAX

    startDocument ()t tEl t ( )

  • 7/30/2019 CoursXML-id1966

    98/111

    Tarak CHAARI - Dpt Tlcommunications XML - 98

    ()startElement (personne)

    startElement (nom)

    characters (Cover)

    endElement (nom)

    startElement (prenom)

    characters (Harry)

    endElement (prenom)

    startElement (adresse)

    startElement (rue)characters (Stendhal)

    endElement (rue)

    startElement (ville)

    characters (Paris)endElement (ville)

    endElement (adresse)

    endElement (personne)

    endDocument ()

    Cover

    Harry

    Stendhal

    Paris

    : exemp e ut sat on(Xerces)

  • 7/30/2019 CoursXML-id1966

    99/111

    Tarak CHAARI - Dpt Tlcommunications XML - 99

    DOM: Document Object Model

    Standard W3C fait pour HTML et XML

  • 7/30/2019 CoursXML-id1966

    100/111

    Tarak CHAARI - Dpt Tlcommunications XML - 100

    Standard W3C fait pour HTML et XML Structure d'objets pour reprsenter un document

    Rsultat d'un "parser" Arbre d'objets relis entre eux

    Interface objet pour naviguer dans un document

    Oriente objet Peut tre utilise en:

    Java, C++

    C#, VB

    Python, PHP

    Principaux parseurs DOM

  • 7/30/2019 CoursXML-id1966

    101/111

    Tarak CHAARI - Dpt Tlcommunications XML - 101

    Document

    XML

    Parseur

    DOM

    Arbre DOM

    Application

    API DOM

    Sun, ...JAXP J2EE

    Jason Hunter(libre)JDOM

    MicrosoftMSXML Apache (Java, C++)Xerces

    DOM

    Exemple d'arbre DOM

    D t Racine du document

  • 7/30/2019 CoursXML-id1966

    102/111

    Tarak CHAARI - Dpt Tlcommunications XML - 102

    Le meilleur

    restaurant

    Document

    NodeList

    NodeList

    NamedNodeMap

    Attr

    Element

    NodeList

    Element

    Text

    Racine du document

    Id="R1"

    Le meilleur restaurant

    DOM

    Lecture dun document XML avecDOM

  • 7/30/2019 CoursXML-id1966

    103/111

    Tarak CHAARI - Dpt Tlcommunications XML - 103

    Org.w3c.dom.Document

  • 7/30/2019 CoursXML-id1966

    104/111

    Tarak CHAARI - Dpt Tlcommunications XML - 104

    Interface qui reprsente une arborescence XML

    Org.w3c.dom.Element

    Interface reprsentant un lment XML

  • 7/30/2019 CoursXML-id1966

    105/111

    Tarak CHAARI - Dpt Tlcommunications XML - 105

    Interface reprsentant un lment XML

    setAttribute(String name, String value)Adds a new attribute.

    void

    removeAttribute(String name)

    Removes an attribute by name.

    void

    getTagName()The name of the element.

    String

    getElementsByTagName(String name)Returns a NodeList of all descendant Elements with a given tag name, in the

    order in which they are encountered in a preorder traversal of this Element tree.

    NodeList

    getAttributeNode(String name)Retrieves an attribute node by name.

    Attr

    getAttribute(String name)Retrieves an attribute value by name.

    String

    Org.w3c.dom.Attr

    Interface reprsentant un attribut XML

  • 7/30/2019 CoursXML-id1966

    106/111

    Tarak CHAARI - Dpt Tlcommunications XML - 106

    Interface reprsentant un attribut XML

    setValue(String value)On retrieval, the value of the attribute is returned as a string.

    void

    getValue()On retrieval, the value of the attribute is returned as a string.

    String

    getSpecified()If this attribute was explicitly given a value in the original document, this

    is true; otherwise, it is false.

    boolean

    getOwnerElement()The Element node this attribute is attached to or null if this attribute is

    not in use.

    Element

    getName()

    Returns the name of this attribute.

    String

    Exemple d'utilisation de DOMPublic class ExempleDOM

    public static main (String argc[]) throws IOException, DOMExcetion

  • 7/30/2019 CoursXML-id1966

    107/111

    Tarak CHAARI - Dpt Tlcommunications XML - 107

    {XMLDocument xmlDoc = new XmlDocument();

    // creation des nuds

    ElementNode nom = (ElementNode) xmlDoc.createElement("nom");

    ElementNode prenom = (ElementNode) xmlDoc.createElement("prenom");

    ElementNode nomfam = (ElementNode) xmlDoc.createElement("nomfam");

    // creation de l'arbre

    xmlDoc.appendChild(nom);

    nom.appenChild(prenom);

    prenom.appendChild(xmlDoc.createTextNode("Jean");

    nom.appenChild(nomfam);

    nomfam.appendChild(xmlDoc.createTextNode("Dupont");

    // positionnement d'un attribut

    nom.setAttribute("ville", "Paris");

    // sortie

    System.exit(0); } }

    Document:

    Jean Dupont

    DOM

    SAX et DOM

    SAX DOM

  • 7/30/2019 CoursXML-id1966

    108/111

    Tarak CHAARI - Dpt Tlcommunications XML - 108

    Rapide

    Peu gourmand en mmoire

    Accs squentiel

    Unidirectionnel audocument

    Accs alatoire au

    document

    Vue hirarchique dudocument

    Permet deconstruire/modifier undocument

    Gourmand en mmoire

    Outils XML

    Editeurs

  • 7/30/2019 CoursXML-id1966

    109/111

    Tarak CHAARI - Dpt Tlcommunications XML - 109

    XML SPY

    Browsers

    Mozilla

    Convertisseurs Xalan

    Parseurs SAX, JDOM

    Serveurs XML Cocoon (cadre de publication XML)

    Pour finir

  • 7/30/2019 CoursXML-id1966

    110/111

    Tarak CHAARI - Dpt Tlcommunications XML - 110

    QUESTION: Quest ce quon peut faire avec XML?

    REPONSE: Imagination is more important than knowledge

    Albert Einstein

    Rfrences

    Elliotte Rusty Harold XML bible 2nd Edition Wiley 2001 1206 pages

  • 7/30/2019 CoursXML-id1966

    111/111

    Tarak CHAARI - Dpt Tlcommunications XML - 111

    Elliotte Rusty Harold, XML bible, 2nd Edition, Wiley, 2001, 1206 pages.

    Alain michard, XML: langage et applications, Eyrolles, 2000

    Support de cours en ligne de George Gardarin,http://perso.orange.fr/georges.gardarin/Cours2003.htm

    T. Bray et.al. (ed.).Extensible Markup Language (XML) 1.0. World Wide WebConsortium (W3C), February 1998. http://www.w3.org/TR/REC-xml

    B. McLaughlin. Java and XML. OReilly and Associates, Sebastopol, 2000