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
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 5 janvier 2006 Dupont 72 rue Thiers Paris 75019
Représentation graphique devis dateclient* nomadresse ruevillecp * 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 : !ATTLIST tag [attribut type #mode [valeur]]* Définit la liste d'attributs pour une balise Exemple :
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] Exemples (nom,prenom,rue,ville) (oui | non) (nom,prenom?,rue,ville) (produit*,client) (produit*,vendeur+)
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
Exemple de DTD interne <!DOCTYPE CATALOGUE [ ]> E...
Exemple de ID ET IDREF <!DOCTYPE DOCUMENT [ ]> Marie Jean Pierre Julie
DTD externe Modèle pour plusieurs documents partage des balises et structures Définition locale ou externe Exemple de document ...
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 Bienvenu au &magasin La définition peut être externe dans un fichier ou une autre DTD
DTD entité paramètre Permet la réutilisation dans une DTD utiliser dans la DTD par %nom Exemple Peuvent être externes Possibilité d'ajouter des assistants d'exécution
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 :
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
Exemple de schéma UML
Définition des types et classes
Définition DTD + MESSAGE <!DOCTYPE MESSAGE [ %Type; ]> A
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 : Sites Java – XML Technologies Java – XML
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