XML-Kataloge überprüfen
(Auszug aus "DocBook-XML: Medienneutrales und plattformunabhängiges Publizieren" von Thomas Schraitle)
Wenn eine DTD nicht gefunden werden kann, ist oftmals ein fehlender oder falscher Eintrag in der Katalogdatei die Ursache. Um den Auflösungsprozess mitzuverfolgen, gibt es zwei Möglichkeiten:
- über das Programm xmlcatalog
- mit Hilfe der Variablen XML_DEBUG_CATALOG und dem Programm xmllint
Der Befehl xmlcatalog kann nicht nur zum Hinzufügen oder Löschen von Einträgen in Katalogdateien verwendet werden, sondern auch als Suchprogramm. Als Vorlage dient der Katalog aus dem Beispiel "testCatalog.xml". Die Eingabe von
xmlcatalog testCatalog.xml "-//OASIS//DTD DocBook XML V4.5//EN"
ergibt als Ausgabe
file:///usr/share/xml/docbook/schema/dtd/4.5/docbookx.dtd
Durch die Option -v wird der Befehl etwas gesprächiger:
Resolve pubID -//OASIS//DTD DocBook XML V4.5//EN
0 Parsing catalog testCatalog.xml
testCatalog.xml added to file hash
Found public match -//OASIS//DTD DocBook XML V4.5//EN
file:///usr/share/xml/docbook/schema/dtd/4.5/docbookx.dtd
Catalogs cleanup
Free catalog entry -//OASIS//DTD DocBook XML V4.5//EN
Free catalog entry http://www.beispiel.de/dtd/v2.3.4/bsp.dtd
Free catalog entry file:///usr/local/doc/xsldbg/catalog.xml
Free catalog entry testCatalog.xml
Free catalog entry
Bevor Sie nach weiteren Fehlerquellen suchen, führen Sie zuerst diesen Test durch. Dadurch lassen sich Tippfehler in Ihrer Katalogdatei schneller auffinden.
Die andere Möglichkeit setzt die Umgebungsvariable XML_DEBUG_CATALOG ein. Um den vorher verwendeten Katalog (Datei testCatalog.xml) vom XML-Parser xmllint zu verwenden, muss zusätzlich die Umgebungsvariable XML_CATALOG_FILES auf die jeweiligen Kataloge gesetzt werden. Die Eingabe des Befehls mit einer möglichen XML-Datei sieht wie folgt aus:
- Linux:
XML_DEBUG_CATALOG=1 XML_CATALOG_FILES=./testCatalog.xml \
xmllint --valid --noout test.xml
- Windows:
set XML_DEBUG_CATALOG=1
set XML_CATALOG_FILES=./testCatalog.xml
xmllint --valid --noout test.xml
Copyright © 2009 Millin Verlag
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "DocBook-XML: Medienneutrales und plattformunabhängiges Publizieren" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
Millin Verlag, Siebengebirgsring 36, 53797 Lohmar, info(at)millin.de