XML Catalogs

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:

  1. Ersetzen von entfernten Dateien durch lokale Dateien: Viele Dateien binden weitere externe Dateien ein. Wenn dabei jedes Mal 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.
  2. 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-Identifier http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd eine lokale DTD unter dtd/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>

Folgender Katalog weist unterschiedlichen System-Identifiern (z. B. andere Schreibweisen) dieselbe lokale DTD zu:

<?xml version="1.0"?>
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.1//EN" "http://www.oasis-open.org/committees/entity/release/1.1/catalog.dtd">

<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
	<systemSuffix systemIdSuffix="xhtml1-strict.dtd" uri="dtd/xhtml1/xhtml1-strict.dtd"/>
	<systemSuffix systemIdSuffix="XHTML1-STRICT.dtd" uri="dtd/xhtml1/xhtml1-strict.dtd"/>
</catalog>

Diese Funktionalität wurde erst mit Version 1.1 in den Katalog-Standard aufgenommen.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.