

{"id":59,"date":"2013-11-15T09:55:06","date_gmt":"2013-11-15T08:55:06","guid":{"rendered":"https:\/\/project.inria.fr\/QuiXProc\/?page_id=59"},"modified":"2013-12-03T11:26:55","modified_gmt":"2013-12-03T10:26:55","slug":"quixschematron","status":"publish","type":"page","link":"https:\/\/project.inria.fr\/quix-tool-suite\/quixschematron\/","title":{"rendered":"QuiXSchematron"},"content":{"rendered":"<p><a href=\"http:\/\/www.schematron.com\/\" title=\"schematron\" target=\"_blank\">Schematron<\/a> is a language for making assertion about patterns found in XML document. QuiXSchematron is an implementation of Schematron for XML streams that compiles schema into X-Fun.<\/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>Very large coverage since it is based on QuiXPath.<\/li>\n<li>Produce the assert\/report messages with the id of the context node.<\/li>\n<li>Streaming implementation of an <em>all distincts<\/em> function.<\/li>\n<\/ul>\n<h2>Key Benefits<\/h2>\n<ul>\n<li>Receive assertion\/report messages before the full data is retrieved.<\/li>\n<li>Schematron processing using X-Fun. No streaming XSLT processor is required.<\/li>\n<li>QuiXSchematron is the unique implementation of Schematron over XML streams.<\/li>\n<\/ul>\n<h2>Which fragment of Schematron is currently supported by QuiXSchematron? <\/h2>\n<p>Syntactically, QuiXSchematron follows the official <a href=\"http:\/\/standards.iso.org\/ittf\/PubliclyAvailableStandards\/index.html\" title=\"Schematron\" target=\"_blank\">Schematron  ISO Recommendation<\/a> (even though it does not implement the full standard) . The current version of  QuiXSchematron  supports the following Six Basic Elements:<\/p>\n<ul>\n<li>optional &lt;title&gt;<\/li>\n<li>zero or more &lt;ns prefix=&#8221;???&#8221; uri=&#8221;???&#8221; \/> giving the namespaces and prefixes used for the XPaths<\/li>\n<li> one &lt;pattern&gt;, which contains<\/li>\n<li>several &lt;rule context=&#8221;???&#8221;&gt; where the context attribute is an XPath expression without backward axis. Its content is a mixed of<\/li>\n<ul>\n<li>&lt;assert test=&#8221;???&#8221;&gt; where the test attribute is an XPath location, and which contains an assertion message in plain language.<\/li>\n<li>&lt;report test=&#8221;???&#8221;&gt; where the test attribute is an XPath location, and which contains a reported message in plain language.<\/li>\n<\/ul>\n<\/ul>\n<h2>Examples<\/h2>\n<p>The following XML document describes a list of <em>Person<\/em> with their <em>Title<\/em>, <em>Name<\/em> and <em>Gender<\/em>. More over, when possible, the <em>Id<\/em> of the <em>Mother<\/em> is stored.<br \/>\n<code><br \/>\n\u2026<br \/>\n&nbsp;&lt;Person Title=\"Mr\" Id=\"28\" &gt;<br \/>\n&nbsp;&nbsp; &lt;Name&gt;Eddie&lt;\/Name&gt;<br \/>\n&nbsp;&nbsp;&lt;Gender&gt;Male&lt;\/Gender&gt;<br \/>\n&nbsp;&nbsp;&lt;Mother Id=\"36\"\/&gt;<br \/>\n&nbsp;&lt;\/Person&gt;<br \/>\n\u2026<br \/>\n<\/code><\/p>\n<p>QuiXSchematron is able to evaluate the two following schema over an XML stream:<\/p>\n<ol>\n<li>\nThe context element (<em>Person<\/em>) should have two children and an <em>Id<\/em> attribute. The local name (label) of the first child should be <em>Name<\/em>. Its content should not be empty.<br \/>\n<code><br \/>\n&lt;rule context=\"Person\"&gt;<br \/>\n&nbsp;&lt;assert test=\"count(*) >= 2\">\u2026&lt;\/assert&gt;<br \/>\n&nbsp;&lt;assert test=\"@Id\">\u2026 &lt;\/assert&gt;<br \/>\n&nbsp;&lt;assert test=\"*[1][self::Name]\"&gt; \u2026 &lt;\/assert&gt;<br \/>\n&nbsp;&lt;assert test=\"Name\/text()\"&gt; \u2026 &lt;\/assert&gt;<br \/>\n&lt;\/rule&gt;<br \/>\n<\/code>\n<\/li>\n<li>\nCheck that the mother is in the list. Here, there is a join between the<em> Id<\/em> the context element (<em>Person<\/em>)  and the Id of any  <em>Person<\/em> in the list.<br \/>\n<code><br \/>\n&lt;rule context = \u201cPerson\/Mother\u201d&gt;<br \/>\n&nbsp;&lt;assert test=\"@Id = .. \/ .. \/Person\/@Id \"&gt;<br \/>\n&nbsp; \u2026<br \/>\n&nbsp;&lt;\/assert&gt;<br \/>\n&lt;\/rule&gt;<br \/>\n<\/code>\n<\/li>\n<\/ol>\n<h2>Learn More<\/h2>\n<p><a href=\"http:\/\/www.inria.fr\/centre\/saclay\/innovation\/rii-finance\/demos\/fxp\" title=\"QuiXSchematron demo\" target=\"_blank\">Demonstration of QuiXSchemamtron<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Schematron is a language for making assertion about patterns found in XML document. QuiXSchematron is an implementation of Schematron for XML streams that compiles schema into X-Fun. Try it for free on the Test Machine. Key Features Very large coverage since it is based on QuiXPath. Produce the assert\/report messages with the id of the &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/project.inria.fr\/quix-tool-suite\/quixschematron\/\">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-59","page","type-page","status-publish","hentry","nodate","item-wrap"],"_links":{"self":[{"href":"https:\/\/project.inria.fr\/quix-tool-suite\/wp-json\/wp\/v2\/pages\/59","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=59"}],"version-history":[{"count":20,"href":"https:\/\/project.inria.fr\/quix-tool-suite\/wp-json\/wp\/v2\/pages\/59\/revisions"}],"predecessor-version":[{"id":195,"href":"https:\/\/project.inria.fr\/quix-tool-suite\/wp-json\/wp\/v2\/pages\/59\/revisions\/195"}],"wp:attachment":[{"href":"https:\/\/project.inria.fr\/quix-tool-suite\/wp-json\/wp\/v2\/media?parent=59"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}