Test Machine

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.