2013-07-23 4 views
1

Schematron 스키마를 제공 할 수있는 Schematron 용 쉘 스크립트와 XML 문서를 발견하여 Schematron 규칙을 XML 문서에 적용했습니다. 를 들어,Schematron sh 스크립트가 작동하지 않습니다.

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

내가 여기 쉘 스크립트를 반복합니다 : 스크립트에 의해 사용

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

다양한 XSL 파일을 여기에 스키마 트론 배포에서 다운로드 : 여기 스크립트가 발견 편의.

#!/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를 생성 . 나에게 XSL 스타일 시트처럼 보이는 아니라고

<?xml version="1.0"?> 

     @linkend on footnoteref must point to a footnote. 

     @linkend on synopfragmentref must point to a synopfragment. 

: 그것은 다음과 같습니다 이후하지만, step2.xsl에서 레일 떨어져 이미입니다. 어떤 아이디어?

+0

'xml'에 대한 태그를 추가하십시오. 당신은 모든 하위 팔로어 수 변종을 골랐어 요. 행운을 빕니다. – shellter

답변

1

문제는 ISO Schematron 스키마가 아닌 docbook.sch의 DocBook 5.0 (s: 접두어에 바인딩 된 네임 스페이스가 http://purl.oclc.org/dsdl/schematron이 아님)입니다.

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

을 ... 그리고 그것은 작동이에

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

을 :

의 DocBook 5.0 docbook.sch에서, 단순히이를 변경.

아직 공개되지 않은 DocBook 5.1의 경우 docbook.sch에서 네임 스페이스가 변경되었습니다.

+0

감사! 지금 파이프 라인의 각 단계에서 의미있는 결과를 얻고 있습니다. 나는 여전히 result.svrl의 내용에 대한 내 머리를 긁어 모으고 있지만. 그러나 확실히 진전. – egilchri

관련 문제