1 / 40

XML : concours d’acronymes ou futur standard ?

XML : concours d’acronymes ou futur standard ?. Bilan de l’école Franco-Maghrébine IN2P3 Jean-Michel Gallone 7.12.2001. XML : la famille. Né : fin 96 Père : W3C Petit-fils de SGML (ISO-1986) Cousin d’HTML Reconnu le : 10/02/98 – version 1.0 Descendance – XHMTL, MathML, ….

zariel
Download Presentation

XML : concours d’acronymes ou futur standard ?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XML : concours d’acronymes ou futur standard ? Bilan de l’école Franco-Maghrébine IN2P3 Jean-Michel Gallone 7.12.2001

  2. XML : la famille • Né : fin 96 • Père : W3C • Petit-fils de SGML (ISO-1986) • Cousin d’HTML • Reconnu le : 10/02/98 – version 1.0 • Descendance – XHMTL, MathML, …

  3. X comme eXtensible • HTML : nombre fini de balises • XML : possibilité de définir les balises • HTLM : balises pour formater • XML : balises pour structurer • DTD ou Schéma pour définir les balises

  4. M comme Markup • Tous les éléments sont repérés au moyen de balises • Les balises servent à structurer le document

  5. L comme Language • Langage de description de documents • Règles à respecter

  6. Document XML • Données binaires • Données textuelles • Norme Unicode • Marques : • Balises de début, de fin, références, commentaires, instructions de traitement • Définition de Type de Document

  7. Élément • Composant de base • Identifié par un nom • Délimité par une balise ouvrante et une balise fermante <AUTEUR> Victor Hugo </AUTEUR> • Ou élément vide <PHOTOSource= "victor.gif"/> • Contenu textuel, éléments ou mixte

  8. Les attributs • Inclus dans la balise ouvrante d’un élément • Composé d’un nom et d’une valeur <AUTEUR NE="1802" MORT="1885"> Victor Hugo </AUTEUR>

  9. Exemple XML <?xml version="1.0" Encoding= "ISO-8859-1" ? > <memolangue="fr" urgence= "maximale"> <to> Enfants Sages </to> <from> Père Noël </from> <date> 7/12/2001 </date> <body>Livraison confirmée <jour>25/12</jour> <heure>0h00</heure> <lieu>cheminée</lieu> </body> </memo>

  10. …et aussi • <!-- des commentaires --> • Des entités externes/internes, analysables ou non &amp &quot &gt &lt • <![CDATA [ …tout et n’importe quoi… …0x01265423deadbeef49653453462… ]]>

  11. Règles syntaxiques • Commencer par une déclaration XML • Balisage sensible à la casse • La valeur des attributs doit être quotée • Balises non vides appariées <br></br> • Balises vides fermées <br/> • Les élèments ne doivent pas se chevaucher<jour> <mois> </jour> </mois>interdit • Un élément doit encapsuler tous les autres • Ne pas utiliser les caractères < et & seuls

  12. Type de document (Doctype) • Permet de validerun document XML • Grammaire • Définir la DTD <!DOCTYPE … > • Interne / externe <?xml version= "1.0" standalone = "yes" > • Publique / privée

  13. Exemple de DTD <?xml version="1.0" Encoding= "ISO-8859-1" ? > <!DOCTYPE memo [ <!ELEMENT memo (to, from, date, body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT date (#PCDATA)> <!ELEMENT body (#PCDATA|jour|heure|lieu)> <!ELEMENT jour (#PCDATA)> <!ELEMENT heure (#PCDATA)> <!ELEMENT lieu (#PCDATA)> <!ATTLIST memo langue CDATA "Alsacien"> <!ATTLIST memo urgence CDATA "normal"> ]>

  14. Spécifications éléments (#PCDATA) Parsed Character DATA (ELT) 1 fois ELT (ELT1,ELT2) Séquence (ELT1|ELT2|…) Choix ELT? 0 ou 1 fois ELT ELT+ au moins 1 fois ELT ELT* 0 ou plusieurs fois ELT () groupe de sous éléments ANY n’importe quoi EMPTY rien

  15. Spécifications d’attributs CDATA données textuelles NMTOKEN nom XML valide NMTOKENS noms XML valides (val-1|val-2|…val-n) liste de valeurs ID identificateur unique IDREF valeur d’un ID IDREFS valeurs d’Ids ENTITY entité externe non analysable ENTITIESentités externes non analysables

  16. Limites des DTD • Syntaxe non XML • Pas de type (entier/réel/chaînes…) • Pas de notion d’espace de nom • … Mai 2001, le W3C défini les Schémas XML • Syntaxe XML • types (entier/réel/chaînes…) • Notion d’espace de nom • …

  17. XSD « poupées russes » <?xml version="1.0" Encoding= "ISO-8859-1" ? > <xsd:element name="memo"> <xsd:complexType> <xsd:sequence> <xsd:element name="to" type="xsd:string" /> <xsd:element name="from" type="xsd:string" /> <xsd:element name="date" type="xsd:date" /> <xsd:element name="body" type="xsd:string" > <xsd:complexType> <xsd:sequence> <xsd:element name="jour" type="xsd:date" /> <xsd:element name="heure" type="xsd:time" /> <xsd:element name="lieu" type="xsd:string" /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attribute name="langue"type="xsd:string" use="optional" /> <xsd:attribute name="urgence"type="xsd:string" use="required" /> </xsd:complexType> </xsd:element>

  18. XSD « catalogue » • Définition des éléments (classe) <xsd:element name="to" type="xsd:string" /> • Référence à l’élément (instance) <xsd:element name="memo"> <xsd:complexType> <xsd:sequence> <xsd:element ref="to"/> …etc • Permet de factoriser

  19. XSD « types nommés » • Définir de nouveaux types • Restrictions <xsd:simpleType name="TypeISBN"> <xsd:restriction base = "xsd:string" > <xsd:pattern value = "[0-9]{10}" /> </xsd:restriction> </xsd:simpleType> • Union : autre type de dérivation • Groupes : définir des types complexes

  20. …vers l’orientation objet • Groupe de substitution • Éléments abstraits (classes abstraites) • Dérivation de type (heritage) • Restriction, extension (surcharge) • Modularité des schémas • Gestion des espaces de noms

  21. http://www.xml.org

  22. Le langage XPATH • Syntaxe et sémantique partagées par d’autres outils (XSLT, Xpointer…) • But : adresser les différentes parties d’un document XML • Représentation en forme d’arbre • Type de nœuds : Racine, éléments, texte, attributs, espace de noms, instruction de traitement, commentaires • Adressage type système de fichiers

  23. Arbre de noël

  24. localisation • Chemin relatif/absolu • /memo/body/lieu • Axe de localisation • self, child, desecendant, parent, ancestor, … • Test de nœuds • text(), comment(), … • Prédicats • last(), position(), count(), name(), … /memo//[lieu="cheminée"]

  25. eXtensible Style Language Transformation XSL Processeur XSLT XML XML Ou texte Ou HTML

  26. Feuille de style XSLT • Transformer un arbre • Feuille de style = ensemble de règles • Association motif / modèles • Objectif : • Production de texte • Personnalisation d’un document • Réorganisation • …

  27. Feuille de style CSS • Cascading Style Sheet • Langage très simple (non XML) • CSS1 : décembre 96 CSS2 : mars 98 • Encore mal supporté par les browsers (sauf Opera 4.02) • Liste de règles qui décrit les éléments • Pour chaque élément • Couleurs et image • Polices de caractère • Textes • Boites • Classification (style de listes, affichage par bloc…)

  28. CSS dans XML (ou HMTL) • But : présentation vers browser • Via instruction de traitement <?xml-stylesheet type = "text/css" href="styleCD.css" ?> • href désigne l’URI de la feuille

  29. XSL-FO (Formatting Objects) • Langage XML pour formater • Finalisé par W3C fin Octobre 2001 • Similaire à HTML/CSS mais beaucoup plus puissant • Outils permettant de générer PDF (FOP) • Devrait plaire aux utilisateurs Latex…

  30. Principe de XSL-FO • Découpage par pages • Notion de boites • Contenu (texte, espace, images, objets…) • Type (région, bloc, ligne, boite en-ligne,…) • Hiérarchie • Caractéristiques (position, fontes…) • Pages maîtres • Séquences de pages • Numérotation • …

  31. XLINK • Lien externe vers autre document • Lien simple HREF classique • Lien étendu Personnaliser les liens • Localisation des ressources distantes • Mécanisme de traversée • Texte facilitant l’emploi • Ressources locales associées • En cours de stabilisation…

  32. XPointer • But : adresser un fragment de ressource • Même arbre que processeur XSL • Utilisation de XPath • En cours de stabilisation…

  33. API SAX • Application Programming Interface • Mécanismes standardisés de manipulation de documents XML • API événementielle • Processeur analysant le document • Association d’un gestionnaire de document • Activation des méthodes durant l’analyse • Simple et efficace • Implémentations JAVA (Xerces), C, C++

  34. API DOM - Document Object Model • SAX simple mais parfois limité (modification de structure impossible) • Analyse puis création d’une structure • Adaptable (mais plutôt orienté objet…) • Spécification en IDL (OMG) • Implémentations en Java, javascript

  35. XML et le Web (1) Doc XML Feuille XSLT IE Netscape Serveur web Servlet ou CGI Processeur XSLT Analyseur XML HTML

  36. XML et le Web (2) Doc XML Feuille XSLT IE Netscape Serveur web Servlet ou CGI Processeur XSLT Analyseur XML HTML Opera HTML +CSS Téléphones WAP WML

  37. XML et le Web (3) Doc XML Feuille XSLT IE Netscape Serveur web Feuille XSLFO Servlet ou CGI Processeur XSLT Analyseur XML HTML +PDF Processeur XSLFO Opera HTML +CSS Téléphones WAP WML

  38. XML et le Web (4) Doc XML Feuille XSLT (Big) Browser Processeur XSLT Serveur web Feuille XSLFO Processeur XSLFO XML XSLT XSLFO Analyseur XML

  39. Futur standard ? • Adopté par Microsoft et IBM… • Interface avec nombreux logiciels • Oracle servlet XSQL, IFS • Serveur Apache cocoon • Framemaker génèreCSS+XML • Nombreux schémas à succès MathML, SVG • Déjà beaucoup d’applications…

  40. Interro eXtensible Markup Language World Wide Web Consortium Définition de Type de Document XML Schema Document XML Path eXtensible Style Language Transformation Cascading Style Sheet Universal Ressource Information eXtensible Style Language Formatting Objects XML Link XML Pointer Application Programming Interface Document Object Model Interface Definition Language • XML • W3C • DTD • XSD • XPATH • XSLT • CSS • URI • XSL-FO • XLINK • XPOINTER • API • DOM • IDL

More Related