1-Introduction Création de documents <XML/> avec XEmacs Qu est-ce que XML? Equipe TICE Académie de Caen XML (extensible Markup Language, ou Langage Extensible de Balisage)est un langage de description de documents structurés. Comme SGML dont il est issu, il permet de décrire la structure d un document sans tenir compte de sa description physique (mise en page, choix des polices de caractères, en-tête, marges...), toutes ces propriétés physiques sont définies dans un autre document, la feuille de style. Cette séparation de la description structurelle de la description formelle facilite l échange et la production coopérative de documents, elle offre également une indépendance et donc une interopérabilité vis à vis de la plateforme (logiciel ou applicatif) qui exploite ces documents et assure une pérennité sur le long terme (archivage électronique...) mais surtout, elle permet d importantes possibilités de traitement automatisés de documents (indexation, recherche d informations y compris dans de gros volumes documentaires...). XML et quelques acronymes associés : SGML (Standard Generalized Markup Language) : SGML est bien adapté et très utilisé dans l industrie (automobile, aéronautique...) pour créer des documentations techniques ou lexicographiques très volumineuses (encyclopédies, spécifications techniques d un système...). XML est une version abrégée de SGML, qui permet de définir ses propres types de documents plus facilement, et qui permet de développer plus aisément des programmes permettant de traiter ces documents. Les parties les plus complexes et les moins utilisées de SGML ont été supprimées. CSS (Cascading Style Sheeet) : La réalisation physique d un document XML est pilotée par une feuille de style. Une feuille de style CSS est composée de régles de style qui s appliquent aux divers éléments du document traité. DTD (Document Type Definition) : Une DTD est un fichier, écrit en XML, qui contient une définition formelle d un type particulier de document. Elle définit les noms qui peuvent être utilisés pour les types d éléments (<section>, <para>...), où ils peuvent apparaître et comment ils s organisent les uns par rapport aux autres. La définition de document type est donc un mécanisme de spécification de structure, elle permettra en outre de vérifier si le document XML répond à ces 1
spécifications (notion de document valide). Valider un document consistera à le soumettre à un analyseur syntaxique (parseur) qui va vérifier si : le document respecte bien la syntaxe du langage XML (est il bien formé?). le document respecte bien la structure définie par la DTD (est il valide?). DSSSL (Document Style and Semantics SpecificationLanguage) : Lorsque l on souhaite passer à la réalisation physique du document dans un format quelconque (html, ps, tex...), il faudra utiliser un programme de formatage comme jade qui utilise le langage DSSSL qui est la norme internationale de feuilles de style pour les documents SGML Qu est ce que XEmacs : Xemacs est un éditeur de textes surpuissant, c est la version X de GNU Emacs (mais les deux approches sont différentes). Ne vous posez pas la question que puis je faire avec XEmacs? Mais posez vous plutot la question : Qu est ce qu il n est pas possible de faire avec XEmacs ;-))? Dans le cadre de la création de documents XML, nous allons voir comment XEmacs va nous permettre d éditer, de valider nos documents. 2-Préparation de la session de création de documents avec XEmacs Lancement du mode XML : Saisir la séquence de touches M-x 1 puis dans le mini buffer situé en bas de la fenêtre, lancer le mode XML avec la commande xml-mode. 2
Figure 1. Lancement du mode xml Figure 2. Mode xml activé Déclaration et lecture de la DTD : Dans le mode XML, la séquence de touches C-c C-p 2 lance la lecture de la dtd déclarée au début du document. Alternativement à cette séquence de touches, cliquer sur le bouton droit de la souris lance également la lecture de la dtd. 3
Figure 3. Entete de document En fin de saisie, C-c C-v 3 valide la conformité du document avec la dtd, il est possible de se passer de cette validation, jade, le post-processeur qui générera le fichier de sortie l assure lui aussi. Figure 4. Validation de la conformité du document 4
3-Composition du document XML Un documentxml se compose : d un prologue (facultatif mais conseillé) d un arbre d éléments de commentaires (faculatifs) Le prologue : Il peut contenir une déclaration XML, une déclaration de type de document (voir figures 3 et 4 page précédente). L arbre d éléments : Il constitue le contenu du document XML. Chaque élément est composé d une balise d ouverture, d un contenu d élément, et d une balise de fermeture : Exemple 1. Elément paragraphe <para> A gauche,la balise d ouverture para. L ensemble du texte constitue le contenu de l élément. A droite la balise de fermeture para</para> Les commentaires : Ils permettent une maintenance plus aisée du document (mise à jour, modification par un autre utilisateur dans le cadre d un travail collaboratif...). Exemple 2. commentaire : <!-- ceci est un commentaire --> Mise en place des éléments avec XEmacs en mode xml : En mode xml XEmacs vous permet de placer les balises grace à un menu contextuel accessible avec le bouton droit de la souris. 5
Figure 5. Mise en place de l élément article Figure 6. Dans l arbre d éléments choix d un élément disponible Il est à noter qu en fonction de la DTD utilisée la liste contextuelle des éléments variera. 4-Génération des documents de sorties Génération des documents au format HTML : Pour générer les documents de sortie au format HTML, il suffira de lancer la commande ci-dessous Exemple 3. Le fichier source XML est situé en /var/www/xml_doc Les fichiers de sorties au format HTML seront générés en /var/www/xml_doc/xml2html 6
Nous disposons du fichier oluve_html.dsl (merci Oluve (mailto :olivier.le_monnier@crdp.ac-caen.fr) :^) situé dans le répertoire /var/www/xml_doc En se placant dans le répertoire cible /var/www/xml_doc/xml2html, lancer la commande : jade -d../oluve_html.dsl -t sgml /usr/lib/sgml/declaration/xml.decl../essai1.xml Figure 7. Résultat de la commande jade... Vous observez : qu il existe des fichiers *.png dans le répertoire cible. qu il existe un fichier style.css dans le répertoire cible. que le poste processeur jade, a généré n documents au format HTML dans ce même répertoire. Annexe A. Quelques commandes XEmacs indispensables 1-Commandes à saisir dans le Mini-Tampon : Après la séquence de touches M-x Saisir dans le Mini-Tampon : xml-mode pour passer en mode XML 7
indented-text-mode Mode alinéa text-mode Quitte le mode alinéa et retourne en mode text goto-line num Allez à la ligne num shell Obtenir un shell dans XEmacs C-g Annuler la commande dans le mini-tampon 2-Marquer une région : C-Espace Positionner la marque ici 3-Supprimer et détruire : C-w Supprimer une région M-d Un mot M-0 C-k Supprimer une ligne 4-Gestion des tampons (buffers) C-x C-b Liste des tampons actifs C-x b Sélection d un autre tampon C-x 0 Supprime la fenêtre active C-x 1 Supprime toutes les autre fenêtres 5-Tabulations : C-x TAB 6-Couper, Copier, Coller, Annuler : M-w Copier C-y Coller C-w Couper C-x u Annuler dernière action (Undo) 8
7-Chercher : C-s Recherche vers l avant C-r Recherche vers l arrière C-g Annule la recherche en cours M-n Recherche suivante 8-Chercher, Remplacer : M-% Remplacer interactivement une chaine de caractères Espace Remplacer celle-ci, passer à la suivante SUPP Sauter à la suivante sans remplacer! Remplacer toutes les correspondances suivantes 9-Sauvegardes : C-x C-w Sauvegarder le tampon sous un nom de fichier donné C-x C-s Sauvegarder le tampon sous le nom de fichier courant 10-Ouvrir un fichier : C-x C-f Ouvrir un fichier C-x 4 f Ouvrir un fichier dans un autre tampon Annexe B. Ressources XML Ressources en ligne : Trois articles concernant XML sur interactif.lemonde.fr (http://interactif.lemonde.f) (rechercher le mot clé XML sur le site) XML Educnet (http://www.educnet.education.fr/documentation/dossier/xml.htm) 9
Un site XML en français XMLFR (http://xmlfr.org) Questions fréquemment posées sur XML FAQ-XML (http://www.gutenberg.eu.org/pub/gutenberg/publications/html/faqxml/faqxml-fr.html) Utilisation de SGML pour l écriture de documents portables (http://casteyde.christian.free.fr/sgml/online/book1.html) Ressources bibliographiques XML Langage et applications Alain Michard, 499 pages, Edition Eroylles ISBN : 2-212-09206-7 Learning XML Exemple en ligne du chapitre 2 (http://www.oreilly.com/catalog/learnxml/chapter/ch02.html) By Erik T.Ray with Christopher R.Maden 250 pages, Edition O Reilly Annexe C. Source du document ce document est disponible : en ligne : http://linux.crdp.ac-caen.fr/xmlxemacs/ au format xml, fichier source, dtd sdocbook-xml version 3.1.3 : http://linux.crdp.ac-caen.fr/xmlxemacs/source/xmlxemacs.xml 10
Notes 1. M-x : Séquence de touches META, puis x (META représente la touche ALT ou ESC) 2. C-c C-p : Séquence de touches Ctrl + c puis Ctrl + p 3. C-c C-v : Séquence de touches Ctrl + c puis Ctrl + v 11