Сценарий Schematron sh не работает

Я нашел сценарий оболочки для Schematron, который, как предполагается, должен быть в состоянии передать схему Schematron и XML-документ, чтобы применить правила Schematron к XML-документу. Я нашел скрипт здесь:

https://code.google.com/p/schematron/wiki/RunningSchematronWithGNOMExsltproc

Различные файлы xsl, используемые сценарием, загружаются из дистрибутива Schematron здесь:

http://www.schematron.com/implementation.html

Я повторю сценарий оболочки здесь для удобства.

#!/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 

Я запускаю скрипт следующим образом:

run_schematron.sh docbook1.sch my_xml.xml

Сценарий оболочки создает промежуточные файлы, step1.xsl, step2.xsl и step3.xsl. Но я уже сбился с пути в step2.xsl, так как это выглядит так:

<?xml version="1.0"?>

        @linkend on footnoteref must point to a footnote.

         @linkend on synopfragmentref must point to a synopfragment.

Мне это не похоже на таблицу стилей XSL. Любые идеи?


person egilchri    schedule 23.07.2013    source источник
comment
добавить тег для xml. ВЫ выбрали все варианты с низким количеством подписчиков. Удачи.   -  person shellter    schedule 24.07.2013


Ответы (1)


Проблема в том, что вы используете docbook.sch для DocBook 5.0, который не является схемой ISO Schematron (пространство имен привязано к префиксу s: не http://purl.oclc.org/dsdl/schematron).

В docbook.sch для DocBook 5.0 просто измените это:

xmlns:s="http://www.ascc.net/xml/schematron"

к этому:

xmlns:s="http://purl.oclc.org/dsdl/schematron"

... и это сработает.

В docbook.sch для DocBook 5.1 (официально не выпущен еще), пространство имен было изменено.

person mzjn    schedule 24.07.2013
comment
Спасибо! Теперь я определенно получаю осмысленный результат на каждом этапе конвейера. Хотя я до сих пор ломаю голову над содержимым result.svrl. Но однозначно прогресс. - person egilchri; 24.07.2013