

{"id":117,"date":"2013-11-15T14:32:21","date_gmt":"2013-11-15T13:32:21","guid":{"rendered":"https:\/\/project.inria.fr\/QuiXProc\/?page_id=117"},"modified":"2014-10-25T19:02:54","modified_gmt":"2014-10-25T17:02:54","slug":"test-machine","status":"publish","type":"page","link":"https:\/\/project.inria.fr\/quix-tool-suite\/test-machine\/","title":{"rendered":"Test Machine"},"content":{"rendered":"<p>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.<\/p>\n<h1>How do I get a login?<\/h1>\n<p>To request a login, <a href=\"https:\/\/docs.google.com\/forms\/d\/1vpVkgexH_K4u66SwqvEu2ZnDr51T-uD3t2Zn7FgIkBc\/viewform?embedded=true#start=embed\">click here<\/a>.<\/p>\n<h1>How to connect to the server?<\/h1>\n<p>To connect to &#8216;links-xml-streaming&#8217; server you must first ssh to &#8216;links-xml-streaming.lille.inria.fr&#8217;<\/p>\n<p><code>&gt; ssh sshLogin@links-xml-streaming.lille.inria.fr<\/code><\/p>\n<h1>How to check that you are in your own folder?<\/h1>\n<p><code><br \/>\n&gt;pwd<br \/>\n\/home\/sshLogin<br \/>\n<\/code><\/p>\n<h1>How to execute QuiXPath ?<\/h1>\n<p>The quixpath executable must be invoke with two parameters: an xpath query and a xml file. Its result is the annotated stream.<\/p>\n<p>In the following example, we run the query \/\/a (select all node labeled by \u2018a\u2019) over the document: &lt;a\/&gt;<\/p>\n<p><code><br \/>\n&gt; quixpath \/\/a \/share\/example.xml<br \/>\n&lt;a&gt;&lt;\/a&gt;<br \/>\n<\/code><\/p>\n<p>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.<br \/>\n&lt;query&gt; &lt;input file&gt; [&#8211;stepByStep] [&#8211;outPutMode subTree|quixEvent]<\/p>\n<h2>Troubleshooting:<\/h2>\n<p>Problem:<br \/>\nquixpath \/\/a[not(b)] \/share\/example.xml<br \/>\nsyntax error near unexpected token `(&#8216;<\/p>\n<p>Solution:<br \/>\nProtect your query with double quotes<br \/>\nquixpath \u201c\/\/a[not(b)]\u201d \/share\/example.xml<\/p>\n<h1>How to execute QuiXSLT ?<\/h1>\n<p>The quixslt executable must be invoke with three parameters: the stylesheet, the input document and the output document:<br \/>\n&lt;stylesheet&gt; [&lt;input file&gt; [&lt;output file&gt;]]<\/p>\n<p>In the following example, we run the xslt sheet that finds all the a-node over the document: &lt;a\/&gt;<\/p>\n<p><code>> quixslt \/share\/xslt\/findA.xslt \/share\/example.xml<br \/>\n&nbsp;&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;&lt;template xmlns=\"\"&gt;<br \/>\n&nbsp;&nbsp;find a<br \/>\n&nbsp;&lt;\/template&gt;<br \/>\n&gt;  less \/share\/xslt\/findA.xslt<br \/>\n&lt;?xml version=\"1.0\"?&gt;<br \/>\n&nbsp;&lt;xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http:\/\/www.w3.org\/1999\/XSL\/Transform\"&gt;<br \/>\n&nbsp;  &lt;xsl:template match=\"\/\"&gt;<br \/>\n&nbsp;&nbsp;    &lt;template&gt;<br \/>\n&nbsp;&nbsp;&nbsp;      &lt;xsl:for-each select=\"a\"&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;        find a<br \/>\n&nbsp;&nbsp;&nbsp;      &lt;\/xsl:for-each&gt;<br \/>\n&nbsp;&nbsp;   &lt;\/template&gt;<br \/>\n&nbsp;  &lt;\/xsl:template&gt;<br \/>\n&lt;\/xsl:stylesheet&gt;<br \/>\n<\/code><\/p>\n<h1>How to execute XFun<\/h1>\n<p>The xfunexecutable must be invoke with three parameters: the stylesheet, the input document and the output document:<br \/>\n&lt;xfun program&gt; [&lt;input file&gt; [&lt;output file&gt;]]<\/p>\n<p>In the following example, we run an xfun program that finds all the a-node over the document: &lt;a\/&gt;<\/p>\n<p><code><br \/>\n&gt; xfun \/share\/xfun\/findA.xfun \/share\/example.xml<br \/>\n    Find an a-node.<br \/>\n&gt; less \/share\/xfun\/findA.xfun<br \/>\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;<br \/>\n&lt;xfun xmlns=\"http:\/\/x-fun.lille.inria.fr\"&gt;<br \/>\n&nbsp;   &lt;for xmlns=\"\"<br \/>\n&nbsp;        node=\"context\"<br \/>\n&nbsp;        from=\"root\"<br \/>\n&nbsp;        select=\"descendant-or-self::a\"&gt;<br \/>\n&nbsp;&nbsp;        &lt;text&gt;Find an a-node.&lt;\/text&gt;<br \/>\n&nbsp;   &lt;\/for&gt;<br \/>\n&lt;\/xfun&gt;<br \/>\n<\/code><\/p>\n<h1>How to execute QuiXSchematron<\/h1>\n<p>The quixschematron executable must be invoke with two parameters:<br \/>\n&lt;schema&gt; &lt;document&gt;<\/p>\n<p>In the following example, we run an schema that ckecks the structure of a list of persons.<\/p>\n<p><code><br \/>\n&gt; quixschematron \/share\/schematron\/dataStructure.sch \/share\/listOfPersons.xml<br \/>\nThe number of children should be more than 2: \/list[1]\/Person[1]<br \/>\nThe person must have an Id attribute: \/list[1]\/Person[2]<br \/>\nThe Name of Person should not be empty: \/list[1]\/Person[2]<br \/>\nThe first child of a Persone should be a Name: \/list[1]\/Person[3]<br \/>\nThe Name of Person should not be empty: \/list[1]\/Person[4]<br \/>\nThe person must have an Id attribute: \/list[1]\/Person[7]<br \/>\nThe first child of a Persone should be a Name: \/list[1]\/Person[7]<br \/>\nThe Name of Person should not be empty: \/list[1]\/Person[7]<br \/>\n<\/code><\/p>\n<p>Two option are available: <em>&#8211;numbering<\/em> numbers the output message while <em>&#8211;progress  &lt;frequence &gt;<\/em> outputs the &#8216;#&#8217; symbol each frequence events.<\/p>\n<p><code><br \/>\n&gt;quixschematron --numbering --progress 50 \/share\/schematron\/dataStructure.sch \/share\/listOfPersons.xml<br \/>\n1: The number of children should be more than 2: \/list[1]\/Person[1]<br \/>\n#<br \/>\n#<br \/>\n2: The person must have an Id attribute: \/list[1]\/Person[2]<br \/>\n3: The Name of Person should not be empty: \/list[1]\/Person[2]<br \/>\n#<br \/>\n4: The first child of a Persone should be a Name: \/list[1]\/Person[3]<br \/>\n#<br \/>\n5: The Name of Person should not be empty: \/list[1]\/Person[4]<br \/>\n#<br \/>\n#<br \/>\n#<br \/>\n6: The person must have an Id attribute: \/list[1]\/Person[7]<br \/>\n7: The first child of a Persone should be a Name: \/list[1]\/Person[7]<br \/>\n8: The Name of Person should not be empty: \/list[1]\/Person[7]<br \/>\n<\/code><\/p>\n<h1>How to upload your own XML file?<\/h1>\n<p>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.<\/p>\n<p><code><br \/>\n&gt; scp myDoc.xml $user@links-xml-streaming.lille.inria.fr:\/home\/$user<br \/>\n<\/code><\/p>\n<h1>How to create a small XML file via command line?<\/h1>\n<p><code><br \/>\n&gt; echo \u201c&lt;a&gt;&lt;b\/&gt;&lt;\/a&gt;\u201d > smallXMLfile.xml<br \/>\n<\/code><\/p>\n<p>You can also use your favorit editor like vi, vim or emacs.<\/p>\n<h1>How do I install unstable releases<\/h1>\n<p>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:<\/p>\n<p><code>&gt; quixpath --version=unstable \/\/a \/share\/example.xml<br \/>\nUnstable release of quixpath<br \/>\nSTART_SEQUENCE;false<br \/>\nSTART_DOCUMENT ;false<br \/>\nSTART_ELEMENT a;true<br \/>\nEND_ELEMENT a;true<br \/>\nEND_DOCUMENT ;false<br \/>\nEND_SEQUENCE;false<br \/>\n&gt; quixpath --version=unstable --version<br \/>\nUnstable release of quixpath<br \/>\nQuiXPath version \"2_0_0\" (build 13_10_07)<br \/>\n<\/code><\/p>\n<h1>How to determine the behavior of my shell?<\/h1>\n<p>Edit the .bash_profile file that is on your home directory.<\/p>","protected":false},"excerpt":{"rendered":"<p>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 &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/project.inria.fr\/quix-tool-suite\/test-machine\/\">Continue reading<\/a><\/p>\n","protected":false},"author":379,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"footnotes":"","_members_access_role":[],"_members_access_error":""},"class_list":["post-117","page","type-page","status-publish","hentry","nodate","item-wrap"],"_links":{"self":[{"href":"https:\/\/project.inria.fr\/quix-tool-suite\/wp-json\/wp\/v2\/pages\/117","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/project.inria.fr\/quix-tool-suite\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/project.inria.fr\/quix-tool-suite\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/project.inria.fr\/quix-tool-suite\/wp-json\/wp\/v2\/users\/379"}],"replies":[{"embeddable":true,"href":"https:\/\/project.inria.fr\/quix-tool-suite\/wp-json\/wp\/v2\/comments?post=117"}],"version-history":[{"count":28,"href":"https:\/\/project.inria.fr\/quix-tool-suite\/wp-json\/wp\/v2\/pages\/117\/revisions"}],"predecessor-version":[{"id":346,"href":"https:\/\/project.inria.fr\/quix-tool-suite\/wp-json\/wp\/v2\/pages\/117\/revisions\/346"}],"wp:attachment":[{"href":"https:\/\/project.inria.fr\/quix-tool-suite\/wp-json\/wp\/v2\/media?parent=117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}