450 likes | 693 Views
XML. Introduction. Langage XML. eXtensible Markup Language XML permet de créer des documents Avec des balises propres au document Langage «extensible» Représentant des données semi-structurées Recommandation du W3C www.w3.org/XML. Utilisation du langage XML.
E N D
XML Introduction
Langage XML • eXtensible Markup Language • XML permet de créer des documents • Avec des balises propres au document • Langage «extensible» • Représentant des données semi-structurées • Recommandation du W3C • www.w3.org/XML
Utilisation du langage XML • Représentation de données semi-structurées • Echange normalisé de ces documents • Domaines • Publication • Transformation XSLT avec feuilles de style CSS, EDI • Traitement • Services Web, XSLT, Xpath, Xquery, ... • Structuration • Fichiers descripteurs (configuration, déploiement, ...)
Structuration XML • XML schéma • Extension des possibilités offertes par la DTD • Notamment le typage • DTD (Document Type Definition) • La structuration la plus répandue
Exemple de document <?xml version=''1.0'' encoding=''UTF-8'' standalone=''yes''?> <devis> <date>5 janvier 2006</date> <client type=''particulier''> <nom>Dupont</nom> <adresse> <rue>72 rue Thiers</rue> <ville>Paris</ville> <cp>75019</cp> </adresse> </client> </devis>
Représentation graphique devis date client* nom adresse rue ville cp * client possède l'attribut type
Origine et objectifs • UN document peut se définir par le fond et par la forme • Forme = structure + présentation • Fond = structure + sémantique • Multiples approches dont les plus connues sont : • SGML pour la structuration • HTML pour la présentation
Objectifs • XML = un nouveau langage d'échange basé sur le balisage • XML = plus simple que SGML • XML = plus complexe et plus performant que HTML • XML = développé par XML Working Group dirigé par le W3C (depuis 1996) • XML 1.0 = recommandation officielle du W3C depuis le 10 février 1998
Les 10 objectifs de conception • XML doit pouvoir être utilisé sans difficulté sur internet • XML doit soutenir une grande variété d'applications • XML doit être compatible avec SGML et HTML • Il doit être facile d'écrire des programmes traitant les documents XML • Le nombre d'options dans XML doit être réduit au minimum, idéalement à aucune
Les 10 objectifs de conception • Les documents XML doivent être lisisbles par l'homme et raisonnablement clairs • La spécification de XML doit être disponible rapidement • La conception de XML doit être formelle et concise • Il doit être facile de créer des documents XML • La concision dans le balisage XML est peu importante
Forces de XML • Séparation de la structure et de la présentation • Moins confus que HTML • Plus simple que SGML • Idéal pour l'échange de données semi-structurées • Utilisable entre machines
Les standards XML • Schema • XSL • DOM • SAX • RDF • EDI • e-COM • Query
XML pourquoi faire ? • Définir votre propre schéma pour décrire vos informations (balises extensibles) • Modélisation de la structure • Document Type Definitions (DTD) • Schema XML • Unified Modeling Language (UML) • Support multi-langage • UNICODE, traductions facilitées • Possibilité de « cast » des éléments balisés • Présentation aux applications
Impact technologique • XML devient le langage d'échange de données sur le WEB • XML est un mécanisme d'échange d'information entre applications • XML supporte le dialogue client-serveur sur http • XML permet de traiter des données partiellement connues • XML devient le protocole unifié des architectures trois-tiers
Actualité du langage XML • Reconnu par les Browser Web majeurs • Format d'échange de Microsoft Office • Supporté par les SGBD majeurs • Sun l'utilise pour décrire les javaBeans • Oracle l'utilise pour décrire les méta-données • Intégré comme format d'échange dans les ERP et EAI • MPEG7(multimédia) est basé sur XML • Nombreux protocoles de commerce électroniques
XML, DTD • Un document XML publiable : • Le document XML lui-même • La DTD pour décrire les balises • XSL pour adapter le format aux besoins • La DTD permet de définir son propre langage basé sur XML • XSL est utilisé pour permettre de convertir les données en HTML pour l'affichage
Balisage • Toute balise ouverte doit être fermée et bien imbriquée • Différenciation majuscule/minuscule • Tous les caractères spéciaux y compris les accents doivent être codés
Validité des documents • Document bien formé (Well Formed Document) • Balises correctement imbriquées • Parsable et manipulable • Pas nécessairement valide par rapport à la DTD • Document valide • Bien formé + conforme à la DTD
DTD • Permet de définir le « vocabulaire » et la structure qui seront utilisés dans le document XML • Grammaire du langage dont les phrases sont des documents XML (instances) • Peut être mise dans un fichier et être appelée dans le document XML
DTD : élément et attribut • !ELEMENT tag (contenu) • Décrit une balise qui fera partie du vocabulaire • Exemple : <!ELEMENT livre (auteur, editeur)> • !ATTLIST tag [attribut type #mode [valeur]]* • Définit la liste d'attributs pour une balise • Exemple : <!ATTLIST auteur genre CDATA #REQUIRED ville CDATA #IMPLIED> <!ATTLIST editeur ville CDATA #FIXED ''PARIS''>
Exemples (nom,prenom,rue,ville) (oui | non) (nom,prenom?,rue,ville) (produit*,client) (produit*,vendeur+) DTD : contraintes • Notations • (a,b) séquence • (a | b) liste de choix • a? élément optionnel [0,1] • a* élément répétitif [0,N] • a+ élément répétitif [1,N]
Elément : types de données • CDATA • Données brute qui ne seront pas analysées (parsées) • PCDATA • Elément de texte sans descendant ni attribut contenant des caractères à parser • Enumération • Liste de valeurs séparées par |
Elément : types de données • NMTOKEN • Mot clé ou liste de mots clés (NMTOKENS) • ANY • Tout texte possible • EMPTY • Vide
Attribut : types et contraintes • CDATA • les attributs ne sont pas parsés • ID • identifiant référençable • IDREF • référence à un ID
Attribut : types et contraintes • #FIXED valeur • assigne une valeur ne pouvant être changée dans le document XML • #IMPLIED • valeur falcutative donnée dans le document XML • #REQUIRED • valeur obligatoire donnée dans le document XML
Exemple de DTD <!ELEMENT doc (livre,article)> <!ELEMENT livre (titre,auteur+)> <!ELEMENT article (titre,auteur*)> <!ELEMENT titre (#PCDATA)> <!ELEMENT auteur(nom,adresse)> <!ATTLIST auteur id ID #REQUIRED> <!ELEMENT nom(prenom?, nomfamille)> <!ELMENT prenom(#PCDATA)> <!ELMENT nomfamille(#PCDATA)> <!ELMENT adresse ANY>
Exemple de DTD interne <?XML version=''1.0'' standalone=''yes''?> <!DOCTYPE CATALOGUE [ <!ELEMENT CATALOGUE (VINS+)> <!ELEMENT VINS (SPECIFICATION+,ANNEE,PRIX)> <!ATTLIST VINS NOM CDATA #REQUIRED> <!ELEMENT SPECIFICATION EMPTY> <!ATTLIST SPECIFICATION PROVENANCE CDATA #REQUIRED COULEUR CDATA #REQUIRED> <!ELMENT ANNEE (#PCDATA)> <!ELMENT PRIX #PCDATA)> ]> <CATALOGUE> <VINS NOM=''Saint-Emilion''> <SPECIFICATION PROVENANCE=''Bordeaux'' COULEUR=''Rouge''/> <ANNEE>1996</ANNEE> <PRIX>200E</PRIX> </VINS> ...
Exemple de ID ET IDREF <?XML version=''1.0'' standalone=''yes''?> <!DOCTYPE DOCUMENT [ <!ELEMENT DOCUMENT(PERSONNE*)> <!ELMENT PERSONNE (#PCDATA)> <!ATTLIST PERSONNE PNUM ID #REQUIRED> <!ATTLIST PERSONNE MERE IDREF #IMPLIED> <!ATTLIST PERSONNE PERE IDREF #IMPLIED> ]> <DOCUMENT> <PERSONNE PNUM=''P1''>Marie</PERSONNE> <PERSONNE PNUM=''P2''>Jean</PERSONNE> <PERSONNE PNUM=''P3'' MERE=''P1'' PERE=''P2''>Pierre</PERSONNE> <PERSONNE PNUM=''P3'' MERE=''P1'' PERE=''P2''>Julie</PERSONNE> </DOCUMENT>
DTD externe • Modèle pour plusieurs documents • partage des balises et structures • Définition locale ou externe • <!DOCTYPE doc SYSTEM ''doc.dtd''> • <!DOCTYPE doc PUBLIC ''www.e-xmlmedia.com/doc.dtd''> • Exemple de document • <?xml version=''1.0'' standalone=''no''?> <!DOCTYPE VINS SYSTEM ''vins.dtd''> ...
DTD : entité • Permet la réutilisation dans un document • !ENTITY nom ''texte de remplacment'' • utiliser dans le document par &nom • Une entité est l'équivalent d'une macro • permet de définir un nom qui sera remplacé par le parseur dans le texte • Exemple • <!ENTITY magasin ''Printemps''> • <message>Bienvenu au &magasin</message> • La définition peut être externe • dans un fichier ou une autre DTD • <!ENTITY magasin SYSTEM ''magasin.txt''>
DTD entité paramètre • Permet la réutilisation dans une DTD • <!ENTITY % nom ''definition''> • utiliser dans la DTD par %nom • Exemple • <!ENTITY %genres (''homme'' | ''femme'')> • <!ATTLIST auteur genre %genres; #REQUIRED> • Peuvent être externes • <!ENTITY %mpeg SYSTEM ''http://www.exml.fr''> • Possibilité d'ajouter des assistants d'exécution • <!NOTATION %mpeg SYSTEM ''.../bin/player.exe''> • <!ENTITY film SYSTEM ''.../videos/finale.mpeg NDATA %mpeg>
DTD : notation • Identifie un bloc de données non XML • Analysée par un processeur externe • Utilisée pour spécifier des entités ou attributs non XML • Exemple : • <!NOTATION gzip SYSTEM ''.../bin/gzip.exe'' >
Quelques règles d'écriture • Modularité • définir dans des entités séparées les parties réutilisables • Précédence • regrouper les déclarations d'entités en tête • Abstraction • utiliser les entités pour les modèles de contenus • Spécificité • éviter les DTD trop générales • Simplicité • découper les DTD trop complexes
Comment concevoir une DTD ? • Décrire les sources de données avec UML • Utilisation de : • classe • attribut • agrégation • association • généralisation • Fixer les cardinalités • associations • attributs
Définition des types et classes <!-- Types de base --> <!ENTITY % int ''(#PCDATA)''> <!ENTITY % float ''(#PCDATA)''> <!ENTITY % char ''(#PCDATA)''> <!ENTITY % string ''(#PCDATA)''> <!-- Classe Facture --> <!ELEMENT Facture (fstatut, ftotal)> <!ATTLIST Facture NUM ID #REQUIRED> <!ELEMENT fstatut %char> <!ELEMENT ftotal %float> <!-- Classe Lgne Facture --> <!ELEMENT Ligne (produit,quantite,statut?,total?)> <!ELEMENT produit %string> <!ELEMENT quantite %int> <!ELEMENT lstatut %char> <!ELEMENT ltotal %float>
Définition DTD + MESSAGE <?xml version=''1.0'' standalone=''yes''?> <!DOCTYPE MESSAGE [ <!-- Document --> <!ELEMENT MESSAGE (Facture, Ligne+)*> <!ENTITY % Type SYSTEM ''Type.dtd''> %Type; ]> <MESSAGE> <Facture NUM=''1''> <fstatut> A </fstatut> <ftotal>1000</ftotal> </Facture> <Ligne> <produit>212</produit> <quantite>5</quantite> </Ligne> ... </MESSAGE>
Bibliographie • XML – auteurs R. Eckstein, M. Casabianca – éditeur O'Reilly • XML 1.1 bible – auteur E. R. Harold – éditeur Wiley • XML in 21 days – auteur S. Holzner – éditeur Sams
Sites internet • Site en français : xmlfr.org • Site en anglais : www.w3.org/XML • Sites Java – XML • www.sun.com • www.jguru.com • Technologies Java – XML • www.apache.org
Technologies XML • Techniques de base • DOM (Document Object Model) • XML Namespaces • SAX (Simple API for XML) • XML Schema/DTD • Unicode • XLink (XML Linking Language) • XML Encryption
Technologies XML • Techniques de base (suite) • XML Signature • XPath (XML Path Language) • SAX (Simple API for XML) • XPointer • XQuery • XSLT (eXtensible Stylesheet Language Transformation) • XSL (eXtensible Stylesheet Language)
Technologies XML • Techniques de base (suite) • XKMS (XML Key Management Specification) • XCBF (XML Common Biometric Format) • XMLA (XML for Analysis) • SPML (Service Provisionning Markup Language)
Technologies XML • Publication multicanal • CSS (Cascading Style Sheets) • FormML (Template XML Schemas) • SMIL (Synchronized Multimedia Integration Language) • SVG (Scalable Vector Graphics) • VoiceXML • WordML • SpreadSheetML
Technologies XML • Publication multicanal (suite) • XForms (XML Forms) • XHTML • InkML Draft • MathML • WSRP (Web Services For Remote Portlets) • WML (Wireless Markup Language) • Open Office Draft (Oasis File Format)
Technologies XML • Les services web • UDDI (Universal Description, Discovery & Integration) • WSDL (Web Services Description Language) • DSML (Directory Services Markup Language) • SOA ( Service Oriented Architecture) • SOAP (Simple Access Object Protocol) • XML-RPC