von Patrick Gundlach |

Feature der Woche: Einbinden des RelaxNG Schemas

Eine Besonderheit beim speedata Publisher ist sicherlich, dass die Eingabesprache in XML formuliert ist. XML ist in manchen Kreisen nicht sonderlich beliebt, besonders weil es verhältnismäßig »geschwätzig« ist: Man muss für die Start-Tags auch immer Ende-Tags schreiben:

<PlaceObject>
   ...
</PlaceObject>

im Vergleich zu einer C-ähnlichen Schreibweise wie

placeOjbect(...)

ist das schon mehr Tipparbeit. Die Lösung für dieses »Problem« ist die Verwendung eines Texteditors, der gut mit XML umgehen kann. Die Eingabe eines Start-Tags würde beispielsweise sofort auch das Ende-Tag einfügen. Oder bei einer Änderung im Tagnamen würden sowohl Start-Tag als auch das Ende-Tag gleichzeitig geändert werden.

Gute XML-Editoren bewirken aber noch viel mehr, als nur die erleichterte Eingabe von Tags.

Was ist ein Schema?

In einem Schema (z.B. XML-Schema oder RelaxNG) stehen Informationen über den erlaubten Aufbau einer XML-Datei. So steht im Schema, das mit dem speedata Publisher mitgeliefert wird, beispielsweise

  • Das Wurzelelement muss Layout heißen
  • Das Kindelement von PlaceObject muss entweder Barcode, Box, Circle, Frame, Image, Rule, Table, Textblock oder Transformation sein.
  • Das Attribut valign in der Tabellenzeile darf eines der Werte top, middle oder bottom sein
  • u.v.m.

Ebenso steht in dem mitgelieferten Schema die Dokumentation der einzelnen Befehle sowie die der Auwahlmöglichkeiten. Ein guter XML-Editor kann ein solches Schema einlesen und dem Anwender die Eingabe des Quelltextes erheblich erleichtern. Und mit erheblich meine ich das wirklich so. Die Eingabe mit einem guten Schema mach viel Spaß und hat einige Vorteile gegenüber dem klassischen Texteditor:

  • Syntaxfehler werden sofort angezeigt
  • Befehle (Tags) müssen nicht vollständig eingegeben werden, weil der Editor eine Autovervollständigung bietet
  • Die erlaubten Werte in Attributen werden sofort auf sinnvolle Werte überprüft
  • Dokumentation steht direkt im Editor bereit

Im Prinzip das, was man von einer integrierten Entwicklungsumgebung (IDE) erwartet.

Auswahl an erlaubten Kindelementen

Erlaubte Attribute bei Textblock

Einbinden des RelaxNG-Schemas

Die Einbindung eines Schemas ist natürlich stark abhängig vom Editor. Für oXygen XML kann man in den Einstellungen eine neue Dokumenttypen-Zuordnung erstellen. Einerseits muss festlegen, bei welchem Namensraum das Schema benutzt werden soll

Verknüpfungsregeln

Dann muss man noch definieren, welches Schema für diese Verknüpfungsregeln geladen werden soll. Das wird im zweiten Tab der Einstellung festgelegt:

Als Schema RelaxNG + Schematron einstellen

Ab sofort sollte zu jedem Layout im Namensraum

xmlns="urn:speedata.de:2009/publisher/en"

das Schema hinterlegt sein. Das erkennt man daran, dass nun bei Eingabe einer öffnenden spitzen Klammer (<) eine Auswahl der Befehle erscheint.

Ist das Schema richtig eingebunden, dann erscheint eine Auswahlliste sobald man einen Befehl eingibt.

Dieser Artikel bezieht sich auf den speedata Publisher in der Version 2.7.11. Andere Versionen haben womöglich andere Befehle oder die genannten Befehle zeigen ein anderes Verhalten. Bitte schau im Zweifelsfall in der Anleitung nach.

In der Serie »Feature der Woche« beschreibe ich einmal in der Woche mehr oder weniger nützliche Eigenschaften des Publishers. Kommentare gerne an mich per E-Mail oder einfach im Kommentarfeld.