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. (Im Hintergrund nutzt die Erweiterung das Language Server Protocol.)
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"
]
Update: in einer früheren Version hieß es, dass der XML-Modus nur XSD verarbeiten kann, inzwischen versteht er auch Relax NG.