Test machine allow to run all software of the QuiX-Tool Suite (QuiXPath, QuiXSLT, QuiXSchematron) on a remote machine. The QuiX-Proc Team provides comprehensive sample sets that you can adapt to your needs. Moreover, for dealing with your own large XML documents, upload them on the test machine.
How do I get a login?
To request a login, click here.
How to connect to the server?
To connect to ‘links-xml-streaming’ server you must first ssh to ‘links-xml-streaming.lille.inria.fr’
> ssh sshLogin@links-xml-streaming.lille.inria.fr
How to check that you are in your own folder?
>pwd
/home/sshLogin
How to execute QuiXPath ?
The quixpath executable must be invoke with two parameters: an xpath query and a xml file. Its result is the annotated stream.
In the following example, we run the query //a (select all node labeled by ‘a’) over the document: <a/>
> quixpath //a /share/example.xml
<a></a>
The quixpath executable must be invoke with two parameters: the query, the input document. The stepByStep option alows to see the innerworking of the algorithm.
<query> <input file> [–stepByStep] [–outPutMode subTree|quixEvent]
Troubleshooting:
Problem:
quixpath //a[not(b)] /share/example.xml
syntax error near unexpected token `(‘
Solution:
Protect your query with double quotes
quixpath “//a[not(b)]” /share/example.xml
How to execute QuiXSLT ?
The quixslt executable must be invoke with three parameters: the stylesheet, the input document and the output document:
<stylesheet> [<input file> [<output file>]]
In the following example, we run the xslt sheet that finds all the a-node over the document: <a/>
> quixslt /share/xslt/findA.xslt /share/example.xml
<?xml version="1.0" encoding="UTF-8"?><template xmlns="">
find a
</template>
> less /share/xslt/findA.xslt
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<template>
<xsl:for-each select="a">
find a
</xsl:for-each>
</template>
</xsl:template>
</xsl:stylesheet>
How to execute XFun
The xfunexecutable must be invoke with three parameters: the stylesheet, the input document and the output document:
<xfun program> [<input file> [<output file>]]
In the following example, we run an xfun program that finds all the a-node over the document: <a/>
> xfun /share/xfun/findA.xfun /share/example.xml
Find an a-node.
> less /share/xfun/findA.xfun
<?xml version="1.0" encoding="UTF-8"?>
<xfun xmlns="http://x-fun.lille.inria.fr">
<for xmlns=""
node="context"
from="root"
select="descendant-or-self::a">
<text>Find an a-node.</text>
</for>
</xfun>
How to execute QuiXSchematron
The quixschematron executable must be invoke with two parameters:
<schema> <document>
In the following example, we run an schema that ckecks the structure of a list of persons.
> quixschematron /share/schematron/dataStructure.sch /share/listOfPersons.xml
The number of children should be more than 2: /list[1]/Person[1]
The person must have an Id attribute: /list[1]/Person[2]
The Name of Person should not be empty: /list[1]/Person[2]
The first child of a Persone should be a Name: /list[1]/Person[3]
The Name of Person should not be empty: /list[1]/Person[4]
The person must have an Id attribute: /list[1]/Person[7]
The first child of a Persone should be a Name: /list[1]/Person[7]
The Name of Person should not be empty: /list[1]/Person[7]
Two option are available: –numbering numbers the output message while –progress <frequence > outputs the ‘#’ symbol each frequence events.
>quixschematron --numbering --progress 50 /share/schematron/dataStructure.sch /share/listOfPersons.xml
1: The number of children should be more than 2: /list[1]/Person[1]
#
#
2: The person must have an Id attribute: /list[1]/Person[2]
3: The Name of Person should not be empty: /list[1]/Person[2]
#
4: The first child of a Persone should be a Name: /list[1]/Person[3]
#
5: The Name of Person should not be empty: /list[1]/Person[4]
#
#
#
6: The person must have an Id attribute: /list[1]/Person[7]
7: The first child of a Persone should be a Name: /list[1]/Person[7]
8: The Name of Person should not be empty: /list[1]/Person[7]
How to upload your own XML file?
The links-xml-streaming server supports SCP only. scp stands for secure cp (copy), which means that you can copy files across an ssh connection that will be encrypted.
> scp myDoc.xml $user@links-xml-streaming.lille.inria.fr:/home/$user
How to create a small XML file via command line?
> echo “<a><b/></a>” > smallXMLfile.xml
You can also use your favorit editor like vi, vim or emacs.
How do I install unstable releases
For each software of the QuiX Suite, QuiXProc team maintans two releases: stable and unstable. The unstable version in published every day by our automatic build system. The version==unstable option is the way to play with it:
> quixpath --version=unstable //a /share/example.xml
Unstable release of quixpath
START_SEQUENCE;false
START_DOCUMENT ;false
START_ELEMENT a;true
END_ELEMENT a;true
END_DOCUMENT ;false
END_SEQUENCE;false
> quixpath --version=unstable --version
Unstable release of quixpath
QuiXPath version "2_0_0" (build 13_10_07)
How to determine the behavior of my shell?
Edit the .bash_profile file that is on your home directory.