Reputation: 761
I found a shell script for Schematron that your supposed to be able to feed a Schematron schema, and an XML document, so as to apply the Schematron rules to the XML document. I found the script here:
https://code.google.com/p/schematron/wiki/RunningSchematronWithGNOMExsltproc
The various xsl files used by the script are downloaded from the Schematron distribution here:
http://www.schematron.com/implementation.html
I'll repeat the shell script here, for convenience.
#!/bin/bash
echo Step1 ...
xsltproc iso_dsdl_include.xsl $1 > step1.xsl
echo Step2 ...
xsltproc iso_abstract_expand.xsl step1.xsl > step2.xsl
echo Step3 ...
xsltproc iso_svrl_for_xslt1.xsl step2.xsl > step3.xsl
echo Validation ...
xsltproc step3.xsl $2 > result.svrl
I run the script like this:
run_schematron.sh docbook1.sch my_xml.xml
The shell script generates intermediate files, step1.xsl, step2.xsl, and step3.xsl. But I am already off the rails at step2.xsl, since it looks like this:
<?xml version="1.0"?>
@linkend on footnoteref must point to a footnote.
@linkend on synopfragmentref must point to a synopfragment.
That's not looking like an XSL stylesheet to me. Any ideas?
Upvotes: 1
Views: 263
Reputation: 51082
The problem is that you are using docbook.sch for DocBook 5.0, which is not an ISO Schematron schema (the namespace bound to the s:
prefix is not http://purl.oclc.org/dsdl/schematron
).
In docbook.sch for DocBook 5.0, simply change this:
xmlns:s="http://www.ascc.net/xml/schematron"
to this:
xmlns:s="http://purl.oclc.org/dsdl/schematron"
...and it will work.
In docbook.sch for DocBook 5.1 (which hasn't been offically released yet), the namespace has been changed.
Upvotes: 1