- XML Catalog
-
XML Catalogs ist eine Technik zum Ersetzen von externen Referenzen in XML-Dokumenten. Hierbei wird beim Parsen des XML überprüft, ob es für die referenzierte externe Datei im Katalog eine Ersetzungsregel gibt. Wird hier eine zutreffende Regel gefunden, so wird die in der Datei vorhandene Referenz durch die Referenz aus dem Katalog ersetzt. Der Katalog selbst ist eine XML-Datei, die dem Parser bekannt gemacht werden muss. XML Catalogs ist ein OASIS-Standard.
XML Catalogs hat zwei primäre Einsatzgebiete:
- Ersetzen von entfernten Dateien durch lokale Dateien: Viele Dateien binden weitere externe Dateien ein. Wenn dabei jedesmal eine Netzwerkverbindung aufgebaut werden muss, wird die Ausführung verlangsamt und im Fall eines Verbindungsfehlers eventuell gestört. Zudem können Server, die häufig benutzte Dateien bereitstellen (beispielsweise die Server des W3C für die DTD von XHTML unter
http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd
), überlastet werden. - Ersetzen von Referenzen durch andere: Es lassen sich zum Beispiel alte URLs oder veraltete Schemata durch neue ersetzen, ohne am jeweiligen Dokument bzw. an der jeweiligen Anwendung Änderungen vornehmen zu müssen. Dies ist für XML-Schnittstellen (bei denen man oft das Datenformat externer Quellen nicht beeinflussen kann) eine gängige Technik.
Beispiele
Das folgende Beispiel zeigt einen Katalog (üblicherweise gespeichert in einer Datei mit dem Namen
catalog.xml
), der für die externe Referenz mit dem System-Identifierhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
eine lokale DTD unterdtd/xhtml1/xhtml1-strict.dtd
bereitstellt. Analog wird mit den beiden anderen DTDs verfahren.<?xml version="1.0"?> <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> <system systemId="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" uri="dtd/xhtml1/xhtml1-strict.dtd"/> <system systemId="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" uri="dtd/xhtml1/xhtml1-transitional.dtd"/> <system systemId="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" uri="dtd/xhtml11/xhtml11-flat.dtd"/> </catalog>
Das Problem kann für mehrere Dokumente auch gelöst werden, indem ganze Teile des URI ersetzt werden:
<?xml version="1.0"?> <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> <rewriteURI uriStartString="http://www.w3.org/TR/xhtml1/DTD/" rewritePrefix="dtd/"/> </catalog>
Weblinks
- XML Catalogs OASIS Standard V1.1, 7 October 2005 (englisch)
- Using XML Catalogs - apache.org (englisch)
- Ersetzen von entfernten Dateien durch lokale Dateien: Viele Dateien binden weitere externe Dateien ein. Wenn dabei jedesmal eine Netzwerkverbindung aufgebaut werden muss, wird die Ausführung verlangsamt und im Fall eines Verbindungsfehlers eventuell gestört. Zudem können Server, die häufig benutzte Dateien bereitstellen (beispielsweise die Server des W3C für die DTD von XHTML unter
Wikimedia Foundation.