Altova MapForce 2025 Enterprise Edition

Mit Hilfe von Katalogen können Umleitungen sowohl zu DTDs als auch XML-Schemas definiert werden. Das Prinzip des Mechanismus ist in beiden Fällen dasselbe, doch unterscheidet er sich in einigen weiter unten beschriebenen Details.

 

DTDs

Kataloge dienen normalerweise dazu, einen Aufruf von einer DTD an eine lokale URI umzuleiten. Dies geschieht in der Katalogdatei durch Mappen von Public und System Identifiern auf die gewünschte lokale URI. Wenn also die DOCTYPE-Deklaration in einer XML-Datei gelesen wird, findet ihr Public oder System Identifier über das Katalogdatei-Mapping die gewünschte lokale Ressource.

 

Für gebräuchliche Schemas ist der PUBLIC Identifier normalerweise vordefiniert, sodass für die URI in der Katalogdatei nur der PUBLIC Identifier auf den korrekten lokalen Identifier gemappt werden muss. Wenn das XML-Dokument geparst wird, wird der PUBLIC Identifier darin gelesen. Wenn dieser Identifier in einer Katalogdatei gefunden wird, wird die entsprechende URL in der Katalogdatei nachgeschlagen und das Schema wird von dort aus gelesen. Wenn also die folgende SVG-Datei in MapForce geöffnet wird:

 

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

 

<svg width="20" height="20" xml:space="preserve">

 <g style="fill:red; stroke:#000000">

    <rect x="0" y="0" width="15" height="15"/>

    <rect x="5" y="5" width="15" height="15"/>

 </g>

</svg>

 

Der Katalog wird nach dem PUBLIC Identifier dieser SVG-Datei durchsucht. Angenommen, die Katalogdatei enthält den folgenden Eintrag:

 

<catalog>

 ...

   <public publicId="-//W3C//DTD SVG 1.1//EN" uri="schemas/svg/svg11.dtd"/>

 ...

</catalog>

 

In diesem Fall gibt es einen Treffer für den PUBLIC Identifier, sodass der Lookup-Mechanismus für die SVG DTD an die URL schemas/svg/svg11.dtd umgeleitet wird; (dieser Pfad ist relativ zur Katalogdatei). Diese lokale Datei wird dann als DTD für die SVG-Datei verwendet. Wenn im Katalog kein passender Treffer für den Public Identifier gefunden wird, wird die URL im XML-Dokument verwendet (im SVG Beispiel oben ist dies die Internet URL http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd).

 

XML-Schemas

In MapForce können Sie eine Umleitung zu einem XML-Schema auch mit Hilfe von Katalogen durchführen. In der XML-Instanzdatei erfolgt die Referenz zum Schema im xsi:schemaLocation Attribut des Elements der obersten Ebene des XML-Dokuments. Beispiel:
 

xsi:schemaLocation="http://www.xmlspy.com/schemas/orgchart OrgChart.xsd"

 

Der Wert des xsi:schemaLocation-Attributs besteht aus zwei Teilen: einem Namespace-Teil (oben grün) und einem URI-Teil (markiert). Anhand des Namespace-Teils erfolgt im Katalog das Mapping auf die alternative Ressource. So erfolgt etwa im folgenden Katalogeintrag eine Umleitung der Schemareferenz oben auf ein Schema unter einem anderen Pfad.

 

<uri name="http://www.xmlspy.com/schemas/orgchart" uri="C:\MySchemas\OrgChart.xsd"/>

 

Normalerweise ist der URI-Teil des Attributwerts von xsi:schemaLocation ein Pfad zum aktuellen Schema. Wenn das Schema jedoch über einen Katalog referenziert wird, muss der URI-Teil nicht auf ein tatsächliches XML-Schema verweisen, muss aber vorhanden sein, damit das Attribut xsi:schemaLocation lexikalisch gültig ist. So würde z.B. der Wert foo als URI-Teil des Attributwerts genügen, um gültig zu sein.

 

 

© 2018-2024 Altova GmbH