von Patrick Gundlach |

XSD Schema

Die speedata Layout-Regelwerke werden ja in XML formuliert. Um die Bearbeitung zu erleichtern, gibt es seit jeher ein RELAX NG Schema zum speedata Publisher. Damit können die spezialisierten XML-Editoren wie z.B. oXygen oder auch normale Editoren wie Atom oder jEdit prüfen, ob die Syntax des Layoutregelwerks korrekt ist und Vorschläge machen, welche Elemente oder Attribute an einer bestimmten Position vorkommen dürfen.

Ab sofort wird auch ein XML Schema (XSD) im Verzeichnis schema mitgeliefert, so dass auch Editoren Unterstützung bieten, die mit RELAX NG nichts anfangen können.

Englisch oder Deutsch?

Sowohl die RELAX NG als auch die XSD Schemadateien gibt es in zwei Varianten. Eine mit englischen und eine mit deutschen Beschreibungen. Zu erkennen sind sie an den Dateinamen:

layoutschema-de.rng
layoutschema-en.rng

für die RELAX NG Dateien und

layoutschema-de.xsd
layoutschema-en.xsd

für das XSD Schema.

Funktional sind die beiden Sprachvarianten identisch. Es ist also nur eine Frage des persönlichen Geschmacks, welche Variante benutzt werden soll.

Visual Studio Code

Grund für das zusätzliche Schema ist mein neuer Lieblingseditor »Visual Studio Code«, der dank Electron auf diversen Plattformen läuft und kostenlos und unter einer OpenSource-Lizenz verfügbar ist.

Hierfür gibt es ein XML Modul von RedHat, das on-the-fly Validierung und Autovervollständigung anbietet. Aber leider nur mit XML Schema, und nicht mit RELAX NG. (Im Hintergrund nutzt die Erweiterung das Language Server Protocol und einen Java basierten Server.)

Einrichtung

Um in Visual Studio Code die Unterstützung für den speedata Publisher zu erhalten, muss man die Erweiterung XML (XML Language Support by Red Hat) installieren. Anschließend konfiguriert man die Variable xml.catalogs. Sie muss den Pfad zu einem XML Catalog beinhalten. Für die XSD-Schema sind in der Distribution des speedata Publisher (Verzeichnis Schema) zwei vorhanden, jede für eine Sprachvariante:

catalog-schema-de.xml
catalog-schema-en.xml

Die Variable xml.catalogs kann man in den settings.json direkt angeben oder über die graphische Oberfläche unter Einstellungen / Suche nach: xml catalog und dort auf den Knopf klicken, um einen Eintrag hinzuzufügen.

Die direkte Konfiguration in settings.json sieht so aus:

"xml.catalogs": [
 "file:///...publisher/schema/catalog-schema-de.xml"
]