Le XML : une norme, des langages, un ensemble de technologies06/01/05
Par
erwan amoureux (homepage) Une rapide synthèse du monde XML, ce qu'est cette norme, son rôle, ce qui en dérive ... 1. La norme XML 1. Sa genèse 2. Son rôle 3. Sa forme 1. Les processings instructions(PI): 2. Les balises 3. Les attributs 4. Les commentaires 5. les CDATA Sections 6. Les namespaces 7. La racine 4. Ses outils de lecture:les parseurs 1. SAX (Simple Api for Xml) 2. DOM (Document Object Model) 5. Son développement 2. Les technologies XML 1. Les outils des fichiers XML 1. Les outils syntaxiques . Les DTD 2. Les XML Schéma 2. les outils de "requêtage" 1. Xpath 1.0 2. Xquery 1.0 3. Xpath 2.0 3. les outils de transformations 1. XSLT 2. DOM 4. les outils de présentations 1. XHTML 2. XSL (XSL-FO) 2. les technologies issues de xml 1. les langages de présentations 1. XHTML 2. XSL (XSL-FO) 2. les langages spécialisés normés XML 1. SVG : langage de représentation graphique 2. MathML : les calculs scientifiques 3. les technologies basées sur ce format 1. protocole d'échange: SOAP 2. les web services 3. Bases de données XML 3. Conclusion 1. La norme XML1. Sa genèse
XML signifie eXtensible mark up language, c'est en quelque sorte une norme née de l'expérience acquise grâce au HTML.Comme lui en effet, il appartient à la famille SGTML, les langages de balises. 2. Son rôleXML est un langage de spécification de balisage, de description de données.Il n'a donc rien à voir avec des lagages comme C, C++, Java etc.... qui sont des langages de programmations, aptent à effectuer calculs, actions.... XML est donc un langage qui ne fait rien par lui même mais qui permet le stockage ou la transmission de données ou qui peut être lui même utilisé par un autre langage. Le succès d'XML vient donc en premir lieu d'avoir posé une norme, non propriétaire, pour l'encapsulation de donnée, ainsi que des outils simples et universelle pour sa lecture, permettant à des clients divers, ne se connaissant pas forcemment, d'echanger simplement des informations. Xml est aussi un méta-langage, ont peut donc écrire d'autre langages grâce à celui-ci.C'est même la tout l'intèrêt du noyau de langage qui s'et constitué autour de lui. Ces mêmes langages qui le manipulent, étant eux même du XML, peuvent interragir entre eux voir sur eux mêmes. 3. Sa forme
Les fichiers XML sont des fichiers textes qui, à l'aide de balises, structure les données sous formes d'arbres.
Ils respectent une syntaxes strictes.
Ils sont composés de six types d'éléments:
1. Les processings instructions(PI):Un fichier XML commence "presque" obligatoirement par la processing instruction:
La liste des attributs de cette PI:
Quelques exemples où standalone sera à NO :
Il existe un grand nombre d'autres PI:
Celle-ci par exemple lie le fichier xml avec le fichier truc.xslt . 2. Les balises
Quelques règles de syntaxe :
Attention xml est case sensitive.
3. Les attributs
Quelques règles de syntaxe :
Attention xml est case sensitive.
4. Les commentairesLes commentaires peuvent apparaître n'importe ou dans le document SAUF à l'intérieur d'une balise. Les commentaires ne font pas parties des données xml du document.
5. les CDATA SectionsLes CDATA Sections servent à transformer des balises en simple texte.Ils peuvent se trouver partout ou une valeur texte peut être requise(comme valeur d'attribut ou de balise)Ainsi dans
le texte <html><body>hello world!</body></html> ne sera pas interpété par un parseur xml comme des balises, mais comme du texte. Cela n'a rien voir avec les commentaires, une CDATA Section fait bien partie des données du document. 6. Les namespacesC'est cet élément qui permet à XML d'être un méta-langage.En effet le namespace permettent de renvoyé les sens de balises "préfixés" à une url ou une uri.Cela permet de les identifier, voir de les traiter, differemment d'une simple balises xml. Tous les langages de norme xml possèdent leur propre namespace. 7. La racineLa dernière règle de forme d'un fichier XML, est qu'il doit contenir une balise, dite racine(aucun nom n'est imposé), qui contient toutes les autres, elle se situe juste en dessous des PI.
4. Ses outils de lecture:les parseursUn parseur est outil logiciel, un analyseur syntaxique, qui permet de valider un document XML et de le lire, voir de le modifier. On considère esssentiellement deux types de parseur:
1. SAX (Simple Api for Xml)SAX est une API basée sur un modèle événementiel, SAX transforme donc un document XML en un flux dévènements syntaxiques (balise ouvrante, balise fermante, etc.). Le modèle est un peu calqué sur celui des interfaces graphiques, l'application devenant un "écouteur d'événement". SAX à comme avantage, grâce à son fonctionnement, de ne lire le code que par portions , cequi lui évite de le charger en mémoire.Il est donc très intéressant pour la lecture des gros documents. Attention néanmoins, il ne possède aucune "mémoire" et ne permet que la lecture. Un exemple avec ce fichier XML :
Une interface événementielle telle que l'API SAX permet de créer des événements à partir de la lecture du document ci-dessus. Les événements générés seront :
L'API SAX L'API SAX définit les quatre interfaces suivantes : DocumentHandler possèdant des méthodes renvoyant des événements relatifs au document :
ErrorHandler Les méthodes renvoyant des événements relatifs aux erreurs,en particuliers celles de validations. 2. DOM (Document Object Model)Il est basé sur le principe d'un arbre hiérarchique, le fichier xml, après avoir été totalement chargé en memoire, prenant cette forme.Son approche diffère donc totaement de SAX ,même s'il peut être construit au dessus de ce dernier; un ContentHandler spécifique transforme le flux dévènements en un arbre.Il est lui aussi une recommendation du W3C:Level 1 : 1 octobre 98, Level 2 (XML) : 13 novembre 2000,tous les éléments du level 3 ne sont pas encore des recommendations à ce jour.Sa forme:
Le chargement en mémoire de la totalité des données, s'il le rend plus couteux, procure un gros avantage à DOM, celui de pouvoir modifier ce XML(contrairement à SAX).Néanmoins la difficulté d'utilisation de cet outils a fait que d'autre, inspiré de son système, sont apparus comme JDOM pour Java 5. Son développementLe developpement de la norme XML continue, ne serait ce qu' caue de l'évolution d'autre norme. En effet, les codes unicodes, lors de la première recommendation d'XML en 1998 était à la version 0, fin 2004 nous en sommes à la version 4.0. Les règles de nommages étant défini par une grammaire utilisant les codes Unicodes, ces modifications ont donnée lieu à une recommendation du W3C du 04 fevrier 2004: XML 1 . 2. Les technologies XML1. Les outils des fichiers XMLAutour de la norme XML, c'est greffé tout une pléiade de langages ou d'outils logiciel visant à travailler/modifier/utiliser des fichiers xml;que ce soit analyse lexicale, extraction de donnée, transformation ..... La grande différence avec le point développés après : "les technologies issues de xml", vient qu'on peut les considérer comme faisant partie du "noyau d'XML". Ces outils visent à des travaux sur des fichiers normés XML, que ceux ci aient l'extension .xml ou une autre (.svg,.xslt,.xsd...). 1. Les outils syntaxiquesDans "3 Sa forme", nous avons vu ce qui fait qu'un document est bien formé mais cela reste insuffisant pour l'échange ou la validation de données. Pour ceci, le format d'un fichier xml, l'ordonnancement de ces balises,attributs, doit être connu et exprimable. Deux langages essentiellement le permettent via un parcours dit "validant" d'un parseur XML (SAX/DOM).La structure du fichier XML sera comparé à la grammaire exprimée dans l'un des langaes ci dessous, et considéré valide en cas de succès de l'opération. . Les DTDCe langage est plus ancien que la norme XML, cette même norme a d'ailleurs été exprimé grâce au DTD. 2. Les XML SchémaIls sont en quelques sortes les descendands des dtd.Ce langage d'implémentation syntaxique, à pour but : d'être plus complet que les DTD(certains cas ne pouvant s'exprimer) d'être lui-même au format xml.Ce qui permet à un fichier xsd de subir exactement les même lecture/transformation voir analyse lexicale que n'importe quel autre fichier xml. 2. les outils de "requêtage"1. Xpath 1.0C'est le langage de base 2. Xquery 1.0
3. Xpath 2.0une évolution 3. les outils de transformations1. XSLT
2. DOM
4. les outils de présentationsL'un des buts d'XML étant de la séparation des données et de la présentation, et comme aucun des langages sus-cités ne manipulant directement des données XML(XSLT sera généralement l'intermédiaire qui permettra d'inclure les données dans le code), on eput considérer comme un abus de les qualifiés d'outils XML. Néanmoins l'affichage d'une donnée étant essentielle, sovent le centre de toute demande, il nous à paru importer de conserver ce lien. 1. XHTMLXML est né en grande partie des insuffisances et des problèmes lié au développement de HTML, après l'apparition de ce dernier des tentatives de normalisation d'HTML ont été conduites. Leurs buts: produire une norme qui serait déja supporté par la majorité des navigateurs précédents(suppression de touts les balises propriétaires) normé XML le HTML (obligation de fermer les balises,présence de valeur pour les attributs etc....) 2. XSL (XSL-FO)
2. les technologies issues de xml1. les langages de présentationsL'un des buts d'XML étant de la séparation des données et de la présentation, et comme aucun des langages sus-cités ne manipulant directement des données XML(XSLT sera généralement l'intermédiaire qui permettra d'inclure les données dans le code), on peut considérer comme un abus de les qualifiés d'outils XML. C'est pourquoi, malgré le rapprochement généralement fait entre xsl(-fo) et xslt, ces technologies n'ont pas été rangées avec les outils XML.Elles ne font pas parties du "noyau" commun de xml. 1. XHTMLXML est né en grande partie des insuffisances et des problèmes lié au développement de HTML, après l'apparition de ce dernier des tentatives de normalisation d'HTML ont été conduites. Leurs buts: produire une norme qui serait déja supporté par la majorité des navigateurs précédents(suppression de touts les balises propriétaires) normé XML le HTML (obligation de fermer les balises,présence de valeur pour les attributs etc....) 2. XSL (XSL-FO)
2. les langages spécialisés normés XML
1. SVG : langage de représentation graphique
2. MathML : les calculs scientifiques
3. les technologies basées sur ce format1. protocole d'échange: SOAP
2. les web services
3. Bases de données XML3. Conclusion
Copyright © 2004 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
|