original in en Egon Willighagen
en to de Viktor Horvath
Besitzt einen Master-Grad in Chemie an der Universit�t von Nijmegen und arbeitet an seiner Doktorarbeit �ber molekulare Darstellung an derselben Universit�t. Spielt Basketball und programmiert Java-Anwendungen.
Dieser Artikel beschreibt die Benutzung von Kate und seinem XML-Plugin als ein Werkzeug zum Bearbeiten von DocBook XML-Dokumenten.
Das Bearbeiten von XML mit OpenSource war lange ein Problem. Die Leute brauchen einen Editor, der g�ltiges XML erzeugen kann, und sehen die Ausgabe am besten direkt. Es gibt Editoren, die das k�nnen, aber die sind propriet�r. In der OpenSource-Welt gibt es ein paar Programme, die dir keine h�bsche graphische Oberfl�che bieten, aber g�ltige XML-Dokumente produzieren und dich �ber diejenigen Elemente informieren k�nnen, die an einer bestimmten Position im Dokument erlaubt sind.
Nat�rlich gibt es Emacs mit seinem DocBook-Minor Mode, der gut arbeitet (siehe einen fr�heren DocBook-Artikel). Dieser spezielle Modus erm�glicht es, Kind-Elemente auszuw�hlen, die in das Dokument eingef�gt werden und auf den bereits dort vorhandenen Elementen basieren. Und meines Wissens nach erlaubt er automatische Erg�nzungen mit der Tabulator-Taste.
Aber in diesem Artikel will ich ihn nicht besprechen, sondern stattdessen Kate als einen DocBook XML-Editor einf�hren.
./configure --prefix=/path/where/your/kde3/is/installed make sudo make install
Ist das Plugin installiert, mu�t du Kate noch darauf aufmerksam machen. W�hle dazu "Configure Kate" aus dem "Settings"-Men�. Im "Plugins"-Manager kannst du das XML-Plugin in die Liste von geladenen Plugins setzen:
Meta DTDs werden mit Norman Walshs dtdparser erzeugt, von dem Pakete heruntergeladen werden k�nnen bei SourceForge.net.
Ich habe eine leicht angepa�te Version 2.0beta6 benutzt. Ich mu�te z.B. den Pfad im dtdparse-Programm in der ersten Zeile �ndern, um den korrekten Pfad zu meiner Perl-Installation anzugeben. Wenn man das Programm startet, gibt es eine Ausgabe wie:
> ./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.
Beachte die gro�e Zahl von "Entities", die geladen werden. Unter anderem deswegen ist die resultierende Meta DTD 1,63 Mibibytes gro�. Aber mit einem XSLT-Prozessor wie xsltproc kann dies auf 0,96 MiB reduziert werden mit dem simplify_dtd.xsl-Stylesheet aus dem kde-addon-Paket:
> xsltproc simplify_dtd.xsl docbookx.dtd.xml > docbook-xml-4.1.2.dtd.xml
Die resultierende docbook-xml-4.1.2.dtd.xml kann dann kopiert werden nach /path/to/kde3/share/apps/katexmltools/, wobei /path/to in das Verzeichnis ge�ndert wird, in dem KDE3 tats�chlich installiert ist. Aber dein Home-Verzeichnis wird es auch tun, da das XML-Plugin nach einem Dateinamen fragen wird, wenn eine neue Meta DTD angegeben wird (siehe unten).
Wenn ein neues DocBook XML-Dokument er�ffnet wird, mu� eine Meta DTD angegeben werden. Das wird gemacht, indem man "Assign Meta DTD" aus dem "XML Plugin"-Men� w�hlt. Ein Datei-�ffnen-Dialog wird erscheinen, und du kannst die DTD ausw�hlen, die du benutzen willst. In diesem Fall ist dies die DocBook XML 4.1.2 Meta DTD, die wir gerade erzeugt haben. Ein neuer Dialog wird sich zeigen und �ber die Verarbeitung informieren:
In das neue, leere Dokument schreiben wir "<book>". Um das Element zu schlie�en, dr�cken wir F11. Wenn das Syntax-Highlighting noch nicht angestellt ist, kannst du das manuell tun, indem du "Highlight Mode" im "Dokument"-Men� ausw�hlst. XML-Syntax-Highlighting ist im "Markup"-Untermen�.
Weil wir vergessen haben, welche Attribute das "book"-Element hat, plazieren wir den Cursor am Ende des Wortes "book" im beginnenden Tag und dr�cken Strg+Return. Ein neues Fenster wird dir eine Liste aller m�glichen Attribute f�r das aktuelle Element zeigen:
Indem du den Cursor zwischen die Hochkommata stellst und Strg+Return dr�ckst, erh�ltst du sogar die m�glichen Werte f�r das Attribut, wenn sie in der DTD definiert sind. Das ist f�r das "id"-Attribut nicht der Fall.
Nach dem Einf�gen des Attributes haben wir diesen DocBook XML-Code:
<book id="SomeID"> </book>
Wenn wir den Cursor zwischen das Start- und End-Tag des "book"-Elements bewegen und Strg+Return dort dr�cken, erscheint eine neue Liste, aber jetzt mit allen m�glichen Kind-Elementen f�r das "book"-Element. Wir k�nnen z.B. das "title"-Element ausw�hlen:
Ein Nachteil dieses Plugins ist, da� es nur die Kind-Elemente kennt und nicht die Reihenfolge oder Anzahl, in der sie auftreten d�rfen. Die DTD erlaubt dir z.B. nicht zwei oder mehr "title"-Elemente, aber das XML-Plugin warnt dich nicht davor. Da das Plugin auch (noch) keine �berpr�fungs-Option hat, ist es immer noch sehr leicht, ung�ltige Dokumente zu bekommen.
Eine Zusammenfassung der Funktionalit�t des Plugins ist in folgender Tabelle gegeben:
Aufgabe | Befehl |
XML (Elemente und Attribute) einf�gen | Strg+Return |
Entity einf�gen | F10 |
Schlu�-Tag | F11 |
Das KDE-Projekt benutzt auch selber DocBook als ein Format f�r seine Dokumentation. Als solches kommt das XML-Plugin standardm��ig mit einer KDE-angepa�ten Version von DocBook. Es ist nat�rlich zum Schreiben von KDE-Dokumentation vorzuziehen, deren Meta DTD f�r DocBook zu benutzen anstelle der Meta DTD f�r DocBook XML 4.1.2.
DocBook unterst�tzt jetzt auch MathML, um mathematische Gleichungen in Dokumente einzuf�gen. Eine gemischte DTD, um DocBook-Dokumente mit MathML-Code zu �berpr�fen, kann in dieser e-mail gefunden werden.
SVGs DTD wurde leider nicht dergestalt geschrieben, da� es m�glich ist, sie in DocBook einzubeziehen. Aber es werden entsprechende Anstrengungen unternommen.
Die Benutzung in Kates XML-Plugin erfordert es, eine neue Meta DTD mit dtdparse zu erstellen, die auf der kombinierten DTD basiert.
Das XML-Plugin f�r Kate kann dir sehr beim Bearbeiten von DocBook-XML-Dokumenten helfen. Es ist nicht vollkommen, andererseits wurde es erst k�rzlich entwickelt. Mit KDE 3.0 ist es f�r sehr viele Leute verf�gbar.