You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Nov 2, 2020. It is now read-only.
Hi,
I ran "google.code.schematron\trunk\ant-schematron\test\ant\build.xml" with
target "ant test-resolver-1"
Everything is fine from the original declared target :
<!-- Resolver -->
<target name="test-resolver-1" description="Simple test">
<taskdef name="schematron" classname="com.schematron.ant.SchematronTask" classpath="../lib/*.jar"/>
<schematron schema="../schemas/test.sch" file="../xml/test1.xml" failonerror="false"
debugmode="true" resolver="org.apache.xml.resolver.tools.CatalogResolver"
classpath="../lib/resolver.jar"
catalog="xxx.xml"
fileNameParameter="XXX" fileDirParameter="ABC"/>
</target>
but this target defines an non existent catalog (xxx.xml).
SO I defined a catalog.xml file which contains :
<public publicId="-//DOG//EN"
uri="file:///C:/google.code.schematron/trunk/ant-schematron/test/ant/dog.dtd"/>
It points to dod.dtd with absolute uri (file is located at the same level as
the build.xml file).
See attached files.
I then added the following doctype to test1.xml :
<!DOCTYPE Dog PUBLIC "-//DOG//EN" "dog.dtd">
And when running "ant test-resolver-1"
I get the following error :
test-resolver-1:
[schematron] Error
[schematron] java.io.FileNotFoundException:
[schematron] C:\google.code.schematron\trunk\ant-schematron\test\xml\dog.dtd
[schematron] DEBUG: error
[schematron] Could not validate document
C:\google.code.schematron\trunk\ant-sche
xml\test1.xml
[schematron] java.io.FileNotFoundException:
C:\google.code.schematron\trunk\ant-s
st\xml\dog.dtd (Le fichier spécifié est introuvable)
BUILD FAILED
It seems dog.dtd file is being searched in "../xml" folder, which indicates the
catalog resolver didn't work.
In oXygen, I added the catalog.xml files in catalog list, and I can
successfully validate test1.xml.
Note that I need to add catalog/@prefer="public" in catalog.xml so it works.
Configuration :
* OS : windows 7 Pro
* JAVA : java version "1.6.0_20"
* ANT : Apache Ant(TM) version 1.8.2 compiled on December 20 2010
(I define ANT_HOME variable)
* SCHEMATRON : I get the whole test files from mercurial repo on 2011-08-30,
the ant-schematron/test/lib folder contains :
ant-schematron.jar
resolver.jar
saxon8.jar
saxon9.jar
saxon9.jar.old
saxon9he.jar
* SAXON : saxon9he.jar is in my CLASSPATH. If not I get an ANT error message.
Version is : Saxon-HE 9.2.1.1J from Saxonica
I know saxon need a few options to be fixed so it work with a catalog :
-r "Use URIResolver class" has to be set to
"org.apache.xml.resolver.tools.CatalogResolver" which seems to be parameted by
schematron/@resolver attribute
But also :
-x "Use specified SAX parser for source" has to be set to
"file:org.apache.xml.resolver.tools.ResolvingXMLReader"
-y "Use specified SAX parser for stylesheet" also has to be set to
"file:org.apache.xml.resolver.tools.ResolvingXMLReader"
But I don't see any attributes to set these parameters in the pdf doc ("Using
Schematron for Ant.pdf").
By the way, in this PDF, i think there is a mistake at parameter
"xml.catalog.files" which should be "catalog" (attribute to schematron element)
Any help welcome !
(maybe I should post this on another place, but I can't find where ?)
Best Regards,
Matthieu
Original issue reported on code.google.com by rica...@gmail.com on 1 Sep 2011 at 9:53
Original issue reported on code.google.com by
rica...@gmail.com
on 1 Sep 2011 at 9:53Attachments:
The text was updated successfully, but these errors were encountered: