original in en Egon Willighagen
en to fr St�phane Delcroix
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.
Cet article d�crit l'utilisation de Kate et de son plugin XML comme outil pour l'�dition de documents XML DocBook.
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 .
./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:
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).
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 :
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:
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:
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 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.
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.
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.