SGML et DocBook ne souffrent pas du foisonnement d'outils d'édition OpenSource. Le plus commun d'entre eux est l'éditeur Emacs/XEmacs qui dispose d'un mode d'édition approprié. Sur certains systèmes, ces outils sont fournis sous la forme d'une installation complète (un même paquetage ou ensemble).
PSGML est le mode d'édition de documents SGML le plus répandu et le plus puissant. S'il est correctement configuré, il permet d'utiliser Emacs pour insérer des balises et en vérifier la cohérence. Il peut aussi être utilisé pour le HTML. Visiter le site web de PSGML pour le télécharger, avoir des informations sur l'installation et pour disposer d'une documentation détaillée.
L'auteur de PSGML suppose que le répertoire
principal pour la DTD SGML est
/usr/local/lib/sgml
. Si, comme c'est le cas dans les
exemples de ce chapitre, le répertoire
/usr/local/share/sgml
est utilisé, il faut modifier la
variable d'environnement SGML_CATALOG_FILES
ou
personnaliser l'installation de PSGML (son manuel
indique la procédure).
Ajouter les lignes suivantes dans le fichier d'environnement
~/.emacs
(en ajustant les noms des répertoires pour
qu'il convienne au système de fichiers) :
; ********** pour le mode SGML (psgml) (setq sgml-omittag t) (setq sgml-shorttag t) (setq sgml-minimize-attributes nil) (setq sgml-always-quote-attributes t) (setq sgml-indent-step 1) (setq sgml-indent-data t) (setq sgml-parent-document nil) (setq sgml-exposed-tags nil) (setq sgml-catalog-files '("/usr/local/share/sgml/catalog")) (autoload 'sgml-mode "psgml" "Major mode to edit SGML files." t )
et dans le même fichier ajouter l'entrée pour le SGML
dans la définition (existante) pour
auto-mode-alist
:
(setq auto-mode-alist '(("\\.xml$" . sgml-mode) ))
Il peut s'avérer plus
confortable pour gérer des fichiers séparés d'insérer une déclaration
DOCTYPE
propre lors de l'édition d'un fichier avec
PSGML. Si l'on considère le fichier source de
cette annexe, par exemple, il est possible de préciser que le document est une instance
« appendix » d'un document DocBook en ajoutant en première
ligne ceci :
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.2//EN">
Ceci signifie que, quelque soit l'outil lisant le
SGML, il le fait correctement et que la
validité du document peut être vérifiée avec
nsgmls -s docguide.xml
. (Cependant, il faut
supprimer la ligne avant de fabriquer le document complet à partir des
différents fichiers.)
GNU Emacs dispose d'un mode
SGML natif différent qui n'est pas aussi puissant que
PSGML, mais qui a le bénéfice d'être plus simple
et léger. Il offre la coloration syntaxique (en mode font lock), ce qui
peut être utile.
src/tools/editors/emacs.samples
contient quelques
exemples pour ce mode.
Norm Walsh propose un mode majeur spécifique à DocBook qui dispose également de la coloration syntaxique et d'un certain nombre de fonctions permettant de réduire le temps de saisie.