La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

XML et ses applications XML et ses applications

Présentations similaires


Présentation au sujet: "XML et ses applications XML et ses applications"— Transcription de la présentation:

1 XML et ses applications XML et ses applications

2 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 2 XML et ses applications n Généralités –Historique –Naissance de XML –Déploiement d'une application XML

3 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 3 Généralités n Le web permet de transmettre n'importe quel type de document entre deux ordinateurs reliés au réseau Internet ou à un réseau d'entreprise. n Hypertext Markup Language (HTML) est le format "natif" qui a contribué au succès du web n HTML est utilisé comme format de données.

4 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 4 Généralités (2) n L'importance grandissante du web, et le fait que HTML ne soit pas forcément adapté au transfert de certains types de données, a conduit les ingénieux ingénieurs a créer eXtensible Markup Language (XML) pour supporter le passage à l'échelle. n Le succès de XML fait qu'il est employé pour un nombre de plus en plus important d'applications. n De nombreux formats complémentaires ont émergé depuis la création de XML en 1997.

5 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 5 Généralités (3) n Ce cours fait le tour des concepts autour de XML et présente XML et les applications dans lesquelles il est utilisé. n Le document de référence concernant XML est la recommandation XML 1.0 publiée par le World Wide Web Consortium (W3C). n en Anglais : n en Français :

6 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 6 Le web

7 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 7 Le web (2) n Une application sur le poste utilisateur demande des documents à une machine distante, le serveur, à une adresse (URL) (via le transport HTTP) n Le serveur renvoit un document HTML à lapplication qui l affiche à l écran en fonction des balises HTML:Cours XML Donne:Cours XML ou: Cours *XML*

8 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 8 HTML n Un document HTML est composé de briques (les balises) contenant du texte n Les balises HTML décrivent la présentation souhaitée, pondérée par les capacités du navigateur n Les balises sont prédéfinies : il y en a un nombre limité et fixe (pas d éléments nouveaux possibles)

9 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 9 HTML (2) n HTML est de l'embedded text markup (marquage texte inclus), car: –Les informations sont inclues dans le texte Ex. : ceci est très important –Les informations sont inclues dans le texte Ex. : ceci est très important –embedded important –embedded important –text ceci est très...important…. –markup... –markup...

10 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 10 Historique

11 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 11 Le W3C n Besoins n Organisation du W3C n Processus de décision n Buts

12 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 12 Besoins n Peur de la fragmentation Les éditeurs ajoutent des balises propriétaires à HTML -> problèmes d incompatibilité n Guide pour les évolutions n Arbitre neutre

13 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 13 Organisation du W3C n Le World Wide Web Consortium est une organisation à but non lucratif n Dirigé par Tim Berners-Lee, l'inventeur du web. n 500 membres font partie du consortium (sociétés,…) n 60 personnes travaillent pour le W3C

14 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 14 Organisation du W3C (2) n 4 Domaines: –Architecture HTTP, XML, URL/URI, DOM, XML Protocol, Jigsaw –User Interface HTML, SVG, PNG, Device independence, Amaya, Internationalisation, MathML, Multimedia (SMIL), CSS, XSL, Voix –Technology & society Commerce électronique, Confidentialité, Web Sémantique, XML encryption, XML Signature –WAI: Web Accessibility Initiative Politique et technique

15 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 15 Processus de décision n Qui: –mailing listes –membres –working groups –Advisory Board –Directeur

16 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 16 Processus de décision (2) n Où: –Conférences (WWW10), –Workshops, –Working Groups Meetings

17 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 17 Processus de décision (3) n Comment : –Working drafts, –Last Call Working draft, –Candidate recommendation, –Proposed recommendation, –Recommendation

18 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 18 Buts n Le W3C a pour but dharmoniser le développement des langages utilisés sur le web n 7 axes ont été définis

19 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 19 Accès Universel n Indépendance par rapport au navigateur (device/user-agent). Ex : mobile, vocal,... n Internationalisation Surfer quelle que soit la langue, le pays...

20 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 20 Web Sémantique n Séparation entre la forme (présentation) et le fond (données) n Permet d automatiser le traitement de données par programmation

21 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 21 Confiance n Sécurité Transfert de données,… (XML Security) n Respect de la vie privée Réflexions sur ce qu il faut faire/ne pas faire avec les données sur les utilisateurs (Platform for Privacy Preferences) n Authentification Identification des serveurs, des utilisateurs

22 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 22 Interopérabilité n Normes communes aux OS, langages de programmation, browsers… n Possibilité de relire les documents produits par des outils de différents constructeurs

23 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 23 Evolutivité n Prévoir le futur n Créer des normes compatibles (réutilisation de l existant)

24 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 24 Décentralisation n Besoin de répartir les tâches entre les différents acteurs Exemple : Traitements applicatifs sur le serveur, présentation sur le client n Pour passer à l'échelle

25 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 25 Créativité n Pour laisser libre les créateurs de contenu Multimédia, Audio, Animations, 3D... n Intégration facile des nouvelles technologies/medias dans le cadre commun XML (SMIL...)

26 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 26 Concurrence n Standards propriétaires –Flash, Imode (téléphones portables japonais != WAP), … n Autres organisations –ISO, ECMA, IETF, OASIS…

27 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 27 Naissance de XML n 2 acteurs : –SGML: n Marché confidentiel n Besoins de valoriser le savoir acquis –W3C n Besoin de mieux structurer le web : séparation forme/contenu,...

28 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 28 Naissance de XML (2) n But commun W3C/SGML : –Faire évoluer le web pour utiliser un successeur de SGML n n XML = SGML--

29 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 29 Déploiement d'une application XML n Plusieurs solutions existent pour déployer XML –envoi des données XML brutes au navigateur, qui efffectue alors les transformations nécessaires (en HTML, en image, en voix…) avant de présenter l'information à l'utilisateur n dans le browser (ex.: XML + style) n dans une application dans le browser (ex.: applet java, javascript/DHTML, flash...)

30 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 30 Déploiement d'une application XML (2) –transformation des données sur le serveur avant envoi dans un format directement affichable par le navigateur de l'utilisateur n scripts: perl, python, jsp, xslt… n template engines: cocoon, MyXML, enhydra, webmacro, Freemarker n moteurs sur bases de données: oracle, coldfusion… n XML frameworks:

31 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 31 Critères de design de XML n Les objectifs de conception de XML (extrait de la recommandation XML) –1.XML doit pouvoir être utilisé sans difficulté sur Internet –2.XML doit supporter une grande variété d'applications –3.XML doit être compatible avec SGML –4.Il doit être facile d'écrire des programmes traitant les documents XML –5.Le nombre d'options dans XML doit être réduit au minimum, idéalement à aucune

32 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 32 Critères de design de XML (2) –6.Les documents XML doivent être lisibles par l'homme et raisonnablement clairs –7.La conception de XML devait être préparée rapidement –8.La conception de XML doit être formelle et concise –9.Il doit être facile de créer des documents XML –10.La concision dans le balisage de XML est de peu d'importance (il est conseillé d être verbeux)

33 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 33 XML par rapport à HTML n Syntaxe plus stricte Valeur d attributs entre " Balises toujours fermées (pas de ni ) n Pas de balises prédéfinies XML est un métalangage n Possibilité d utiliser ses propres balises n Gère tous les jeux de caractères Support Unicode 2/ISO n HTML = XML + Style

34 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 34 Document XML Arbre de données DTD (optionnelle) Commentaires Processing Instructions Prologue

35 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 35 Prologue n version: obligatoire n encoding: –unicode, –default: UTF-8 –peut prendre toute sorte de valeurs (voir Unicode) –seul UTF-8 et UTF-16 est exigé des parseurs –ex: EUC-JP, ISO UCS2...

36 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 36 Prologue (2) n standalone: –default: no –yes veut dire qu'il n'y a pas de DTD,ou que la DTD incluse est complète (n'en inclut pas d'externe) n Note: l'ordre des attributs est imposé

37 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 37 Eléments n Les documents XML sont composés d éléments n On appelle character data (CDATA) un mélange de texte et d éléments de balisage –texte elements texte elements… n elements: start-tag contents end-tag n contents est du character-data n start-tag: n start-tag: n end-tag: n end-tag: n attribut: attribut-name = "valeur d'attribut" ou attribut-name = `attribute value'

38 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 38 Eléments (2) n Exemple : When the crew of the Enterprise learn... n Exemple : When the crew of the Enterprise learn...

39 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 39 Eléments (3) n Les documents XML peuvent être représentés sous forme d arbre

40 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 40 Eléments (4) n Un document a toujours un seul élément racine – Platoon Rambo – Platoon Rambo –Mauvais exemple : Platoon Ramboi –Mauvais exemple : Platoon Ramboi n L ordre est important –Platoon est vu avant Rambo

41 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 41 Eléments (5) n Tous les éléments doivent être terminés – paragraph – paragraph –mais pas paragraph –mais pas paragraph n Un élément ne peut pas en chevaucher un autre – interdit ! n Forme alternative pour éléments vides – (ou ) – –

42 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 42 Noms délément –(Lettre, _ ou :) + (lettres, chiffres ou _. - ) n Ex : (idem pour noms d'attributs) –Ne peut commencer par xml n Mauvais : n Mauvais : –Sensible la casse –Sensible à la casse n != n !=

43 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 43 Attributs n Un élément XML peut contenir des attributs n La valeur de lattribut définit une propriété de lélément n Chaque attribut est unique n L ordre des attributs est non significatif n Les character data et valeurs d'attributs peuvent contenir tous caractères sauf < et & n Tout attribut doit avoir une valeur –Ex : –Ex : –Mauvais : (HTML)

44 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 44 Commentaires n Ne doivent pas contenir de -- (compatibilité SGML) n N'importe où dans character data (pas dans balises)

45 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 45 Processing instructions (PIs) n Les instructions de traitement indiquent aux programmes quel traitement appliquer au document –Ex. : appliquer une feuille de style avec Cocoon : –Ex. : appliquer une feuille de style avec Cocoon : n N'importe où dans character data (pas dans balises)

46 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 46 Sections CDATA n Pour inclure du texte "en vrac" comme character data n Ne doit pas contenir ]]> n Interdit dans valeurs d'attributs n Le tout en syntaxe non XML –possibilité d utiliser <,&… dans une section CDATA –pas de vérification ni de la syntaxe par le processeur XML

47 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 47 Entités prédéfinies n Les caractères & ' " peuvent provoquer une erreur dinterprétation par le processeur XML n Pour inclure les caractères & ' ", il faut les échapper par des références a des entités : > && ' ""

48 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 48 Well-formed, Valid, DTD n Un document XML est dit well-formed s'il respecte la syntaxe XML. n Il est dit valide si en plus il respecte une grammaire optionnelle, la DTD (Document Type Definition)

49 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 49 Déclaration du type de document n La DTD joue plusieurs rôles: –vérification de la grammaire –paramétrage syntaxique –abréviations, inclusions… n C est dans la DTD qu est décrit: –quels éléments seront utilisés dans le document, –le type des éléments, –la structure des éléments

50 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 50 Déclaration du type de document (2) n Dangers de la DTD: –très complexe (90% de la spécification XML décrit les régles de conception des DTD) –peu puissante (peu de typage, pas d'héritage, pas de regexps) –optionnelle –pas en syntaxe XML !!! n Mais supportée par beaucoup de programmes

51 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 51 Déclaration du type de document (3) n Pas de typage: on ne peux pas dire que le prix est de la forme $[0-9]+ n Pas d'héritage: on ne peut pas "sous-classer" des DTDs n Uniquement possibilité dinclusion n Pas d erreur si absence de DTD n Si une DTD est définie, tout le document doit la respecter (éléments & attributs) n Semblable à des regular expressions sur éléments:, | + * ? ( )

52 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 52 DTD interne, publique n Interne au document – – n Publique (connue par les programmes) – – –URL optionnelle –Reconnaissance basée sur l'ID Exemple: ID = '-//W3C//DTD HTML 4.01 Transitional//EN (reconnu par les programmes)

53 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 53 DTD externe, mixte n Externe (inclusion) n Externe (inclusion) –Les DTD externes peuvent faire accès au réseau n Mixte: Interne + Externe (s'ajoutent, interne lue avant externe) n Mixte: Interne + Externe (s'ajoutent, interne lue avant externe)

54 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 54 Exemple de DTD ]> ]> When the crew of the Enterprise learn … When the crew of the Enterprise learn …

55 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 55 Déclaration délément n Définition d un élément n On ne peut pas mixer texte et éléments pour la validation: –(#PCDATA) ou –(#PCDATA | nom1 | nom2)* n ANY veut dire n'importe quel élément

56 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 56 Déclaration d attributs n Définition d un attribut n value : –CDATA : texte, sauf < &, et ` ou " –Enumerated : ( male | female | other ) "male" –NMTOKEN : value doit obéir à la syntaxe des noms XML –NMTOKENS : value = liste de nom XML séparés par espaces –ID : L attribut doit être unique dans le document (identifiant) n attention: problème lors de combinaisons de documents –IDREF : Référence a lidentifiant (ID) d un autre élément (pas vérifié) –ENTITY : doit être une entité (pointe vers des données) –ENTITIES : plusieurs entités (sép. espaces) –NOTATION : type (utilisé pour filtrer expansion entités) –Enumerated NOTATION : plusieurs types –Seuls CDATA et Enumerated sont utilisables en pratique.

57 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 57 Déclaration dattributs (2) n default: –"valeur" : valeur par défaut si cet attribut est non spécifié –#REQUIRED : attribut requis –#IMPLIED : pas de défaut mis par le parseur, laisse l'application l'interprèter –#FIXED : "value" doit être présent avec la bonne valeur

58 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 58 Entités générales n Entité interne –DTD : –DTD : –Document : Une glace &nop; SVP ! -> Une glace a la vanille et a la fraise SVP ! n Entité externe parsée –DTD: –DTD: –nop.txt: a la vanille et a la fraise –Document : Une glace &nop; SVP ! -> Une glace a la vanille et a la fraise SVP ! –Le contenu du fichier doit être du XML valide: (contenu récursivement parsé) –Peut être en encoding différent

59 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 59 Notations n Entité externe non parsée –L entité ne sera pas analysée mais elle doit avoir une NOTATION –DTD: –DTD: –Document: dont le logo est &nop_logo; –Le parseur ne fait rien: il se contente de passer n l'URL du fichier nop.png n le type des données png n l'URL identifiant ce qu'est ce type: –à l'application, qui peut en faire ce qu'elle veut n Par exemple, pour Internet Explorer la notation donne le programme à exécuter:

60 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 60 Entités paramètres n Les entités paramètres ne peuvent etre utilisées que dans la DTD n Elles servent à pallier le manque de modularité n Les appels d entités paramètres se font comme ceux des entités générales, mais avec %nom; au lieu de &nom; Ex : Une fois l entité substituée, le processeur XML intérprétera : n Les appels d entités paramètres se font comme ceux des entités générales, mais avec %nom; au lieu de &nom; Ex : Une fois l entité substituée, le processeur XML intérprétera :

61 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 61 Entités paramètres (2) n Autres exemples : n Autres exemples : n Attention: on ne peut pas inclure de DTD, uniquement des fragments (problème de l entete avec a lintérieur d une balise)

62 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 62 Conditions n n n à... ignorer: « Conditional sections are another SGML invention that got into XML because the people on the committee who had experience writing DTDs claimed that life would just be impossible without them. » - Tim Bray

63 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 63 Gestion des espaces n Que faire des espaces de formatage? _ ____ Patrick Stewart _ ____ Merin Sirtis _ _ n Tous les espaces sont transmis à l'application qui doit les traiter n Les parseurs doivent normaliser les fins de ligne à la unix (^M^J -> ^J) n On peut déclarer l'attribut xml:space pour forcer l'application à garder l'espace mais le parseur, lui, doit transmettre les espaces à l'application.

64 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 64 Gestion des langues n L attribut xml:lang spécifie le langage: –dans la DTD: –dans la DTD: –dans le document : What colour is it? What color is it? –dans le document : What colour is it? What color is it? n Si il y a une DTD l attribut lang doit y être déclaré – –

65 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 65 Texte n UNICODE est un consortium définissant l'encodage des caractères (UCS: Universal Character Set) n XML utilise UNICODE 2 -> ISO/IEC Standard ISO n Les normes UNICODE sont gratuites, les normes ISO sont très chères. n Unicode permet de représenter les caractères des langues du monde entier (européens mais aussi arabe, japonais, vietnamiens, thaï, mortes...)

66 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 66 Texte (2) n Chaque caractère a un numéro (code) unique, et un nom n Encodés sur 16 bits 0 a 0xFFFF (0 a 65,536 ), dans un plan n UCS = 17 plans: 0 a 0x10FFFF (0 a 1,114,111) n premier plan: langues réellement utilisées (europe, arabe, japon) n premiers 256 chars (0 a FF) = ASCII 8 bits n caractères combinatoires ("touches mortes") n Appel d un caractère Unicode dans un document XML par & ; Ex : &0x41; affiche A

67 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 67 Atomicité des données n HTML et SGML sont des formats de documents n XML doit représenter des données : le mélange texte/balises est mal adapté! n Quand utiliser attributs, quand des sous-éléments? n Il faut faire un choix suivant le type de traitement a effectuer (attributs plus faciles / rapides a accéder quéléments) sur les données et leur réutilisabilité possible (éléments extensibles et plus faciles a maintenir)

68 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 68 Atomicité des données (2) n Xml: Différentes représentations de la même donnée – $14 – $14 – 14 – 14 – – – US dollar 14 – US dollar 14 n java: –Prix { Devise devise; int valeur; };

69 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 69 Eléments ou attributs? n Attributs non structurés –+ faciles à traiter –pas upgradables: valeur="14 » –valeur= -> illegal! ou: – -> non modulaire! n Eléments plus lisibles par humain, mais lourd! – 14 – 14 n Utilisation de sous-langages : $14, 16Fr (autant de sous-parseurs) n Autre exemple : chemins de SVG : n Autre exemple : chemins de SVG :

70 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 70 Eléments ou attributs? (2) n Avis commun: n Attribut si valeur "finale" - mais peut-on en être sûr? n Elément si peut être structuré n Le contenu d'un élément est soit du texte, soit des éléments mais jamais de mélange! n réutiliser des DTD existantes (mais qualités variables et philosophie de design variables) n validation?

71 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 71 Attribut identifiant n Problème : Un arbre ne permet pas de partager des objets n Ou de représenter des graphes n Il faut alors utiliser des attributs identifiants (ID) n Il faut alors utiliser des attributs identifiants (ID)

72 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 72 Attribut identifiant (2) n Conseil: ne pas les déclarer ces attributs comme ID et IDREF dans la DTD, car pas modulaire: – – n L'application ne mélangera pas devises et personnes, mais le processeur XML déclenchera une erreur! n Toutes les balises sont mises "à plat" par le processeur, les liens sont recrées par l'application à partir des IDs n Plaide pour des éléments identifiants, on ne peut pas pointer vers des attributs

73 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 73 Sérialisation n La technique des IDs permet de régler le problème attributs/éléments, mais pas dans l esprit de XML –éléments = relations is-a (type) –attributs = relations has-a (champs) n Les id servent à marquer un élément n Convention dans pour pointer vers un objet (ici #id) n Autres attributs = valeurs finales n Le document peut être résumé à une liste d'éléments vides : – – n Solution extrême, non politiquement correcte, n'utilisant pas les outils XML, à garder en tête pour les schemas!

74 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 74 Namespaces n Recommendation W3C, Jan n But: éviter les collisions de noms d'éléments et d'attributs Star Trek 5 Trent Gary réalisateur n But: éviter les collisions de noms d'éléments et d'attributs Star Trek 5 Trent Gary réalisateur n Note: ce n'est un problème QUE pour la validation! n Solution: qualifier tout élément ou attribut par un namespace identifié par une URL: – –

75 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 75 Préfixes de namespaces n On factorise les URLs par des préfixes locaux au document que l'on peut choisir aussi courts ou significatifs que désirés. n Déclaration par l'attribut xmlns:prefixe, s'appliquant au contenu (scope lexical) – Ordinateurs et société … écrivain... –ou: Ordinateurs et société... écrivain...

76 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 76 Préfixes de namespaces (2) n Quel que soit le préfixe choisi, l application doit se comporter de manière identique, et traiter les données en fonction de l URL n Le namespace par défaut: –pour les éléments : "" (vide) –pour les attributs : celui de l'élément n se déclare par xmlns="URL", pour la portée (scope) de l'élément

77 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 77 Problèmes des namespaces n "patch" à la norme XML n Mal intégré (pas dans les DTDs) n Outils doivent se mettre à jour (vérifier!) n Pose des problèmes de fond pour l'interaction entre normes n Permet une sorte de sous-classage: ajout d informations étrangères dans du xml existant n Namespaces sont là pour rester n Permettent de mélanger des XMLs existants(SVG dans XHTML...) sans réinventer d'autres langages n Ne jamais se servir du nom d'élément brut ou du préfixe directement! ne pas regarder si l'élément est de nom isbn:titre, mais regarder si l'élément est de nom titre dans le namespace

78 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 78 Schemas n XML Schémas a été crée pour résoudre les problèmes de la DTD, et mieux traiter les données n En syntaxe XML n Supportent les namespaces n Types prédéfinis n Déclaration de nouveaux types élémentaires (Simple type = types) n Combinaison de types (Complex type = classes) n Héritage n Modularité

79 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 79 Schemas (2) n XML Schemas, démarré en fin 1998, encore en candidate recommendation n Prometteur mais très complexe n La seule spécification W3C qui a un "tutorial" officiel! (primer) n Spéccifications en 3 parties : –structures –datatypes –primer

80 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 80 Déclaration n Déclarations dans le namespace des schemas – – n Déclaration des éléments et attributs similaire aux DTDs : – – n Attributs déclarés dans la déclaration des éléments : – –

81 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 81 Types prédéfinis n Primitive Datatypes –string –boolean –decimal –float –double –duration –dateTime –time –date –gYearMonth –gYear –gMonthDay n Atomic, built-in –"Hello World" –{true, false} –7.08 – 12.56E3, 12, 12560, 0, -0, INF, -INF, NAN – P1Y2M3DT10H30M12.3S – format: CCYY-MM-DDThh-mm-ss – format: hh:mm:ss.sss – format: CCYY-MM-DD – format: CCYY-MM – format: CCYY – format: --MM-DD Note: 'T' is the date/time separator INF = infinity NAN = not-a-number

82 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 82 Types prédéfinis (2) n Primitive Datatypes –gDay –gMonth –hexBinary –base64Binary –anyURI –QName –NOTATION n Atomic, built-in – format: ---DD (note the 3 dashes) – format: --MM-- –a hex string –a base64 string –http://www.xfront.com –a namespace qualified name –a NOTATION from the XML spec

83 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 83 Types simples n Au lieu de juste PCDATA et CDATA: n Au lieu de juste PCDATA et CDATA: n Ni contenu ni attributs n Entités via le type token: t l -> télé n Regular expressions (Unicode) via le type pattern : n Regular expressions (Unicode) via le type pattern :

84 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 84 Listes n Une liste d octets : – – – –

85 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 85 Unions n n n n n INRIA Sophia n INRIA Sophia

86 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 86 Restrictions n Permettent de construire de nouveaux types en réduisant les possibilités n Exemple : nombres à 2 chiffres: 0 n Exemple : nombres à 2 chiffres: 0

87 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 87 n Les restrictions sont des facettes d'un type. n Toutes (15) les facettes ne s'appliquent pas forcément à tous les types: –length, minLength, maxLength, –pattern, enumeration, –whiteSpace, –max Inclusive, max Exclusive, min Inclusive, min Exclusive, –precision, scale, –encoding, period, duration Facettes

88 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 88 Types complexes n Comme des classes: dérivations à partir d'autres types: n On ajoute des sous-éléments avec le type sequence: n On ajoute des sous-éléments avec le type sequence:

89 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 89 Types complexes (2) n numéroDeRue, rue, code, et ville sont des noms locaux à typeAdresseFrance, pas de conflits de nommage n Contraintes d'occurrence : généralise les opérateurs de regular expressions ? * + … n Contraintes d'occurrence : généralise les opérateurs de regular expressions ? * + …

90 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 90 Restrictions de types complexes n On peut restreindre les types du type père (redéfinir la plage de valeur d un attribut du type père,...) n On peut contrôler l'usage des types n final: permet d'interdire la dérivation d'un type par restriction, extension ou les deux. n final: permet d'interdire la dérivation d'un type par restriction, extension ou les deux. n On ne pourra pas réutiliser ce type dans un autre type

91 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 91 Restrictions de types complexes (2) n fixed: permet de contrôler quelles facettes seront utilisables n fixed: permet de contrôler quelles facettes seront utilisables n On pourra étendre ce type mais jamais modifier le nombre de lettres n Types abstraits n Contraint à la dérivation pour usage n Contraint à la dérivation pour usage

92 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 92 Groupes de substitution n Déclare des types "utilisables à la place" (~ interfaces) n n

93 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 93 Inclusion de schemas n n n Possible de redéfinir les types d un schéma inclus ! n ici, on inclus et surcharge le type Adresse dans le schéma inclus... n ici, on inclus et surcharge le type Adresse dans le schéma inclus... n et en changeant le namespace... redéfinitions... n et en changeant le namespace... redéfinitions...

94 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 94 Valeur nulle n Pour dire que la valeur est indéfinie n Pour dire que la valeur est indéfinie n Si la valeur est null, on ne connaît pas le No, n Si il n y a pas d'élément, on sait qu'il n'y a pas de No

95 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 95 Contraintes d'unicité n n n définit un pseudo-champ clefPersonne qui vérifie qu il n'y a pas 2 champs numéro identiques dans toutes les personnes dans contacts. (syntaxe XPath)

96 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 96 Annotations n Commentaires, mais en XML Instructions pour Cocoon n Commentaires, mais en XML Instructions pour Cocoon n Peut avoir un attribut source, avec comme valeur l URL du document contenant l annotation

97 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 97 Clés et références de clés n Permet de créer des références entre données n Permet de créer des références entre données n Exemple: 3 World Wide Web Consortium n Exemple: 3 World Wide Web Consortium

98 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 98 Validateurs de Schemas n En ligne de commande : –XSV by Henry Thompson n ftp://ftp.cogsci.ed.ac.uk/pub/XSV/XSV12.EXE n En API Java : –xerces by Apache n –IBM Schema Quality Checker (Note: ce outil sert uniquement à valider des schémas, pas des instances de documents.) n –MSXML4.0 n

99 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 99 Validateurs de Schemas (2) n GUI : –XML Spy n –Turbo XML n

100 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 100 Exemple de schema

101 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 101 XML dans une application n XML peut occuper différents rôles dans une application client serveur n Dans une application XML peut être utilisé : –sur la couche présentation –sur la couche application –sur la couche données n Des sous-ensembles de XML ont été développés pour des fonctions clés : présentation, liens entre documents, dialogue inter-applications,… n XML peut être utilisé sur le client et sur le(s) serveur(s) n Deux stratégies possibles : –traitement de XML sur le client : navigateurs webs modernes (Mozilla/NS6, IE 6, x-smiles), clients puissants (PC…) –traitement sur le serveur : navigateurs légers, couches applicatives et données

102 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 102 Positionnement de XML dans une architecture multi-tiers Navigateurweb Serveur Requête Réponse Serveur web Serveur dapplication, servlets, pages dynamiques, CGI... Bases de données relationnelle, objet, XML, fichier... Client XSLT, FO, SVG, XHTML +CSS XSP, JSP 1.2, XForms... XSLT, FO, SVG, XHTML +CSS RDF, Xquery, ESQL, XML... +Xlink,Xpath,XpointerHTTP,WebDAV,BEEP ApplicationApplication HTTP XML Soap XMLSignature XMLEncryption...

103 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 103 Sous-ensembles de XML n SMIL Synchronized Multimedia Integration Language : spécifie les timings danimations (sons, vidéo...) n MathML 2 specs : structure et présentation des formules n Micropayments : payer de petits achats en grand nombre n CC/PP (Composite Capability/Preference Profiles) : RDF pour négocier contenu entre browser et serveurs n Device Profile : description du device de rendu pour négocier via CC/PP n P3P (Platform for Privacy Preferences Project) : Protection de la vie privée par les technos web n VoiceXML (Voice eXtensible Markup Language) : reconnaissance vocale XML encryption : encryption de parties de documents XML n XML Signature : signature éléctronique n XML Protocols : communication via XML de machine à machine, par diverses couches (dont HTTP); 1ere étape: SOAP n WAP / WML : consortium externe (Wapforum)

104 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 104 XML sur la couche présentation n Cette partie présente différents sous-ensembles de XML utilisés sur la couche présentation d une application (certains peuvent également servir sur les autres couches) n Pour utiliser ces sous-ensembles dans un document XML il faut déclarer leur namespace dans les éléments XML n Exemple : n Exemple :

105 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 105 XHTML n eXtensible Hypertext Markup Language : reformulation de HTML en XML (syntaxe compatible avec XML) n Version 1.0 : recopie HTML en XML n Versions 1.1 : –HTML de base –architecture modulaire pour frames, lists, forms, tables, images, script... (une trentaine) –possibilité de modules custom (tags sur mesure)

106 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 106 XHTML : Différences avec HTML (1) n noms déléments en minuscules :, mais pas : n noms déléments en minuscules :, mais pas : n tous les éléments doivent être fermés:, ou n tous les éléments doivent être fermés:, ou n tous les éléments doivent être correctements imbriqués : et un et un et deux et deux n tous les éléments doivent être correctements imbriqués : et un et un et deux et deux

107 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 107 XHTML : Différences avec HTML (2) n Pour afficher correctement dans les vieux navigateurs web, laisser un espace avant le / pour les élements vides : n Pour afficher correctement dans les vieux navigateurs web, laisser un espace avant le / pour les élements vides :

108 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 108 Xmlbase n Reproduit le tag base de html n Utilisé pour déterminer la cible des liens (xlink) relatifs Click here n Utilisé pour déterminer la cible des liens (xlink) relatifs Click here n comme html mais avec portée lexicale (scope) n cherche la destination du lien dans lordre: –une base dans une structure englobante : la xml:base du document –URL daccès au document (URL http, adresse XML Protocol) –défaut fourni par lapplication

109 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 109 ruby (1) n Standard pour des annotations en marge de documents n Nom et concepts en usage en asie, ruby aurait du aller dans les feuilles de style CSS mais ne rentrait pas dans le modèle n ruby base: lobjet principal: n ruby base: lobjet principal: n ruby text : les explications: n ruby text : les explications:

110 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 110 ruby (2) n æ è¤ ä¿¡ ç· ãã ã¨ã ã®ã¶ ã W3C Associate Chairman n æ è¤ ä¿¡ ç· ãã ã¨ã ã®ã¶ ã W3C Associate Chairman

111 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 111 HyperLiens n 3 sous ensembles : Xlink, XPointer, Xpath n Le problème des liens HTML: –on doit modifier le document source –on doit modifier le document source –on doit modifier le document destination –on doit modifier le document destination –liens uniques monodirectionnels : on ne peut pointer sur une zone n Création de 3 normes: –XPath est un langage pour décrire des endroits dun document –XPointer spécifie des cibles via Xpath –XLink décrit des liens entre des XPointers

112 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 112 Xpath (1) n Utilisé par XPointer, XSL, XForms… n Permet dassocier à tout objet XML une chaîne permetant dy accéder ou chemin daccès (location paths) n Des expressions permettent de faire des calculs sur ces paths n Le modèle de données de Xpath reprend lorganisation du document : –nodes –attributs –text

113 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 113 Xpath (2) n Espace, frontière de linfini… n Espace, frontière de linfini… n XPathmatches /film/acteur[2] DieMona Cko /film/acteur /film/text()Espace, frontière de linfini…

114 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 114 Nœuds (1) n Comme le système de fichier unix : / = root n Un chemin qui commence par / est un chemin absolu, qui commence depuis la racine du document: /film/acteur n Un chemin qui ne commence pas par / est un chemin relatif au noeud courant traité par lapplicationour n Un chemin qui commence par // selectionne toutes les sous/parties: n Exemple : foo 1 n Exemple : foo 1 –//y/z :, foo –//y/z :, foo –//z :, foo, 1 –//z :, foo, 1

115 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 115 Nœuds (2) n Exemple : foo 1 n Exemple : foo 1 n * remplace tout un niveau de hiérarchie /*/*/*/* : foo n * remplace tout un niveau de hiérarchie /*/*/*/* : foo n *à la fin sélectionne tout le contenu //y/* :, foo n *à la fin sélectionne tout le contenu //y/* :, foo n.. pour remonter //y/z/.. :, foo n.. pour remonter //y/z/.. :, foo

116 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 116 Attributs: n Préfixés n Exemple : n Exemple : n = contenu de lattribut : blue sélectionne tous les attributs : red blue

117 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 117 Prédicats n Suivent le path, entre crochets [ ] n Sélection parmi les noeuds qui matchent –Nombre N: sélectionne le fils numéro N (démarre à 1) : //y[2] –Expressions: sélectionne tous les nœuds qui matchent lexpression n Exemple : : Sélectionne tous les fils de nom délement section et dattribut type valant attention n Fonctions: –//acteur[last()] le dernier fils de author –//acteur[position() = last() - 1] lavant dernier fils de acteur! n En fait langage complexe: trouve tous les éléments de nom acteur nayant pas dattributs!

118 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 118 Axes n La syntaxe précédente est une abbréviation de la forme générale : n axe::noeud[predicat] –on choisit le nœud –on prend un ensemble de noeuds sur un axe : parent, fils, attributs, texte… –on restreint via les expressions prédicat n Exemples : –descendant-or-self::author[1] = //author[1] –attribute:: –self:: =. –parent:: =..

119 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 119 Xpath (fin) n XPath est très puissant et a les possibilités dun vrai langage de programmation n Il est difficile à maîtriser car concis et aussi très difficile à implémenter efficacement (prédicats) n Xpath est de plus en plus utilisé par les outils n Similtude avec les regular expressions : permet dexprimer la logique dune action de facon portable entre langages n Danger: pour XPath, un noeud veut dire aussi bien attribut que élement

120 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 120 Xpointers (1) n Basé sur Xpath n Donne le contexte à XPath (root du document) n Permet de sélectionner une partie de documents XML sans la modifier n Les documents peuvent être énormes, ou non modifiables (CD-ROM ou site web distants) n Référence complète de la forme URL#xpointer(xpath) n Exemple :

121 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 121 Xpointers (2) n XPath ne pouvait spécifier que des noeuds, n XPointer peut spécifier des points: –endroits sans taille entre 2 noeuds –caractères dans une chaîne n Exemple : xpointer(end-point(//A/B[2])) n Xpointer peut aussi spécifier des plages : –tout entre 2 points n Exemple : xpointer(//A/B/C[1] to //A/B[3]) n Un XPointer peut être: –une ID, comme en HTML –une liste de pointers (dans ce cas prend le premier qui matche: xpointer(author)xpointer(auteur)xpointer(éditeur)…)

122 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 122 Xlink n Juin 2001: Specification 1.0, specification jeune mais en développement depuis un moment: consensus n Spécifie liens entre Xpointers –multidirectionnels :vers plusieurs cibles –peuvent être définis ailleurs que dans document source ou cible n Définis dans le namespace n Pas délements de nom link, mais un attribut dans le namespace xlink transforme un élement en lien. n Exemple : n Exemple :

123 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 123 Types n Simples (HTML) pointent vers une URL : – – n Locator établit une cible: – – n Arc spécifie un lien entre 2 locators: – – n title donne une lien utile pour un être humain n resource est comme locator mais pour des cibles internes au document n extended peut avoir N sources et N destination

124 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 124 Attributs n Lattribut arcrole définit une URL descriptive n Lattribut show indique comment/si il faut afficher le lien. n Il peut prendre les valeurs replace, new, embed, none n Exemple : n Exemple : n Lattirbut actuate indique quand déclencher le lien. n Il peut prendre les valeurs onRequest, onLoad, other, none

125 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 125 Xlink (fin) n Les liens de part leur puissance servent à bien plus que de simple liens HTML n Ils permettent de structurer des données et dexprimer des relations de bases de données n Mais les Xlink sont encore très peu implémentés dans les outils actuels n... ni même dans les normes, XHTML ne sen sert pas !

126 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 126 CSS (1) n Comment représenter du XML abstrait? en ajoutant des informations de présentation : le style n CSS Cascading style sheets : Historique (pas en syntaxe XML!) CSS2, CSS3… n Permet de décorer les noeuds avec des attributs de style prédéfinis n cascade car il peut y avoir plusieurs style sheets (defaut, site, browser, utilisateur) n Syntaxe : hiérarchie_de_noeuds. classe { attribut: valeur;... } n Ne modifie pas la structure du XML : manipulation facile (javascript) n limite dans le styling (ordre des éléments) n pas limité à un monde textuel : CSS vocal, CSS graphique (SVG) n solution permettant dutiliser XML comme remplacant de HTML

127 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 127 CSS (2) n restaurant { display: block; font-weight: bold; margin-top: 1em;} menu { font-size: large; margin-left: 1cm;} Le sucrier menu provencal Le sucrier menu provencal

128 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 128 CSS (3) n CSS1: juste attributs graphiques (couleurs, fontes...)(NS 4.x, IE 4.x) n CSS2: positionnement sur la page (layout), modèle de boîtes (Mozilla,Opera) n CSS3: débute... modularisation pour application universelle. n Solution très intéressante, en utilisant des attributs de style spécifique au domaine, car permet de garder la structure intacte pour agir dessus après n Mais doit être implémentée par le browser, donc moins populaire car support aléatoire

129 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 129 XSL n XSL est un héritier de DSSSL, une langage de mise en forme basé sur scheme (lisp) et manipulant du SGML n La communauté DSSSL voulait un langage qui lui permette dimprimer différentes versions dun document : –avec la puissance dun langage de programmation –sans prendre en compte linteractivité sur la version finale (évènements) n Ce qui a entrainé la création de XSL pour répondre à ces besoins avec XML n La partie Formatting Objets (style) sest révelée plus complexe que prévue n Comme il il y avait un énorme besoin pour transformer du XML en XML (ou autres) on a séparé XSL en XSLT (abstrait) et FO (style) n XSL nest quun filtre, il faut autre chose (template engines) pour gérer plusieurs documents

130 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 130 XSL-FO (1) n Peu utilisé et encore en développement n Besoins mal définis (PDF? web? SVG?) n But: que les browsers puissent directement montrer des Fos n Mais politiquement non web-correct: FOs pas adaptables (taille de police?) n Conseil: à éviter. regarder plutot SVG et CC/PP

131 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 131 XSL-FO (2) n Exemple: The Periodic Table p. n Exemple: The Periodic Table p.

132 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 132 XSLT (1) n Principe : un document XML + une feuille de style XSLT + un processeur XSLT = un document XML (ou autre format de sortie, HTML...) n Une feuille de style XSLT (stylesheet) est une succession de régles de réecriture: les xsl:template n Que fait le processeur XSLT ? –parse le document XML en mémoire –trouve les noeuds de larbre en mémoire (DOM) qui matchent les règles XSL –genère un nouvel arbre DOM à partir des instructions de ces règles –imprime le XML résultant n Volonté dêtre déclaratif mais possibilité dêtre procédural (javascript) pour pouvoir tout faire

133 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 133 XSLT (2) n n n Résultat avec hello! : hello! n Résultat avec hello! : hello! n Lutilisation dépend de loutil, en général : xt file.xml file.xsl > result.xml (avec le processeur XSLT xt de James Clark) n Attention! Internet Explorer 5 a un vieux moteur XSLT n Le type de résultat est déterminé par lélément xsl:output :, … n Depuis java : Une API standard émerge: TRaX.

134 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 134 Eléments XSLT (1) n Une stylesheet XSL est une suite de modèles : contenu n Une stylesheet XSL est une suite de modèles : contenu n Les attributs disent comment matcher : –match=XPath-expression –name=nom_de_la_règle –contenu est ce qui sera émis en remplacement n On peut réappliquer XSL au contenu en englobant dans un xsl:apply-templates n Ce qui nest pas dans le namespace de XSL est émis inchangé

135 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 135 Eléments XSLT (2) n xsl:stylesheet, xsl:transform (élement racine de la stylesheet) n xsl:include, xsl:import (importé non prioritaire) n xsl:strip-space, xsl:preserve-space (contenu: liste de noms délements) n xsl:output, xsl:decimal-format (format de sortie) n xsl:key (IDs genéralisées, sorte de XPointers) n xsl:namespace-alias (renommer préfixe en sortie) n xsl:attribute-set (ensemble dattributs) n xsl:variable, xsl:param (variables et valeurs par defaut)

136 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 136 Traitements avec XSLT (1) n Dans le contenu, on a des fonctionnalités de: n Création de nouveaux éléments XML: – – –+ xsl:attribute, xsl:text, xsl:processing-instruction, xsl:comment… n Extraction de données: – – –+ xsl:copy, xsl:copy-of n Langage de programmation: –contrôle de flux : xsl:if, xsl:for-each, xsl:choose, xsl:when, xsl:otherwise, xsl:apply-templates n Traitement de données: –conversions, xsl:sort, xsl:number

137 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 137 Traitements avec XSLT (2) n Difficultés: –comprendre comment matcher (XPath) –quand ré-appliquer aux sous élements –difficile à compiler n SUN promet une solution: translets ? n XSLT = un langage de prog. sans debugger avec une syntaxe horrible (mais neffraie pas les non-programmeurs ;-)

138 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 138 XSLT pull (1) n Traditionnel: on définit en XSL tous les élements du source et on en extrait (pull) certains tags, comme pour extraire dune base de données. n $14 $29 Livre Prix n $14 $29 Livre Prix

139 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 139 XSLT pull (2) n Livre Prix Starship Titanic $14 Dune $29 LivrePrix Starship Titanic$14 Dune$29

140 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 140 XSLT push (1) n Autre approche: mélanger XML et XSL dans un seul document XSL n Tout est copié, sauf les tags redéfinis n Semblable à de la programmation classique, évite les pièges Xpath n Sur le même XML que précédement: Livre Prix n Sur le même XML que précédement: Livre Prix

141 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 141 XSLT push (2) n Livre Prix Starship Titanic $14 Dune $29 LivrePrix Starship Titanic$14 Dune$29 n méthode quick and dirty, utile pour ajouter des macro-tags dans documents n mais pourquoi ne pas utiliser plutot un vrai langage/script de programmation?

142 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 142 XSLT + CSS ? n Peut être la meilleure combinaison: Génerer du (X)HTML + CSS depuis du XML via XSLT (ou autre) n Soit, pour lexemple, générer la structure en HTML : Livre Prix Starship Titanic $14 Dune $29 n Soit, pour lexemple, générer la structure en HTML : Livre Prix Starship Titanic $14 Dune $29 n et du CSS (ou mieux, CSS2) pour le look: td.titre { color: orange; }

143 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 143 SVG (1) n Pouvoir faire des dessins sur le web: structurés et vectoriels, donc plus petits n Gardant de la sémantique (texte sélectionnable) mais permettant un rendu de très haute qualité n SVG, Scalable Vector Graphics, 1.0 depuis le 5 sept 2001) n Combine puissance de postscript et filtres à la photoshop n En XML et CSS, avec liens, namespaces, DOM, etc… n Lexempel suivant crée une image en 35 lignes de SVG

144 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 144 SVG (2) n Example filters01.svg - introducing filter effects An example which combines multiple filter primitives to produce a 3D effect. n Example filters01.svg - introducing filter effects An example which combines multiple filter primitives to produce a 3D effect.

145 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 145 SVG (3) n SVG n SVG n Ce qui donne :

146 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 146 XML sur la couche application n XML est aussi utilisé sur et par la couche application n La couche application sert à gérer la partie logique dune application et gère les opérations à effectuer en réponse aux actions de l utilisateur… n 2 cas d utilisation de XML sur la couche application : –dialogue inter-applicatifs (Webservices,…) –container des fonctions de l application (langages de script compatibles XML) n Toutes les opérations sont effectivement implementées dans un langage de programmation (Java, python,…) n On peut les encapsuler dans du XML et les réutiliser sous forme de bibliothèque de balises (taglib)

147 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 147 JSP 1.2 n Les Java Server Page version 1.2 sont compatibles avec XML (respectent la syntaxe) n Le programmeur peut définir ses propres bibliothèques de balises qui correspondront à autant de fonction écrites en Java.

148 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 148 XSP n eXtensible Server Page est utilisé dans le système de publication XML open source Cocoon n java.text.SimpleDateFormat private static String timeOfDay(String format) { if (format == null || format.length() == 0) { format = "hh:mm:ss";} return SimpleDateFormat.getInstance().format(new Date(), format); } It's now timeOfDay(request.getParameter("timeFormat"));... n java.text.SimpleDateFormat private static String timeOfDay(String format) { if (format == null || format.length() == 0) { format = "hh:mm:ss";} return SimpleDateFormat.getInstance().format(new Date(), format); } It's now timeOfDay(request.getParameter("timeFormat"));...

149 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 149 RDF n Resource Description Framework n Sous ensemble de XML utilisé pour exprimer des meta-donnéees (propriétés, meta-data) sur des documents XML n Exemple : les balises ou veulent dire la même chose. RDF est limplémentation dun mécanisme très général pour faire cela. n RDF modélise en XML des relations entre 2 objets: –Containers: groupes de ressources (objets, relations) –Statements: application de relations sur les membres de groupes de ressources

150 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 150 RDF : Syntaxe n n n syntaxe abrégée: n syntaxe abrégée: n RDF est peu utilisé : technologie générale (trop?)

151 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 151 Xforms n Nouvelle norme pour remplacer les formulaires de HTML en XML (XHTML) n Séparation entre modèle de données (XForms model) et présentation (HTML, WML, Palm...) n Transfert des informations par HTTP, en XML n Vérifications et calculs locaux par un langage de contraintes n Ordres pour lier (binding) laffichage aux données avec XPath n Pages multiples –données: yes –données: yes –xform: Are you married? We need this to determine your tax allowance –xform: Are you married? We need this to determine your tax allowance –rendu : Are you married?

152 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 152 Web services n Web services est un mot à la mode recouvrant toutes les technologies pour que des programmes puissent séchanger des informations via le web. n Censé remplacer RPC, CORBA, DCOM, et les bricolages sur HTTP+HTML n Un ensemble de groupes en évolution, par ordre de stabilité: –XML-Protocols (SOAP) pour le transport (XML sur HTTP) n (Simple Object Access Protocol) –UDDI répertoire de services n (Universal Description, Discovery and Integration) –WSDL description des services, et de comment les utiliser n (Web Services Definition Language) –XKMS pour la sécurité n (XML Key Management Specification) –XLANG/XAML pour fournir un modèle transactionnel n XAML 2-phase commit n XLANG compensatory actions (undo) –ebXML ancien effort dans ce domaine n (electronic business XML)

153 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 153 XML Protocols : SOAP n Permet dappeler des fonctions/méthodes à distance de façon simple: –sur HTTP (ou dautres protocoles (SMTP) : SOAP est un meta-protocole!) –Les données sont en XML n SOAP 1.1 est une première instance de XML Protocols poussée par Microsoft (architecture.NET) après une lutte interne avec XML-data n Dautres protocoles supportant plus de modes de transport (SMTP…) devraient apparaître n SOAP 1.2 est en cours délaboration n Principe : –Une Enveloppe qui contient n header (info de transaction, sécurité...) n body (lappel de méthode lui-même)

154 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 154 SOAP: exemple n POST HTTP/1.0 Content-Type: text/xml; charset="utf-8" Content-Length: 587 SOAPAction: "http://www.SmartHello.com/HelloApplication#sayHelloTo" World n POST HTTP/1.0 Content-Type: text/xml; charset="utf-8" Content-Length: 587 SOAPAction: "http://www.SmartHello.com/HelloApplication#sayHelloTo" World

155 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 155 UDDI: exemple n Microsoft Microsoft Corporation Web services for smart searching... n Microsoft Microsoft Corporation Web services for smart searching...

156 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 156 WSDL n WSDL permet de décrire pour le web service des: –Types : la définition des types des données manipulées –Messages : les messages envoyés avec types acceptés –Operations : une action de haut niveau (composée de messages, requêtes, réponses...) –Port Types : les ports (URLs HTTP) et les messages quils acceptent –Bindings : les opérations à faire sur un Port Type –Port : un service élémentaire : binding + URL –Service : lensemble des ports

157 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 157 Les Web Services aujourdhui n Système meta complexe. n Microsoft veut le rendre facile à mettre en oeuvre depuis sa plateforme.NET n Enorme intéret actuellement. n SOAP va marcher, les autres… ?

158 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 158 Traitement des documents XML n Pour utiliser des documents XML dans un programme il faut les parser. n Le parsing consiste a lire un document XML pour en construire une représentation en mémoire sous forme darbre. n Génèrer un document XML à partir dun arbre est très facile, peu doutils proposent cette fonctionnalité (qui est en général implémentée par le développeur) n Implémentations rapides et libres des normes (xerces, sax,…)

159 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 159 SAX n API java de niveau lexical, puis adaptation à dautres langages (python...) n permet aux applications dutiliser nimporte quels parseurs XML via SAX n découpe le flux dentrée en tokens, et déclenche des fonctions sur chaque évenements = méthodes de handlers n efficace: permet de traiter des gigas de données avec peu de mémoire n bas niveau: convient à tous usage, faible overhead. n SAX 1: XML 1.0, SAX 2: gère namespaces n Code à écrire : lapplication doit construire larbre…

160 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 160 Evénements SAX XML Evènements SAX XML Evènements SAX n start document start element: doc start element: (para, attributes-list) Hello, world! characters: Hello, world! end element: para end element: doc end document n Il existe dautres évènements : ignorableWhitespace, processingInstruction,...

161 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 161 Utilisation de SAX n écrire les handlers: –DocumentHandler, –DTDHandler, –EntityResolver, –ErrorHandler n instancier un (des) parseur particulier –SAXparser=xml.sax.drivers.drv_xmlproc.SAX_XPParser() –SAXparser=xml.sax.saxexts.make_parser("xmlproc") –SAXparser=xml.sax.saxexts.make_parser() n positionner ses handlers –SAXparser.setDocumentHandler(DocumentHandler()) –SAXparser.setErrorHandler(ErrorHandler())… n lancer le parsing –SAXparser.parse(sys.argv[1]) n SAX: norme de fait dun individu qui sest imposée (J.Clark)

162 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 162 SAX Exemple (1) import org.xml.sax.AttributeList; import org.xml.sax.HandlerBase; import org.xml.sax.Parser; import org.xml.sax.Locator; import org.xml.sax.SAXException; /* Exemple d utilisation de SAX - NotifyStr.java */ public class NotifyStr extends HandlerBase { static public void main(String[] argv) { static public void main(String[] argv) { try { try { // get class object for SAX Driver (com.ibm.xml.parser.SAXDriver for XML4J) // get class object for SAX Driver (com.ibm.xml.parser.SAXDriver for XML4J) Class c = Class.forName(argv[0]); Class c = Class.forName(argv[0]); // create instance of the class // create instance of the class Parser parser = (Parser)c.newInstance(); Parser parser = (Parser)c.newInstance(); // create document handler, // create document handler, NotifyStr notifyStr = new NotifyStr(); NotifyStr notifyStr = new NotifyStr(); // and register it // and register it parser.setDocumentHandler(notifyStr); parser.setDocumentHandler(notifyStr); parser.parse(argv[1]); parser.parse(argv[1]); } catch (Exception e) {e.printStackTrace();} } catch (Exception e) {e.printStackTrace();} }

163 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 163 SAX Exemple (2) public NotifyStr() {} public void startDocument() throws SAXException { System.out.println("startDocument is called:"); System.out.println("startDocument is called:");} public void endDocument() throws SAXException { System.out.println("endDocument is called:"); System.out.println("endDocument is called:");} public void startElement(String name, AttributeList amap) throws SAXException { System.out.println("startElement is called: element name=" + name); System.out.println("startElement is called: element name=" + name); for (int i = 0; i < amap.getLength(); i++) { for (int i = 0; i < amap.getLength(); i++) { String attname = amap.getName(i); String attname = amap.getName(i); String type = amap.getType(i); String type = amap.getType(i); String value = amap.getValue(i); String value = amap.getValue(i); System.out.println(" attribute name="+attname+" type="+type+" value="+value); System.out.println(" attribute name="+attname+" type="+type+" value="+value); }} public void endElement(String name) throws SAXException { System.out.println("endElement is called: " + name); System.out.println("endElement is called: " + name);}

164 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 164 DOM : besoins n Historique : Javascript dans browsers pour pouvoir "faire bouger" n Le langage doit pouvoir accéder au document HTML dans le browser: – – n Problème: Netscape et Internet Explorer avaient des APIs différentes pour manipuler le document (DHTML). n Besoin dune API commune, le DOM Document Object Model (1998) n Historiquement pour HTML et javascript, puis pour XML et tout langage n DOM API abstraite, instanciée en bindings pour les langages –javascript, java, C++, perl, python, tcl,... n Permet de manipuler nimporte quel arbre n utilisé souvent par les parseurs eux-même

165 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 165 DOM (1) n DOM, norme officielle W3C n DOM ne spécifie que linterface au niveau source n pas de compatibilité binaire entre implémentations n les données ne sont même pas forcément implémentées sous forme darbre n ne fait que créer / manipuler larbre, pas load/save. n DOM level1, puis DOM level2 (namespaces: methodes postfixées par NS), DOM level3 en préparation (load/save)

166 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 166 DOM (2) n Un DOM est constitué de noeuds (nodes), de différents types: –Document, Element, Attr, Text, CDATAsection, Entity, Notation, Comment, Processing Instruction, EntityReference, DocumentType, DocumentFragment –Attributs sont des Nodes mais ne sont pas connectés dans larbre (pas retournés par la méthode node.childNodes). –Les fils des attributs sont des noeuds texte et/ou EntityReference: foo=a&bar;x est un attribut à 3 fils.

167 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 167 DOM Principes (1) n API à plusieurs visages: –Node : générique, tout est un noeud. n Simple et efficace, mais on perd le typage statique (approche Netscape) –Objet : plus lisible et typée mais moins efficace (en java et COM) –Type element, attributs, etc... (approche Microsoft) n Implémentation de DOM : –DOM Core + spécialisation par domaine –Exemple en SVG : n p.setX(45) n au lieu de p.setAttributeNS(null, x, 450);

168 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 168 DOM Principes (2) n Le problème : les objets DOM sont non typés (tout est un noeud), donc on perd toutes les contraintes de type. n Des prosélytes de la programmation objet proposent des interfaces objet (JDOM) n Il faut considérer DOM comme une interface à fournir à lextérieur, pas comme une façon de structurer ses données n Mais, comme beaucoup doutils ont une interface DOM, permet de très vite maquetter

169 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 169 DOM Exemple /* Exemple avec le parser xml dIbm (XML4J) - SimpleParse.java */ import org.w3c.dom.Document; import com.ibm.xml.parser.Parser; import java.io.FileInputStream; public class SimpleParse { public static void main(String[] argv) { public static void main(String[] argv) { try { try { // Open specified file. // Open specified file. FileInputStream is = new FileInputStream(argv[0]); FileInputStream is = new FileInputStream(argv[0]); // Start to parse // Start to parse Parser parser = new Parser(argv[0]); Parser parser = new Parser(argv[0]); Document doc = parser.readStream(is); Document doc = parser.readStream(is); if (parser.getNumberOfErrors() > 0) { System.exit(1); } if (parser.getNumberOfErrors() > 0) { System.exit(1); } // Codes for process the document will be here // Codes for process the document will be here } catch (Exception e) { e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } }}

170 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 170 DOM Specs n Manipulation de larbre: DOM Core. –Package org.w3c.dom.* –Fournit des objets et des méthodes abstraits à implémenter par les parseurs (class Node,… méthodes getFirstChild(), getNextSibling, getParentNode(),…) n DOM Level 3 : Modularisation et séparation en plusieurs modules

171 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 171 DOM Views n Gérer les différentes vues sur le même document n Clicks dans une vue : dans quel noeud du document?

172 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 172 DOM Events n Comment avoir des évènements sur les nodes n Actions de lutilisateur –passage de la souris, –click, –focus n Modification de structure du document –ajout de noeud, –suppression…

173 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 173 DOM Style n Comment manipuler en mémoire les styles sheets n Nimporte quel type de style sheets et CSS en particulier

174 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 174 DOM Traversal & Range n Comment parcourir larbre –itérateurs = "déroule" larbre comme si à plat –TreeWalkers = garde la structure n Filtres sur noeuds n Comment spécifier une plage (range) de nœuds entre 2 points de larbre

175 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 175 XML sur la couche donnée n XML est principalement un format de stockage des données n Il existe plusieurs possibilités pour utiliser XML sur la couche donnée : –utilisation de système de gestion de bases de données nativement XML (Ozone, Xindice [ex dbXML],...) –mapping entre une base de données relationnelle et des objets, méthodes et propriétés de chaque instance ensuite stockées / envoyées en XML n développé à la main, n aides dans certaines architectures (Container Managed Persistence dans J2EE,…)

176 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 176 Conclusion n XML et surtout la cohorte de sous-ensembles spécialisés qui laccompagnent répondent à la plupart des besoins n XML permet de combiner des applications très différentes en utilisant un langage commun n XML est réçent mais sa croissance et son adoption sont rapides Il faut faire son choix entre les nombreux sous-ensembles, parfois en doubles, et miser sur ceux qui resteront

177 12 octobre 2001Patrick Itey / Ludovic MaîtreXML et ses applications - page 177 Références n n Le site du W3C : w3.org n n Spécification XML annotée : xml.com/axml/axml.html n n Tutoriaux : java.sun.com/xml n n Site généraliste - xml.com n n Info sur logiciels commerciaux : xmlsoftware.com n n Info sur logiciels open-source : xml.apache.org - n Le site de Robin Cover n et google.com !


Télécharger ppt "XML et ses applications XML et ses applications"

Présentations similaires


Annonces Google