datamodel-plugin erweitern

Wer das MyCoRe Datamodel-Plugin verwendet, um ein eigenes Datenmodell in ein XML-Schema zu übersetzen kommt vielleicht an den Punkt, dass er eigene Datentypen ergänzen möchte. Dabei stellt sich die Frage, wie man Erweiterungen diesen Plugin zur Verfügung stellt.

Heute habe ich entdeckt, dass der Prozess des Übersetzens relativ leicht mittels XML-Catalogs zu erweitern ist.

Das Haupt-Stylesheet inkludiert das leere Stylesheet datamodel2ext.xsl.

Das Plugin gibt im Debug-Modus von Maven ein paar Hinweise:

[DEBUG] -- end configuration --
Setting resolver verbosity to maximum.
Parse catalog: ./xcatalog
Loading catalog: ./xcatalog
Default BASE: file:////git/mycore/xcatalog
Catalog does not exist: file:////git/mycore/xcatalog

Es sucht eine Datei xcatalog im aktuellen Verzeichnis. In diese schreiben wir folgende Zeilen:

<?xml version="1.0" encoding="UTF-8"?>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
  <uri name="datamodel2ext.xsl" uri="mydef.xsl" />
</catalog>

Und schon wird statt datamodel2ext.xsl die Datei mydef.xsl im aktuellen Verzeichnis eingebunden. Der Inhalt in @uri wird relativ zu xcatalog aufgelöst. Der Verweis kann aber auch absolut sein und z.B. auf einem Web-Server (z.B. Git-Repository) zeigen.

Damit sollte es leicht möglich sein, Templates zur ergänzen oder zu überscheiben.