Kataloge in XMLSpy

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Benutzerhandbuch und Referenz > DTDs und XML Schemas >

Kataloge in XMLSpy

XMLSpy unterstützt einen Teil der OASIS XML-Kataloge. Mit Hilfe von Katalogen kann XMLSpy gebräuchliche Schemas (sowie Stylesheets und andere Dateien) aus lokalen Benutzerordnern abrufen, wodurch die Verarbeitungsgeschwindigkeit erhöht wird, Benutzer auch offline arbeiten können (d.h. ohne mit einem Netzwerk verbunden zu sein) und Dokumente leichter übertragbar werden (da die URIs dann nur in den Katalogdateien geändert werden müssten).

 

Der Mechanismus in XMLSpy funktioniert, wie unten beschrieben.

 

RootCatalog.xml

XMLSpy lädt beim Start eine Datei namens RootCatalog.xml(Struktur siehe unten), die eine Liste von Katalogdateien enthält, die durchsucht werden. Sie können diese Datei bearbeiten und im Element nextCatalog in beliebig viele Katalogdateien definieren, die durchsucht werden sollen. Jede dieser Katalogdateien wird durchsucht und die URIs darin werden entsprechend den darin definierten Zuordnungen aufgelöst.

 

<?xml version="1.0" encoding="UTF-8"?>

<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"

   xmlns:spy="http://www.altova.com/catalog_ext"

   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xsi:schemaLocation="urn:oasis:names:tc:entity:xmlns:xml:catalog Catalog.xsd">

  <nextCatalog catalog="%PersonalFolder%/Altova/%AppAndVersionName%/CustomCatalog.xml"/> 

  <nextCatalog catalog="CoreCatalog.xml"/>

  <!-- Include all catalogs under common schemas folder on the first directory level -->

  <nextCatalog spy:recurseFrom="%AltovaCommonFolder%/Schemas" catalog="catalog.xml" spy:depth="1"/>

  <!-- Include all catalogs under common XBRL folder on the first directory level -->

  <nextCatalog spy:recurseFrom="%AltovaCommonFolder%/XBRL" catalog="catalog.xml" spy:depth="1"/>

</catalog>

 

Beachten Sie, dass sich in der Liste oben in den Ordnern Schemas und XBRL, die durch die Variable %AltovaCommonFolder% definiert werden, Katalogdateien namens catalog.xml befinden. (Der Wert der %AltovaCommonFolder% Variablen wird in der Tabelle unten aufgelistet.)

 

Die Katalogdateien im Altova-Ordner "Common" mappen die vordefinierten Public und System Identifiers häufig verwendeter Schemas (wie z.B. SVG und WSDL) und XBRL-Taxonomien auf URIs, die auf lokal gespeicherte Kopien der entsprechenden Schemas verweisen. Diese Schemas werden bei der Installation von XMLSpy im Altova Ordner "Common" installiert. Achten Sie darauf, in diesen Dateien keine Zuordnungen doppelt zu vergeben, da dies Fehler verursachen könnte.

 

CoreCatalog.xml, CustomCatalog.xml und Catalog.xml

Beachten Sie in der RootCatalog.xml Liste oben, dass CoreCatalog.xml und CustomCatalog.xml als Lookup aufgelistet sind:

 

CoreCatalog.xml enthält bestimmte Altova-spezifische Zuweisungen zum Auffinden von Schemas im Altova Ordner "Common".
CustomCatalog.xml ist eine Skelettdatei, in der Sie ihre eigenen Zuweisungen erstellen können. Sie können für jedes gewünschte Schema Zuweisungen zu CustomCatalog.xml hinzufügen, doch dieses wird nicht von den Katalogdateien im Altova Common-Ordner angegeben. Sie können dies mit Hilfe der unterstützten Elemente des OASIS-Katalogs (siehe unten) tun (siehe unten).
Der Altova-Ordner "Common" enthält eine Reihe von Catalog.xml Dateien. Jede befindet sich in einem Ordner eines bestimmten Schemas oder einer XBRL-Taxonomie im Altova-Ordner "common" und jede weist URIs Public und/oder System Identifier zu, die auf lokal gespeicherte Kopien der entsprechenden Schemas verweisen.

 

Speicherpfad von Katalogdateien und Schemas

Die Dateien RootCatalog.xml und CoreCatalog.xml sind im XMLSpy Applikationsordner installiert. Die Datei CustomCatalog.xml befindet sich im Ordner MyDocuments\Altova\XMLSpy. Die Catalog.xml Dateien befinden sich in den jeweiligen Schemaordnern. Diese Schemaordner befinden sich im Ordner: %AltovaCommonFolder%\Schemas und %AltovaCommonFolder%\XBRL und %AltovaCommonFolder%\XBRL.

 

Shell-Umgebungsvariablen und Altova-Variablen

Shell-Umgebungsvariablen können im nextCatalog Element verwendet werden, um den Pfad zu Systemordnern zu definieren (siehe RootCatalog.xml-Liste oben). Es werden die folgenden Shell-Umgebungsvariablen unterstützt:

 

%AltovaCommonFolder%

C:\Program Files\Altova\Common2019

%DesktopFolder%

Vollständiger Pfad zum Desktop-Ordner für den aktuellen Benutzer.

%ProgramMenuFolder%

Vollständiger Pfad zum Programmmenü-Ordner für den aktuellen Benutzer.

%StartMenuFolder%

Vollständiger Pfad zum Startmenü-Ordner für den aktuellen Benutzer.

%StartUpFolder%

Vollständiger Pfad zum Startordner für den aktuellen Benutzer.

%TemplateFolder%

Vollständiger Pfad zum Vorlagen-Ordner für den aktuellen Benutzer.

%AdminToolsFolder%

Vollständiger Pfad zum Dateisystemverzeichnis, in dem die Verwaltungstools für den aktuellen Benutzer gespeichert sind.

%AppDataFolder%

Vollständiger Pfad zum Applikationsdatenordner für den aktuellen Benutzer.

%CommonAppDataFolder%

Vollständiger Pfad zum Dateiverzeichnis mit den Applikationsdaten für alle Benutzer.

%FavoritesFolder%

Vollständiger Pfad zum Ordner "Favoriten" für den aktuellen Benutzer.

%PersonalFolder%

Vollständiger Pfad zum persönlichen Ordner für den aktuellen Benutzer.

%SendToFolder%

Vollständiger Pfad zum Ordner "SendTo" für den aktuellen Benutzer.

%FontsFolder%

Vollständiger Pfad zum Systemschriftarten-Ordner.

%ProgramFilesFolder%

Vollständiger Pfad zum Programmdateiordner für den aktuellen Benutzer.

%CommonFilesFolder%

Vollständiger Pfad zum Ordner "Gemeinsame Dateien" für den aktuellen Benutzer.

%WindowsFolder%

Vollständiger Pfad zum Windows-Ordner für den aktuellen Benutzer.

%SystemFolder%

Vollständiger Pfad zum Systemordner für den aktuellen Benutzer.

%LocalAppDataFolder%

Vollständiger Pfad zum Dateisystemverzeichnis, das als Datenspeicher für lokale (nicht-Roaming) Applikationen dient.

%MyPicturesFolder%

Vollständiger Pfad zum Ordner "Meine Bilder".

 

Funktionsweise von Katalogen: DTDs

Kataloge dienen normalerweise dazu, einen Aufruf von einer DTD auf eine lokale URI umzuleiten. Dies geschieht in der Katalogdatei durch Mappen von Public und System Identifiers auf die gewünschte lokale URI. Wenn also die DOCTYPE-Deklaration in einer XML-Datei gelesen wird, findet der 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 nur die URI in der Katalogdatei in die Adresse der richtigen lokalen Kopie geändert 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 XMLSpy 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>

 

Dieses Dokument wird gelesen und der Katalog wird nach dem PUBLIC Identifier 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 auf die URI schemas/svg/svg11.dtd umgeleitet wird; (dieser Pfad ist relativ zur Katalogdatei). Diese lokale Datei wird dann als DTD verwendet. Wenn im Katalog kein passender Treffer gefunden wird, wird die URL im XML-Dokument verwendet (im Beispiel oben: http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd).

 

Funktionsweise von Katalogen: Schemas

In XMLSpy 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 Dokument-Elements der obersten Ebene des XML-Dokuments. Beispiel,
 

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

 

Normalerweise ist der URI-Teil des Attributwerts (im Beispiel oben fett) der tatsächliche Pfad zum Schema. Wenn das Schema jedoch über einen Katalog referenziert wird, muss der URI-Teil nicht auf das tatsächliche XML-Schema verweisen. Allerdings muss das Schema existieren, damit das xsi:schemaLocation Attribut lexikalisch gültig bleibt. So würde z.B. der Wert foo als URI-Teil des Attributwerts genügen. Die Angabe des Schemapfads im Katalog erfolgt über den Namespace-Teil des Werts des Attributs xsi:schemaLocation. Im Beispiel oben ist der Namespace-Teil http://www.xmlspy.com/schemas/orgchart. Im Katalog würde das Schema auf Basis des Namespace-Teils mit dem folgenden Eintrag gefunden.

 

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

 

Die von XMLSpy unterstützte Katalogteilmenge

Wenn Sie Einträge für CustomCatalog.xml (oder jede andere Katalogdatei, die von XMLSpy gelesen werden soll)  erstellen, verwenden Sie nur die folgenden Elemente der OASIS-Katalogspezifikation. Jedes der unten angeführten  Elemente wird mit einer Erläuterung der Attributwerte aufgelistet. Eine ausführlichere Beschreibung finden Sie in der XML Catalogs Specification. Bitte beachten Sie: Jedes Element kann das Attribut xml:base erhalten, welches dazu dient, die Basis-URI dieses Elements zu definieren.

 

<public publicId="PublicID of Resource" uri="URL of local file"/>
<system systemId="SystemID of Resource" uri="URL of local file"/>
<uri name="filename" uri="URL of file identified by filename"/>
<rewriteURI uriStartString="StartString of URI to rewrite" rewritePrefix="String to replace StartString"/>
<rewriteSystem systemIdStartString="StartString of SystemID" rewritePrefix="Replacement string to locate resource locally"/>

 

In Fällen, in denen es wie z.B. bei den meisten Stylesheets keinen Public Identifier gibt, kann der System Identifier einer URL direkt über das system Element zugewiesen werden. Außerdem kann eine URI auch über das uri Element einer anderen URI zugewiesen werden. Mit Hilfe der Elemente rewriteURI und rewritsSystem kann der Anfangsteil einer URI bzw. eines System Identifier neu geschrieben werden. Auf diese Art kann der Beginn eines Dateipfads ersetzt werden, wodurch ein anderes Verzeichnis als Ziel definiert werden kann. Nähere Informationen zu diesen Elementen finden Sie in der XML Catalogs Specification.

 

Ab Release 2014 entspricht XMLSpy weitgehend der XML Catalogs Specification (OASIS Standard V1.1, 7 Oktober 2005). In dieser Spezifikation wird streng zwischen externen Identifier Look-ups (jenen mit einer öffentlichen ID oder einer System-ID) und URI Look-ups (URIs, die keine öffentlichen IDS oder System-IDs sind) getrennt. Namespace URIs müssen daher einfach als URIs - und nicht öffentliche IDs oder System-IDs - behandelt werden und folglich in URI Look-ups anstelle von externen Identifier Look-ups verwendet werden. In XMLSpy Versionen vor Version 2014 wurden Schema Namespace URIs über <public> Mappings übersetzt. Ab Version 2014 müssen <uri> Mappings verwendet werden.

 

Vor v2014:  <public publicID="http://www.MyMapping.com/ref"  uri="file:///C:/MyDocs/Catalog/test.xsd"/>

Ab V-2014:  <uri name="http://www.MyMapping.com/ref"  uri="file:///C:/MyDocs/Catalog/test.xsd"/>

 

Dateierweiterungen und intelligente schemagemäße Bearbeitung

Mittels Katalogdateien können Sie auch festlegen, dass auf Dokumente mit einer bestimmten Dateierweiterung die intelligenten Bearbeitungsfunktionen von XMLSpy gemäß den Regeln des von Ihnen angegebenen Schemas angewendet werden. Wenn Sie z.B. eine benutzerdefinierte Dateierweiterung .myhtml für (HTML)-Dateien erstellen, die gemäß der HTML-DTD gültig sein sollen, können Sie die intelligente Editierung für Dateien mit dieser Erweiterung aktivieren, indem Sie das folgende Textelement als Child-Element des <catalog> Elements zu CustomCatalog.xml hinzufügen.

 

<spy:fileExtHelper ext="myhtml" uri="schemas/xhtml/xhtml1-transitional.dtd"/>

 

Damit werden die intelligenten Bearbeitungsfunktionen (Autokomplettierung, Eingabehilfen usw.) von .myhtml-Dateien in XMLSpy gemäß der XHTML 1.0 Transitional DTD aktiviert.

 

XML-Schema-Spezifikationen

Die XML-Schemaspezifikationsinformationen sind in XMLSpy integriert und die Gültigkeit von XML-Schema- (.xsd)-Dokumenten wird anhand dieser internen Informationen überprüft. Daher sollte in einem XML-Schema-Dokument kein Verweis auf ein Schema, das die XML-Schema-Spezifikation definiert, vorgenommen werden.

 

Die Datei Catalog.xml im Ordner %AltovaCommonFolder%\Schemas\schema enthält Referenzen auf DTDs, die ältere XML-Schema-Spezifikationen implementieren. Sie sollten Ihre XML-Schema-Dokumente nicht anhand dieser Schemas validieren. Zweck dieser beiden DTDs ist es einzig und allein, für die Eingabehilfen von XMLSpy zu Bearbeitungszwecken Informationen bereitzustellen, falls Sie Dateien gemäß diesen älteren Empfehlungen erstellen wollen.

 

Weitere Informationen

Nähere Informationen zu Katalogen finden Sie in der XML-Katalogspezifikation.

 


© 2019 Altova GmbH