Cours XML

download Cours XML

of 146

Transcript of Cours XML

  • 7/28/2019 Cours XML

    1/146

    Bernd Amann - CNAM, Paris 1

    XMLBernd Amann

    [email protected]

    Conservatoire National des Arts et Mtiers

    Paris

    October 17, 2000

    mailto:[email protected]:[email protected]
  • 7/28/2019 Cours XML

    2/146

  • 7/28/2019 Cours XML

    3/146

    Bernd Amann - CNAM, Paris 3

    26 XML = Modle Documents Structurs

    27 XML = Syntaxe pour Transfert de Donnes

    28 Le Web et les Bases de Donnes

    29 Notion de balisage structurel30 Un document XML

    31 Explications

    32 DTD : Dclaration de la Structure dun Document XML

    33 Dclaration du Type de Document

    34 DTD: Utilisation35 Rsum

    36 Documents XML valides et bien-forms

    37 DTD: Pourquoi Validation?

    38 ELEMENT : Dclaration du Type de lment

    39 ATTLIST : Dclaration des Attributs40 ATTLIST : Mode

    41 ATTLIST: Exemple

  • 7/28/2019 Cours XML

    4/146

    Bernd Amann - CNAM, Paris 4

    42 Entits gnrales et Entits paramtres

    43 Entits externes

    44 Formal Public Identifier

    45 NOTATION : entits non-XML46 Domaines nominaux (namespace)

    47 Domaines nominaux: Exemple

    48 Problme : comment valider un document XML ?

    49 Domaines nominaux: Utilisation contrle

    50 Autres Caractristiques de XML51 DTD : Quelques remarques

    52 XML Schema

    53 XML: Syntaxe pour Transfert de Donnes

    54 Schema XML et DTD: Comparaison

    55 Schema XML : Exemple57 XML Schema - Exemple

    58 Types Simples

    http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-
  • 7/28/2019 Cours XML

    5/146

    Bernd Amann - CNAM, Paris 5

    59 Dfinition de Types Simples

    60 Restrictions de Types Simples

    61 Restriction de Types Simples par Motifs

    62 Listes de Valeurs de Type Simple63 Restriction de Listes par Longueur

    64 Union de Types Simples

    65 Types Complexes, Elments, Attributs

    66 Type Complexe: Exemple

    67 Types Simples avec Attributs69 Contenu mlang

    70 Contenu Vide

    71 Groupes: Exemple

    72 Groupes dAttributs

    73 Valeurs Nulles74 Domaines Nominaux

    75 lments Locaux Qualifis et Non-qualifis

    http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-
  • 7/28/2019 Cours XML

    6/146

    Bernd Amann - CNAM, Paris 6

    77 Extension de Types Complexes

    79 Utilisation de types tendus

    80 Restriction de Types Complexes

    81 Redfinition de types82 Groupes de substitution

    83 Types et Groupes Abstraits

    84 Valeur unique

    85 Cls et Rfrences

    86 Adresser des Fragments XML: XPath et XPointer87 Slectionner des Fragments XML

    88 XPath et XPointer

    89 Chemins de Positionnement

    90 Contexte dvaluation

    91 Chemins absolus92 XPath: Exemples

    93 XPath: Axes

    http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-
  • 7/28/2019 Cours XML

    7/146

    Bernd Amann - CNAM, Paris 7

    94 XPath : Tests

    95 XPath : Exemples de tests

    96 XPath : Syntaxe simplifie

    97 XPointer: Extensions de XPath98 XPointer: Axes range:: et string::

    99 Chemins robustes

    100 Liens XML: XLink

    101 XLink

    102 XLink Terminologie103 Adresser des Ressources XML

    104 Exemple

    105 lments de Lien

    106 Attributs dun lment

    107 Exemple : Lien HTML = Lien XML simple108 Exemple: lien tendu avec arcs

    109 Contenu et Prsentation: CSS et XSL

    http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-
  • 7/28/2019 Cours XML

    8/146

    Bernd Amann - CNAM, Paris 8

    110 Feuilles de Style CSS

    111 Principes de base

    112 Exemple

    113 Types de mdia114 XSL

    116 Example: Officiel des Spectacles

    117 Fonctions dune Feuille de Style

    118 Les Composants de XSL

    119 Structure dune feuille XSL120 Rgles XSL : Exemple

    122 Rgles XSL : Modle de Traitement

    123 Rgles XSL : Rcursion infinie

    124 Rsolution de conflits: Exemple

    125 Rsolution de conflits126 Selection de Rgles: Modes

    127 Rgle = Procdure avec Paramtres

    http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-
  • 7/28/2019 Cours XML

    9/146

    Bernd Amann - CNAM, Paris 9

    128 Structures de controle: for-each, if, choose

    129 Trier

    130 Cls

    131 Gnration dIdentificateurs dObjets

    132 Objets de Formatage (FO): Exemple PDF

    133 XML-QL : Un langage de requtes pour XML

    134 XML-QL

    135 Exemple

    136 Construction de rsultats137 Requtes imbriques : lments optionnels

    138 Requtes imbriques : Regroupement

    139 Syntactic Sugaring

    140 Jointures

    141 Interrogation du schma142 Expressions rgulires

    143 Integration

    http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-
  • 7/28/2019 Cours XML

    10/146

    Bernd Amann - CNAM, Paris 10

    144 Integration: Fonctions de Skolem

    145 Ordre

    146 Ordre : Exemple

    http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-
  • 7/28/2019 Cours XML

    11/146

    Bernd Amann - CNAM, Paris 11

    Introduction

  • 7/28/2019 Cours XML

    12/146

    Bernd Amann - CNAM, Paris Introduction 12

    La rvolution Internet

    Depuis 10 ans, Internet rvolutionne linformatique grand publique

    Au dbut, un serveur Web tait essentiellement un serveur de documents HTML.

    Depuis, les serveurs Web sont devenus des vrais serveur dapplications :

    qui accdent aux bases de donnes

    fournissent des notions de session, transaction, scurit

    avec des nouvelles technologies comme Java/Javascript, PHP, cookies,...

  • 7/28/2019 Cours XML

    13/146

    Bernd Amann - CNAM, Paris Introduction 13

    Nouvelles applications Web

    Commerce lectronique:

    Services: rservation de train, mto, ...

    Bourse en-ligne

    B2B, B2C

    Communauts Web (online communities): Napster, ...

  • 7/28/2019 Cours XML

    14/146

    Bernd Amann - CNAM, Paris Introduction 14

    Les consquences

    HTML est insuffisant pour la reprsentation des donnes qui sont changes sur Internet

    Solution: XML

  • 7/28/2019 Cours XML

    15/146

    Bernd Amann - CNAM, Paris HTML - Rappel 15

    HTML

    HTML: HyperText Markup Language

    dernire version: XHTML 1.0 recommandation W3C

    changement majeur depuis HTML 4.0: HTML devient une application de XML

    B d A CNAM P i HTML R l 16

    http://www.w3.org/TR/xhtml1http://www.w3.org/http://www.w3.org/TR/html4http://www.w3.org/TR/xhtml1http://www.w3.org/http://www.w3.org/TR/html4
  • 7/28/2019 Cours XML

    16/146

    Bernd Amann - CNAM, Paris HTML - Rappel 16

    Exemple

    officiel.html:

    Officiel du Spectacle

    Officiel du Spectacle

    Cinmas

    St. Andr des Arts,

    13, rue St. Andr des Arts, Paris

    18:00 - Brazil

    20:30 - Matrix

    Bernd Amann CNAM Paris HTML Rappel 17

    http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.html
  • 7/28/2019 Cours XML

    17/146

    Bernd Amann - CNAM, Paris HTML - Rappel 17

    Films:

    Brazil avec:

    Jonathan Pryce

    Robert De Niro

    Bernd Amann CNAM Paris HTML Rappel 18

  • 7/28/2019 Cours XML

    18/146

    Bernd Amann - CNAM, Paris HTML - Rappel 18

    Structure, Contenu et Prsentation

    Dans un document HTML on mlange gnralement le contenu et la prsentation: le titre dun film

    est entre les balises ..., la couleur de la page est spcifi dans la balise , ...

    ==> Sparation du contenu et de la prsentation: HTML avec feuille de style CSS Les informations dans une page HTML ne sont pas structures: on ne peut pas distinguer le nom du

    cinma, le titre du film, ladresse du cinma etc...

    ==> Utilisation de balises spcifiques une application: XML.

    Bernd Amann - CNAM Paris HTML - Rappel 19

    http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-avec-css.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-css.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-avec-css.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-css.html
  • 7/28/2019 Cours XML

    19/146

    Bernd Amann CNAM, Paris HTML Rappel 19

    Bibliographie

    Bernd Amann - CNAM, Paris Bibliographie 20

  • 7/28/2019 Cours XML

    20/146

    Bernd Amann CNAM, Paris Bibliographie 20

    Bibliographie

    Ces rfrences biblio ont t trouv avec Google. Nhesitez pas en chercher dautres!

    Gnralits: W3C Web server : http://www.w3.org/

    A. Michard, XML - Langage et Applications, Eyrolles

    Transparents de ce cours (2 slides/page): http://sikkim.cnam.fr:/Cours/Cours-XML/poly.pdf

    V. Aguilra, XML et gestion de donnes semi-structures, supports de cours

    Tutorial XML et BD: http://www.cs.huji.ac.il/ atdb/Lectures/xml/index.htm

    Donnes semi-structures:

    S. Abiteboul, P. Buneman, D. Suciu: Data on the Web - from relations to semi-structured data andXML

    XSL:

    Tutorial XSL:http://www.arbortext.com/xsl/ Projet XML Apache: http://xml.apache.org/

    Langages de Requtes:

    Bernd Amann - CNAM, Paris Bibliographie 21

    http://www.google.com/http://www.w3.org/http://sikkim.cnam.fr/Cours/Cours-XML/poly.pdfhttp://www.cs.huji.ac.il/~atdb/Lectures/xml/index.htmhttp://www.arbortext.com/xsl/http://xml.apache.org/http://www.google.com/http://www.w3.org/http://sikkim.cnam.fr/Cours/Cours-XML/poly.pdfhttp://www.cs.huji.ac.il/~atdb/Lectures/xml/index.htmhttp://www.arbortext.com/xsl/http://xml.apache.org/
  • 7/28/2019 Cours XML

    21/146

    , g p

    XML query languages : http://www.w3.org/TandS/QL/QL98/

    Recommendation XQL: http://www.w3.org/TandS/QL/QL98/pp/xql.html,http://www.cuesoft.com/docs/cuexsl_activex/xql_users_guide.htm

    XML-QL : http://www.w3.org/TR/NOTE-xml-ql/

    Quilt : Quilt

    Xyleme: http://www.xyleme.com

    Bernd Amann - CNAM, Paris Bibliographie 22

    http://www.w3.org/TandS/QL/QL98/http://www.w3.org/TandS/QL/QL98/pp/xql.htmlhttp://www.cuesoft.com/docs/cuexsl_activex/xql_users_guide.htmhttp://www.w3.org/TR/NOTE-xml-ql/http://www.almaden.ibm.com/cs/people/chamberlin/quilt_euro.htmlhttp://www.xyleme.com/http://www.w3.org/TandS/QL/QL98/http://www.w3.org/TandS/QL/QL98/pp/xql.htmlhttp://www.cuesoft.com/docs/cuexsl_activex/xql_users_guide.htmhttp://www.w3.org/TR/NOTE-xml-ql/http://www.almaden.ibm.com/cs/people/chamberlin/quilt_euro.htmlhttp://www.xyleme.com/
  • 7/28/2019 Cours XML

    22/146

    g p

    XML

    Bernd Amann - CNAM, Paris Introduction XML 23

  • 7/28/2019 Cours XML

    23/146

    Le langage de marquage XML

    XML: eXtensible Markup Language

    standard (recommandation W3C, www.w3.org) pour

    1. documents structurs : hritier de SGML

    2. documents Web: gnralisation de HTML XML facilite(ra)

    1. lchange de donnes sur le Web

    2. lintgration dapplications Web

    3. linterrogation du Web

    Bernd Amann - CNAM, Paris Introduction XML 24

    http://www.w3.org/http://www.w3.org/
  • 7/28/2019 Cours XML

    24/146

    Le World Wide Web Consortium (W3C)

    400 partenaires industriels, parmi lesquels Oracle, IBM, Compaq, Xerox, Microsoft, etc..

    Laboratoires de recherche: MIT pour les tats Unis, INRIA pour lEurope, universit Keio (Japon)pour lAsie

    Objectif: dfinir un modle pour faciliter lchange de donnes sur le Web

    Bernd Amann - CNAM, Paris Introduction XML 25

  • 7/28/2019 Cours XML

    25/146

    Historique

    1993: premiers travaux sur ladaptation des techniques SGML au Web (Sperberg).

    Juin 1996: cration dun groupe de travail au sein du W3C

    10 Fvrier 1998: publication de la recommandation pour la version 1.0 du langage.

    Bernd Amann - CNAM, Paris Introduction XML 26

  • 7/28/2019 Cours XML

    26/146

    XML = Modle Documents Structurs

    XML est compatible avec SGML (standard pour documents structurs)

    ldition de documents XML est simple (un diteur texte standard suffit) la structure dun document peut tre prdfinie par une grammaire (DTD) et analyse par un parseur

    le contenu dun document est spare de sa prsentation: feuille de style XSL

    Bernd Amann - CNAM, Paris Introduction XML 27

  • 7/28/2019 Cours XML

    27/146

    XML = Syntaxe pour Transfert de Donnes

    ASCII du 21e sicle (H.S. Thompson)

    ASCII (ISO 646) et UNICODE/ISO 10646: encodage de caractres

    XML: encodage/linarisation de donnes

    XML permet de reprsenter des donnes avec une structure irrgulire, implicite et partielle

    (semi-structures).

    les nouvelles techniques dintgration et dinterrogation de donnes semi-structures peuvent tre

    appliques.

    Bernd Amann - CNAM, Paris Introduction XML 28

  • 7/28/2019 Cours XML

    28/146

    Le Web et les Bases de Donnes

    RELATIONSOBJETSSCHEMAS

    IMAGESSON

    HTML

    WEB BASES DE DONNEES

    XML

    Bernd Amann - CNAM, Paris Introduction XML 29

  • 7/28/2019 Cours XML

    29/146

    Notion de balisage structurel

    Principe cl de SGML

    Ide: sparer la structure logique de la prsentation dun document

    Avantages (par rapport HTML):1. indpendance entre les outils de navigation (browser) et les outils de gestion de donnes (e.g. BD),

    2. diffrentes prsentations pour le mme document,

    3. indexation et linterrogation structurelle

    Bernd Amann - CNAM, Paris Introduction XML 30

  • 7/28/2019 Cours XML

    30/146

    Un document XML

    Fichier officiel.xml:

    Ce document contient des informations sur des cinmas.

    St. Andr des Arts

    Paris

    rue St. Andr des Arts

    13

    Voici linformation sur le film Brazil :

    Brazil 1986

    Bernd Amann - CNAM, Paris Introduction XML 31

    http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.xml
  • 7/28/2019 Cours XML

    31/146

    Explications

    llment Officiel est la racine du document de contenu mlang

    un cinma a un nom, une adresse et zro ou plusieurs sances

    une sance contient un attribut ref_film qui permet de rfrencer dautres lments dans le mme

    document. Remarque : les rfrences ne sont pas types.

    les films sont identifis par la valeur de lattribut film_id

    Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 32

  • 7/28/2019 Cours XML

    32/146

    DTD : Dclaration de la Structure dun Document XML

    Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 33

  • 7/28/2019 Cours XML

    33/146

    Dclaration du Type de Document

    Fichier officiel.dtd:

    ref_film IDREF #REQUIRED>

    actors IDREFS #IMPLIED>

    ...]>

    Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 34

    http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.dtdhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.dtd
  • 7/28/2019 Cours XML

    34/146

    DTD: Utilisation

    On ajoute au dbut du document XML (officiel.xml):

    ]>

    sous-ensemble externe : SYSTEM officiel.dtd

    sous-ensemble interne :

    Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 35

    http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.xml
  • 7/28/2019 Cours XML

    35/146

    Rsum

    Un document XML est dfini par:

    une structure physique : entits externes (fichiers); entit document

    une structure logique :

    prologue :

    1. instructions dvaluation : e.g.

    2. dclaration du type de document (DTD) :

    document type dfinition : obtenu par le parseur partir de la dclaration de type de document

    lment racine suivi dautres lments

    pilogue

    Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 36

  • 7/28/2019 Cours XML

    36/146

    Documents XML valides et bien-forms

    document XML bien-form :

    pas de DTD

    la structure est imbrique (arborescence)

    document XML valide :

    DTD existe

    respecte la DTD (grammaire, lment racine, spcifications dattributs)

    respecte lintgrit rfrentielle : toutes les valeurs dattributs de type ID sont distinctes toutes les rfrences sont valides

    Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 37

  • 7/28/2019 Cours XML

    37/146

    DTD: Pourquoi Validation?

    Une DTD est une interface entre le producteurs et les consommateurs des donnes :

    le producteur peut contrler la qualit des donnes produites le consommateur peut sparer la vrification syntaxique des donnes (parseur) de la logique de

    lapplication

    Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 38

  • 7/28/2019 Cours XML

    38/146

    ELEMENT : Dclaration du Type de lment

    Syntaxe:

    Modles du contenu : grammaire (structure) pour le document.

    EMPTY est un MC : lment vide

    ANY est un MC : toute combinaison de tous les lments

    contenu lment : expression rgulire sur les noms dlments

    contenu_element ::= [choice | seq] [? | * | +]?

    cp ::= [Name | choice | seq] [? | * | +]?

    choice ::= ( cp [ | cp ]* )

    seq ::= ( cp [ , cp ]* )

    contenu mixte : expression rgulire sur les noms dlments et #PCDATA :

    contenu_mixed ::= (#PCDATA [| Name]* )*

    | (#PCDATA)

    Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 39

  • 7/28/2019 Cours XML

    39/146

    ATTLIST : Dclaration des Attributs

    Syntaxe :

    Types dattributs (type):

    1. String : CDATA

    2. Enumerated : squence de valeurs alternatives spares par

    !

    3. ID, IDREF, IDREFS : identification et rfrences

    4. ENTITY/ENTITIES : nom dune entit non analyse dclare ailleurs

    5. NMTOKEN/NMTOKENS : chane de caractres sans blancs

    6. NOTATION : une ou plusieurs notations (spares par!

    )

    Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 40

  • 7/28/2019 Cours XML

    40/146

    ATTLIST : Mode

    Modes dattributs:

    "

    #REQUIRED : la valeur doit tre dfinie

    "

    #IMPLIED : la valeur est optionnelle

    "

    #FIXED : la valeur est constante

    Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 41

  • 7/28/2019 Cours XML

    41/146

    ATTLIST: Exemple

    ref_film IDREF #REQUIRED>

    langue (AN|FR|AL|ES|IT) #IMPLIED>

    Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 42

  • 7/28/2019 Cours XML

    42/146

    Entits gnrales et Entits paramtres

    ]>

    %copyright;

    2000

    # Entits paramtres : dclaration et utilisation dans DTD.

    # Entits gnrales : dclaration dans DTD et utilisation dans DTD et document.

    Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 43

  • 7/28/2019 Cours XML

    43/146

    Entits externes

    $ Segmentation du document en plusieurs sous-documents

    $ Rutilisation de DTDs et de dclarations

    $ Rfrences vers donnes non-XML (NOTATION)

    Adressage:$ URL :

    $ FPI : formal public identifier

    Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 44

  • 7/28/2019 Cours XML

    44/146

    Formal Public Identifier

    Un identificateur FPI est garanti unique sil est

    % conforme ISO 9070,

    % enregistr dans un fichier catalogue et

    % dbute par +

    Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 45

  • 7/28/2019 Cours XML

    45/146

    NOTATION : entits non-XML

    Utilisation:

    & dclaration du format (type = application) pour entits non-XML

    & rfrence une entit de type notation seulement possible comme valeur dattribut

    ]>

    Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 46

  • 7/28/2019 Cours XML

    46/146

    Domaines nominaux (namespace)

    ' Un domaine nominal XML (namespace) est une collection de noms dlments ou noms dattributs

    (identifie par un URI).' Utilisation: viter les conflits de noms (par exemple, quand on utilise plusieurs DTD externes)

  • 7/28/2019 Cours XML

    47/146

    Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 48

  • 7/28/2019 Cours XML

    48/146

    Problme : comment valider un document XML ?

    Un acteur de thtre dans un film:

    La dfinition de llment acteur ne correspond pas la dfinition dans films.dtd ) document

    bien-form mais pas valide.

    Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 49

  • 7/28/2019 Cours XML

    49/146

    Domaines nominaux: Utilisation contrle

    Les acteurs de cinma et de thtre sont distingus dans le contexte de leurs

    lments parent0

    document valide :

    ]>

    George Clooney

    Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 50

  • 7/28/2019 Cours XML

    50/146

    Autres Caractristiques de XML

    1 instructions dvaluation (processing instructions - PI) :

    e.g. pour xml: version, encoding, standalone?

    1 sections non-interprts : texte X nest pas analys par le parseur

    1 sections conditionnelles : ,

    1 commentaires :

    1 alias :

    Bernd Amann - CNAM, Paris DTD : Dclaration du Type de Document XML 51

  • 7/28/2019 Cours XML

    51/146

    DTD : Quelques remarques

    2 DTD = grammaire (sans contexte)

    2 DTD = modle de donnes

    document XML = arbre ordonn

    types atomiques limits (#PCDATA, ID, IDREF, ...)3

    XML schema

    rfrences non types (IDREF)3

    XML schema

    pas de types complexes3

    XML schema

    Bernd Amann - CNAM, Paris Schmas XML 52

  • 7/28/2019 Cours XML

    52/146

    XML Schema

    Bernd Amann - CNAM, Paris Schmas XML 53

  • 7/28/2019 Cours XML

    53/146

    XML: Syntaxe pour Transfert de Donnes

    4 Problme: DTD sont trop pauvres pour reprsenter des modles de donnes plus riches :

    la relation lment/sous-lment correspond essentiellement la relation part-of

    un seul type atomique: #PCDATA une DTD nest pas un document XML

    4 Solution: XML Schma

    Bernd Amann - CNAM, Paris Schmas XML 54

    http://www.w3.org/TR/xmlschema-0/http://www.w3.org/TR/xmlschema-0/
  • 7/28/2019 Cours XML

    54/146

    Schema XML et DTD: Comparaison

    5 un schma XML est un document XML

    5 sparation entre balises et types: diffrents lments peuvent partager le mme type (modles de

    contenu)

    5 43 Types simples, listes et union de types simple

    5

    constructeurs de types complexes: sequence, choice, group5 restriction de types par motifs (wildcards)

    5 classes dquivalences entre lments

    5 mcanisme dextension et raffinement de types

    5 mcanismes de documentation

    Bernd Amann - CNAM, Paris Schmas XML 55

    Schema XML : Exemple

  • 7/28/2019 Cours XML

    55/146

    Schema XML : Exemple

    DTD: officiel.dtd

    XML Schema: officiel.xsd

    Schma pour officiel.com

    Bernd Amann - CNAM, Paris Schmas XML 56

    http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.dtdhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.xsdhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.dtdhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.xsd
  • 7/28/2019 Cours XML

    56/146

    Bernd Amann - CNAM, Paris Schmas XML 57

  • 7/28/2019 Cours XML

    57/146

    XML Schema - Exemple

    6 DTD: Fichier film.dtd

    6 Schma XML: Fichier film.xsd

    Bernd Amann - CNAM, Paris Schmas XML 58

    http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/film.dtdhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/film.xsdhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/film.dtdhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/film.xsd
  • 7/28/2019 Cours XML

    58/146

    Types Simples

    DTD: un seul type dlment (#PCDATA) et 10 types dattributs Schma XML: 43 typesatomiques

    7

    xsd:string, xsd:byte, xsd:unsignedByte

    7

    xsd:integer, xsd:long, xsd:float, xsd:double, ...

    7

    xsd:boolean

    7

    xsd:time, xsd:timeDuration, xsd:Date, xsd:year, xsd:month, ...

    7

    xsd:language, xsd:uriReference

    7 Types DTD: xsd:ID, xsd:IDREF, xsd:NMTOKEN, ...

    7

    listes et unions de types simples

    Bernd Amann - CNAM, Paris Schmas XML 59

  • 7/28/2019 Cours XML

    59/146

    Dfinition de Types Simples

    8 Anne Film: 1956

    8 DTD: #PCDATA

    8 XML schma : Restriction de type

    Bernd Amann - CNAM, Paris Schmas XML 60

  • 7/28/2019 Cours XML

    60/146

    Restrictions de Types Simples

    9 longueur (length, minLength, maxLength) des chanes de caractres ou listes

    9 par motifs (chanes de caractres, style Perl),

    9

    numration,9 intervalles (maxInclusive, maxExclusive, minInclusive, minExclusive) et

    9 autres (precision, scale, encoding, period, duration).

    Bernd Amann - CNAM, Paris Schmas XML 61

  • 7/28/2019 Cours XML

    61/146

    Restriction de Types Simples par Motifs

    @ Numro de tlphone: +33-(0)-1-34-45-67-89

    @ DTD: #PCDATA

    @ Schma XML: Similaire aux expressions rgulires de Perl

    Bernd Amann - CNAM, Paris Schmas XML 62

  • 7/28/2019 Cours XML

    62/146

    Listes de Valeurs de Type Simple

    A lment XML:

    33-(0)-1-34-45-67-89 33-(0)-3-25-56-98-78

    A DTD: (attribut: NMTOKENS)

    A XML Schma:

    Attention: listes de xsd:string : le symbole (espace) est sparateur

    Bernd Amann - CNAM, Paris Schmas XML 63

  • 7/28/2019 Cours XML

    63/146

    Restriction de Listes par LongueurListes avec 5 numros de tlphone:

    B XML Schma:

    Bernd Amann - CNAM, Paris Schmas XML 64

  • 7/28/2019 Cours XML

    64/146

    Union de Types Simples

    C Numros europens: +33-(0)-1-45-67-89 +43-(0)-55-50-24-91

    C DTD: #PCDATA ou NMTOKENS (attributs)

    C XML schma:

    Bernd Amann - CNAM, Paris Schmas XML 65

  • 7/28/2019 Cours XML

    65/146

    Types Complexes, Elments, Attributs

    D Constructeur de type: xsd:squence, xsd:choice, xsd:group

    D Dclaration dlments:

    Contraintes: minOccurs, maxOccurs, fixed

    D Attributs:

    Use: required, optional, fixed, prohibited

  • 7/28/2019 Cours XML

    66/146

    Bernd Amann - CNAM, Paris Schmas XML 67

  • 7/28/2019 Cours XML

    67/146

    Types Simples avec Attributs

    F lment XML:

    Le Got des Autres

    F

    DTD:

    Bernd Amann - CNAM, Paris Schmas XML 68

  • 7/28/2019 Cours XML

    68/146

    G XML schma: les types simples (e.g. xsd:string) nont pas dattributs:

    Bernd Amann - CNAM, Paris Schmas XML 69

    C t l

  • 7/28/2019 Cours XML

    69/146

    Contenu mlang

    H lment XML:

    Cinmas: ... Films: ...

    H DTD:

    H Schma XML ( peut tre remplac par xsd:sequence):

    Bernd Amann - CNAM, Paris Schmas XML 70

    Contenu Vide

  • 7/28/2019 Cours XML

    70/146

    I

    lment XML: I Schma XML:

    Bernd Amann - CNAM, Paris Schmas XML 71

    Groupes: Exemple

  • 7/28/2019 Cours XML

    71/146

    P

    DTD: P XML schma:

    Bernd Amann - CNAM, Paris Schmas XML 72

    Groupes dAttributs

  • 7/28/2019 Cours XML

    72/146

    Ladresse dun cinma ou dune personne est compose des mmes attributs (partage) :

    ...

    ...

    Bernd Amann - CNAM, Paris Schmas XML 73

  • 7/28/2019 Cours XML

    73/146

    Valeurs Nulles

    Q Schma XML:

    Q lment XML:

    xsi:null est dfini dans le domaine de noms pour des instances

    (http://www.w3.org/2000/10/XMLSchema-instance).

    Bernd Amann - CNAM, Paris Schmas XML 74

    Domaines Nominaux

  • 7/28/2019 Cours XML

    74/146

    Bernd Amann - CNAM, Paris Schmas XML 75

    lments Locaux Qualifis et Non-qualifis

  • 7/28/2019 Cours XML

    75/146

    Document XML:

    St Andr des Arts

    Paris

    rue St. Andr des Arts

    13

    Bernd Amann - CNAM, Paris Schmas XML 76

  • 7/28/2019 Cours XML

    76/146

    Les lments nom, ville, rue, numro ne sont pas qualifis. La clause

    elementForm=qualified dans le schma permet de forcer la qualification des lments locaux et,

    comme dans une DTD, il nest plus possible davoir deux lments avec le mme nom.

    Bernd Amann - CNAM, Paris Schmas XML 77

    Extension de Types Complexes

  • 7/28/2019 Cours XML

    77/146

    yp p

    Cinmas avec un site Web et un pays (fichier webcountry.xsd):

    Bernd Amann - CNAM, Paris Schmas XML 78

    http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/webcountry.xsdhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/webcountry.xsd
  • 7/28/2019 Cours XML

    78/146

    R La clause permet dimporter un schma avec le mme domaine nominal cible (target

    namespaces).

    R Le type est un sous-type du type .

    Bernd Amann - CNAM, Paris Schmas XML 79

    Utili ti d t t d

  • 7/28/2019 Cours XML

    79/146

    Utilisation de types tendus

    Le type dun lment est dfini explicitement avec lattribut xsi:type:

    St Andr des Arts

    Paris

    rue St. Andr des Arts

    13

    http://www.st-andr.com

    Bernd Amann - CNAM, Paris Schmas XML 80

    Restriction de Types Complexes

  • 7/28/2019 Cours XML

    80/146

    Cinmas avec une trois sances (fichier seance.xsd):

    Dfinition original: minOccurs=0 maxOccurs=unbounded.

    Bernd Amann - CNAM, Paris Schmas XML 81

    Redfinition de types

    http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/seance.xsdhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/seance.xsd
  • 7/28/2019 Cours XML

    81/146

    Cinmas avec une url (chane de caractres) :

    Attention: il est possible de crer des conflits avec des types drivs du type redfini: type

    cybercinemaType-> deux lments

    webaddress)

    Bernd Amann - CNAM, Paris Schmas XML 82

  • 7/28/2019 Cours XML

    82/146

    Groupes de substitution

    Substitution dlments par dautres lments:

    XML schma:

    Llment movieTheatre peut remplacer cinma.

    Bernd Amann - CNAM, Paris Schmas XML 83

    Types et Groupes Abstraits

  • 7/28/2019 Cours XML

    83/146

    S

    Schma XML: il est possible de dfinir des lments abstraits qui ne peuvent pas tre instantisdirectement:

    ...

    S Document XML: le type doit tre spcifi par lattribut xsi:type:

    Bernd Amann - CNAM, Paris Schmas XML 84

  • 7/28/2019 Cours XML

    84/146

    Valeur unique

    T Lidentificateur dun film doit tre unique:

    film

    film_id

    T Les valeurs des element et sont des expressions XPath.

    T La valeur de doit tre unique lintrieur de chaque lment slectionn par le slecteur.

    Bernd Amann - CNAM, Paris Schmas XML 85

    Cls et Rfrences

  • 7/28/2019 Cours XML

    85/146

    U Une cl est unique (filmcli attribut cl dune relation):

    film

    @film_id

    U

    Rfrence (filmref attribut cl etrangre dune relation)

    sance

    @ref_film

  • 7/28/2019 Cours XML

    86/146

    Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 87

  • 7/28/2019 Cours XML

    87/146

    Slectionner des Fragments XML

    XPath est utilis par

    V XML Schma pour crer des cls et rfrences

    V

    XLink pour crer des rfrences (liens) vers des documents/fragments XMLV XSL pour transformer des documents XML

    Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 88

  • 7/28/2019 Cours XML

    88/146

    XPath et XPointer

    W XPath:

    fond sur une reprsentation arborescente (DOM) du document XML

    objectif : rfrencer noeuds (lments, attributs, commentaires, ...) dans un document XML

    W XPointer:

    extension de XPath pour rfrencer des fragments qui ne correspondent pas forcment des

    noeuds entiers

    Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 89

    Ch i d P i i

  • 7/28/2019 Cours XML

    89/146

    Chemins de Positionnement

    Un chemin (de positionnement) est une squence dtapes de positionnement (location step) par rapport

    un ensemble de noeuds donnes (contexte) :

    axe::test/axe::test/.../axe::test

    1. laxe slectionne un ensemble de noeuds par rapport leur position dans un document (arbre) ou

    relative un contexte.

    2. le test est valu pour chaque noeud dans la slection

    3. chaque tape cre un nouveau contexte pour ltape suivante

    Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 90

  • 7/28/2019 Cours XML

    90/146

    Contexte dvaluation

    Un contexte dvaluation est dfini par

    X une liste de noeuds,

    X un noeud dans cette liste,

    X

    un ensemble de liaisons de variables (non utilis dans la version actuelle),X un ensemble de fonctions (fonctions de XPath et XPointer),

    X un ensemble de dclarations de domaines de nommage.

    Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 91

  • 7/28/2019 Cours XML

    91/146

    Chemins absolus

    Le contexte dvaluation est choisi dune manire absolue :

    Y

    /: slectionne toute la ressource (avec le prologue)

    Y

    id(val): lment avec ID=val

    Y

    here(): lment qui contient le XPointer

    Y

    origin(): utilisation avec liens externes XLink

    Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 92

    XPath: Exemples

  • 7/28/2019 Cours XML

    92/146

    XPath: Exemples

    ` La racine du document: /

    ` Tous les fils de type film de la racine du document XML :

    /child::film

    ` Tous les fils de type film (dun contexte donn) :

    child::film

    ` Tous les (premiers) fils de type film qui suivent un fils de type sance :

    child::sance/following-sibling::film[position()=1]

    Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 93

    XPath: Axes

  • 7/28/2019 Cours XML

    93/146

    Axes relatifs un noeud (lment, PI, commentaire, texte, CDATA):a child, descendant, ancestor, parent,

    a preceding-sibling, following-sibling,

    a preceding, following,

    a

    attribute,a self

    Commentaire: Dans un lment XML, lensemble {self::*, preceding-sibling::*,

    following-sibling::*, descendant::*, ancestor::*} forme une partition des lments

    du document XML.

    Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 94

    XP h T

  • 7/28/2019 Cours XML

    94/146

    XPath : Tests

    Tests sur

    b les noms des lments et des attributs

    b le type du noeud (texte, comment, PI, *)

    b

    la position : [position()=N]b le nombre doccurrences : [count(child::acteur) > 1]

    b la structure locale : chemins imbriqus avec connecteurs logiques (qualifiers)

  • 7/28/2019 Cours XML

    95/146

    Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 96

  • 7/28/2019 Cours XML

    96/146

    XPath : Syntaxe simplifie

    XPath Syntaxe simplifie

    /child::film/child::acteur /film/acteur

    /child::cinma/descendant::acteur /cinma//acteur

    /descendant::* //*

    /descendant::film[@anne=2000] //film[@anne=2000]

    Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 97

  • 7/28/2019 Cours XML

    97/146

    XPointer: Extensions de XPath

    d deux axes nouveaux : range:: et string:: (seulement comme dernire tape de positionnement)

    d deux chemins absolues nouveaux : origin() et here()

    d un nouveau prdicat unique pour vrifier si une position est unique (un seul noeud dans le contexte)

    Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 98

  • 7/28/2019 Cours XML

    98/146

    XPointer: Axes range:: et string::

    e Slection dune rgion dans le document. Exemple : les trois premiers noeuds fils de llment a23.

    id("a23")/range::child[1],following-sibling[2]

    e Slection dune sous-chane dans le document (marqueurs sont ignors). Exemple : Slectionne la

    troisime occurrence de la chane American Beauty :

    string::3,"American Beauty"

    Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 99

  • 7/28/2019 Cours XML

    99/146

    Chemins robustes

    Problmes : comment crer des chemins/pointeurs robustes (insensibles la modification dun

    document)?

    f cls : utiliser id(val)

    f localit : position absolue le plus prs possible de la position finale

    f typage : utilisation types dlments et noms dattributs

    Bernd Amann - CNAM, Paris Adressage de Fragments XML : XPath 100

  • 7/28/2019 Cours XML

    100/146

    Liens XML: XLink

    Bernd Amann - CNAM, Paris Liens XML: XLink 101

    XLink

  • 7/28/2019 Cours XML

    101/146

    Recommandation W3C (candidate: Juillet 2000) :

    g spcifier des liens indpendamment des donnes (liens externes, bases de liens) (impossible dans

    HTML)

    g crer des liens multi-directionnels (HTML: unidirectionnel)

    g crer des liens entre deux ressources et plus (HTML: deux ressources)

    g dfinir une smantique de parcours (insrer, remplacer, nouvelle fentre, parcours automatique)

    (HTML: dfini par lapplication/browser)

    Bernd Amann - CNAM, Paris Liens XML: XLink 102

  • 7/28/2019 Cours XML

    102/146

    XLink Terminologie

    h Ressource : information ou service qui peut tre rfrenc (document, image, scripte cgi, portail)

    ressource externe (remote): adresse contient une URI

    h

    Lien: relation explicite entre deux ou plusieurs ressourcesh Arc: dfinition du comportement dun lien: direction de parcours, affichage, ...

    Bernd Amann - CNAM, Paris Liens XML: XLink 103

  • 7/28/2019 Cours XML

    103/146

    Adresser des Ressources XML

    i URL: http://www.officiel.com/index.xml

    i URL+XPath: http://www.officiel.com/index.xml#/cinma//film

    i FPI (formal public identifier)

    i IDREF/IDREFS: a123

    i Requtes XML

    Bernd Amann - CNAM, Paris Liens XML: XLink 104

    Exemple

  • 7/28/2019 Cours XML

    104/146

    Lien simple vers le document brazil.xml. Le document est affich dans une nouvelle fentre :

    xlink:type=simple

    xlink:href=brazil.xml

    xlink:role=film

    xlink:title=Brazilxlink:show=new

    xlink:actuate=onRequest>

    Brazil

    Bernd Amann - CNAM, Paris Liens XML: XLink 105

    lments de Lien

  • 7/28/2019 Cours XML

    105/146

    Les diffrents types dlments sont distingus par la valeur de lattribut type :

    p

    simple: liens entre deux ressources (liens HTML)

    p

    extended: liens complexes entre plusieurs ressources (bases liens). Un lien tendu contient

    directement les lments de lien suivants :

    locator: identification de ressources externes arc: rgles de parcours pour deux ressources (from-to)

    resource: ressources internes

    title: tiquettes (pour laffichage)

    Bernd Amann - CNAM, Paris Liens XML: XLink 106

    Attributs dun lment

  • 7/28/2019 Cours XML

    106/146

    q Attribut de typage: type dlment de lien

    q Attribut dadressage : href: CDATA (e.g. http://www.officiel.com)

    q Attributs smantiques: role, arcrole, title

    q Attributs comportementaux :

    show: (new|replace|embed|undefined)

    actuate: (onload|onRequest|undefined)

    q Attributs de parcours : from, to, label

    Bernd Amann - CNAM, Paris Liens XML: XLink 107

    Exemple : Lien HTML = Lien XML simple

    r Dfinition de llment A de HTML:

  • 7/28/2019 Cours XML

    107/146

    xml:link CDATA #FIXED simple

    inline CDATA #FIXED true

    href CDATA #IMPLIED

    name ID #IMPLIED

    show (replace|new) #IMPLIEDactuate CDATA #FIXED onRequest>

    r Lien HTML:

    Projet XML

    ...

    Ce projet a pour but ...

    Bernd Amann - CNAM, Paris Liens XML: XLink 108

    Exemple: lien tendu avec arcs

    Une base de liens pour des films :

  • 7/28/2019 Cours XML

    108/146

    Les Films:

    Les Rgisseurs:

    Bernd Amann - CNAM, Paris Liens XML: XLink 109

  • 7/28/2019 Cours XML

    109/146

    Contenu et Prsentation: CSS et XSL

    Bernd Amann - CNAM, Paris Afficher du HTML: Feuilles de Style CSS 110

    Feuilles de Style CSS

  • 7/28/2019 Cours XML

    110/146

    Feuilles de Style CSS

    s CSS: Cascading Style Sheets

    s Initialement conues pour HTML

    s CSS-1: publi en 1996 par le W3C, CSS-2: mai 1998

    s CSS sapplique parfaitement XML

    s On ne donnera quun aperu de ce langage (la spcification compte 358 pages!)

  • 7/28/2019 Cours XML

    111/146

    Bernd Amann - CNAM, Paris Afficher du HTML: Feuilles de Style CSS 112

  • 7/28/2019 Cours XML

    112/146

    Exemple

    u Document HTML: Samples/officiel-avec-css.html

    u

    Feuille de style: Samples/officiel.css

    Bernd Amann - CNAM, Paris Afficher du HTML: Feuilles de Style CSS 113

    Types de mdia

    v Les feuilles de style CSS permettent de spcifier les rgles de ralisation physique de documents sur

    http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-avec-css.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.csshttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-avec-css.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel.css
  • 7/28/2019 Cours XML

    113/146

    des supports varis comme les crans dordinateur, les crans miniatures (notepad, tlphoneportable), le papier, les terminaux Braille, la synthse vocale

    v Exemple:

    @media print {

    article {font-size: 10 pt; font-family: Garamond}

    }@media screen {

    article {font-size: 12 pt; font-family: Arial}

    }

    @media screen,print {

    /* rgles communes */}

    Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 114

    XSL

  • 7/28/2019 Cours XML

    114/146

    w Working draft W3C (avril 1999)

    w Efforts antrieurs : XSL sest fortement inspir de CSS (extension: XSL permet la transformation de

    la structure) et de DSSSL (SGML)

    w Une feuille de style XSL utilise deux langages (la syntaxe est XML) :

    XSLT: pour la transformation de la structure du document

    Vocabulaire pour la spcification de la prsentation (papier, cran, ...)x

    CSS

    w XSLT domaine nominal (namespace) = http://www.w3.org/1999/XSL/Transform

    Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 115

    XSLFeuille de Style

  • 7/28/2019 Cours XML

    115/146

    Feuille de Style

    XSL

    Document XML

    Document HTMLXSL Transformation Navigateur Web

    XSL Transformation Document PDFAcrobat Reader

    Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 116

  • 7/28/2019 Cours XML

    116/146

    Example: Officiel des Spectacles

    y XML

    y Feuille de Style XSL

    y

    Rsultat Dynamiquey Rsultat Stock

    Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 117

    Fonctions dune Feuille de Style

    http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-1.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-1.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-1.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-1.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-1.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-1.html
  • 7/28/2019 Cours XML

    117/146

    Gnration de texte

    Suppression de contenu (noeuds)

    Dplacer texte (noeuds)

    Dupliquer texte (noeuds)

    Trier

    Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 118

  • 7/28/2019 Cours XML

    118/146

    Les Composants de XSL

    Langage de programmation (avec une syntaxe XML) : variables, fonctions (JavaScript), rcursion, ...

    Extension de XPath pour la slection de noeuds et le choix de traitement dun noeud

    Rsultat peut ne pas tre bien-form (racine nest pas unique)

    Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 119

    Structure dune feuille XSL

  • 7/28/2019 Cours XML

    119/146

    Une feuille XSL est un ensemble de rgles

    Une rgle associe un motif un constructeur ou modle

    Le motif dfinit la structure laquelle peut sappliquer cette rgle

    Le constructeur dfinit la structure du sous-arbre gnr lors de lactivation de la rgle

    Si plusieurs rgles sappliquent un lment, la plus spcifique est retenue

    Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 120

    Rgles XSL : Exemple

    Gnrer une liste HTML avec les titres et les annes de production de films :

  • 7/28/2019 Cours XML

    120/146

    -

    Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 121

    Officiel OL

    LI LIXSL

  • 7/28/2019 Cours XML

    121/146

    B

    Brazil 1986

    film

    anne

    film

    titre anne titre

    Matrix 1999

    Brazil

    - 1986 B

    Matrix

    - 1999

    Brazil- 1986Matrix- 1999

    Linarisation

    Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 122

    Rgles XSL : Modle de Traitement

  • 7/28/2019 Cours XML

    122/146

    Une liste de noeuds (contexte) est traite pour crer un fragment rsultat

    Pour chaque noeud, on :

    slectionne le motif qui correspond au noeud,

    value le constructeur (rcursivement),

    ajoute le fragment gnr pour chaque noeud dans le rsultat

    Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 123

  • 7/28/2019 Cours XML

    123/146

    Rgles XSL : Rcursion infinie

    Problme : bien que XSL travaille sur des arbres (sans cycles) il est possible de crer des boucles infinies

    (goto) :

    Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 124

    Rsolution de conflits: Exemple

    Cinmas parisien en gras avec la rue et autres cinmas avec le nom de la ville (XML, XSL,

    http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-4.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-4.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-4.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-4.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-4.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-4.html
  • 7/28/2019 Cours XML

    124/146

    rsultat dynamique, rsultat stock)

    ()

    ()

    http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-4.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-4.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-4.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-4.html
  • 7/28/2019 Cours XML

    125/146

    Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 126

    Selection de Rgles: Modes

    L tt ib t mode t d h i i l li it t L i i t h i it l d i l

  • 7/28/2019 Cours XML

    126/146

    Lattribut mode permet de choisir une rgle explicitement. Lexpression suivante choisit la deuxime rgle( XML, XSL, rsultat dynamique, rsultat stock):

    Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 127

    Rgle = Procdure avec Paramtres

    La liste des cinmas ( XML, XSL, rsultat dynamique, rsultat stock):

    http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-3.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-3.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-3.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-3.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-3.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-3.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-5.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-5.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-5.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-5.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-5.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-5.html
  • 7/28/2019 Cours XML

    127/146

    Nom inconnu

    Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 128

    Structures de controle: for-each, if, choose

    La liste des cinmas ( XML, XSL, rsultat dynamique, rsultat stock):

    http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-6.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-6.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-6.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-6.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-6.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-6.html
  • 7/28/2019 Cours XML

    128/146

    La liste des cinmas

    ()

    ()

    Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 129

    T i

  • 7/28/2019 Cours XML

    129/146

    Trier

    Cinmas par ordre alphabtique (XML, XSL, rsultat dynamique, rsultat stock):

    Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 130

    Cls

    Les cls sont une

    gnralisation du mechanisme ID/IDREF, et permettent un

    accs rapide

    XML F ill d S l XSL l d i l k

    http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-8.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-8.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-8.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-8.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-8.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-8.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-11.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-11.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-11.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-11.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-11.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-11.html
  • 7/28/2019 Cours XML

    130/146

    XML, Feuille de Style XSL, rsultat dynamique, rsultat stock :

    ...

    Film inconnu

    Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 131

    Gnration dIdentificateurs dObjets

    http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-11.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-11.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-11.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-11.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-11.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-11.html
  • 7/28/2019 Cours XML

    131/146

    Cration de liens HTML (XML, XSL, rsultat dynamique, rsultat stock):

    -

    ...

    ....

    Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 132

    Objets de Formatage (FO): Exemple PDF

    http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-9.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-9.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-9.htmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-9.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-9.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-9.html
  • 7/28/2019 Cours XML

    132/146

    Objets de Formatage (FO): Exemple PDF

    XML

    Feuille de Style XSL

    Rsultat Dynamique

    Rsultat Stock PDF

    Bernd Amann - CNAM, Paris Afficher XML: Feuilles de Style XSL 133

    http://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-10.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-10.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-10.pdfhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-include.xmllhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/xsl/officiel-10.xslhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-10.xmlhttp://magellan.cnam.fr:8080/ecom/xml/officiel/Samples/officiel-10.pdf
  • 7/28/2019 Cours XML

    133/146

    XML-QL : Un langage de requtes pour XML

    Bernd Amann - CNAM, Paris Interrogation de XML 134

    XML-QL

    Proposition Workshop W3C, WWW99, Logiciel

    http://www.w3.org/TR/1998/NOTE-xml-qlhttp://www.research.att.com/~mff/xmlql/doc/files/final.htmlhttp://www.research.att.com/~mff/xmlql/doc/http://www.w3.org/TR/1998/NOTE-xml-qlhttp://www.research.att.com/~mff/xmlql/doc/files/final.htmlhttp://www.research.att.com/~mff/xmlql/doc/
  • 7/28/2019 Cours XML

    134/146

    Proposition Workshop W3C, WWW99, Logiciel

    Syntaxe XML

    Expressions de chemins et motifs

    Templates pour la construction du rsultat

    Complet dans le sens relationnel (algbre/calcul) Modle de donnes : graphe avec tiquettes sur les arcs (XML : noeuds tiquets)

    Autres langages: XQL, Quilt

    Bernd Amann - CNAM, Paris Interrogation de XML 135

    Exemple

    Les films quon peut voir lOdon :

    http://www.w3.org/TR/1998/NOTE-xml-qlhttp://www.research.att.com/~mff/xmlql/doc/files/final.htmlhttp://www.research.att.com/~mff/xmlql/doc/http://www.w3.org/TandS/QL/QL98/pp/xql.htmlhttp://www.almaden.ibm.com/cs/people/chamberlin/quilt_euro.htmlhttp://www.w3.org/TR/1998/NOTE-xml-qlhttp://www.research.att.com/~mff/xmlql/doc/files/final.htmlhttp://www.research.att.com/~mff/xmlql/doc/http://www.w3.org/TandS/QL/QL98/pp/xql.htmlhttp://www.almaden.ibm.com/cs/people/chamberlin/quilt_euro.html
  • 7/28/2019 Cours XML

    135/146

    Les films qu on peut voir l Odon :

    where

    Odon

    $T

    in www.officiel.com/cinemas.xml

    construct $T

    Rsultat nest pas bien-form.

    Bernd Amann - CNAM, Paris Interrogation de XML 136

    Construction de rsultats

    Les cinmas, sances et les films (relation) :

  • 7/28/2019 Cours XML

    136/146

    where $N

    $T

    in www.officiel.com/cinemas.xml

    construct

    $N $H $T

    Transformation de lattribut heure en lment.

  • 7/28/2019 Cours XML

    137/146

    Bernd Amann - CNAM, Paris Interrogation de XML 138

    Requtes imbriques : Regroupement

    Chaque film avec les cinmas o on peut le voir :

  • 7/28/2019 Cours XML

    138/146

    where $F

    in www.officiel.com/cinemas.xml,

    construct

    $F

    where $N

    $F

    in www.officiel.com/cinemas.xml

    construct $N

    Bernd Amann - CNAM, Paris Interrogation de XML 139

    Syntactic Sugaring

    where ...

  • 7/28/2019 Cours XML

    139/146

    g g

    element_as $B in URL

    construct ...

    $B est affect par le noeud ...

    where ...

    content_as $B in URL

    construct ...

    $B est affect par le contenu du noeud ...

    Bernd Amann - CNAM, Paris Interrogation de XML 140

    Jointures

    Les cinmas qui montrent le mme film que lOdon :

    where Odeon

  • 7/28/2019 Cours XML

    140/146

    where Odeon

    $T

    content_as C1,

    $N

    $T

    content_as C2 in www.officiel.com/cinemas.xml,

    C1 C2

    construct $N

    Bernd Amann - CNAM, Paris Interrogation de XML 141

    Interrogation du schma

  • 7/28/2019 Cours XML

    141/146

    Les lments avec un attribut id = &123 :

    where $C

    construct $C

    Bernd Amann - CNAM, Paris Interrogation de XML 142

    Expressions rgulires

    Les descendants de Charlemagne :

  • 7/28/2019 Cours XML

    142/146

    where $N

    $E

    construct $E

    Ne pas confondre avec la smantique horizontale de (enfant|child)* dans une DTD.

    Bernd Amann - CNAM, Paris Interrogation de XML 143

    Integration

    Les films avec les cinmas et les critiques :h fil i $ / i i $C / /

  • 7/28/2019 Cours XML

    143/146

    where $T $C

    in www.cahier.com/films.xml

    construct $T

    $C

    ( where $N

    $T

    in www.officiel.com/cinemas.xml

    construct $N )

    Bernd Amann - CNAM, Paris Interrogation de XML 144

    Integration: Fonctions de Skolem

    Les films avec les cinmas et les critiques :

    {where $T $C

    in www.cahier.com/films.xml

    construct

  • 7/28/2019 Cours XML

    144/146

    construct

    $T

    $C

    }

    {where $N

    $T

    in www.officiel.com/cinemas.xml

    construct $N

    }

    Bernd Amann - CNAM, Paris Interrogation de XML 145

    Ordre

  • 7/28/2019 Cours XML

    145/146

    Deux smantiques :

    modle sans ordre

    modle avec ordre :

    le filtrage (pattern matching) dans la clause where est fait sans ordre le rsultat (clause construct) est tri par rapport lordre dans le motif de la clause where

    Bernd Amann - CNAM, Paris Interrogation de XML 146

    Ordre : Exemple

    where $B $C

    construct $B $C

  • 7/28/2019 Cours XML

    146/146

    Document : b1c1b2b3c2

    Rsultat :

    b1c1

    b1c2b2c1

    b2c2

    b3c1

    b3c2