Login
Newsletter
Werbung

Do, 28. März 2013, 15:00

Einführung in Docbook

Docbook mit Emacs

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

Daniel Stender

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

Es ist unbequem, XML mit einem Editor zu schreiben, der nicht speziell dafür gedacht ist oder nicht zumindest besondere Funktionen dafür bereithält und in Sachen XML-Komfort gibt es große Unterschiede zwischen diesen Programmen. Wer nach freien Lösungen Ausschau hält, stößt recht schnell auf die Möglichkeit, Docbook komfortabel mit Emacs zu edieren, dem gewöhnungsbedürftigen, aber vielseitigen Editor-Schwergewicht. Seit Version 23.2 von GNU Emacs ist nXML der Standard-XML-Modus. Es handelt sich bei nXML um einen sehr leistungsstarken Major-Mode, der neben speziellen Eingabehilfen wie Syntax-Highlighting, Autoeinrückung, Tag-Vervollständigung und Wohlgeformtheits-Überwachung auch eine Echtzeit-Gültigkeitsprüfung für Relax NG-Schemata sowie kontextsensitive Tag-Vorschläge möglich macht.

nXML schaltet sich in Emacs automatisch hinzu, sobald Dateien mit den Endungen .xml, .xsl, .rng oder .xthml ediert werden. Die für Ubuntu gepflegten GNU Emacs 23-Pakete beinhalten für nXML verschiedene XML-Schemata (nXML verwendet Relax NG in kompakter Syntax), gegenüber denen automatisch validiert wird. Die im aktuellen Paket auf Ubuntu 12.04 (23.3+1-1ubuntu9) und anderen Distributionen verwendete Docbook-Schemadatei ist allerdings veraltet, denn es handelt sich dabei immer noch um Version 4.2 und ein konformes Docbook 5.0-Dokument wird dementsprechend als ungültig bewertet. Eine einfache Lösung für dieses Problem ist, für die geöffnete Datei ein eigenes, lokales nXML-Schemaregister zu erstellen: Nach der Tastenkombination Strg +C Strg + S Strg + F kann die korrekte Schemadatei eingegeben werden, worauf dann ein Register schemas.xml dafür im aktuellen Arbeitsverzeichnis angelegt wird.

Im nXML gibt es mit Strg + Enter eine jeweils kontextsensitive Liste mit allen möglichen Vervollständigungen von Tags und Attributen, so dass bei einem eingegebenen <p dabei unter anderem das Element <para> vorgeschlagen wird, falls es an dieser Stelle gültig ist. Eine andere wichtige Funktion ist das Einfügen von korrespondierenden End-Tags mit Strg + C Strg + F. Fehler im Dokument werden rot hervorgehoben.

Das Element <para> in Zeile 10 wird als Fehler angezeigt, weil ein Textabschnitt innerhalb von <book> nur innerhalb eines <chapter> vorkommen darf, während die Auto-Vervollständigung die an der aufgerufenen Stelle möglichen Elemente <chapter> und <colophon> vorschlägt.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung