|
von Egon Willighagen <egonw/at/linuxfocus.org> Über den Autor: 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. Übersetzt ins Deutsche von: Viktor Horvath <ViktorHorvath/at/gmx.net> |
DocBook XML-Dokumente bearbeitenZusammenfassung:
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.
Der LinuxFocus Redaktion schreiben
© Egon Willighagen "some rights reserved" see linuxfocus.org/license/ http://www.LinuxFocus.org |
Autoren und Übersetzer:
|
2005-01-14, generated by lfparser_pdf version 2.51