Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
XML : concours d’acronymes ou futur standard ? Bilan de l’école FrancoMaghrébine IN2P3 Jean-Michel Gallone 7.12.2001 1 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, … 2 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 3 M comme Markup Tous les éléments sont repérés au moyen de balises Les balises servent à structurer le document 4 L comme Language Langage de description de documents Règles à respecter 5 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 6 É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 <PHOTO Source= "victor.gif" /> Contenu textuel, éléments ou mixte 7 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> 8 Exemple XML <?xml version="1.0" Encoding= "ISO-8859-1" ? > <memo langue="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> 9 …et aussi <!-- des commentaires --> Des entités externes/internes, analysables ou non & " > < <![CDATA [ …tout et n’importe quoi… …0x01265423deadbeef49653453462… ]]> 10 Règles syntaxiques 1. 2. 3. 4. 5. 6. 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 7. 8. Un élément doit encapsuler tous les autres Ne pas utiliser les caractères < et & seuls 11 Type de document (Doctype) Permet de valider un document XML Grammaire Définir la DTD <!DOCTYPE … > Interne / externe <?xml version= "1.0" standalone = "yes" > Publique / privée 12 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"> ]> 13 Spécifications éléments (#PCDATA) (ELT) (ELT1,ELT2) (ELT1|ELT2|…) ELT? ELT+ ELT* () ANY EMPTY Parsed Character DATA 1 fois ELT Séquence Choix 0 ou 1 fois ELT au moins 1 fois ELT 0 ou plusieurs fois ELT groupe de sous éléments n’importe quoi rien 14 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 ENTITIES entités externes non analysables 15 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 … 16 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> 17 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 18 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 19 …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 20 http://www.xml.org 21 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 22 rac: memo attr : langue Arbre de noël txt : fr attr : urgence txt : maximale elt : to txt : Enfants Sages elt : from txt : Père Noël elt : date txt : 7/12/01 elt : Body txt : Livraison confirmée elt : jour txt : 25/12 elt : heure txt : 0h00 elt : lieu txt : cheminée 23 localisation Chemin relatif/absolu Axe de localisation self, child, desecendant, parent, ancestor, … Test de nœuds /memo/body/lieu text(), comment(), … Prédicats last(), position(), count(), name(), … /memo//[lieu="cheminée"] 24 eXtensible Style Language Transformation XSL XML Processeur XSLT XML Ou texte Ou HTML 25 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 … 26 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…) 27 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 28 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… 29 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 … 30 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… 31 XPointer But : adresser un fragment de ressource Même arbre que processeur XSL Utilisation de XPath En cours de stabilisation… 32 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++ 33 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 34 XML et le Web (1) Doc XML IE Netscape Feuille XSLT Processeur XSLT Analyseur XML HTML Servlet ou CGI Serveur web 35 XML et le Web (2) Doc XML IE Netscape Opera Téléphones WAP Feuille XSLT Processeur XSLT Analyseur XML HTML HTML +CSS Servlet ou CGI WML Serveur web 36 XML et le Web (3) Doc XML IE Netscape Opera Téléphones WAP Feuille XSLT Processeur XSLT HTML +PDF Analyseur XML Feuille XSLFO Processeur XSLFO HTML +CSS Servlet ou CGI WML Serveur web 37 XML et le Web (4) Doc XML (Big) Browser Feuille XSLT Processeur XSLT Processeur XSLFO Feuille XSLFO XML XSLT XSLFO Serveur web Analyseur XML 38 Futur standard ? Adopté par Microsoft et IBM… Interface avec nombreux logiciels Oracle servlet XSQL, IFS Serveur Apache cocoon Framemaker génère CSS+XML Nombreux schémas à succès MathML, SVG Déjà beaucoup d’applications… 39 Interro XML eXtensible Markup Language W3C World Wide Web Consortium DTD Définition de Type de Document XSD XML Schema Document XPATH XML Path XSLT eXtensible Style Language Transformation CSS Cascading Style Sheet URI Universal Ressource Information XSL-FO eXtensible Style Language Formatting Objects XLINK XML Link XPOINTER XML Pointer API Application Programming Interface DOM Document Object Model IDL Interface Definition Language 40