

{"id":58,"date":"2013-11-15T09:54:47","date_gmt":"2013-11-15T08:54:47","guid":{"rendered":"https:\/\/project.inria.fr\/QuiXProc\/?page_id=58"},"modified":"2013-12-03T11:10:35","modified_gmt":"2013-12-03T10:10:35","slug":"quixslt","status":"publish","type":"page","link":"https:\/\/project.inria.fr\/quix-tool-suite\/quixslt\/","title":{"rendered":"QuiXSLT"},"content":{"rendered":"<p>The QuiXSLT language is a large fragment of <a href=\"http:\/\/www.w3.org\/TR\/xslt-30\/\" title=\"XSLT\" target=\"_blank\">XSLT 3.0<\/a>. The QuiXSLT library provides a compiler from QuiXSLT to X-Fun, a functional language for hyperstreaming XSLT. Both, a free demonstration and a professional version are available.<\/p>\n<p><center><br \/>\n<a href=\"https:\/\/docs.google.com\/forms\/d\/1vpVkgexH_K4u66SwqvEu2ZnDr51T-uD3t2Zn7FgIkBc\/viewform?embedded=true#start=embed\" target=\"_blank\">Try it for free on the Test Machine<\/a>.<br \/>\n<\/center><\/p>\n<h2>Key Features<\/h2>\n<ul>\n<li>Hyperstreaming model: shred the output stream into fragments that can be produced independently in parallel.<\/li>\n<li>Flip of document pairs are hyperstreamable but not streamable.<\/li>\n<li>Navigation with QuiXPath expression.<\/li>\n<\/ul>\n<h2>Key Benefits<\/h2>\n<ul>\n<li>No trainning: in memory and streams implementation use the same XSLT syntaxe.<\/li>\n<li>Support, in streaming mode, a bigger fragment than streaming support for XSLT 3.0.<\/li>\n<li>Good ef\ufb01ciency compare to Saxon XSLT implementation.<\/li>\n<\/ul>\n<h2>Which fragment of XSLT is currently supported by QuiXSLT?<\/h2>\n<p>Syntactically, QuiXSLTfollows the official <a href=\"http:\/\/www.w3.org\/TR\/xslt-30\/\" title=\"XSLT 3.0\" target=\"_blank\">XSLT W3C Recommendation<\/a> (even though it does not implement the full standard) . The current version of QuiXSLT supports the following elements:<\/p>\n<ul>\n<li>named templates,<\/li>\n<li> template rules,<\/li>\n<li>instructions <em>call-template<\/em>, <em>apply-templates<\/em>, <em>if<\/em>, <em>choice<\/em>, <em>for-each<\/em>, <em>copy<\/em>, <em>copy-of<\/em>,<\/li>\n<li>dynamic content creation instructions: <em>attribute<\/em>, <em>value-of<\/em>&#8230;<\/li>\n<\/ul>\n<p>Templates can be called with any number of parameters.<\/p>\n<h2>Examples<\/h2>\n<p>A fragment of an XSLT program computing the table of contents for a book could look like the following:<br \/>\n<code><br \/>\n&lt;xsl:stylesheet&gt;<br \/>\n&nbsp;&lt;xsl:template match=\"book\"&gt;<br \/>\n&nbsp;&nbsp;&lt;book&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&lt;xsl:apply-templates select=\".\" mode=\"toc\"\/&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&lt;xsl:copy-of select=child::*\/&gt;<br \/>\n&nbsp;&nbsp;&lt;\/book&gt;<br \/>\n&nbsp;&lt;\/xsl:template&gt;<br \/>\n\u2026<br \/>\n&lt;\/xsl:stylesheet><br \/>\n<\/code><\/p>","protected":false},"excerpt":{"rendered":"<p>The QuiXSLT language is a large fragment of XSLT 3.0. The QuiXSLT library provides a compiler from QuiXSLT to X-Fun, a functional language for hyperstreaming XSLT. Both, a free demonstration and a professional version are available. Try it for free on the Test Machine. Key Features Hyperstreaming model: shred the output stream into fragments that &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/project.inria.fr\/quix-tool-suite\/quixslt\/\">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-58","page","type-page","status-publish","hentry","nodate","item-wrap"],"_links":{"self":[{"href":"https:\/\/project.inria.fr\/quix-tool-suite\/wp-json\/wp\/v2\/pages\/58","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=58"}],"version-history":[{"count":13,"href":"https:\/\/project.inria.fr\/quix-tool-suite\/wp-json\/wp\/v2\/pages\/58\/revisions"}],"predecessor-version":[{"id":307,"href":"https:\/\/project.inria.fr\/quix-tool-suite\/wp-json\/wp\/v2\/pages\/58\/revisions\/307"}],"wp:attachment":[{"href":"https:\/\/project.inria.fr\/quix-tool-suite\/wp-json\/wp\/v2\/media?parent=58"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}