-
Notifications
You must be signed in to change notification settings - Fork 31
Running with XProc
XProc is a language to define XML pipelines. It is a W3C recommendation and there are several XProc implementations.
In order to run XSpec tests with XProc an XProc implementation needs to be installed. As an example, this description uses XML Calabash with the Saxon XProc harness (for XSLT or for XQuery). Harnesses for some other XQuery processors, including BaseX, are available.
-
Download the zip file of XML Calabash latest release and unzip it to a local path (e.g.,
/tmp/xmlcalabash
for Linux/macOS orC:\xmlcalabash
for Windows). Make sure you download the zip file because libraries are required (that is, using only the jar file won't work). XML Calabash version 1.1.27-99 is used here. -
Make sure Java is installed, e.g.:
java -version
-
Make sure XSpec is available in a local path (e.g.
/tmp/xspec
for Linux/macOS orC:\xspec
for Windows). -
Navigate to your XSpec directory.
-
Run an XSpec test for XSLT as follows:
For Linux/macOS:
java -jar /tmp/xmlcalabash/xmlcalabash-1.2.5-99.jar \ -i source=tutorial/escape-for-regex.xspec \ -o result=tutorial/escape-for-regex-result.html \ -p xspec-home=file:/tmp/xspec/ \ src/harnesses/saxon/saxon-xslt-harness.xproc
For Windows:
java -jar C:\xmlcalabash\xmlcalabash-1.2.5-99.jar ^ -i source=tutorial/escape-for-regex.xspec ^ -o result=tutorial/escape-for-regex-result.html ^ -p xspec-home=file:///C:/xspec/ ^ src\harnesses\saxon\saxon-xslt-harness.xproc
where:
-
-jar
is the XML Calabash jar file -
-i source
is the input port with the XSpec test to be executed -
-o result
is the output port where the HTML report will be stored -
-p xspec-home
is the absolute URI of the XSpec installation -
saxon-xslt-harness.xproc
is the Saxon XProc harness for XSLT
The output result from the command line may look like this:
INFO : src/harnesses/saxon/saxon-xslt-harness.xproc:41:46:Testing with SAXON HE 9.9.1.2 INFO : src/harnesses/saxon/saxon-xslt-harness.xproc:41:46:No escaping INFO : src/harnesses/saxon/saxon-xslt-harness.xproc:41:46:Must not be escaped at all INFO : src/harnesses/saxon/saxon-xslt-harness.xproc:41:46:Test simple patterns INFO : src/harnesses/saxon/saxon-xslt-harness.xproc:41:46:..When encountering parentheses INFO : src/harnesses/saxon/saxon-xslt-harness.xproc:41:46:escape them. INFO : src/harnesses/saxon/saxon-xslt-harness.xproc:41:46:..When encountering a whitespace character class INFO : src/harnesses/saxon/saxon-xslt-harness.xproc:41:46:escape the backslash INFO : src/harnesses/saxon/saxon-xslt-harness.xproc:41:46:result should have one more character than source INFO : src/harnesses/saxon/saxon-xslt-harness.xproc:41:46:When processing a list of phrases INFO : src/harnesses/saxon/saxon-xslt-harness.xproc:41:46:All phrase elements should remain INFO : src/harnesses/saxon/saxon-xslt-harness.xproc:41:46:Strings should be escaped and status attributes should be added INFO : src/harnesses/saxon/saxon-xslt-harness.xproc:41:46: FAILED INFO : src/harnesses/harness-lib.xpl:267:45:passed: 5 / pending: 0 / failed: 1 / total: 6
The HTML report file is created in the location specified by
-o result=
. -
-
Run an XSpec test for XQuery as follows:
Make sure to use
saxon-xquery-harness.xproc
.For Linux/macOS:
java -jar /tmp/xmlcalabash/xmlcalabash-1.2.5-99.jar \ -i source=tutorial/xquery-tutorial.xspec \ -o result=tutorial/xquery-tutorial-result.html \ -p xspec-home=file:/tmp/xspec/ \ src/harnesses/saxon/saxon-xquery-harness.xproc
For Windows:
java -jar C:\xmlcalabash\xmlcalabash-1.2.5-99.jar ^ -i source=tutorial/xquery-tutorial.xspec ^ -o result=tutorial/xquery-tutorial-result.html ^ -p xspec-home=file:///C:/xspec/ ^ src\harnesses\saxon\saxon-xquery-harness.xproc
Output:
INFO : src/harnesses/harness-lib.xpl:267:45:passed: 1 / pending: 0 / failed: 0 / total: 1
If you have any questions about XSpec or want to discuss, contribute, and share information with the XSpec community, please go to our issue tracker.
For historical searches, the Google group might also be useful.
- Writing Scenarios
- Nesting Scenarios
- Focusing Your Efforts
- Global Context Item
- Selecting Nodes
- Whitespace-only Text Nodes
- Attribute Value Templates
- Text Value Templates
- Special Names
- Code Coverage
- XML Catalog Support
- Environment Variables
- Testing Dynamic Errors
- Integrating Your Own Test Helpers
- External Transformation
- Getting Started with XSpec and Schematron
- Writing Scenarios for Schematron
- Testing Schematron with Text Nodes
- Testing Schematron with Attributes
- Using Another Implementation of Schematron