of 49 /49
CHAPITRE 6 INTRODUCTION A XML

CHAPITRE 6 INTRODUCTION A XML. Plan Historique XML Exo 1 DTD Exo 2 XSL Exo 3 SAX DOM

Embed Size (px)

Text of CHAPITRE 6 INTRODUCTION A XML. Plan Historique XML Exo 1 DTD Exo 2 XSL Exo 3 SAX DOM

  • Page 1
  • CHAPITRE 6 INTRODUCTION A XML
  • Page 2
  • Plan Historique XML Exo 1 DTD Exo 2 XSL Exo 3 SAX DOM
  • Page 3
  • Les TP Exo 1 : Ecrire un document XML valide Exo 2 : Ecrire la DTD Exo 3 : Ecrire une feuille de style XSL
  • Page 4
  • 1. Gnralits - Historique XML signifie Extensible Markup Language C est standard reconnu par le W3C depuis fvrier 1998, Il est drive du SGML dont il reprsente un sous ensemble, Il avait pour intrt initial de faciliter l change de donnes informatique en remplaant l EDI. La version 1.0 est disponible depuis 1998
  • Page 5
  • 1. Gnralits - Historique Le SGML lorigine du XML ! SGML (Standard Generalized Markup Language) (ISO 8879) est le l angage de rfrence en GED. SGML est devenu une norme internationale en 1986. SGML dissocie la structure d'un texte de sa prsentation physique. La typographique, elle est laisse loutil de mise en page qui en donne une forme physique. SGML permet de distinguer la structure d'un texte de son contenu.
  • Page 6
  • 1. Gnralits - Comparer HTML & XML : Les forces de HTML Standard sur les navigateurs du march, Filtre gnrant du HTML dans la plupart des outils Bureautique, Portable d un environnement l autre : UNIX, WINDOWS, APPLE,.. Facile d utilisation & comprendre, Existence d une gamme importante d outils sur le march, Editable & modifiable avec un simple diteur de textes. Documents souvent peu volumineux.
  • Page 7
  • 1. Gnralits - Comparer HTML & XML : Les lacunes de HTML HTML ne permet pas de distinguer la partie prsentation, de la partie donnes. Une page HTML est difficilement exploitable pour extraire linformation et la retraiter : Exemple : constituer une base de donnes de recette en exploitant les nombreux sites disponibles sur Internet..! Effectuer une recherche dans un ensemble de fichiers HTML donne des rsultats approximatif. Exemple : Une recherche dans un moteur de recherche fournit un nombre important de rfrence sans rapport avec la requte lance. Impossible de prsenter de faons diffrentes les donnes d une page HTML. Exemple : rfrences croises. Difficile de complter les donnes d une page HTML statique. HTML ne permet pas de complter les balises en fonction des besoins. Evolution des balises soumises au W3C
  • Page 8
  • 1. Gnralits - Comparer HTML & XML : Les Avantages de XML XML est un langage de spcification Permet la cration de balises : Les balises et leurs contenus reprsentent un structure de donnes. Sparation du contenu et de la reprsentation : Les feuilles de styles XSL permettent de formater les donnes. La dfinition des Balises est contenu dans un dictionnaire appel Document Type Definition (DTD) optionnel permettant de crer un dialecte XML. Exemple : Mathematical Markup Language (MathML) Utilisation de XML pour les quations mathmatiques Chemical Markup Language (CML) Utilisation de XML pour les objets chimiqies La rdaction d un document XML est soumise des rgles strictes, vitant ainsi toute ambigut.
  • Page 9
  • 1. Gnralits - Comparer HTML & XML : Les Inconvnients de XML On ne peut pas aujourdhui architecturer entirement un systme dinformation en XML. XML nest quun lment dune architecture plus complexe. Les outils de conception actuels sont encore incomplets. Seul IE 5 reconnat actuellement XML. Navigator partir de la version 6 interprtera galement ce langage. La p lupart des navigateurs utiliss aujourdhui ninterprte pas le XML. Les parseurs disponibles donnent des rsultats quelques fois diffrents. Principalement dans linterprtation des feuilles de styles.
  • Page 10
  • 2. Le XML - Spcifications de XML XML dvelopp par le XML Working Group form par le W3C en 1996. Les objectifs de conception de XML sont les suivants : 1.XML sera utilisable sans difficult sur Internet ; 2.XML soutiendra une grande varit d'applications ; 3.XML sera compatible avec SGML ; 4.Il sera facile d'crire des programmes traitant les documents XML ; 5.Le nombre d'options dans XML doit tre rduit au minimum, idalement aucune ; 6.Les documents XML devraient tre lisibles par l'homme et raisonnablement clairs ; 7.La conception de XML devrait tre prpare rapidement ; 8.La conception de XML sera formelle et concise ; 9.Il sera facile de crer des documents XML ; 10.La concision dans le balisage de XML est de peu d'importance.
  • Page 11
  • 2. Le XML - Structure d un fichier XML Un document XML peut tre reprsent sous la forme dun Arbre. Il possde une racine et chaque Elment reprsente un nud.
  • Page 12
  • 2. Le XML - Dfinition Dclaration : En premire ligne dans un document XML Facultative mais recommande par le W3C Racine : Elment UNIQUE Elments : Dfinissent le contenu d une balise XML Peuvent contenir d autres lments Peuvent tre vides Peuvent contenir du texte. Attributs : Ajoutent des donnes un lments Entits : Raccourcis Similaires aux constantes
  • Page 13
  • Le XML permet de crer ses propres balises. Exemple de document structur en XML : 5 1.2 Essence 4 1.3 Diesel &amp Diesel 2. Le XML - Exemple Dclaration Attribut Racine Elment Entit
  • Page 14
  • 2. Le XML - Type d encodage XML utilise les jeux de caractres de la norme ISO 10646 ou Unicode. Standard contrl par le W3C, permet de supporter les caractres de tous les langages. Ainsi tous les caractres internationaux peuvent tre rfrencs en utilisant leur reprsentation Unicode : Ex pour utiliser Les caractres sont cods sur 4 octets pour rduire la taille des chanes un diffrents types de codage peut tre utilis : Les plus frquemment utiliss sont : UTF-16 : codage des caractres sur 16 bits UTF-8 : codage des caractres sur 8 bits.UTF-7 : codage des caractres sur 7 bits ISO-8859-1
  • Page 15 Les types d attributs : #REQUIRED: obligatoire #IMPLIED: facultatif #FIXED: valeur par dfaut spcifie Exemple : >">
  • 3. La DTD - Les Attributs Linstruction ATTLIST Cette instruction associe des attributs un lment : Les types d attributs : #REQUIRED: obligatoire #IMPLIED: facultatif #FIXED: valeur par dfaut spcifie Exemple : >
  • Page 22
  • 3. La DTD - Les Schmas Sous limpulsion de Microsoft, la notion de schma a t introduite dans XML. Lacune de la DTD : La DTD ne permet pas de spcifier le type dun lment (string, date,..) Le Schma devrait remplacer terme la DTD. Plus complte elle introduit les notions : De contrainte sur le contenu du modle. Ordre et squence des Elments. De contrainte sur les types de donnes. Valeurs valides pour une donnes. Nanmoins, l absence de spcification, est un frein au dveloppement des Schmas. Les principales propositions sont : XML Data/XML Data Reduced Document Content Description (DCD) : Typage Fort des Donnes, Limite des valeurs, Hritage.
  • Page 23
  • 3. La DTD - Les Schmas 5 1.2 Essence 4 1.3 Diesel &amp Diesel
  • Page 24
  • 3. La DTD - Les Schmas
  • Page 25
  • 3. La DTD - Les Schmas
  • Page 26
  • 4. Les NAMES SPACES Ils correspondent une recommandation du W3C datant de janvier 1999. Ils permettent didentifier de manire unique les balises utilises dans un document XML. Les espaces de nom sont utiliss afin de bien dissocier les diffrentes syntaxes que l'on peut trouver dans un document XML. Dclaration : Plusieurs names spaces peuvent tre utilis dans la rdaction d un document XML. xmlns:name1="http//../nspaces/name1.dtd" xmlns:name2="http//../nspaces/name2.dtd" Dans le Document les lments seront alors prfixs de nom correspondant leur names spaces.
  • Page 27
  • 5. Feuilles de Style XSL - Dfinition Langage de mise en forme de feuille de Style : Il permet la transformation dune feuille XML. Il permet la manipulation dun arbre ou chaque lment XML reprsente un nud. Il en rsulte un nouvel arbre. XSL fournit la plupart des structures de contrle dun langage classique. XSL permet de gnrer des arbres sous diffrents formats (XML, HTML,..). La transformation XSL : Le rsultat s obtient en appariant les structures (Pattern matching). Ceci permet donc de slectionner le nud, l attribut sur lequel doit s appliquer une transformation. Un modle (template) permet d indiquer les actions raliser lors de l appariement. Il est compos de rgles de mise en forme.
  • Page 28
  • 5. Feuilles de Style XSL - Rle XSL est utiliser pour transformer un page XML en HTML en WML... Une page XML est une source de donnes. Les pages XSL sont des reprsentations diffrentes des donnes : Rfrences croises, cumuls, tris, traitements divers sur les donnes, Une page XSL est un document XML bien form. Attention la DTD de l arbre destination peut-tre diffrente de l arbre d origine. On compare souvent CSS XSL. CSS ne dispose pas de structure de contrle, il ne permet que la mise en forme.
  • Page 29
  • 5. Feuilles de Style XSL - Exemple page XML
  • 5. Feuilles de Style XSL - Le matching * correspond n'importe quel lment element1 | element2 trouve tous les lment element1 et element2 element1 / element2 trouve tous les lments elemen2 ayant element1 comme parent element1 // element2 correspond n'importe quel lment element2 dont un anctre est element1 / correspond au noeud racine text() correspond n'importe quel noeud textuel processing-instruction() correspond n'importe quel instruction de traitement node() correspond n'importe quel noeud autre qu'un noeud attribut et que le noeud racine element1 [1] correspond au premier des lments element1 d'un parent element1 [last()=1] correspond n'importe quel lment element1 qui est l'unique lment element1 de son lment parent element1 / element2[position()>1] correspond tous les lments element2, autres que le premier, et dont le parent est element1 @class correspond tous les attributs class @* correspond n'importe quel attribut
  • Page 32
  • 5. Feuilles de Style XSL - Structures de contrles Cration de variables Cration d'lments : Cration dattributs : Cration dun text : blabla
  • Page 33
  • 5. Feuilles de Style XSL - Structures de contrles Insertion de la valeur dun lment : Boucle : Tri : Alternative : Exemple :
  • Page 34
  • 5. Feuilles de Style XSL - Exemple Liste Employe Rgle modleBoucleAppel d'une rgleParamtreCration d'un Element
  • Page 35
  • 5. Feuilles de Style XSL - Exemple z Rcupration du Paramtre ConditionnelleAffichage d'une variable Rgle modle
  • Page 36
  • 6. Les API - SAX Interface Simple API for XML (SAX). Ces API sont orientes vnements. Le gestionnaire d vnement est similaire celui de Windows pour grer les IHM. Le moteur SAX dclenche un vnement lorsquil dtecte une balise de dbut ou une balise de fin. Implment en JAVA, Python, PHP. Avantage : Ne charge pas globalement le fichier XML en mmoire avant de commencer le traitement. Inconvnient : Pas de construction darbre Fonction PHP3 : int xml_set_element_handler(int parser, string startElement, string endElement); parser : pointeur sur un objet parseur startElement : fonction dclenche lorsquune balise de dbut est rencontre. endElement : fonction dclenche lorsquune balise de fin est rencontre.
  • Page 37
  • 6. Les API - SAX Exemple en PHP $file = "data.xml"; $depth = array(); function startElement($parser, $name, $attrs) {... } function endElement($parser, $name) {... } $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startElement", "endElement"); if (!($fp = fopen($file, "r"))) { die("could not open XML input"); } while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } xml_parser_free($xml_parser); Fonction excute pour traiter le dbut dun lment Fonction excute pour traiter la fin dun lment Objet ParserAssocie les EvtsTraite le fichierGestion des Erreurs
  • Page 38
  • 6. Les API Appariage en PHP 4 Chaine XSLChaine XMLAppariage
  • 7. Les API - DOM Parcours dun arbre en ASP Objet DOMChargement SynchroneChargement du documentRacineNbre de Nuds Fils Parcours des FilsTraitement des Fils
  • Page 42 Doc XMLDoc XSLDOM XMLDOM XSLAppariage">
  • 7. Les API DOM Appariage XSL en ASP Doc XMLDoc XSLDOM XMLDOM XSLAppariage
  • Page 43
  • 8. Les logiciels - Les parsers XML Cot Serveur Les parsers Validant Microstar Aelfred Les parsers non Validant MSXML (intgr IIS) IBM XMLJ Ct client Internet Explorer 5.0 Netscape Navigator V6 Interface de programmation Interface Simple API for XML (SAX) Interface Document Oject Model (DOM)
  • Page 44
  • 8. Les logiciels - Parsing cot client IE 5 / Navigator 6
  • Page 45
  • 8. Les logiciels - Parsing cot serveur
  • Page 46
  • 8. Les logiciels - Les langages de requtes XML-QL Propos par Bell Labs Il permet d'interroger des documents XML Il fournit galement un interface de cration de document XML Ce langage est inspir du SQL XQL Propos par Microsoft Il permet d'interroger des documents XML via XSL Base de donnes Orients Objets Elles gnrent des documents XML ORACLE v 8i SQL Serveur 2000 fournit des fonctionnalits XML
  • Page 47
  • 8. Les logiciels - Les diteurs XML Editeurs XML XML Notepad (Parser Microsoft) XMLPRO (Parser IBM XML 4J) Xmetal de softquad Editeurs DTD XML Autority : Construction graphique d un DTD Near & Far Designer XML Editeurs XSL eXcelon Stylus XML SPY
  • Page 48
  • 9. Les Rfrences - Les sites WEB La rfrence dans le domaine : http://www.w3.org http://msdn.microsoft.com/xml/reference/xsl/XSLElements.asp http://www.w3schools.com/ http://www.vbxml.com/xsl/
  • Page 49
  • 9. Les Rfrences - Les ouvrages La rfrence dans le domaine : XML. Langage et applications de MICHARD, Alain EYROLLES INTRODUCTION AU XML SAINT-LAURENT Simon OSMAN EYROLLES MULTIMEDIA 2000 XSLT Programmer's Reference Michael KAY Edition WROX