Introduction presque technique à XML - frabad
Transcription
Introduction presque technique à XML - frabad
Introduction presque technique à XML édition 2013 Version 13.142 [Brouillon] François Badier ii Introduction presque technique à XML François Badier édition date édition 2013 Version 13.142 [Brouillon] 2013-05-23 Résumé Ce document présente quelques-uns des aspects techniques fondamentaux du métalangage extensible (XML). Copyright Note légale Copyright © 2008, 2009, 2010, 2011, 2012, 2013 frabad Ce document peut être reproduit, distribué, communiqué, adapté selon les termes de la licence Creative Commons Paternité - Pas d'Utilisation Commerciale 2.0 France (CC BY-NC 2.0). Introduction presque technique à XML François Badier iii Contenu de ce document 1. Première approche de XML .................................................. 1 Premières « difficultés » .................................................. 1 Quelques conseils pour (bien) commencer .......................... 1 Pourquoi faire WYSIWYM avec XML ? .............................. 2 2. Un cours de XML en 5 minutes ............................................. 5 Termes typographiques ................................................... 5 Éléments ....................................................................... 5 Balises .................................................................. 5 Racine .................................................................. 6 Attributs ....................................................................... 6 Texte ............................................................................ 7 Éléments vides ............................................................... 7 Déclaration XML et encodage ........................................... 7 3. Rédaction en XML .............................................................. 9 Outils de rédaction ou de mise en forme ............................ 9 Rédaction en mode texte ................................................ 10 Rédaction en mode assisté .............................................. 11 4. Rédaction d'un document avec XMLmind XML Editor ................ 13 Installation ................................................................... 13 Créer un document à partir d'un exemple ......................... 13 5. Association de règles grammaticales en XML ......................... 15 Déclaration de type de document .................................... 15 Déclaration d'espace de noms ......................................... 17 Association interactive ................................................... 18 Exemples de déclarations de règles grammaticales .............. 19 6. Validation de documents XML ............................................. 21 Procédure globale de validation ....................................... 21 Validation en ligne de commande avec xmllint ................... 22 Validation graphiquement assistée avec XML Copy Editor .............................................................................. 23 7. Transformation de documents XML ...................................... 25 Expression du processus de transformation ....................... 25 Transformation en ligne de commande avec xsltproc .......... 26 Transformation graphiquement assistée avec XML Copy Editor .............................................................................. 26 8. Quelques outils de référence ............................................... 29 9. Termes associés à XML ...................................................... 31 chapitre Première approche de XML 1 XML est un format de document très utile pour structurer l'information, pour la conserver et la transformer. Sa syntaxe est simple à appréhender et les fichiers concernés sont parfaitement lisibles, c'est du texte. Voilà pour aborder « rapidement » ce format. La suite est moins simple et on se retrouve vite confronté à deux difficultés de natures différentes mais qui se présentent dans le même temps à qui veut s'y exercer pour en voir les implications. Remarque : Cet aperçu de XML et des difficultés qu'il présente est extrait du site de Syracuse1. Premières « difficultés » 1. La première difficulté est un peu « extérieure » à l'informatique, elle porte sur la structuration d'un document : séparation de la forme du contenu, organisation de celui-ci, caractérisation de celle-là. C'est intéressant et pas si évident que cela en fin de compte. 2. La seconde difficulté, c'est la mise en oeuvre de XML : validation d'un document XML (vérification syntaxique, conformité à une DTD), transformation d'un document. Les outils existent, ils sont très performants mais la doc à lire pour leur utilisation est copieuse. Quelques conseils pour (bien) commencer Voici quelques conseils gratuits à propos de l'utilisation de XML. 1. Expérimentez sans crainte et prenez votre temps. XML disparaîtra quand l'être humain sera privé de l'électricité nécessaire au fonctionnement de son ordinateur. En attendant cette époque sereine, vous pourriez essayer d'aborder le principe du WYSIWYM afin d'enrichir votre réflexion sur les notions de structure et d'organisation (de l'information). Voir la section intitulée « Pourquoi faire WYSIWYM avec XML ? » [p. 2]. 2. Les applications fondamentales de XML (analyse, validation, traitement) sont assurées par des programmes libres, présents dans les meilleures suites logicielles, qu'elles soient privées ou non. Inutile donc de vous ruer sur un logiciel « de pro » ni « gratos-avecBien que la page d'origine http://melusine.eu.org/xml semble inaccessible, je remercie son auteur pour la pertinence et la concision de cette entrée en matière, lesquelles ont motivé ce plagiat. 2 Première approche de XML Pourquoi faire WYSIWYM avec XML ? un-crack » pour rédiger votre premier document XML. Un logiciel plus simple, plus léger, mais gratuit, donnera d'aussi bons résultats. Voir la section intitulée « Outils de rédaction ou de mise en forme » [p. 9]. 3. Sachez ce que vous voulez faire. Cherchez ensuite (et seulement ensuite) comment procéder. Fruit de votre réflexion, le choix d'une solution doit intervenir après l'analyse et l'énoncé du « problème ». XML est-il adapté à la préparation d'une galerie de photos de vacances ? À la conception d'une page web consacrée à AdobFlache ? À la rédaction d'un article technique ? À l'organisation de notes de cours ? Une fois votre objectif défini, n'hésitez pas à fréquenter les écoles en ligne du W3c. 4. Le jargon informatique regorge d'abréviations, sigles et autres termes obscurs, tels que ceux qui sont utilisés pour désigner les technologies basées sur XML ; ne vous laissez pas abuser par leur technicité apparente et gardez un œil sur leur définition. Voir Termes associés à XML [p. 31]. 5. Règle d'or adressée aux rédacteurs techniques : RTFM ; et si vous n'êtes toujours pas effrayés, vous pouvez lire Un cours de XML en 5 minutes [p. 5]. Pourquoi faire WYSIWYM avec XML ? À défaut d'être parfaitement compréhensible, la question a le mérite d'intriguer. L'approche WYSIWYM ou « sémantique », présente des avantages significatifs par rapport à la documentation classique de type WYSIWYG (« graphique »). Parmi ces avantages, citons la rédaction formellement neutre et la publication universelle de documents multilingues. Note Si le goût de la facilité vous pousse à privilégier l'absence de structure logique, n'hésitez pas à persister dans l'utilisation d'applications bureautiques, elles sont probablement faites pour vous. Sachez toutefois qu'elles sont aussi faites pour tout le monde et qu'elles ne vous permettront par conséquent d'affirmer aucune spécialité. Cette absence de spécialité présente aussi des avantages, du point de vue de certains employeurs économes, par exemple. Gain de temps La neutralité formelle du XML affranchit l'auteur des considérations esthétiques, parasites et subjectives, et lui épargnent le simplisme trompeur et les aléas perturbateurs des logiciels bureautiques. La partie PAO n'est pas exclue, mais intervient ultérieurement, indépendamment, automatiquement. Structure logique, cohérence accrue Le sens et la régularité d'un contenu WYWIWYM sont supérieurs à ce que permet d'obtenir un logiciel de PAO, parce qu'ils sont immunisés contre la fantaisie d'un auteur faillible et garantis par des schémas logiques d'une rigueur implacable. La rédaction basée sur Première approche de XML Pourquoi faire WYSIWYM avec XML ? 3 des critères sémantiques permet d'élaborer une information idéalement organisée, constituée de catégories évidentes et explicites. Présentation soignée La possibilité de se concentrer sur la mise en forme des éléments distinctement identifiés offre un contrôle total sur l'aspect final du document. Les nouveaux standards (CSS, XSL-FO), spécialement conçus à cet effet, constituent des outils puissants et efficaces. Portabilité Un document rédigé, plusieurs documents publiés. Le WYSIWYM est la clé du “Single Sourcing” (publication de source unique), qui prévoit de générer, à partir d'une même source, un document pour chaque plate-forme, média, ou public envisageable. Réutilisation et modularité de contenus Parmi les techniques documentaires proposées nativement par XML et inconnues des bureauticiens (condamnés au mouvement perpétuel du « copie-collage »), on citera les appels de variables, l'inclusion de modules, la référence de contenu, le texte conditionnel ou « profilage ». Faible coût d'aquisition De nombreuses solutions WYSIWYM reposent sur des standards ouverts tels que XML. Il existe un nombre croissant de logiciels dédiés à XML et « orientés-utilisateur », libres ou gratuits, pour toutes les plates-formes et tous les budgets. Les interfaces de développement et bibliothèques adressées aux programmeurs sont d'ores et déjà intégrées aux solutions pour les entreprises. chapitre Un cours de XML en 5 minutes 2 XML est une manière généralisée de décrire des données structurées hiérarchiquement. Après ce cours rapide, vous en saurez suffisamment sur XML pour être dangereux/se ! Remarque : Ce document est traduit et adapté du document “A 5-Minute Crash Course in XML” de Mark Pilgrim. Termes typographiques Cette liste définit les termes typographiques utilisées dans ce petit cours rapide sur XML. blanc Un blanc est composé d'un ou plusieurs caractères d'espacement, parmi lesquels l'espace typographique normale, la tabulation et le retour-charriot. guillemet droit Le guillemet droit, dans sa forme double, est aussi appelé guillemet dactylographique ("). La forme simple du guillemet dactylographique est l'apostrophe dactylographique ('). Simple ou double, veillez à accoler ce guillemet sans espace intercalaire de part et d'autre de l'expression visée : comme "ceci". barre de fraction La barre de fraction est aussi appelée barre oblique, ou slash en anglais. Éléments Un document XML contient un ou plusieurs éléments. Balises Chaque élément d'un document XML est délimité par des balises : une balise d'ouverture (qui marque le début de l'élément) et une balise de fermeture (qui marque la fin de l'élément). Ci-dessous, un document XML complet, bien qu'éminement ennuyeux : <toto> 6 Un cours de XML en 5 minutes Racine </toto> Ceci est la balise d'ouverture de l'élément toto. Ceci est la balise de fermeture correspondante de l'élément toto. De même qu'une parenthèse dans une phrase ou un guillemet dans une citation, chaque balise d'ouverture doit être fermée (équilibrée) par une balise de fermeture correspondante. Les éléments peuvent être imbriqués les uns dans les autres sans limite hiérarchique. Un élément tutu imbriqué dans un élément toto est appelé sous-élément ou enfant de toto. <toto> <tutu></tutu> </toto> Racine Le premier élément d'un document XML est appelé la racine. Un document XML doit avoir un élément racine et un seul. L'exemple qui suit n'est pas un document XML, parce qu'il introduit deux racines : <toto></toto> <tutu></tutu> Attributs Les éléments peuvent avoir des attributs. Un attribut est l'association d'une valeur à un nom, introduite à l'intérieur de la balise d'ouverture d'un élément. Chaque association est séparée par un blanc pour constituer une liste d'attributs. Un nom d'attribut ne doit pas être répété à l'intérieur d'une même liste. Une valeur d'attribut doit être précédée du signe « égal » (=) et placée entre guillemets droits. Avertissement La valeur d'un attribut doit être placée entre guillemets droits. Vous pouvez utiliser soit des guillemets droits simples ('), soit des guillemets droits doubles ("), mais les autres formes de guillemets, si vous les utilisez pour introduire la valeur d'un attribut, provoqueront une erreur. <toto lang="fr"> <tutu id='papayawhip' lang='en'></tutu> </toto> L'élément toto a un attribut. Le nom de cet attribut est lang. La valeur de cet attribut est fr. L'élément tutu a deux attributs, nommés respectivement id et lang. La valeur de son attribut lang est en. Cela n'est d'aucune façon conflictuel avec l'élément toto. Chaque élément a son propre jeu d'attributs. Un cours de XML en 5 minutes Texte 7 Si un élément a plus d'un attribut, l'ordre d'apparition de ces attributs n'est pas significatif. Les attributs d'un élément forment une liste nonordonnée d'associations de noms et de valeurs. Le nombre d'attributs que vous pouvez définir sur un élément est illimité. Texte Les éléments peuvent contenir du texte. Ci-après, un élément qui contient du texte : <toto lang="fr">Et voilà.</toto> Éléments vides Les éléments qui ne contiennent ni texte ni enfant sont dits vides. Voici à quoi ressemble un élément vide : <toto></toto> Il existe une forme abrégée pour écrire les éléments vides. En plaçant une barre de fraction (/) à la fin de la balise d'ouverture, vous pouvez vous dispenser de la balise de fermeture. Le document XML dans l'exemple précédent aurait pu être écrit comme ceci : <toto/> Un élément vide peut aussi avoir une liste d'attributs : <toto id='youpi' lang='fr' /> Déclaration XML et encodage Enfin, les documents XML peuvent contenir une déclaration, placée en première ligne, avant l'élément racine. Voici à quoi ressemble une déclaration XML : <?xml version="1.0" ?> La déclaration XML permet notamment de définir l'encodage des caractères utilisés dans le document. La déclaration XML ci-après prévoit un encodage UTF-8 : <?xml version="1.0" encoding="utf-8" ?> chapitre Rédaction en XML 3 Pour rédiger en XML, vous devez maîtriser la syntaxe de XML et connaître les différentes règles grammaticales qui sont associées à votre document, c'est-à-dire son schéma ou sa DTD. Vous pouvez toutefois essayer de gagner du temps à l'aide d'un logiciel spécifique. Dans ce cas, il est préférable de choisir un outil validant et pourvu d'assistants contextuels, et d'éviter les outils bureautiques. Outils de rédaction ou de mise en forme Le traitement et le stockage de texte comptent historiquement parmi les premiers services rendus par l'ordinateur. Tous les systèmes sont par conséquent pourvus de logiciels de base qui vous permettent de rédiger, enregistrer et lire des documents de texte. Aujourd'hui toutefois, notre ego nous pousse souvent à exiger de l'ordinateur une représentation artificielle des idées que contient (peut-être) notre cerveau. Cette approche est incompatible avec l'utilisation normale de XML, laquelle s'affranchit des logiciels consacrés à la mise en forme de documents. Outils par défaut Les logiciels présents par défaut sur les environnements de bureau permettent de traiter du texte, donc du XML. Ces logiciels simples ont pour caractéristique principale de ne pouvoir lire et écrire que des fichiers en mode texte brut. Par défaut sur Windows, le « bloc-note » (Notepad) est la seule solution XML disponible. Il est toutefois recommandé d'utiliser un logiciel plus évolué. Sur les environnements de bureau de GNU/ Linux, les logiciels Gedit et Kedit permettront de colorer votre code et d'introduire automatiquement les balises de fermeture de vos éléments XML. Outils additionnels Une liste d'outils additionnels pour la rédaction en XML est disponible plus loin dans ce document. Bien que ces outils soient tous recommandables, vous devrez faire un choix et sélectionner celui qui vous convient le mieux, que ce soit pour des raisons ergonomiques, fonctionnelles, ou simplement personnelles. Voir Quelques outils de référence [p. 29]. Les dangers de Word Contrairement à ce que sa désignation habituelle laisse croire, Micosfrot Word n'est pas un outil de traitement de texte, mais un logiciel de mise en forme de document. Outre la sélection par défaut de polices de ca- 10 Rédaction en XML Rédaction en mode texte ractères inconfortables pour la saisie de code informatique, ce logiciel provoque l'altération inopportune des caractères réservés à la syntaxe de XML (guillemets, chevrons, espaces, etc.) et la perte des données de texte brut au moment de la sauvegarde, laquelle est effectuée par défaut en mode binaire, illisible pour un être humain. Enfin, la mise en avant des fonctions de copie et de collage constitue un palliatif simpliste et déplorable aux techniques rédactionnelles modernes de réutilisation de contenu. En bref, les caractéristiques de Word le rendent inadapté, voire nuisible à la rédaction structurée. Rédaction en mode texte La rédaction avec un outil de saisie de texte brut est conseillée si vous souhaitez vous familiariser à la syntaxe de XML, produire une l'excellente documentation sans pour autant être asservi à une solution lourde et inadaptée, et que vous ne craignez pas de « mettre les mains dans le camboui ». Remarque : informations imprécises ou incomplètes 1. Créez un nouveau fichier de texte, a. renommez-le immédiatement. Donnez-lui un nom explicite, par exemple doc-Votre_Nom, suivi de l'extension .xml. b. Placez ce fichier dans un répertoire de travail dédié, dans lequel vous placerez également la DTD si vous n'êtes pas connecté à internet ; d'autres fichiers y seront ajoutés plus tard. 2. Ouvrez le fichier avec votre éditeur texte favori ; 3. Placez la déclaration XML en tête de votre fichier, dès la première ligne : <?xml version="1.0" encoding="UTF-8"?> Cette déclaration fournit des informations importantes sur la version de la syntaxe XML et l'encodage de caractères qui seront utilisés dans votre fichier. 4. Associez des règles grammaticales à votre document. Étapes communes à tous les documents XML 1. Organisez et hiérarchisez le contenu de votre document avec des éléments. 2. Validez votre document. Rédaction en XML Rédaction en mode assisté 11 Rédaction en mode assisté La rédaction avec un logiciel dédié à XML, souvent appelé « éditeur XML », est caractérisée par une validation permanente ou invoquée par l'utilisateur. Une aide contextuelle basée sur des « assistants » (“helpers” en anglais) permet de saisir les éléments XML par sélection dynamique. La rédaction avec ce type de logiciel est conseillée si vous débutez et/ou que la syntaxe de XML vous apparaît comme une une source de confusion. Remarque : informations imprécises ou incomplètes 1. Munissez-vous de votre outil favori1. 2. Créez un nouveau document XML par Fichier → Nouveau. 3. Lancez la commande d'association de règles grammaticales. Note Cette commande est exécutée automatiquement par certains logiciels au moment de la création d'un document. XMLmind XML Editor oXygen XML editor Syntext Serna 4. Sélectionnez un modèle, une DTD ou un schéma (dans ce cas, ces termes sont synonymes). – soit dans la liste que vous propose le logiciel, – soit directement à partir de votre disque dur. 5. Laissez-vous guider par le logiciel pour introduire des éléments et des attributs. Certains éléments obligatoires (racine et sous-éléments) sont peut-être déjà introduits, si votre logiciel est paramétré à cet effet. Étapes communes à tous les documents XML 1. Organisez et hiérarchisez le contenu de votre document avec des éléments. 2. Validez votre document. Rappelez-vous cependant que le présent document traite exclusivement de XML. chapitre Rédaction d'un document avec XMLmind 4 XML Editor XMLmind XML Editor (XXE) propose une interface graphique à la- quelle les utilisateurs d'outils bureautiques peuvent se familiariser rapidement. Il dispose d'un système de validation sophistiqué et permet de constituer un document XML à partir d'un exemple conforme à un schéma. Remarque : informations imprécises ou incomplètes Installation La dernière version « personnelle » de XXE est archivée sur le site www.xmlmind.com/archive/xmleditor/5.3.0/. 1. Rendez-vous sur le site d'archives de XXE : www.xmlmind.com/ archive/xmleditor/5.3.0/. 2. Déchargez 3. Installez XXE sur votre système avec le paquet que vous avez déchargé. Ce paquet XXE est livré avec une version intégrée du JRE. le paquet d'installation xxe-perso-5_3_0-setup.exe dans un répertoire temporaire. Créer un document à partir d'un exemple Les instructions suivantes permettent de créer un document XML à partir d'exemple d'instance XML avec XMLmind XML Editor. 1. Ouvrez le logiciel XMLmind XML Editor ; 2. Cliquez sur File → Open (Ctrl+O) 3. Sélectionnez le « fichier exemple » de votre choix à partir de votre disque dur. 4. Effectuez une sauvegarde par File → Save (Ctrl+S). Veillez à enregistrer votre nouveau document sous un nom explicite et normalisé, sans caractères d'espacement pour éviter toute incompatibilité. Quelques exemples : 14 Rédaction d'un document avec XMLmind XML Editor Créer un document à partir d'un exemple Annie_NOMAT-recette-oeufs_brouilles.xml Didier_SUSTRAC-curriculum.xml etc. 5. Supprimez le « fichier modèle » de votre disque dur afin d'éviter toute confusion ultérieure. Votre nouveau document pourra luimême servir de modèle en temps voulu. chapitre 5 Association de règles grammaticales en XML Vous devez associer des règles grammaticales à votre votre document XML afin de le valider. Les règles grammaticales associées à votre document sont établies par une DTD ou par un schéma. Selon les cas, cette association sera établie par déclaration de type de document ou par déclaration d'espace de noms. Déclaration de type de document L'association de règles grammaticales est historiquement appelée « déclaration de type de document », par référence aux DTD. Cette déclaration est introduite par le mot-clé DOCTYPE. Une telle déclaration peut sembler complexe, mais elle offre en contrepartie une excellente reconnaissance par les logiciels XML. Avertissement 1. Il existe un risque de confusion terminologique entre déclaration et définition. La déclaration de type de document désigne l'association d'une instance XML à une DTD. La définition de type de document (DTD) est l'ensemble des règles grammaticales auxquelles l'instance XML associée devra être conforme. Localisez l'élément racine de votre document. Pour rappel, le contenu de votre document sera placé entre la balise de début et la balise de fin de l'élément racine. Exemple : Racine d'un document de type curriculum <?xml version="1.0" encoding="UTF-8"?> <curriculum> [ contenu du curriculum ] </curriculum> 2. Introduisez le début de la déclaration <!DOCTYPE avant la racine de votre document et après la déclaration XML. <!DOCTYPE 3. Ajoutez le nom du type de votre document. Ce nom est identique à celui de l'élément racine. 16 Association de règles grammaticales en XML Déclaration de type de document <!DOCTYPE curriculum 4. Ajoutez l'identificateur public ou système de la DTD • Si votre DTD est publique (c'est-à-dire « connue » et « reconnue »), a. ajoutez le mot-clé PUBLIC, b. ajoutez l'identifiant public de la DTD entre quotes doubles ("). Il s'agit d'une immatriculation définie par l'organisation éditrice de la DTD. <!DOCTYPE curriculum PUBLIC "-//frabad//DTD curriculum XML Vx.x//EN" Sinon, ajoutez seulement le mot-clé SYSTEM. • <!DOCTYPE curriculum SYSTEM 5. Indiquez le chemin d'accès vers la DTD. "http://frabad.free.fr/dev/cvfb/cvfb-x.x.dtd" Le chemin d'accès est l'URL d'un fichier distant ou local. – S'il s'agit d'un fichier distant, son nom est précédé de l'adresse WEB de mise à disposition de la DTD, – S'il s'agit d'un fichier local, son nom est précédé de l'adresse système à laquelle vous l'avez placé. 6. Fermez la déclaration <!DOCTYPE> par un chevron de fermeture. > Exemple : Déclaration de DTD (type public) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE curriculum PUBLIC "-//frabad//DTD curriculum XML Vx.x//EN" "http://frabad.free.fr/dev/cvfb/cvfb-x.x.dtd" > <curriculum> [ contenu du curriculum ] </curriculum> Association de règles grammaticales en XML Déclaration d'espace de noms 17 Exemple : Déclaration de DTD (type système) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE curriculum SYSTEM "http://frabad.free.fr/dev/cvfb/cvfb-x.x.dtd" > <curriculum> [ contenu du curriculum ] </curriculum> Déclaration d'espace de noms L'association de règles grammaticales basées sur un schéma s'appuie sur une « déclaration d'espace de noms ». L'espace de noms est déclaré par l'attribut xmlns à la racine du document. Cette méthode moderne offre plus souplesse et de simplicité que la déclaration de type de document, mais elle ne concerne pas encore tous les types de documents XML et le nombre de logiciels qui la prennent en charge est plus restreint. 1. Localisez l'élément racine de votre document. Pour rappel, le contenu de votre document sera placé entre la balise de début et la balise de fin de l'élément racine. 2. Ajoutez un attribut xmlns à l'intérieur de la balise ouvrante de l'élément racine, suivi du signe =. xmlns= 3. Ajoutez entre quotes simples ou doubles (' ou ") l'espace de noms fourni par l'organisation éditrice du schéma. Cet espace de noms ressemble souvent à une URL. xmlns="//mon/espace/noms" 4. Ajoutez un attribut de localisation de schéma XSD. Note a. Cette étape est optionnelle et ne concerne que l'association de schémas de type XSD. Ajoutez un attribut xsi:namespaceSchemaLocation, suivi du signe =. xsi:namespaceSchemaLocation= b. Ajoutez l'URI du schéma XSD que vous souhaitez associer à votre document entre quotes simples ou doubles. Il s'agit de l'URI d'un fichier distant ou local. xsi:namespaceSchemaLocation="monjolischéma.xsd" 18 Association de règles grammaticales en XML Association interactive c. Ajoutez la déclaration de l'espace de noms xsi auquel appartient l'attribut noNamespaceSchemaLocation. Cet espace est réservé et sa déclaration est impérative. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Exemple : Déclaration d'espace de noms <?xml version="1.0" encoding="UTF-8"?> <monjolidoc xmlns="//mon/espace/noms" > [ contenu ] </monjolidoc> Exemple : Déclaration de schéma XSD <?xml version="1.0" encoding="UTF-8"?> <monjolidoc xmlns="//mon/espace/noms" xsi:namespaceSchemaLocation="monjolischéma.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > [ contenu ] </monjolidoc> Association interactive Les éditeurs XML permettent d'associer interactivement des règles grammaticales à un document grâce à une commande invoquée par l'utilisateur. L'association interactive laisse à charge du logiciel la gestion du type d'association nécessaire, qu'il s'agisse de déclaration de type de document ou d'espace de noms. Note La commande d'association varie en fonction du logiciel utilisé, mais elle est généralement accessible à partir de la barre de menus. Consultez le manuel du logiciel pour plus d'informations. Exemple : Commandes logicielles d'association interactive XML Copy Editor XML → associer → DTD système XML → associer → Schéma XML oXygen XML Editor Document → Document XML → Associer un schéma... Association de règles grammaticales en XML Exemples de déclarations de règles grammaticales 19 Exemples de déclarations de règles grammaticales Une déclaration grammaticale de document ressemble aux exemples ci-après. Exemple : XHTML 1.0 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" > Exemple : DocBook 4.5 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/ docbookx.dtd" > Exemple : cvfb x.x <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE curriculum PUBLIC "-//frabad//DTD curriculum XML Vx.x//EN" "http://frabad.free.fr/dev/cvfb/cvfb-x.x.dtd" > Exemple : DocBook 5.0 <?xml version="1.0" encoding="UTF-8"?> <article xmlns="http://docbook.org/ns/docbook" version="5.0"> [ contenu du document ] </article> chapitre Validation de documents XML 6 La validation XML consiste à vérifier la conformité d'un document à un un ensemble de règles grammaticales, appelé modèle. La validation d'un document XML peut-être effectuée manuellement et indépendemment de la rédaction du document. Remarque : informations imprécises ou incomplètes Procédure globale de validation Pour valider votre document XML, corrigez toutes les erreurs provoquées par le non-respect des règles grammaticales établies par le modèle de référence. En l'absence d'erreur grammaticale, un document XML est considéré valide. Important Avant de vérifier la validité d'un document XML, vous devez vous assurer que ledit document est formellement respectueux de la syntaxe XML et qu'il ne s'agit pas d'un simple document texte. La moindre erreur de forme (c'est-à-dire de syntaxe) empêchera systématiquement la validation du document. 1. Assurez-vous d'avoir associé un ensemble de règles grammaticales à votre document. Voir Association de règles grammaticales en XML [p. 15]. 2. Invoquez la commande de validation de votre logiciel ou lancez une commande de validation dans un terminal. 3. Corrigez les éventuelles erreurs détectées dans votre document. Astuce 4. Une erreur découle fréquemment de celle qui la précède. La méthode la plus efficace pour « déboguer » du code XML consiste donc à corriger la première erreur de la liste. Répétez cette procédure jusqu'à disparition complète des messages d'erreur. 22 Validation de documents XML Validation en ligne de commande avec xmllint Validation en ligne de commande avec xmllint xmllint est un programme de traitement (“parser”) de documents XML. La commande xmllint doit être invoquée dans un terminal de commandes. xmllint --valid --noout document.xml Important Veillez à remplacer document.xml par le nom du document que vous souhaitez valider. valid La syntaxe XML étant systématiquement vérifiée par xmllint, ce paramètre permet de vérifier par ailleurs que l'instance XML est conforme à l'ensemble de règles grammaticales qui lui est associé. Si aucun ensemble de règles grammaticales n'est associé à l'instance XML, ce paramètre doit être remplacé par un paramètre dtdvalid, schema, ou relaxng. dtdvalid Permet de vérifier la conformité de l'instance XML à l'ensemble des règles grammaticales établies dans une DTD. L'URL de cette DTD doit être spécifiée après le paramètre, par exemple --dtdvalid "modèle.dtd". schema Permet de vérifier la conformité de l'instance XML à l'ensemble des règles grammaticales établies dans un schéma de type XMLSchema. L'URL de ce schéma doit être spécifiée après le paramètre, par exemple --schema "modèle.xsd". relaxng Permet de vérifier la conformité de l'instance XML à l'ensemble des règles grammaticales établies dans un schéma de type RelaxNG. L'URL de ce schéma doit être spécifiée après le paramètre, par exemple --relaxng "modèle.rng". schematron Permet de vérifier la conformité de l'instance XML à l'ensemble des règles grammaticales établies dans un schéma de type Schematron. L'URL de ce schéma doit être spécifiée après le paramètre, par exemple --schematron "modèle.sch". noout Évite de reproduire le contenu du document dans le terminal de commandes afin de n'afficher que les messages d'erreur et les avertissements. Validation de documents XML Validation graphiquement assistée avec XML Copy Editor 23 Validation graphiquement assistée avec XML Copy Editor Vous pouvez utiliser l'interface graphique utilisateur de XML Copy Editor pour invoquer une commande de validation par rapport à un ensemble de règles grammaticales de type DTD ou XSD. Pour valider le document courant avec XML Copy Editor, procédez comme suit. 1. Associez une DTD ou un schéma XSD au document courant. 2. Cliquez sur XML → Valider → DTD/XML Schema (F5). chapitre Transformation de documents XML 7 L'un des traitements de l'information structurée les plus utiles concerne la publication vers différents formats de données et de documents. Ce traitement consistera généralement à appliquer un ensemble d'instructions écrites en XSL-T sur une instance XML afin de générer automatiquement un document écrit dans un autre vocabulaire. Le processus de transformation varie en fonction du domaine d'application, il pourra selon les cas être invoqué dans une interface graphique, dans un terminal de commande, ou encore via une interface de programmation. Expression du processus de transformation La commande exécutée pour invoquer un processus de transformation s'adresse à un processeur XSL-T, mais l'individu qui est à l'origine de cette commande doit aussi la comprendre. Voici une proposition de traduction en français de la commande adressée au processeur de transformation et la désignation des fichiers invoqués par cette commande. Applique les instructions de transformation décrites dans le fichier tata.xsl, sur le fichier tutu.xml, puis sauvegarde le résultat de cette opération dans le fichier toto. tata.xsl Désigne un fichier assimilable à un « traducteur », défini comme la « feuille de transformation » à appliquer sur l'instance XML. Ce fichier contient un certain nombre d'instructions écrites en XSL-T et porte l'extension xsl ou xslt. tutu.xml Désigne le nom d'un document XML valide, défini comme « instance » XML, à partir de laquelle sera généré un document « transformé ». toto Désigne un fichier qui sera généré lors du processus de transformation. Ce fichier contient un document généralement (mais pas nécessairement) écrit dans un vocabulaire XML. L'extension du fichier varie en fonction de ce vocabulaire : html, fo, xml, txt, etc. (etc n'est pas une extension) 26 Transformation de documents XML Transformation en ligne de commande avec xsltproc Note Contrairement à ce que le mot « transformation » peut laisser croire, l'instance XML « transformée » n'est en réalité jamais altérée au cours du processus. Ce dernier intervient sur une copie chargée en mémoire et aboutit sur la génération d'un document tiers. Transformation en ligne de commande avec xsltproc xsltproc est un processeur de transformation XSL-T (d'où son nom). La commande xsltproc doit être invoquée dans un terminal de commandes. xsltproc tata.xsl tutu.xml > toto Important Les noms de fichiers utilisés ici sont donnés à titre d'exemple. Veillez à les modifier avant d'exécuter une commande de transformation afin que chaque fichier invoqué remplisse son rôle. Voir la section intitulée « Expression du processus de transformation » [p. 25]. Transformation graphiquement assistée avec XML Copy Editor Vous pouvez utiliser l'interface graphique utilisateur de XML Copy Editor pour invoquer un processus de transformation XSL-T. Pour invoquer un processus de transformation XSL-T sur le document courant avec XML Copy Editor, procédez comme suit. 1. Validez le document courant. 2. Cliquez sur XML → Transformation XSL ... (F8). 3. Cliquez sur le bouton Parcourir. Transformation de documents XML Transformation graphiquement assistée avec XML Copy Editor 27 4. Sélectionnez un fichier XSL-T (extension xsl ou xslt) et validez votre sélection en cliquant sur le bouton ouvrir. 5. Cliquez sur OK. Si la transformation s'est correctement déroulée, le document transformé apparaît dans un nouvel onglet ; vous pouvez alors l'enregistrer. XML Copy Editor vous avertira en cas d'erreur, notamment si le fichier XSL-T que vous avez sélectionné est invalide. chapitre Quelques outils de référence 8 Les outils mentionnés ci-après permettent de rédiger, traiter ou gérer des documents XML, sans restriction ou presque, et sans contrainte financière. Note Traitement de texte simple Traitement de texte assisté Environnements d'édition et de développement Retrouvez une liste plus complète d'outils et de ressources liées à XML sur internet, à l'adresse http://frabad.free.fr/doc/ ressources.html. Voici quelques applications non validantes de traitement de texte balisé. NotePad2 http://www.flos-freeware.ch/ notepad2.html | déchargement direct : http://db.tt/7Hn31YUY Scintilla Text Editor (SciTE) http://www.scintilla.org/SciTE.html Geany http://www.geany.org/ Voici quelques applications validantes de traitement de texte balisé. XML Copy Editor http://xmlcopy-editor.sourceforge.net/ vim ;-) http://www.vim.org/ Voici quelques applications lourdes qui proposent un environnement complet de rédaction et de validation, voire de gestion et / ou de développement. Syntext Serna Free http://www.syntext.com/ products/serna-free/ Eclipse http://www.eclipse.org/ GNU EMACS nXML mode ;-) http://www.gnu.org/software/emacs et http://www.thaiopensource.com/ nxml-mode/ chapitre Termes associés à XML 9 Voici la définition de plusieurs termes « techniques » associés à XML XML “eXtensible Markup Language”, en français « langage extensible de balisage », n'est pas vraiment un langage, mais plutôt une syntaxe utilisée pour créer des langages. Les langages XML sont divers, variés, multiples, omniprésents. Les spécifications techniques de XML et celles de beaucoup d'autres technologies (basées sur XML) sont maintenues par le consortium W3. Leur accès et leur utilisation sont libres. Voir aussi SGML. SGML Ancêtre de XML, “Standard Generalized Markup Language” est un langage balisé aujourd'hui essentiellement utilisé dans les industries très lourdes (aéronautique ou aéronavale civile et militaire). Voir aussi XML. modèle Un modèle définit l'ensemble des règles grammaticales d'un langage balisé. Il désigne abstraitement un domaine sémantique auquel appartient un ensemble d'« instances ». La modélisation implique la notion de validité, c'est-à-dire l'appartenance d'une instance à un domaine sémantique donné et sa conformité à un ensemble de règles grammaticales. Des instances valides et conformes au même modèle peuvent bénéficier d'un traitement uniforme et automatisable, tel qu'une transformation. Voir aussi schéma. schéma Un schéma est un modèle de document. SGML prévoit historiquement de modéliser des documents par l'intérmédiaire d'une DTD. Aujourd'hui, un schéma permet de constituer un modèle plus riche, précis et complexe. Les règles grammaticales définies par un schéma concernent autant des structures documentaires que des types de données. Il existe plusieurs langages de schéma. Voir aussi XSD, DTD, RNG, RNC, SCH. XSD XSD (« XML Schema Definition ») est le plus répandu des langages de schéma pour XML. Un schéma XSD est lui-même écrit en XML et favorise la modélisation « orientée objet ». La spécification de XMLschema est maintenue par le consortium W3 (http:// www.w3.org/xmlschema). Voir aussi schéma. 32 Termes associés à XML DTD “Document Type Definition”, définition typologique de documents. Une DTD établit un ensemble de règles grammaticales, essentiellement des structures documentaires. Les DTD constituent la plus ancienne des méthodes de modélisation de SGML et XML. Elles bénéficient d'une excellente reconnaissance logicielle. Leur syntaxe est concise et relativement simple à maîtriser. Voir aussi schéma. RNG, RNC Voir RelaxNG. RelaxNG RelaxNG (prononcé “relaxing”) est un langage de schéma XML qui combine la puissance du langage XSD et la simplicité des DTD. Un schéma RelaxNG peut être écrit dans une syntaxe XML (l'extension de ces fichiers est RNG) ou dans une syntaxe compacte (l'extension de ces fichiers est RNC). La spécification de RelaxNG est maintenue par le consortium OASIS. Voir aussi schéma. SCH Voir Schematron. Schematron Schematron est un langage de schéma XML qui permet de définir des règles particulières, appelées règles « métier ». Ces règles reposent sur des expressions Xpath pour formuler des tests et des assertions sur les « nœuds » d'un document XML. Schematron est une norme ISO. Voir aussi schéma. XHTML “eXtensible HyperText Markup Language” est un langage de mise en forme. Il permet de contrôler l'aspect de documents « dynamiques », essentiellement pour l'Internet. Voir aussi CSS. FO Voir XSL-FO. XSL-FO “eXtensible Stylesheet Language Formatting Objects” est un langage de mise en forme. Il permet de contrôler l'aspect des documents « statiques » (ex: pages imprimables). Les objets de formatage définis dans ce langage sont plus faciles à écrire que des instructions de pagination en PostScript ou en PDF ; un document FO servira donc le plus souvent d'intermédiaire et sera généralement issu d'un processus de transformation basé sur XSL-T. La spécification officielle de XSL-FO, parfois incomplète, a entraîné une implémentation inégale du standard. L'omniprésence de quelques solutions logicielles WYSIWYG privées sur le marché de la publication électronique rend l'adoption de XSL-FO relativement poussive. Voir aussi XSL-T. XSL-T “eXtensible Stylesheet Language for Transformations” est un langage de programmation utilisé pour effectuer des transformations Termes associés à XML 33 de XML à XML. Attention, c'est moins imbécile et plus difficile que ça en a l'air. Voir aussi XSL-FO. CSS Les feuilles de styles en cascade, “Casacaded Styles Sheets”, définissent les règles de mise en forme et les propriétés typographiques de documents écrits dans une syntaxe XML. Les CSS sont généralement associées aux documents (X)HTML. Leur syntaxe est simple, rapide à prendre en main, et permet d'obtenir facilement des résultats graphiques complexes et de qualité. Le niveau de reconnaissance du standard CSS par les navigateurs Web est encore inégal et favorise une minorité d'internautes avertis. Voir aussi XHTML. WYSIWYG “What You See Is What You Get”, en français « vous voyez ce que vous obtenez », est un mode de conception documentaire artificiel, orienté « aspect » et faussement inspiré des logiciels de conception graphique et de “design” dont il tente de reprendre l'ergonomie. Le WYSIWYG demeure assez récent et massivement prisé parmi les utilisateurs d'applications bureautiques, qu'il s'agisse de consommateurs dociles et modernes ou de professionnels animés par la volonté de “matcher” le “retroplanning” déjà “proactively scheduled” par le manadgement. WYSIWYM “What You See Is What You Mean”, en français « vous voyez ce que vous voulez dire », est un mode de conception documentaire orienté « sémantique » particulièrement apprécié par les puristes et autres individus minutieux. Présent depuis quelques décennies dans des universités scientifiques et techniques, où il a été introduit par LaTeX, ce mode d'édition est aujourd'hui sous-représenté dans le monde professionnel, dans la mesure où « comprendre ce que l'on fait » s'oppose au principe de productivité à court terme, en vigueur dans de nombreux domaines. JRE “ Java Runtime Environment ” est l'environnement exécutif de Java. Java est un langage de programmation très prisé des développeurs d'applications XML. Il est difficile de se passer de cet environnement lors d'une utilisation « avancée » de XML. Le JRE est disponible à l'adresse http://www.java.com/download/.