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/.