3.4.6  Schema Single-Sourcing

Single-Sourcing Schemata Buzzwords Single Source Publishing Das Single-Sourcing Konzept macht auch vor Schemata nicht halt. Aus einer Quelle in der RelaxNG Kompaktform können alternative Ansichten in anderen Schema-Sprachen erzeugt werden, wie bspw. XML Schema (XSD).

Mit einem BPMN Diagramm kann man das Single-Sourcing Konzept bei der Schema-Erzeugung recht gut veranschaulichen. Aus einer RNC Quelle wird die RelaxNG XML Form, die Schematron-Regeln, die XSD und das XSLT der Schematron-Regeln generiert. Diese Artefakte dienen zur Validierung im Editor und zur Validierung in einer Transformer-Pipe.
figure: 8  BPMN Diagramm zum Single-Sourcing Konzept bei RelaxNG Schemas

Ein Shell-Skript, das den Prozess aufruft, könnte z.B. so aussehen:

#!/bin/sh

echo "converting from RelaxNG compact form to RelaxNG XML form..."
trang -I rnc -O rng test.rnc test.rng 

echo "extracting embedded schematron rules from RelaxNG schema..." 
saxon -s:test.rng -o:test.sch -xsl:rng2sch.xsl

echo "converting RelaxNG schema to XML Schema..."
trang -O xsd test.rng test.xsd

echo "converting schematron rules to XSLT..."
saxon test.sch validation/schematron/iso_dsdl_include.xsl | \
saxon -s:- validation/schematron/iso_abstract_expand.xsl | \
saxon -s:- validation/schematron/iso_svrl_for_xslt2.xsl > test.xsl

echo "Done!"
Plain Text

Ein unpoliertes Skript zum Extrahieren der Schematron Regeln Schematron aus der RNC habe ich auf Github gefunden.