coursxml

Upload: sabati-abdo

Post on 04-Apr-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 coursXML

    1/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 1

    XML: eXtensible Markup Language

    Fondements,

    Modlisation,

    Prsentation et

    Programmation

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 2

    Sommaire

    Fondements de la technologie XML

    Modlisation et validation de documents XML

    Prsentation des documents XML

    Programmation en utilisant XML

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 3

    Fondements et notions de base

    XML: eXtensible Markup Language

    Partie 1:

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 4

    Notion de document lectronique

    Dfinitions Objet qui joue un rle de mdiateur entre les

    hommes dans le temps et l'espace (change

    dinformation) Moyen de communication de la pense, de la

    connaissance, de l'information et du savoir Un document est un ensemble form par un

    support et une information (ISO TC-46) Se prsente sous la forme de textes, tableaux,

    dessins, photos, ... Un document a un contenu (structure logique) etun fond (structure physique)

  • 7/30/2019 coursXML

    2/29

  • 7/30/2019 coursXML

    3/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 10

    Langages de reprsentation de documents

    Par ordre chronologique:

    SGML (Norme ISO 8879 en 1986, rvise en1988 et 1994) Mta-langage gnral

    HTML (Standard W3C depuis 1989) Structure gnrale fige

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

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 lagrammaire (la DTD) instances de DTD

    permet un balisage smantique du fond.

    Implique la notion de validit d'un document

    SGML Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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

    4/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 16

    SGML et HTML : Rsum

    SGML

    lange puissantpouvant dcriretoute structure

    Documents difficile dfinir

    Documents

    difficiles utiliser

    HTML

    HTML

    spcialisation deSGML

    adapt laprsentation

    inadapt l'changeentre programmes

  • 7/30/2019 coursXML

    5/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 17

    XML : Prsentation

    XML= un nouveau langage d'change bas

    sur 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 et

    concise Il doit tre facile de crer des documents XML

    Origines Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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

    6/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 ?

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 24

    Exemple 1 dun document XML

  • 7/30/2019 coursXML

    7/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 25

    Exemple 2 dun document XML

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 26

    Structure Arborescente dun document XML

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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)

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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

    Villeurbanne69100

    Villeurbanne 69 Rhne

  • 7/30/2019 coursXML

    8/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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..

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 30

    XML: contextes dutilisation

    Stockage de donnes Format spcifiques (exemple: SVG)

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 31

    XML: contextes dutilisation

    Stockage de donnes Fichiers de configuration (exemple: JBOSS)

    LegoBlocksEJBlegoBean.LegoBlocksSessionHomelegoBean.LegoBlocksSessionlegoBean.LegoBlocksSessionBeanStateful

    Container

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 32

    XML: contextes dutilisation

    Echange de donnes changes Business to Business, services web

  • 7/30/2019 coursXML

    9/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 ? Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 ouverts

    Pourquoi XML ? Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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

    10/29

  • 7/30/2019 coursXML

    11/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 42

    Exercice: documents bien forms?

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

    REPONSE 1:

    REPONSE 2:

    REPONSE 3:

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 43

    DTD

    Permet de dfinir le vocabulaire et lastructure qui seront utiliss dans ledocument 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 44

    Dclaration d'lment simple

    Le paramtre dfinition reprsente soit un type de donne

    prdfini, soit un lment de donnes compos, constitu

    lui 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

  • 7/30/2019 coursXML

    12/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 46

    Exemple d'lment compos

    Hugo

    Victor

    Charles

    01120243

    Paris

    DTD

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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

    Mode prcise le caractre obligatoire ou non de l'attribut

    #REQUIRED, #IMPLIED ou #FIXED

    DTD Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 48

    Exemple d'attributs

    num ID,

    age CDATA,

    genre (Masculin | Feminin ) >

    DTD

  • 7/30/2019 coursXML

    13/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 49

    Exemple de DTD

    DTD Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 50

    Exemple de DTD interne

    ]>

    Marie

    Jean

    Pierre

    Julie

    DTD

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 51

    DTD externe

    Modle pour plusieurs documents partage des balises, attributs et structures

    Dfinition locale ou externe

    Exemple de document

    ...

    DTD Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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

  • 7/30/2019 coursXML

    14/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 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

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 56

    : xerc ce ata ogue efilms)

  • 7/30/2019 coursXML

    15/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 57

    Insuffisance des DTD

    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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 58

    XML Schma

    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

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 59

    Objectifs des schmas

    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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 60

    Les types XML

    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

  • 7/30/2019 coursXML

    16/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 61

    Modles de contenu et types

    Quatre catgories de modles de contenu

    Deux catgories de types de donnes: simple et complexe

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 62

    Les types simples string

    Confirm this is electric

    byte-1, 126

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

    1, 126789

    negativeInteger-126789, -1

    hexBinary0FB7

    int-1, 126789675

    unsignedInt

    0, 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

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 63

    Les types complexes Dfinition d'objets complexes

    : collection ordonne d'lments typs

    : collection non ordonne d'lments typs

    : choix entre lments typs

    Exemple

    Schema Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 64

    Hritage de types

    Dfinition de sous-typespar hritage Par extension : ajout

    d'informations Par restriction : ajout decontraintes

    Possibilit de contraindrela drivation

    Exemple dextension :

  • 7/30/2019 coursXML

    17/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 65

    Les patterns 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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 66

    Rutilisation de types Type simple avec extension

    Type complexe (squence)

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 67

    Les occurences

    Une bibliothque contient au moins un livre

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 68

    Les attributs 1/2

    Les lments contenu simple avec attributs

    La bible de XML

  • 7/30/2019 coursXML

    18/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 69

    Les attributs 2/2

    Les lments contenu complexe avec attributs

    Michael

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 70

    Groupage dlments

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 71

    Rfrence un Schma XML

    Rfrence sans espace de noms

    Rfrence avec espace de noms

    Schema Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 72

    Bilan DTD et Schma

    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

    19/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 73

    Prsentation et transformations de

    documents

    XML: eXtensible Markup Language

    Partie 3:

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 74

    Formatage de document XML

    Un document et sa DTD ou schma nedonnent pas dindications sur sa

    reprsentation. Une description supplmentaire est ncessaire:DSSSL

    Document StyleSemantics and

    Specification language

    CSS

    Cascading StyleSheets

    XSL

    eXtensible StylesheetLanguage

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 75

    Cascading Style Sheets (CSS)

    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)

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 76

    CSS: Syntaxe 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 par

    la 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

  • 7/30/2019 coursXML

    20/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 77

    CSS: proprits 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; }

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 78

    CSS: proprits usuelles

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 79

    PropritCSS: Exemple (extrait)

    Valeur

    instructionslecteur

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 80

    Faiblesses de CSS CSS a t initialement prvu pou la

    prsentation des documents HTML

    Mme dfauts que HTML

    - Syntaxe non modifiable et non extensible

    - Syntaxe difficile normaliser

    - Difficults pour trouver des lments

  • 7/30/2019 coursXML

    21/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 81

    XPath: adressage dans un document XML

    Identification de nuds dans un document XML

    Base du langage de transformation XSLT et des pointeursXLink

    Syntaxe: chemin dans larborescence du document slecteur/slecteur/slecteur Un slecteur pour syntaxe gnrale: lment[prdicat]

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

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 82

    XPath: syntaxe gnrale (1)

    Cascade de termes de slection Slecteur/selecteur/selecteur

    Selecteur: axe :: filtre [predicat]

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 83

    XPath: syntaxe gnrale (2)

    Selecteur: axe :: filtre [predicat]

    Child::* tous les fils du nuds courant

    Descendant::emprunt tous les lments emprunt descendant du nud courant Child:: text tous les nuds textuels fils du nud courant

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 84

    XPath: syntaxe gnrale (3) Selecteur: axe :: filtre [predicat]

    Prdicat de slection Le prdicat est optionnel

    Combinaison boolenne de prdicats simples (AND etOR)

    Voir http://www.w3.org/TR/xpath pour unedescription complte des fonctions disponibles

    XSL: eXtensible style sheet

  • 7/30/2019 coursXML

    22/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 85

    XPath: syntaxe abrge Rgles dabrviation

    Exemples

    Child :: image [attribute :: imgsrc =joconde.jpg]image [@imgsrc=joconde.jpg]

    /descendant:: emprunt [position() =2] /child:: sortie

    // emprunt [2] /sortie

    .Self::node

    [x][position()=x]

    //Descendant-or-self::node()

    ..parent::node

    @imgsrcAttribute::imgsrc

    livreChild::livre

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 86

    XSL: eXtensible style sheetLanguage

    Description du formatage appliquer undocument XML

    Compos de deux sous-ensembles

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 87

    XSLT: XSL transformation Langage de transformation dun arbre XML dans un

    autre 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 dans

    IE5)

    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)

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 88

    XSLT: principes gnraux

    Une feuille XSLT est un document XML

    Ensemble de rgles

    Slection dlments et description de

    rendu produire en sortie

    R l XSL l i R l XSL d i

  • 7/30/2019 coursXML

    23/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 89

    Rgles XSL: slection Syntaxe XPath par rapport au nud courant

    Utilisation de llment

    Rgles nommes

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 90

    Rgles XSL: production Rptition

    Emprunteur

    sortieRetour

    Conditions

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 91

    Exemple XSLT(1/4):Document XML dorigine

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 92

    Exemple XSLT(2/4):feuille de style

    Exemple XSLT(2/4): Exemple XSLT(2/4):

  • 7/30/2019 coursXML

    24/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 93

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

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 94

    Exemple XSLT(2/4):document produit

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 95

    Programmation en utilisant XML

    XML: eXtensible Markup Language

    Partie 4:

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 96

    XML et programmation objet

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

    Java langage pur objet portable et sr, semi-interprt le compilateur produit un fichier de byte code par classe possibilit de chargement dynamique de classe support du standard de composants JB et EJB

    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

    L XML SAX Si l API f XML

  • 7/30/2019 coursXML

    25/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 97

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

    indpendante de limplmentation

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 98

    SAX: Simple API for XML

    SAX

    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

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 99

    : r nc pe efonctionnement

    Document

    XMLParser

    EvnementstartDocument

    EvnementstartElement

    EvnementendDocument

    .

    StreamXML

    Mthodes

    utilisateur

    Default Handler

    SAX Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 100

    Les mthodes essentielles deDefaultHandler

    XMLReader setContentHandler

    setErrrorHandler

    parse ContentHandler

    startDocument

    endDocument

    startElement

    endElement characters

    ErrorHandler fatalError

    error

    warning EntityResolver

    resolveEntity

    SAX

    Default Handler Exemple SAX

  • 7/30/2019 coursXML

    26/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 101

    Default Handler

    Principales mthodes:

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 102

    Exemple SAXstartDocument ()

    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

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 103

    : exemp e ut sat on(Xerces)

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 104

    DOM: Document Object Model

    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 Exemple d'arbre DOM

  • 7/30/2019 coursXML

    27/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 105

    Principaux parseurs DOM

    Document

    XML

    Parseur

    DOM

    Arbre DOM

    Application

    API DOM

    Sun, ...JAXP J2EE

    Jason Hunter (libre)JDOM

    MicrosoftMSXMLApache (Java, C++)Xerces

    DOM Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 106

    Exemple d arbre DOM

    Le meilleur

    restaurant

    Document

    NodeList

    NodeList

    NamedNodeMap

    Attr

    Element

    NodeList

    Element

    Text

    Racine du document

    Id="R1"

    Le meilleur restaurant

    DOM

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 107

    Lecture dun document XML avecDOM

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 108

    Org.w3c.dom.Document

    Interface qui reprsente une arborescence XML

    Org w3c dom Element Org w3c dom Attr

  • 7/30/2019 coursXML

    28/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 109

    Org.w3c.dom.Element

    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

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 110

    Org.w3c.dom.Attr

    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

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 111

    Exemple d'utilisation de DOMPublic class ExempleDOM

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

    {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 Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 112

    SAX et DOMSAX

    Rapide

    Peu gourmand en mmoire

    Accs squentiel

    Unidirectionnel audocument

    DOM

    Accs alatoire au

    document Vue hirarchique dudocument

    Permet deconstruire/modifier undocument

    Gourmand en mmoire

    Outils XML Pour finir

  • 7/30/2019 coursXML

    29/29

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 113

    Outils XML Editeurs

    XML SPY

    Browsers Mozilla

    Convertisseurs Xalan

    Parseurs SAX, JDOM

    Serveurs XML Cocoon (cadre de publication XML)

    Tarak CHAARI - Dpt Tlcommunications Janvier 2007 XML - 114

    Pour finir

    QUESTION:

    Quest ce quon peut faire avec XML?

    REPONSE: Imagination is more important than knowledge

    Albert Einstein