L'�dition de documents XML DocBook

ArticleCategory: [Artikel Kategorie]

Applications

AuthorImage:[Bild des Autors]

[Photo of the Author]

TranslationInfo:[Author and translation history]

original in en Egon Willighagen

en to fr St�phane Delcroix

AboutTheAuthor:[��ber den Autor

Il a une ma�trise en chimie de l'Universit� de Nijmegen, et effectue sa th�se de doctorat en repr�sentation mol�culaire dans la m�me universit�. Il joue au basketball et �crit des applications en Java.

Abstract:[Zusammenfassung]

Cet article d�crit l'utilisation de Kate et de son plugin XML comme outil pour l'�dition de documents XML DocBook.

ArticleIllustration:[Titelbild des Artikels]

[Illustration]

ArticleBody:[Der eigentliche Artikel]

Introduction

L'�dition de documents XML en OpenSource a longtemps �t� un probl�me. Les utilisateurs ont besoin d'un �diteur capable de produire du XML valide, et si possible de visualiser directement le r�sultat. Il existe des �diteurs capables de cela, mais ils sont propri�taires. Dans le monde OpenSource, il y a quelques programmes ne disposant pas d'une belle interface graphique mais qui peuvent produire des documents XML valides et vous conseiller sur les �l�ments autoris�s � une position sp�cifique.

Il y a bien s�r Emacs avec son mode mineur DocBook qui fait �a tr�s bien (voir le pr�c�dent article sur DocBook ). Ce mode sp�cial offre le choix de placer des �l�ments fils dans le document sur la base d'�l�ments d�j� pr�sents dans le document. Il permet de plus la compl�tion par la touche tab � partir de cette connaissance.

Je ne vais pas en parler dans cet article, mais plut�t pr�senter Kate comme �diteur XML DocBook .

Kate

Kate est un des �diteurs de l'environement de bureau KDE. Il est relativement l�ger, supporte l'ouverture simultan�e de fichiers et dispose �galement d'une surbrillance de syntaxe pour XML. De plus, un plugin XML a �t� cr�� l'an dernier par Daniel Naber qui peut vous aider � �crire des documents XML valides. Dans KDE 3.0, le plugin XML pour Kate est inclus dans le paquetage kde-addon. Si le paquetage kde-addon de KDE 3.0 n'est pas encore install�, faites-le en ajoutant une des nombreuses distributions de binaires ou en compilant le paquetage �partir des sources:
./configure --prefix=/chemin/d'installation/de/kde3
make
sudo make install

Lorsque le plugin est install�, vous devez encore en avertir Kate. Pour ce faire, s�lectionnez "Configure Kate" dans le menu "Settings". Dans le gestionnaire de "Plugins" vous pouvez placer le plugin XML dans la liste des modules charg�s:

[gestionnaire de plugin de Kate]>

Construire la DTD Meta

Les DTD meta sont g�n�r�es avec le dtdparser de Norman Walsh, dont les paquetages peuvent �tre t�l�charg�s depuis SourceForge.net.

J'ai utilis� la version 2.0beta6 l�g�rement modifi�e. Par exemple, J'ai du changer le chemin dans la premi�re ligne du script dtdparse pour adapter le chemin vers mon installation de Perl. L'ex�cution du programme devrait donner quelque chose comme ceci:

> ./dtdparse /path/to/docbookx.dtd
Public ID: unknown
System ID: /usr/share/sgml/docbook/dtd/xml/4.1.2/docbookx.dtd
SGML declaration: unknown, using defaults for xml and namecase
Loading dbnotnx.mod
Loading dbcentx.mod
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsa.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsb.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsc.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsn.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamso.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsr.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISObox.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOcyr1.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOcyr2.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOdia.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk1.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk2.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk3.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk4.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOlat1.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOlat2.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOnum.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOpub.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOtech.ent
Loading dbpoolx.mod
Loading calstblx.dtd
Loading dbhierx.mod
Loading dbgenent.mod
Parse complete.
Writing docbookx.dtd.xml...
Done.

Remarquez le nombre important d'entit�s charg�es. C'est en partie pour cette raison que la DTD Meta obtenue p�se 1.63 Mibibytes. Mais gr�ce �un processeur XSLT tel que xsltproc cela peut �tre r�duit � 0.96 MiB avec la feuille de style simplify_dtd.xsl du paquetage kde-addon:

> xsltproc simplify_dtd.xsl docbookx.dtd.xml > docbook-xml-4.1.2..dtd.xml

Le docbook-xml-4.1.2.dtd.xml obtenu peut �tre copi� dans /chemin/vers/kde3/share/apps/katexmltools/ o� /chemin/vers est remplac� par le chemin du r�pertoire dans lequel kde3 est vraiment install�. Mais votre r�pertoire personnel peut aussi convenir, puisque le plugin XML r�clame un nom de fichier lors de l'assignation d'une nouvelle DTD Meta (voir plus bas).

Editer

Pour cr�er un nouveau document XML, une DTD Meta doit �tre attribu�e. Ceci peut �tre fait en choisissant "Assign Meta DTD" dans le menu "XML Plugin". Une fenetre de s�lection de fichier appara�t et vous pouvez choisir la DTD � utiliser. Dans ce cas, c'est la DTD Meta XML DocBook 4.1.2 que nous venons de cr�er. Une nouvelle fen�tre indique l'�tat d'avancement :

[Fenêtre d'analyse Meta DTD]

Dans le nouveau document vide, nous tapons "<book>". Pour refermer l'�l�ment nous tapons F11. Si la surbrillance de syntaxe n'est pas encore activ�e, vous pouvez le faire manuellement en s�lectionnant "Highlight Mode" dans le menu "Document". La surbrillance de syntaxe XML se trouve dans le sous-menu "Markup".

Comme nous avons oubli� quels sont les attributs de l'�l�ment book, nous pla�ons le curseur � la fin du mot book dans la balise de d�but et nous pressons Ctrl+Return. Une fen�tre contextuelle doit vous montrer une liste de tous les attributs disponibles pour l'�l�ment courant:

[Insérer un attribut]

Placer le curseur entre les "" et presser Ctrl+Return, vous donne aussi les valeurs possible pour l'attribut si elles sont d�finies dans la DTD. Ce qui n'est pas le cas de l'attribut id.

Apr�s avoir ins�r� l'attribut nous avons ce code XML DocBook:

<book id="SomeID">
</book>

En pla�ant le curseur entre les balises d'ouverture et de fermeture de l'�l�ment book et en pressant Ctrl+Return �cette position, vous obtenez une nouvelle liste, mais cette fois, avec tous les �l�ments fils disponibles pour book. Nous pouvons, par exemple, s�lectionner l'�l�ment titre:

[Insérer un élément]

Un inconv�nient de ce plugin vient de ce qu'il ne tient compte que des �l�ments fils, mais pas de l'ordre ni du nombre de fois dans lesquels ils peuvent se produire. Par exemple, la DTD n'autorise pas deux �l�ments title ou plus, mais le plugin XML ne vous en avertit pas. Comme le plugin n'a pas (encore) d'option de validation, il est encore tr�s facile d'obtenir des documents non valides.

Un r�sum� des fonctionalit�s du plugin est donn� dans la table ci-dessous:

Fonction Commande
Ins�rer XML (�l�ments et attributs) Ctrl+Return
Ins�rer Entit� F10
Fermer la balise F11

Le DocBook KDE

Le projet KDE lui-m�me utilise aussi DocBook comme format de sa documentation. ainsi, le plugin XML est fourni par d�faut avec une version de DocBook adapt�e pour KDE . Choisir cette DTD Meta pour DocBook est bien s�r pr�f�rable �la DTD Meta de DocBook XML 4.1.2 pour l'�criture de documentation KDE.

MathML et SVG

DocBook supporte aussi maintenant MathML pour inclure des �quations math�matiques dans les documents. Une DTD mixte pour la validation des documents DocBook avec du code MathML peut �tre trouv� dans ce courrier �lectronique

La DTD SVG n'a malheureusement pas �t� �crite de mani�re � l'inclure dans DocBook. Mais des travaux sont en cours pour y parvenir.

L'utilisation du plugin XML pour Kate n�cessite la g�n�ration d'une nouvelle DTD Meta bas�e sur la DTD combin�e avec dtdparse.

Conclusion

Le plugin XML pour Kate peut vous �tre tr�s utile lors de l'�dition de documents XML DocBook. Il n'est pas parfait, mais encore une fois, son d�veloppement n'a commenc� que r�cemment. Avec KDE 3.0, il est maintenant disponible pour tout le monde.