You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2014/09/12 17:40:20 UTC

[02/13] CAMEL-7220 Added Camel Schematron component with thanks to Ayache

http://git-wip-us.apache.org/repos/asf/camel/blob/a07d71fe/components/camel-schematron/src/main/resources/iso-schematron-xslt2/iso_svrl_for_xslt2.xsl
----------------------------------------------------------------------
diff --git a/components/camel-schematron/src/main/resources/iso-schematron-xslt2/iso_svrl_for_xslt2.xsl b/components/camel-schematron/src/main/resources/iso-schematron-xslt2/iso_svrl_for_xslt2.xsl
new file mode 100644
index 0000000..2e8d8da
--- /dev/null
+++ b/components/camel-schematron/src/main/resources/iso-schematron-xslt2/iso_svrl_for_xslt2.xsl
@@ -0,0 +1,684 @@
+<?xml version="1.0" ?>
+<!-- 
+   ISO_SVRL.xsl   
+
+   Implementation of Schematron Validation Report Language from ISO Schematron
+   ISO/IEC 19757 Document Schema Definition Languages (DSDL) 
+     Part 3: Rule-based validation  Schematron 
+     Annex D: Schematron Validation Report Language 
+
+  This ISO Standard is available free as a Publicly Available Specification in PDF from ISO.
+  Also see www.schematron.com for drafts and other information.
+
+  This implementation of SVRL is designed to run with the "Skeleton" implementation 
+  of Schematron which Oliver Becker devised. The skeleton code provides a 
+  Schematron implementation but with named templates for handling all output; 
+  the skeleton provides basic templates for output using this API, but client
+  validators can be written to import the skeleton and override the default output
+  templates as required. (In order to understand this, you must understand that
+  a named template such as "process-assert" in this XSLT stylesheet overrides and
+  replaces any template with the same name in the imported skeleton XSLT file.)
+
+  The other important thing to understand in this code is that there are different
+  versions of the Schematron skeleton. These track the development of Schematron through
+  Schematron 1.5, Schematron 1.6 and now ISO Schematron. One only skeleton must be
+  imported. The code has templates for the different skeletons commented out for 
+  convenience. ISO Schematron has a different namespace than Schematron 1.5 and 1.6;
+  so the ISO Schematron skeleton has been written itself with an optional import
+  statement to in turn import the Schematron 1.6 skeleton. This will allow you to 
+  validate with schemas from either namespace.
+  
+
+  History: 
+    2010-04-14
+        * Add command line parameter 'terminate' which will terminate on first failed 
+        assert and (optionally) successful report. 
+    2009-03-18
+    	* Fix atrribute with space "see " which generates wrong name in some processors
+    	* rename allow-foreign to allow-rich
+  
+    2009-02-19
+    	* RJ add experimental non-standard attribute active-pattern/@document which says which
+    	document is being validated from that point to the next similar. This is to cope with the
+    	experimental multi-document validation in the XSLT2 skeleton.
+    2008-08-19
+  		* RJ Experimental: Handle property elements. NOTE: signature change for process-assert,
+  		process-report and process-rule to add property.
+  	2008-08-11
+   		* RJ Fix attribute/@select which saxon allows  in XSLT 1
+   2008-08-07
+    	* RJ Add output-encoding attribute to specify final encoding to use
+    	* Alter allow-foreign functionality so that Schematron span, emph and dir elements make 
+    	  it to the output, for better formatting and because span can be used to mark up
+    	  semantically interesting information embedded in diagnostics, which reduces the
+    	  need to extend SVRL itself
+    	* Diagnostic-reference had an invalid attribute @id that duplicated @diagnostic: removed
+  	2008-08-06
+    	* RJ Fix invalid output:  svrl:diagnostic-reference is not contained in an svrl:text
+    	* Output comment to SVRL file giving filename if available (from command-line parameter)
+  	2008-08-04
+  		* RJ move sch: prefix to schold: prefix to prevent confusion (we want people to
+  		be able to switch from old namespace to new namespace without changing the
+  		sch: prefix, so it is better to keep that prefix completely out of the XSLT)
+  		* Extra signature fixes (PH)
+    2008-08-03
+    	* Repair missing class parameter on process-p
+    2008-07-31
+    	* Update skeleton names
+    2007-04-03 
+    	* Add option generate-fired-rule (RG)
+    2007-02-07
+    	* Prefer true|false for parameters. But allow yes|no on some old for compatability
+    	* DP Diagnostics output to svrl:text. Diagnosis put out after assertion text.
+      	* Removed non-SVRL elements and attributes: better handled as an extra layer that invokes this one
+      	* Add more formal parameters
+      	* Correct confusion between $schemaVersion and $queryBinding
+     	* Indent
+     	* Validate against RNC schemas for XSLT 1 and 2 (with regex tests removed)
+     	* Validate output with UniversalTest.sch against RNC schema for ISO SVRL
+    	
+    2007-02-01
+       	* DP. Update formal parameters of overriding named templates to handle more attributes.
+       	* DP. Refactor handling of rich and linkable parameters to a named template.
+
+    2007-01-22
+    	* DP change svrl:ns to svrl:ns-in-attribute-value
+		* Change default when no queryBinding from "unknown" to "xslt"
+	
+    2007-01-18:
+     	* Improve documentation
+     	* KH Add command-line options to generate paths or not 
+       	* Use axsl:attribute rather than xsl:attribute to shut XSLT2 up
+       	* Add extra command-line options to pass to the iso_schematron_skeleton
+  
+    2006-12-01: iso_svrl.xsl Rick Jelliffe, 
+          * update namespace, 
+          * update phase handling,
+          * add flag param to process-assert and process-report & @ flag on output
+  
+    2001: Conformance1-5.xsl Rick Jelliffe, 
+          * Created, using the skeleton code contributed by Oliver Becker
+-->
+<!--
+ Derived from Conformance1-5.xsl.
+
+ Copyright (c) 2001-2010 Rick Jelliffe and Academia Sinica Computing Center, Taiwan
+
+ This software is provided 'as-is', without any express or implied warranty. 
+ In no event will the authors be held liable for any damages arising from 
+ the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose, 
+ including commercial applications, and to alter it and redistribute it freely,
+ subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not claim
+ that you wrote the original software. If you use this software in a product, 
+ an acknowledgment in the product documentation would be appreciated but is 
+ not required.
+
+ 2. Altered source versions must be plainly marked as such, and must not be 
+ misrepresented as being the original software.
+
+ 3. This notice may not be removed or altered from any source distribution.
+-->
+
+<!-- Ideas nabbed from schematrons by Francis N., Miloslav N. and David C. -->
+
+<!-- The command-line parameters are:
+  			phase           NMTOKEN | "#ALL" (default) Select the phase for validation
+    		allow-foreign   "true" | "false" (default)   Pass non-Schematron elements and rich markup to the generated stylesheet 
+            diagnose= true | false|yes|no    Add the diagnostics to the assertion test in reports (yes|no are obsolete)
+            property= true | false           Experimental: Add properties to the assertion test in reports  
+            generate-paths=true|false|yes|no   generate the @location attribute with XPaths (yes|no are obsolete)
+            sch.exslt.imports semi-colon delimited string of filenames for some EXSLT implementations          
+   		 optimize        "visit-no-attributes"     Use only when the schema has no attributes as the context nodes
+		 generate-fired-rule "true"(default) | "false"  Generate fired-rule elements
+             terminate= yes | no | true | false | assert  Terminate on the first failed assertion or successful report
+                                         Note: whether any output at all is generated depends on the XSLT implementation.
+-->
+
+<xsl:stylesheet
+   version="1.0"
+   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	xmlns:xs="http://www.w3.org/2001/XMLSchema"
+   xmlns:axsl="http://www.w3.org/1999/XSL/TransformAlias"
+   xmlns:schold="http://www.ascc.net/xml/schematron" 
+   xmlns:iso="http://purl.oclc.org/dsdl/schematron"
+   xmlns:svrl="http://purl.oclc.org/dsdl/svrl" 
+    
+>
+
+<!-- Select the import statement and adjust the path as 
+   necessary for your system.
+-->
+<xsl:import href="iso_schematron_skeleton_for_saxon.xsl" />
+ 
+ <!--
+<xsl:import href="iso_schematron_skeleton_for_xslt1.xsl"/>
+ 
+<xsl:import href="iso_schematron_skeleton.xsl"/>
+<xsl:import href="skeleton1-5.xsl"/>
+<xsl:import href="skeleton1-6.xsl"/>
+-->
+
+<xsl:param name="diagnose">true</xsl:param>
+<xsl:param name="property">true</xsl:param>
+<xsl:param name="phase">
+	<xsl:choose>
+		<!-- Handle Schematron 1.5 and 1.6 phases -->
+		<xsl:when test="//schold:schema/@defaultPhase">
+			<xsl:value-of select="//schold:schema/@defaultPhase"/>
+		</xsl:when>
+		<!-- Handle ISO Schematron phases -->
+		<xsl:when test="//iso:schema/@defaultPhase">
+			<xsl:value-of select="//iso:schema/@defaultPhase"/>
+		</xsl:when>
+		<xsl:otherwise>#ALL</xsl:otherwise>
+	</xsl:choose>
+</xsl:param>
+<xsl:param name="allow-foreign">false</xsl:param>
+<xsl:param name="generate-paths">true</xsl:param>
+<xsl:param name="generate-fired-rule">true</xsl:param>
+<xsl:param name="optimize" />
+<!-- e.g. saxon file.xml file.xsl "sch.exslt.imports=.../string.xsl;.../math.xsl" -->
+<xsl:param name="sch.exslt.imports" />
+
+<xsl:param name="terminate" >false</xsl:param>
+
+<!-- Set the language code for messages -->
+<xsl:param name="langCode">default</xsl:param>
+ 
+<xsl:param name="output-encoding"/>
+
+<!-- Set the default for schematron-select-full-path, i.e. the notation for svrl's @location-->
+<xsl:param name="full-path-notation">1</xsl:param>
+
+
+
+<!-- Experimental: If this file called, then must be generating svrl -->
+<xsl:variable name="svrlTest" select="true()" />
+
+  
+ 
+<!-- ================================================================ -->
+
+<xsl:template name="process-prolog">
+	<axsl:output method="xml" omit-xml-declaration="no" standalone="yes"
+		indent="yes">
+		<xsl:if test=" string-length($output-encoding) &gt; 0">
+			<xsl:attribute name="encoding"><xsl:value-of select=" $output-encoding" /></xsl:attribute>
+		</xsl:if>
+    </axsl:output>
+     
+</xsl:template>
+
+<!-- Overrides skeleton.xsl -->
+<xsl:template name="process-root">
+	<xsl:param name="title"/>
+	<xsl:param name="contents" />
+	<xsl:param name="queryBinding" >xslt1</xsl:param>
+	<xsl:param name="schemaVersion" />
+	<xsl:param name="id" />
+	<xsl:param name="version"/>
+	<!-- "Rich" parameters -->
+	<xsl:param name="fpi" />
+	<xsl:param name="icon" />
+	<xsl:param name="lang" />
+	<xsl:param name="see" />
+	<xsl:param name="space" />
+	
+	<svrl:schematron-output title="{$title}" schemaVersion="{$schemaVersion}" >
+		<xsl:if test=" string-length( normalize-space( $phase )) &gt; 0 and 
+		not( normalize-space( $phase ) = '#ALL') ">
+			<axsl:attribute name="phase">
+				<xsl:value-of select=" $phase " />
+			</axsl:attribute>
+		</xsl:if> 
+		
+		 <axsl:comment><axsl:value-of select="$archiveDirParameter"/>  &#xA0;
+		 <axsl:value-of select="$archiveNameParameter"/> &#xA0;
+		 <axsl:value-of select="$fileNameParameter"/> &#xA0;
+		 <axsl:value-of select="$fileDirParameter"/></axsl:comment> 
+		 
+		
+		<xsl:apply-templates mode="do-schema-p" />
+		<xsl:copy-of select="$contents" />
+	</svrl:schematron-output>
+</xsl:template>
+
+
+<xsl:template name="process-assert">
+	<xsl:param name="test"/>
+	<xsl:param name="diagnostics" />
+	<xsl:param name="properties" />
+	<xsl:param name="id" />
+	<xsl:param name="flag" />
+	<!-- "Linkable" parameters -->
+	<xsl:param name="role"/>
+	<xsl:param name="subject"/>
+	<!-- "Rich" parameters -->
+	<xsl:param name="fpi" />
+	<xsl:param name="icon" />
+	<xsl:param name="lang" />
+	<xsl:param name="see" />
+	<xsl:param name="space" />
+	<svrl:failed-assert test="{$test}" >
+		<xsl:if test="string-length( $id ) &gt; 0">
+			<axsl:attribute name="id">
+				<xsl:value-of select=" $id " />
+			</axsl:attribute>
+		</xsl:if>
+		<xsl:if test=" string-length( $flag ) &gt; 0">
+			<axsl:attribute name="flag">
+				<xsl:value-of select=" $flag " />
+			</axsl:attribute>
+		</xsl:if>
+		<!-- Process rich attributes.  -->
+		<xsl:call-template name="richParms">
+			<xsl:with-param name="fpi" select="$fpi"/>
+			<xsl:with-param name="icon" select="$icon"/>
+			<xsl:with-param name="lang" select="$lang"/>
+			<xsl:with-param name="see" select="$see" />
+			<xsl:with-param name="space" select="$space" />
+		</xsl:call-template>
+		<xsl:call-template name='linkableParms'>
+			<xsl:with-param name="role" select="$role" />
+			<xsl:with-param name="subject" select="$subject"/>
+		</xsl:call-template>
+		<xsl:if test=" $generate-paths = 'true' or $generate-paths= 'yes' ">
+			<!-- true/false is the new way -->
+			<axsl:attribute name="location">
+				<axsl:apply-templates select="." mode="schematron-select-full-path"/>
+			</axsl:attribute>
+		</xsl:if>
+		  
+		<svrl:text>
+			<xsl:apply-templates mode="text" />
+	
+		</svrl:text>
+		    <xsl:if test="$diagnose = 'yes' or $diagnose= 'true' ">
+			<!-- true/false is the new way -->
+				<xsl:call-template name="diagnosticsSplit">
+					<xsl:with-param name="str" select="$diagnostics"/>
+				</xsl:call-template>
+			</xsl:if>
+			
+			
+		    <xsl:if test="$property= 'yes' or $property= 'true' ">
+			<!-- true/false is the new way -->
+				<xsl:call-template name="propertiesSplit">
+					<xsl:with-param name="str" select="$properties"/>
+				</xsl:call-template>
+			</xsl:if>
+			
+	</svrl:failed-assert>
+	
+	
+		<xsl:if test=" $terminate = 'yes' or $terminate = 'true' ">
+		   <axsl:message terminate="yes">TERMINATING</axsl:message>
+		</xsl:if>
+	    <xsl:if test=" $terminate = 'assert' ">
+		   <axsl:message terminate="yes">TERMINATING</axsl:message>
+		</xsl:if>
+</xsl:template>
+
+<xsl:template name="process-report">
+	<xsl:param name="id"/>
+	<xsl:param name="test"/>
+	<xsl:param name="diagnostics"/>
+	<xsl:param name="flag" />
+	<xsl:param name="properties"/>
+	<!-- "Linkable" parameters -->
+	<xsl:param name="role"/>
+	<xsl:param name="subject"/>
+	<!-- "Rich" parameters -->
+	<xsl:param name="fpi" />
+	<xsl:param name="icon" />
+	<xsl:param name="lang" />
+	<xsl:param name="see" />
+	<xsl:param name="space" />
+	<svrl:successful-report test="{$test}" >
+		<xsl:if test=" string-length( $id ) &gt; 0">
+			<axsl:attribute name="id">
+				<xsl:value-of select=" $id " />
+			</axsl:attribute>
+		</xsl:if>
+		<xsl:if test=" string-length( $flag ) &gt; 0">
+			<axsl:attribute name="flag">
+				<xsl:value-of select=" $flag " />
+			</axsl:attribute>
+		</xsl:if>
+		
+		<!-- Process rich attributes.  -->
+		<xsl:call-template name="richParms">
+			<xsl:with-param name="fpi" select="$fpi"/>
+			<xsl:with-param name="icon" select="$icon"/>
+			<xsl:with-param name="lang" select="$lang"/>
+			<xsl:with-param name="see" select="$see" />
+			<xsl:with-param name="space" select="$space" />
+		</xsl:call-template>
+		<xsl:call-template name='linkableParms'>
+			<xsl:with-param name="role" select="$role" />
+			<xsl:with-param name="subject" select="$subject"/>
+		</xsl:call-template>
+		<xsl:if test=" $generate-paths = 'yes' or $generate-paths = 'true' ">
+			<!-- true/false is the new way -->
+			<axsl:attribute name="location">
+				<axsl:apply-templates select="." mode="schematron-select-full-path"/>
+			</axsl:attribute>
+		</xsl:if>
+	 
+		<svrl:text>
+			<xsl:apply-templates mode="text" />
+
+		</svrl:text>
+			<xsl:if test="$diagnose = 'yes' or $diagnose='true' ">
+			<!-- true/false is the new way -->
+				<xsl:call-template name="diagnosticsSplit">
+					<xsl:with-param name="str" select="$diagnostics"/>
+				</xsl:call-template>
+			</xsl:if>
+			
+			
+			<xsl:if test="$property = 'yes' or $property='true' ">
+			<!-- true/false is the new way -->
+				<xsl:call-template name="propertiesSplit">
+					<xsl:with-param name="str" select="$properties"/>
+				</xsl:call-template>
+			</xsl:if>
+			 
+			
+	</svrl:successful-report>
+	
+	
+		<xsl:if test=" $terminate = 'yes' or $terminate = 'true' ">
+		   <axsl:message terminate="yes"  >TERMINATING</axsl:message>
+		</xsl:if>
+</xsl:template>
+
+
+
+
+<xsl:template name="process-diagnostic">
+	<xsl:param name="id"/>
+	<!-- Rich parameters -->
+	<xsl:param name="fpi" />
+	<xsl:param name="icon" />
+	<xsl:param name="lang" />
+	<xsl:param name="see" />
+	<xsl:param name="space" />
+	<svrl:diagnostic-reference diagnostic="{$id}" >
+		<!--xsl:if test="string($id)">
+			<xsl:attribute name="id">
+				<xsl:value-of select="$id"/>
+			</xsl:attribute>
+		</xsl:if-->
+		<xsl:call-template name="richParms">
+			<xsl:with-param name="fpi" select="$fpi"/>
+			<xsl:with-param name="icon" select="$icon"/>
+			<xsl:with-param name="lang" select="$lang"/>
+			<xsl:with-param name="see" select="$see" />
+			<xsl:with-param name="space" select="$space" />
+		</xsl:call-template> 
+<xsl:text>
+</xsl:text>
+ 
+		<xsl:apply-templates mode="text"/>
+		 
+	</svrl:diagnostic-reference>
+</xsl:template>
+
+
+    <!-- Overrides skeleton -->
+	<xsl:template name="process-dir" >
+		<xsl:param name="value" />
+        <xsl:choose>
+        	<xsl:when test=" $allow-foreign = 'true'">
+        		<xsl:copy-of select="."/>
+        	</xsl:when>
+       
+        <xsl:otherwise>
+	    <!-- We generate too much whitespace rather than risking concatenation -->
+		<axsl:text> </axsl:text>
+		<xsl:apply-templates mode="inline-text"/>
+		<axsl:text> </axsl:text>
+		</xsl:otherwise>
+		 </xsl:choose>		
+	</xsl:template>
+	
+	
+    <!-- Overrides skeleton -->
+	<xsl:template name="process-emph" >
+		<xsl:param name="class" />
+        <xsl:choose>
+        	<xsl:when test=" $allow-foreign = 'true'">
+        		<xsl:copy-of select="."/>
+        	</xsl:when> 
+        <xsl:otherwise>
+	    <!-- We generate too much whitespace rather than risking concatenation -->
+		<axsl:text> </axsl:text>
+		<xsl:apply-templates mode="inline-text"/>
+		<axsl:text> </axsl:text>
+		</xsl:otherwise>
+	 	</xsl:choose>	
+	</xsl:template>
+
+<xsl:template name="process-rule">
+	<xsl:param name="id"/>
+	<xsl:param name="context"/>
+	<xsl:param name="flag"/>
+	<xsl:param name="properties" />
+	<!-- "Linkable" parameters -->
+	<xsl:param name="role"/>
+	<xsl:param name="subject"/>
+	<!-- "Rich" parameters -->
+	<xsl:param name="fpi" />
+	<xsl:param name="icon" />
+	<xsl:param name="lang" />
+	<xsl:param name="see" />
+	<xsl:param name="space" />
+	<xsl:if test=" $generate-fired-rule = 'true'">
+	<svrl:fired-rule context="{$context}" >
+		<xsl:if test=" string( $id )">
+			<xsl:attribute name="id">
+				<xsl:value-of select=" $id " />
+			</xsl:attribute>
+		</xsl:if>
+		<xsl:if test=" string-length( $role ) &gt; 0">
+			<xsl:attribute name="role">
+				<xsl:value-of select=" $role " />
+			</xsl:attribute>
+		</xsl:if>
+		<!-- Process rich attributes.  -->
+		<xsl:call-template name="richParms">
+			<xsl:with-param name="fpi" select="$fpi"/>
+			<xsl:with-param name="icon" select="$icon"/>
+			<xsl:with-param name="lang" select="$lang"/>
+			<xsl:with-param name="see" select="$see" />
+			<xsl:with-param name="space" select="$space" />
+		</xsl:call-template>
+		
+		
+		    <xsl:if test="$property= 'yes' or $property= 'true' ">
+			<!-- true/false is the new way -->
+				<xsl:call-template name="propertiesSplit">
+					<xsl:with-param name="str" select="$properties"/>
+				</xsl:call-template>
+			</xsl:if>
+		
+	</svrl:fired-rule>
+</xsl:if>
+</xsl:template>
+
+<xsl:template name="process-ns">
+	<xsl:param name="prefix"/>
+	<xsl:param name="uri"/>
+	<svrl:ns-prefix-in-attribute-values uri="{$uri}" prefix="{$prefix}" />
+</xsl:template>
+
+<xsl:template name="process-p"> 
+	<xsl:param name="icon"/>
+	<xsl:param name="class"/>
+	<xsl:param name="id"/>
+	<xsl:param name="lang"/>
+	 
+	<svrl:text> 
+		<xsl:apply-templates mode="text"/>
+	</svrl:text>
+</xsl:template>
+
+<xsl:template name="process-pattern">
+	<xsl:param name="name"/>
+	<xsl:param name="id"/>
+	<xsl:param name="is-a"/>
+	
+	<!-- "Rich" parameters -->
+	<xsl:param name="fpi" />
+	<xsl:param name="icon" />
+	<xsl:param name="lang" />
+	<xsl:param name="see" />
+	<xsl:param name="space" />
+	<svrl:active-pattern >
+	    <axsl:attribute name="document">
+	    	<axsl:value-of select="document-uri(/)" />
+	    </axsl:attribute><!-- If XSLT1 remove this -->
+		<xsl:if test=" string( $id )">
+			<axsl:attribute name="id">
+				<xsl:value-of select=" $id " />
+			</axsl:attribute>
+		</xsl:if>
+		<xsl:if test=" string( $name )">
+			<axsl:attribute name="name">
+				<xsl:value-of select=" $name " />
+			</axsl:attribute>
+		</xsl:if> 
+		 
+		<xsl:call-template name='richParms'>
+			<xsl:with-param name="fpi" select="$fpi"/>
+			<xsl:with-param name="icon" select="$icon"/>
+			<xsl:with-param name="lang" select="$lang"/>
+			<xsl:with-param name="see" select="$see" />
+			<xsl:with-param name="space" select="$space" />
+		</xsl:call-template>
+		
+		<!-- ?? report that this screws up iso:title processing  -->
+		<xsl:apply-templates mode="do-pattern-p"/>
+		<!-- ?? Seems that this apply-templates is never triggered DP -->
+		<axsl:apply-templates />
+	</svrl:active-pattern>
+</xsl:template>
+
+<!-- Overrides skeleton -->
+<xsl:template name="process-message" > 
+	<xsl:param name="pattern"/>
+	<xsl:param name="role"/>
+</xsl:template>
+
+
+    <!-- Overrides skeleton -->
+	<xsl:template name="process-span" >
+		<xsl:param name="class" />
+        <xsl:choose>
+        	<xsl:when test=" $allow-foreign = 'true'">
+        		<xsl:copy-of select="."/>
+        	</xsl:when> 
+        <xsl:otherwise>
+	    <!-- We generate too much whitespace rather than risking concatenation -->
+		<axsl:text> </axsl:text>
+		<xsl:apply-templates mode="inline-text"/>
+		<axsl:text> </axsl:text>
+		</xsl:otherwise>
+	 	</xsl:choose>	
+	</xsl:template>
+
+<!-- =========================================================================== -->
+<!-- processing rich parameters. -->
+<xsl:template name='richParms'>
+	<!-- "Rich" parameters -->
+	<xsl:param name="fpi" />
+	<xsl:param name="icon" />
+	<xsl:param name="lang" />
+	<xsl:param name="see" />
+	<xsl:param name="space" />
+	<!-- Process rich attributes.  -->
+	<xsl:if  test=" $allow-foreign = 'true'">
+	<xsl:if test="string($fpi)"> 
+		<axsl:attribute name="fpi">
+			<xsl:value-of select="$fpi "/>
+		</axsl:attribute>
+	</xsl:if>
+	<xsl:if test="string($icon)"> 
+		<axsl:attribute name="icon">
+			<xsl:value-of select="$icon"/>
+		</axsl:attribute>
+	</xsl:if>
+	<xsl:if test="string($see)"> 
+		<axsl:attribute name="see">
+			<xsl:value-of select="$see" />
+		</axsl:attribute>
+	</xsl:if>
+	</xsl:if>
+	<xsl:if test="string($space)">
+		<axsl:attribute name="xml:space">
+			<xsl:value-of select="$space"/>
+		</axsl:attribute>
+	</xsl:if>
+	<xsl:if test="string($lang)">
+		<axsl:attribute name="xml:lang">
+			<xsl:value-of select="$lang"/>
+		</axsl:attribute>
+	</xsl:if>
+</xsl:template>
+
+<!-- processing linkable parameters. -->
+<xsl:template name='linkableParms'>
+	<xsl:param name="role"/>
+	<xsl:param name="subject"/>
+	
+	<!-- ISO SVRL has a role attribute to match the Schematron role attribute -->
+	<xsl:if test=" string($role )">
+		<axsl:attribute name="role">
+			<xsl:value-of select=" $role " />
+		</axsl:attribute>
+	</xsl:if>
+	<!-- ISO SVRL does not have a subject attribute to match the Schematron subject attribute.
+       Instead, the Schematron subject attribute is folded into the location attribute -->
+</xsl:template>
+
+
+
+	<!-- ===================================================== -->
+	<!-- Extension API:              			               -->
+	<!-- This allows the transmission of extra attributes on   -->
+	<!-- rules, asserts, reports, diagnostics.                 -->
+	<!-- ===================================================== -->
+
+
+<!-- Overrides skeleton EXPERIMENTAL -->
+<!-- The $contents is for static contents, the $value is for dynamic contents -->
+<xsl:template name="process-property">
+	<xsl:param name="id"/>
+	<xsl:param name="name"/>
+	<xsl:param name="value"/>
+	<xsl:param name="contents"/>
+	
+	<svrl:property id="{$id}" >  
+		<xsl:if test="$name">
+			<xsl:attribute name="name"><xsl:value-of select="$name"/></xsl:attribute>
+		</xsl:if>
+		
+		<xsl:if test="$value">
+			<xsl:attribute name="value"><xsl:value-of select="$value"/></xsl:attribute>
+		</xsl:if>
+		
+		<xsl:if test="$contents">
+			<xsl:copy-of select="$contents"/>
+		</xsl:if> 
+		
+	</svrl:property>
+</xsl:template>
+
+
+</xsl:stylesheet>
+

http://git-wip-us.apache.org/repos/asf/camel/blob/a07d71fe/components/camel-schematron/src/main/resources/iso-schematron-xslt2/readme.txt
----------------------------------------------------------------------
diff --git a/components/camel-schematron/src/main/resources/iso-schematron-xslt2/readme.txt b/components/camel-schematron/src/main/resources/iso-schematron-xslt2/readme.txt
new file mode 100644
index 0000000..5ce57c9
--- /dev/null
+++ b/components/camel-schematron/src/main/resources/iso-schematron-xslt2/readme.txt
@@ -0,0 +1,100 @@
+<h1>ISO SCHEMATRON 2010</h1>
+
+XSLT implementation by Rick Jelliffe with assistance from members of Schematron-love-in maillist.
+
+2010-04-14
+
+Two distributions are available. One is for XSLT1 engines. 
+The other is for XSLT2 engines, such as SAXON 9.
+
+
+This version of Schematron splits the process into a pipeline of several different XSLT stages.
+
+1) First, preprocess your Schematron schema with iso_dsdl_include.xsl.  
+This is a macro processor to assemble the schema from various parts. 
+If your schema is not in separate parts, you can skip this stage.
+
+2) Second, preprocess the output from stage 1 with iso_abstract_expand.xsl.  
+This is a macro processor to convert abstract patterns to real patterns. 
+If your schema does not use abstract patterns, you can skip this
+stage.
+
+3) Third, compile the Schematron schema into an XSLT script. 
+This will typically use iso_svrl_for_xslt1.xsl or iso_svrl_for_xslt2.xsl 
+(which in turn invoke iso_schematron_skeleton_for_xslt1.xsl or iso_schematron_skeleton_for_saxon.xsl)
+However, other "meta-styleseets" are also in common use; the principle of operation is the same.
+If your schema uses Schematron phases, supply these as command line/invocation parameters
+to this process.
+
+4) Fourth, run the script generated by stage 3 against the document being validated.
+If you are using the SVRL script, then the output of validation will be an XML document.
+If your schema uses Schematron parameters, supply these as command line/invocation parameters
+to this process. 
+
+
+The XSLT2 distribution also features several next generation features, 
+such as validating multiple documents. See the source code for details.
+
+Schematron assertions can be written in any language, of course; the file
+sch-messages-en.xhtml contains the diagnostics messages from the XSLT2 skeleton
+in English, and this can be used as template to localize the skeleton's
+error messages. Note that typically programming errors in Schematron are XPath
+errors, which requires localized messages from the XSLT engine.
+
+ANT
+---
+To give an example of how to process a document, here is a sample ANT task.
+
+<target  name="schematron-compile-test" >
+
+	   <!-- expand inclusions -->
+	   <xslt basedir="test/schematron"
+	   		style="iso_dsdl_include.xsl" in="test.sch"  out="test1.sch"> 
+	   				<classpath>
+	   					<pathelement location="${lib.dir}/saxon9.jar"/>
+	   				</classpath>
+	   </xslt>
+
+	   <!-- expand abstract patterns -->
+	   <xslt basedir="test/schematron"
+	   		style="iso_abstract_expand.xsl" in="test1.sch"  out="test2.sch"> 
+	   				<classpath>
+	   					<pathelement location="${lib.dir}/saxon9.jar"/>
+	   				</classpath>
+	   </xslt>
+
+
+
+	   <!-- compile it -->
+	   <xslt basedir="test/schematron"
+	   		style="iso_svrl_for_xslt2.xsl" in="test2.sch"  out="test.xsl"> 
+	   				<classpath>
+	   					<pathelement location="${lib.dir}/saxon9.jar"/>
+	   				</classpath>
+	   </xslt>
+	   
+	   <!-- validate -->
+	   <xslt basedir="test/schematron"
+		   		style="test.xsl" in="instance.xml"  out="instance.svrlt"> 
+		   				<classpath>
+		   					<pathelement location="${lib.dir}/saxon9.jar"/>
+		   				</classpath>
+	</xslt>
+		</target>
+		
+EXTRACTION SCHEMATRON FROM XSD OR RELAX NG
+
+The following files allow extracting of embedded schematron patterns
+in XML Schemas or RELAX NG schemas. For details, see the at
+  article http://www.topologi.com/resources/schtrn_xsd_paper.html
+  
+The following files are provided:
+  ExtractSchFromRNG.xsl      Generate a Schematron schema from patterns
+                  embedded in a RELAX NG schema. The schema uses XSLT1.                 
+  ExtractSchFromXSD.xsl      Generate a Schematron schema from patterns
+                  embedded in a W3C XML Schemas schema. The schema uses XSLT1.
+                  
+  ExtractSchFromRNG-2.xsl      Generate a Schematron schema from patterns
+                  embedded in a RELAX NG schema. The schema uses XSLT2.                 
+  ExtractSchFromXSD-2.xsl      Generate a Schematron schema from patterns
+                  embedded in a W3C XML Schemas schema. The schema uses XSLT2.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/a07d71fe/components/camel-schematron/src/main/resources/iso-schematron-xslt2/sch-messages-cs.xhtml
----------------------------------------------------------------------
diff --git a/components/camel-schematron/src/main/resources/iso-schematron-xslt2/sch-messages-cs.xhtml b/components/camel-schematron/src/main/resources/iso-schematron-xslt2/sch-messages-cs.xhtml
new file mode 100644
index 0000000..93e181c
--- /dev/null
+++ b/components/camel-schematron/src/main/resources/iso-schematron-xslt2/sch-messages-cs.xhtml
@@ -0,0 +1,56 @@
+<xhtml:div class="ErrorMessages" xml:lang="cs"
+	   xmlns:xhtml="http://www.w3.org/1999/xhtml" >
+  <!-- Obsahuje-li chybové hlášení dynamické informace, je rozděleno
+       do sekcí "a" a "b". Různé jazyky tak mohou dynamické informace
+       umístit s ohledem na svá gramatická pravidla. -->
+    <xhtml:p id="sch-message-1-cs">Chyba ve schématu: nalezeny elementy Schematronu ve starém i novém jmenném prostoru</xhtml:p>
+    <xhtml:p id="sch-message-2-cs">Chyba ve schématu:  v atributu queryBinding použijte 'xslt'</xhtml:p>
+    <xhtml:p id="sch-message-3a-cs">Porucha: Tato implementace ISO Schematronu nefunguje se schématy, která používají dotazovací jazyk</xhtml:p>
+    <xhtml:p id="sch-message-3b-cs"/>
+    <xhtml:p id="sch-message-4a-cs">Fázová chyba: fáze jménem </xhtml:p>
+    <xhtml:p id="sch-message-4b-cs"> není definována.</xhtml:p>
+    <xhtml:p id="sch-message-5-cs">Chybný markup: v elementu &lt;active> chybí atribut pattern</xhtml:p>
+    <xhtml:p id="sch-message-6a-cs">Chybný odkaz: vzor "</xhtml:p>
+    <xhtml:p id="sch-message-6b-cs">" byl aktivován, ne však deklarován</xhtml:p>
+    <xhtml:p id="sch-message-7-cs">Chybný markup: v elementu &lt;assert> chybí atribut test</xhtml:p>
+    <xhtml:p id="sch-message-8-cs">Chybný markup: v elementu &lt;report> chybí atribut test</xhtml:p>
+    <xhtml:p id="sch-message-9-cs">Chybný markup: v elementu &lt;diagnostic> chybí atribut id</xhtml:p>
+    <xhtml:p id="sch-message-10-cs">Chybný markup: v elementu &lt;extends> chybí atribut rule</xhtml:p>                  
+    <xhtml:p id="sch-message-11a-cs">Chybný odkaz: abstraktní pravidlo "</xhtml:p>
+    <xhtml:p id="sch-message-11b-cs">" není definováno, ačkoli se na ně odkazuje</xhtml:p>
+    <xhtml:p id="sch-message-12-cs">Chybný markup: v elementu &lt;key> chybí atribut name</xhtml:p>
+    <xhtml:p id="sch-message-13-cs">Chybný markup: v elementu &lt;key> chybí atribut path nebo use</xhtml:p>
+    <xhtml:p id="sch-message-14-cs">Chybný markup: v elementu &lt;key> chybí atribut path nebo use</xhtml:p>
+    <xhtml:p id="sch-message-15-cs">Chyba ve schématu: element &lt;key> není ve jmenném prostoru ISO Schematronu. Použijte jmenný prostor XSLT.</xhtml:p>
+    <xhtml:p id="sch-message-16-cs">Chybný markup: v elementu &lt;function> chybí atribut name</xhtml:p>
+    <xhtml:p id="sch-message-17-cs">Chyba ve schématu: element &lt;function> není ve jmenném prostoru ISO Schematronu. Použijte jmenný prostor XSLT.</xhtml:p>
+    <xhtml:p id="sch-message-18-cs">Chyba ve schématu: direktiva &lt;include> má prázdný atribut href</xhtml:p>
+    <xhtml:p id="sch-message-19-cs">Chyba: Nesprávné URL v direktivě &lt;include></xhtml:p>
+    <xhtml:p id="sch-message-20a-cs">Chyba: Nelze otevřít vkládaný soubor </xhtml:p>
+    <xhtml:p id="sch-message-20b-cs" />
+    <xhtml:p id="sch-message-21-cs">Chyba ve schématu: &lt;include> používejte ke vkládání fragmentů, ne celého schématu</xhtml:p>
+    <xhtml:p id="sch-message-22-cs">Chyba ve schématu: Schémata XSD lze importovat pouze pokud používáte dotazovací jazyk "xslt2"</xhtml:p>
+    <xhtml:p id="sch-message-23-cs">Chyba ve schématu: element &lt;import-schema> není ve jmenném prostoru ISO Schematronu. Použijte jmenný prostor XSLT.</xhtml:p>
+    <xhtml:p id="sch-message-24-cs">Varování: S dotazovacím jazykem "xpath" by se neměly používat proměnné</xhtml:p>
+    <xhtml:p id="sch-message-25-cs">Varování: S dotazovacím jazykem "xpath2" by se neměly používat proměnné</xhtml:p>
+    <xhtml:p id="sch-message-26-cs">Chybný markup: v elementu &lt;ns> chybí atribut uri</xhtml:p>
+    <xhtml:p id="sch-message-27-cs">Chybný markup: v elementu &lt;ns> chybí atribut prefix</xhtml:p>
+    <xhtml:p id="sch-message-28-cs">Chyba v implementaci schématu: toto schéma obsahuje abstraktní vzory, které však již měly být předchozím zpracováním odstraněny</xhtml:p>
+    <xhtml:p id="sch-message-29-cs">Chybný markup: v elementu &lt;phase> chybí atribut id</xhtml:p>
+    <xhtml:p id="sch-message-30-cs">Chybný markup: v elementu &lt;rule> chybí atribut context</xhtml:p>
+    <xhtml:p id="sch-message-31-cs">Chybný markup: v abstraktním pravidlu chybí atribut id</xhtml:p>
+    <xhtml:p id="sch-message-32-cs">Chybný markup: (2) Abstraktní pravidlo nesmí mít atribut context</xhtml:p>
+    <xhtml:p id="sch-message-33-cs">Chybný markup: Abstraktní pravidlo nesmí mít atribut context</xhtml:p>
+    <xhtml:p id="sch-message-34-cs">Chybný markup: v elementu &lt;value-of> chybí atribut select</xhtml:p>
+    <xhtml:p id="sch-message-35a-cs">Varování: </xhtml:p>
+    <xhtml:p id="sch-message-35b-cs"> nesmí obsahovat žádné podelementy</xhtml:p>
+    <xhtml:p id="sch-message-36a-cs">Chybný odkaz: Diagnostika "</xhtml:p>
+    <xhtml:p id="sch-message-36b-cs">" nebyla deklarována, ačkoli se na ni odkazuje</xhtml:p>
+    <xhtml:p id="sch-message-37a-cs">Chyba: procesor </xhtml:p>
+    <xhtml:p id="sch-message-37b-cs"> nepodporuje použití jmenného prostoru XSLT s jiným prefixem než "xsl"</xhtml:p>
+    <xhtml:p id="sch-message-38a-cs">Chyba: neznámý element </xhtml:p>
+    <xhtml:p id="sch-message-38b-cs"> ve jmenném prostoru ISO Schematronu: zkontrolujte, je-li správně zapsán</xhtml:p>
+    <xhtml:p id="sch-message-39a-cs">Varování: neznámý element 
+</xhtml:p>
+    <xhtml:p id="sch-message-39b-cs" />
+ </xhtml:div>

http://git-wip-us.apache.org/repos/asf/camel/blob/a07d71fe/components/camel-schematron/src/main/resources/iso-schematron-xslt2/sch-messages-de.xhtml
----------------------------------------------------------------------
diff --git a/components/camel-schematron/src/main/resources/iso-schematron-xslt2/sch-messages-de.xhtml b/components/camel-schematron/src/main/resources/iso-schematron-xslt2/sch-messages-de.xhtml
new file mode 100644
index 0000000..51caeb1
--- /dev/null
+++ b/components/camel-schematron/src/main/resources/iso-schematron-xslt2/sch-messages-de.xhtml
@@ -0,0 +1,57 @@
+ 
+<xhtml:div class="ErrorMessages"   xml:lang="en"
+    xmlns:xhtml="http://www.w3.org/1999/xhtml" >	
+	<!-- Where the error message contains dynamic information, the message has been split into an "a" and a "b" section.
+	     This has been done even when the English does not require it, in order to accomodate different language grammars
+	     that might position the dynamic information differently.
+	-->
+	<xhtml:p id="sch-message-1-de">Fehler im Schema: Schematron Elemente sowohl im alten als auch neuen Namensraum gefunden</xhtml:p>
+	<xhtml:p id="sch-message-2-de">Fehler im Schema: Nutzen Sie 'xslt' im queryBinding-Attribut</xhtml:p>
+	<xhtml:p id="sch-message-3a-de">Fehler: Diese Implementierung von ISO Schematron arbeitet nicht mit Schemas zusammen, die die Query Language  </xhtml:p>
+	<xhtml:p id="sch-message-3b-de">nutzen</xhtml:p>
+	<xhtml:p id="sch-message-4a-de">Phasenfehler: Es gibt keine Phase mit Namen </xhtml:p>
+	<xhtml:p id="sch-message-4b-de" />
+	<xhtml:p id="sch-message-5-de">Fehler in der Annotation: Kein Attribut pattern in &lt;active></xhtml:p>
+	<xhtml:p id="sch-message-6a-de">Referenzierungsfehler: Der Ausdruck  "</xhtml:p>
+	<xhtml:p id="sch-message-6b-de">" wurde aktiviert, ist aber nicht deklariert</xhtml:p>
+	<xhtml:p id="sch-message-7-de">Fehler in der Annotation: Kein Attribut test in &lt;assert</xhtml:p>
+	<xhtml:p id="sch-message-8-de">Fehler in der Annotation: Kein Attribut test &lt;report></xhtml:p>
+	<xhtml:p id="sch-message-9-de">Fehler in der Annotation: Kein Attribut id in &lt;diagnostic></xhtml:p>
+	<xhtml:p id="sch-message-10-de">Fehler in der Annotation: Kein Attribut rule in &lt;extends></xhtml:p>				   
+	<xhtml:p id="sch-message-11a-de">Referenzierungsfehler: Die abstrakte Regel  "</xhtml:p>
+	<xhtml:p id="sch-message-11b-de">" wurde referenziert, ist aber nicht deklariert</xhtml:p>				
+	<xhtml:p id="sch-message-12-de">Fehler in der Annotation: Kein Attribut name in &lt;key></xhtml:p>
+	<xhtml:p id="sch-message-13-de">Fehler in der Annotation: Kein Attribut path oder use in &lt;key></xhtml:p>
+	<xhtml:p id="sch-message-14-de">Fehler in der Annotation: Kein Attribut path oder use in &lt;key></xhtml:p>
+	<xhtml:p id="sch-message-15-de">Fehler im Schema: Das Element key ist im ISO Schematron-Namensraum nicht vorhanden. Benutzen Sie den XSLT-Namensraum.</xhtml:p>
+	<xhtml:p id="sch-message-16-de">Fehler in der Annotation: Kein Attribut name in &lt;function></xhtml:p>
+	<xhtml:p id="sch-message-17-de">Fehler im Schema: Das Element function ist im ISO Schematron-Namensraum nicht vorhanden. Benutzen Sie den XSLT-Namensraum.</xhtml:p>
+	<xhtml:p id="sch-message-18-de">Fehler im Schema: Leeres Attribut href= für include Anweisung.</xhtml:p>
+	<xhtml:p id="sch-message-19-de">Fehler: Ungültige URL in Schematron include</xhtml:p>
+	<xhtml:p id="sch-message-20a-de">Kann die referenzierte Datei nicht öffnen: </xhtml:p>
+	<xhtml:p id="sch-message-20b-de" />
+	<xhtml:p id="sch-message-21-de">Fehler im Schema: include darf nur zur Einbettung von Schemafragmenten genutzt werden, nicht für ganze Schemata</xhtml:p>
+	<xhtml:p id="sch-message-22-de">Fehler im Schema: XSD Schemata dürfen nur importiert werden, wenn das 'xslt2' Query Language Binding genutzt wird</xhtml:p>
+	<xhtml:p id="sch-message-23-de">Fehler im Schema: Das Element import-schema ist im ISO Schematron-Namensraum nicht vorhanden. Benutzen Sie den XSLT-Namensraum.</xhtml:p>
+	<xhtml:p id="sch-message-24-de">Warnung: Variablen sollten nicht zusammen mit dem "xpath" Query Language Binding genutzt werden.</xhtml:p>
+	<xhtml:p id="sch-message-25-de">Warnung: Variablen sollten nicht zusammen mit dem "xpath2" Query Language Binding genutzt werden.</xhtml:p>
+	<xhtml:p id="sch-message-26-de">Fehler in der Annotation: Fehlendes Attiribut uri in &lt;ns></xhtml:p>
+	<xhtml:p id="sch-message-27-de">Fehler in der Annotation: Fehlendes Attribut prefix in &lt;ns></xhtml:p>
+	<xhtml:p id="sch-message-28-de">Fehler bei der Schemaimplementierung: Dieses Schema enthält abstrakte Mustervergleiche, die bereits vorverarbeitet sein sollten.</xhtml:p>
+    <xhtml:p id="sch-message-29-de">Fehler in der Annotation: Fehlendes Attiribut id in &lt;phase></xhtml:p>
+    <xhtml:p id="sch-message-30-de">Fehler in der Annotation: Fehlendes Attiribut context in &lt;rule></xhtml:p>
+    <xhtml:p id="sch-message-31-de">Fehler in der Annotation: Fehlendes Attiribut id on abstract &lt;rule></xhtml:p>
+    <xhtml:p id="sch-message-32-de">Fehler in der Annotation: (2) context attribute on abstract &lt;rule></xhtml:p>
+    <xhtml:p id="sch-message-33-de">Fehler in der Annotation: Attribut context bei abstrakter &lt;rule></xhtml:p>
+    <xhtml:p id="sch-message-34-de">Fehler in der Annotation: Fehlendes Attiribut select in &lt;value-of></xhtml:p>
+    <xhtml:p id="sch-message-35a-de">Warnung: </xhtml:p>
+	<xhtml:p id="sch-message-35b-de"> darf keine Kindelemente beinhalten</xhtml:p>
+    <xhtml:p id="sch-message-36a-de">Referenzierungsfehler: Ein diagnostic-Element "</xhtml:p>
+	<xhtml:p id="sch-message-36b-de">" wurde referenziert, ist aber nicht deklariert</xhtml:p>
+	<xhtml:p id="sch-message-37a-de">Der Gebrauch des XSLT-Namensraums mit einem anderen Präfix als "xsl" in Schematron-Regeln wird von diesem Prozessor nicht unterstützt:</xhtml:p>
+    <xhtml:p id="sch-message-37b-de" />
+    <xhtml:p id="sch-message-38a-de">Fehler: Unbekanntes Element im ISO Schematron-Namensraum: Überprüfen Sie die Schreibweise (inkl. Groß- und Kleinschreibung)</xhtml:p>
+	<xhtml:p id="sch-message-38b-de" />
+	<xhtml:p id="sch-message-39a-de">Warnung: Unbekanntes Element </xhtml:p>
+	<xhtml:p id="sch-message-39b-de" />
+ </xhtml:div>

http://git-wip-us.apache.org/repos/asf/camel/blob/a07d71fe/components/camel-schematron/src/main/resources/iso-schematron-xslt2/sch-messages-en.xhtml
----------------------------------------------------------------------
diff --git a/components/camel-schematron/src/main/resources/iso-schematron-xslt2/sch-messages-en.xhtml b/components/camel-schematron/src/main/resources/iso-schematron-xslt2/sch-messages-en.xhtml
new file mode 100644
index 0000000..6f777ed
--- /dev/null
+++ b/components/camel-schematron/src/main/resources/iso-schematron-xslt2/sch-messages-en.xhtml
@@ -0,0 +1,57 @@
+ 
+<xhtml:div class="ErrorMessages"   xml:lang="en"
+    xmlns:xhtml="http://www.w3.org/1999/xhtml" >	
+	<!-- Where the error message contains dynamic information, the message has been split into an "a" and a "b" section.
+	     This has been done even when the English does not require it, in order to accomodate different language grammars
+	     that might position the dynamic information differently.
+	-->
+	<xhtml:p id="sch-message-1-en">Schema error: Schematron elements in old and new namespaces found</xhtml:p>
+	<xhtml:p id="sch-message-2-en">Schema error: in the queryBinding attribute, use 'xslt'</xhtml:p>
+	<xhtml:p id="sch-message-3a-en">Fail: This implementation of ISO Schematron does not work with schemas using the query language </xhtml:p>
+	<xhtml:p id="sch-message-3b-en"/>
+	<xhtml:p id="sch-message-4a-en">Phase Error: no phase has been defined with name </xhtml:p>
+	<xhtml:p id="sch-message-4b-en" />
+	<xhtml:p id="sch-message-5-en">Markup Error: no pattern attribute in &lt;active></xhtml:p>
+	<xhtml:p id="sch-message-6a-en">Reference Error: the pattern  "</xhtml:p>
+	<xhtml:p id="sch-message-6b-en">" has been activated but is not declared</xhtml:p>
+	<xhtml:p id="sch-message-7-en">Markup Error: no test attribute in &lt;assert></xhtml:p>
+	<xhtml:p id="sch-message-8-en">Markup Error: no test attribute in &lt;report></xhtml:p>
+	<xhtml:p id="sch-message-9-en">Markup Error: no id attribute in &lt;diagnostic></xhtml:p>
+	<xhtml:p id="sch-message-10-en">Markup Error: no rule attribute in &lt;extends></xhtml:p>				   
+	<xhtml:p id="sch-message-11a-en">Reference Error: the abstract rule  "</xhtml:p>
+	<xhtml:p id="sch-message-11b-en">" has been referenced but is not declared</xhtml:p>				
+	<xhtml:p id="sch-message-12-en">Markup Error: no name attribute in &lt;key></xhtml:p>
+	<xhtml:p id="sch-message-13-en">Markup Error: no path or use attribute in &lt;key></xhtml:p>
+	<xhtml:p id="sch-message-14-en">Markup Error: no path or use attribute in &lt;key></xhtml:p>
+	<xhtml:p id="sch-message-15-en">Schema error: The &lt;key> element is not in the ISO Schematron namespace. Use the XSLT namespace.</xhtml:p>
+	<xhtml:p id="sch-message-16-en">Markup Error: no name attribute in &lt;function></xhtml:p>
+	<xhtml:p id="sch-message-17-en">Schema error: The &lt;function> element is not in the ISO Schematron namespace. Use the XSLT namespace.</xhtml:p>
+	<xhtml:p id="sch-message-18-en">Schema error: Empty href attribute for &lt;include> directive.</xhtml:p>
+	<xhtml:p id="sch-message-19-en">Error: Impossible URL in Schematron &lt;include></xhtml:p>
+	<xhtml:p id="sch-message-20a-en">Error: Unable to open referenced included file: </xhtml:p>
+	<xhtml:p id="sch-message-20b-en" />
+	<xhtml:p id="sch-message-21-en">Schema error: Use &lt;include> to include fragments, not a whole schema</xhtml:p>
+	<xhtml:p id="sch-message-22-en">Schema error: XSD schemas may only be imported if you are using the 'xslt2' query language binding</xhtml:p>
+	<xhtml:p id="sch-message-23-en">Schema error: The &lt;import-schema> element is not available in the ISO Schematron namespace. Use the XSLT namespace.</xhtml:p>
+	<xhtml:p id="sch-message-24-en">Warning: Variables should not be used with the "xpath" query language binding.</xhtml:p>
+	<xhtml:p id="sch-message-25-en">Warning: Variables should not be used with the "xpath2" query language binding.</xhtml:p>
+	<xhtml:p id="sch-message-26-en">Markup Error: no uri attribute in &lt;ns></xhtml:p>
+	<xhtml:p id="sch-message-27-en">Markup Error: no prefix attribute in &lt;ns></xhtml:p>
+	<xhtml:p id="sch-message-28-en">Schema implementation error: This schema has abstract patterns, yet they are supposed to be preprocessed out already</xhtml:p>
+    <xhtml:p id="sch-message-29-en">Markup Error: no id attribute in &lt;phase></xhtml:p>
+    <xhtml:p id="sch-message-30-en">Markup Error: no context attribute in &lt;rule></xhtml:p>
+    <xhtml:p id="sch-message-31-en">Markup Error: no id attribute on abstract &lt;rule></xhtml:p>
+    <xhtml:p id="sch-message-32-en">Markup Error: (2) context attribute on abstract &lt;rule></xhtml:p>
+    <xhtml:p id="sch-message-33-en">Markup Error: context attribute on abstract &lt;rule></xhtml:p>
+    <xhtml:p id="sch-message-34-en">Markup Error: no select attribute in &lt;value-of></xhtml:p>
+    <xhtml:p id="sch-message-35a-en">Warning: </xhtml:p>
+	<xhtml:p id="sch-message-35b-en"> must not contain any child elements</xhtml:p>
+    <xhtml:p id="sch-message-36a-en">Reference error: A diagnostic "</xhtml:p>
+	<xhtml:p id="sch-message-36b-en">" has been referenced but is not declared</xhtml:p>
+	<xhtml:p id="sch-message-37a-en">Warning: Using the XSLT namespace with a prefix other than "xsl" in Schematron rules is not supported in this processor:</xhtml:p>
+    <xhtml:p id="sch-message-37b-en" />
+    <xhtml:p id="sch-message-38a-en">Error: unrecognized element in ISO Schematron namespace: check spelling and capitalization</xhtml:p>
+	<xhtml:p id="sch-message-38b-en" />
+	<xhtml:p id="sch-message-39a-en">Warning: unrecognized element </xhtml:p>
+	<xhtml:p id="sch-message-39b-en" />
+ </xhtml:div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/a07d71fe/components/camel-schematron/src/main/resources/iso-schematron-xslt2/sch-messages-fr.xhtml
----------------------------------------------------------------------
diff --git a/components/camel-schematron/src/main/resources/iso-schematron-xslt2/sch-messages-fr.xhtml b/components/camel-schematron/src/main/resources/iso-schematron-xslt2/sch-messages-fr.xhtml
new file mode 100644
index 0000000..a797db7
--- /dev/null
+++ b/components/camel-schematron/src/main/resources/iso-schematron-xslt2/sch-messages-fr.xhtml
@@ -0,0 +1,54 @@
+<xhtml:div class="ErrorMessages" xml:lang="fr" xmlns:xhtml="http://www.w3.org/1999/xhtml">	
+   <!-- Where the error message contains dynamic information, the message has been split into an "a" and a "b" section.
+        This has been done even when the English does not require it, in order to accomodate different language grammars
+        that might position the dynamic information differently.
+   -->
+   <xhtml:p id="sch-message-1-fr">Erreur de schema: éléments Schematron à la fois dans l'ancien et le nouveau namespace</xhtml:p>
+   <xhtml:p id="sch-message-2-fr">Erreur de schema: utilisez 'xslt' dans l'attribut queryBinding</xhtml:p>
+   <xhtml:p id="sch-message-3a-fr">Échec: Cette implémentation de Schematron ISO ne fonctionne pas avec des schemas utilisant le langage de query </xhtml:p>
+   <xhtml:p id="sch-message-3b-fr"/>
+   <xhtml:p id="sch-message-4a-fr">Erreur de phase: aucune phase n'a été définie avec le nom </xhtml:p>
+   <xhtml:p id="sch-message-4b-fr"/>
+   <xhtml:p id="sch-message-5-fr">Erreur de balisage: pas d'attribut pattern dans &lt;active></xhtml:p>
+   <xhtml:p id="sch-message-6a-fr">Erreur de référence: le pattern "</xhtml:p>
+   <xhtml:p id="sch-message-6b-fr">" a été activé mais n'a pas été décalaré</xhtml:p>
+   <xhtml:p id="sch-message-7-fr">Erreur de balisage: pas d'attribut test dans &lt;assert></xhtml:p>
+   <xhtml:p id="sch-message-8-fr">Erreur de balisage: pas d'attribut test dans &lt;report></xhtml:p>
+   <xhtml:p id="sch-message-9-fr">Erreur de balisage: pas d'attribut id dans &lt;diagnostic></xhtml:p>
+   <xhtml:p id="sch-message-10-fr">Erreur de balisage: pas d'attribut rule dans &lt;extends></xhtml:p>
+   <xhtml:p id="sch-message-11a-fr">Erreur de référence: la règle abstraite "</xhtml:p>
+   <xhtml:p id="sch-message-11b-fr">" a été référencée mais pas déclarée</xhtml:p>
+   <xhtml:p id="sch-message-12-fr">Erreur de balisage: pas d'attribut name dans &lt;key></xhtml:p>
+   <xhtml:p id="sch-message-13-fr">Erreur de balisage: pas d'attribut path ou use dans &lt;key></xhtml:p>
+   <xhtml:p id="sch-message-15-fr">Erreur de schema: L'élément key n'est pas dans le namespace Schematron ISO.  Utilisez le namespace XSLT.</xhtml:p>
+   <xhtml:p id="sch-message-16-fr">Erreur de balisage: pas d'attribut name dans &lt;function></xhtml:p>
+   <xhtml:p id="sch-message-17-fr">Erreur de schema: L'élément function n'est pas dans le namespace Schematron ISO.  Utilisez le namespace XSLT.</xhtml:p>
+   <xhtml:p id="sch-message-18-fr">Erreur de schema: Attribut href vide sur a directive include.</xhtml:p>
+   <xhtml:p id="sch-message-19-fr">Erreur: URL impossible dans la directive include de Schematron</xhtml:p>
+   <xhtml:p id="sch-message-20a-fr">Impossible d'ouvrir le fichier référencé pour l'inclusion: </xhtml:p>
+   <xhtml:p id="sch-message-20b-fr"/>
+   <xhtml:p id="sch-message-21-fr">Erreur de schema: Utilisez include pour inclure des fragments et non un schema entier</xhtml:p>
+   <xhtml:p id="sch-message-22-fr">Erreur de schema: Les schema XSD peuvent être importés seulement si vous utilisez the langage de query 'xslt2'</xhtml:p>
+   <xhtml:p id="sch-message-23-fr">Erreur de schema: L'élément import-schema n'est pas disponible dans le namespace Schematron ISO.  Utilisez le namespace XSLT.</xhtml:p>
+   <xhtml:p id="sch-message-24-fr">Avertissement: Des variables ne devraient pas être utiliées avec le langage de query "xpath".</xhtml:p>
+   <xhtml:p id="sch-message-24-fr">Avertissement: Des variables ne devraient pas être utiliées avec le langage de query "xpath2".</xhtml:p>
+   <xhtml:p id="sch-message-26-fr">Erreur de balisage: pas d'attribut uri dans &lt;ns></xhtml:p>
+   <xhtml:p id="sch-message-27-fr">Erreur de balisage: pas d'attribut prefix dans &lt;ns></xhtml:p>
+   <xhtml:p id="sch-message-28-fr">Erreur d'implémentation de schema: Ce schema des patterns abstraits, bien qu'ils sont supposés avoir été préprocessés précédemment</xhtml:p>
+   <xhtml:p id="sch-message-29-fr">Erreur de balisage: pas d'attribut id dans &lt;phase></xhtml:p>
+   <xhtml:p id="sch-message-30-fr">Erreur de balisage: pas d'attribut context dans &lt;rule></xhtml:p>
+   <xhtml:p id="sch-message-31-fr">Erreur de balisage: pas d'attribut id dans &lt;rule></xhtml:p>
+   <xhtml:p id="sch-message-32-fr">Erreur de balisage: (2) attribut context dans une &lt;rule> abstraite</xhtml:p>
+   <xhtml:p id="sch-message-33-fr">Erreur de balisage: attribut context dans une &lt;rule> abstraite</xhtml:p>
+   <xhtml:p id="sch-message-34-fr">Erreur de balisage: pas d'attribut select dans &lt;value-of></xhtml:p>
+   <xhtml:p id="sch-message-35a-fr">Avertissement: </xhtml:p>
+   <xhtml:p id="sch-message-35b-fr"> ne peut contenir aucun élément enfant</xhtml:p>
+   <xhtml:p id="sch-message-36a-fr">Erreur de référence: Un diagnostique "</xhtml:p>
+   <xhtml:p id="sch-message-36b-fr">" a été référencé mais n'est pas déclaré</xhtml:p>
+   <xhtml:p id="sch-message-37a-fr">Utiliser the namespace XSLT avec un autre préfixe que "xsl" dans les rules Schematron n'est pas supporté par ce processor:</xhtml:p>
+   <xhtml:p id="sch-message-37b-fr"/>
+   <xhtml:p id="sch-message-38a-fr">Erreur: élément inconnu dans le namespace Schematron ISO: vérifiez l'orthographe et la casse</xhtml:p>
+   <xhtml:p id="sch-message-38b-fr"/>
+   <xhtml:p id="sch-message-39a-fr">Avertissement: élément inconnu</xhtml:p>
+   <xhtml:p id="sch-message-39b-fr"/>
+</xhtml:div>

http://git-wip-us.apache.org/repos/asf/camel/blob/a07d71fe/components/camel-schematron/src/main/resources/iso-schematron-xslt2/sch-messages-nl.xhtml
----------------------------------------------------------------------
diff --git a/components/camel-schematron/src/main/resources/iso-schematron-xslt2/sch-messages-nl.xhtml b/components/camel-schematron/src/main/resources/iso-schematron-xslt2/sch-messages-nl.xhtml
new file mode 100644
index 0000000..5f05577
--- /dev/null
+++ b/components/camel-schematron/src/main/resources/iso-schematron-xslt2/sch-messages-nl.xhtml
@@ -0,0 +1,58 @@
+ <xhtml:div class="ErrorMessages" xml:lang="nl" xmlns:xhtml="http://www.w3.org/1999/xhtml">
+	<!-- Where the error message contains dynamic information, the message has been split into an "a" and a "b" section.
+	     This has been done even when the English does not require it, in order to accomodate different language grammars
+	     that might position the dynamic information differently.
+	-->
+	<xhtml:p id="sch-message-1-nl">Schema fout: er werden Schematron elementen uit de oude en nieuwe
+		namespace gevonden</xhtml:p>
+	<xhtml:p id="sch-message-2-nl">Schema fout: gebruik 'xslt' in het queryBinding attribute</xhtml:p>
+	<xhtml:p id="sch-message-3a-nl">Faling: Deze implementatie van ISO Schematron werkt niet met
+		schemas die gebruik maken van de query language </xhtml:p>
+	<xhtml:p id="sch-message-3b-nl"/>
+	<xhtml:p id="sch-message-4a-nl">Fase fout: er is geen 'phase' gedefinieerd met naam </xhtml:p>
+	<xhtml:p id="sch-message-4b-nl"/>
+	<xhtml:p id="sch-message-5-nl">Markup fout: er is geen 'pattern' attribuut in &lt;active></xhtml:p>
+	<xhtml:p id="sch-message-6a-nl">Referentie fout: het 'pattern' "</xhtml:p>
+	<xhtml:p id="sch-message-6b-nl">" is geactiveerd maar niet gedeclareerd</xhtml:p>
+	<xhtml:p id="sch-message-7-nl">Markup fout: er is geen 'test' attribuut in &lt;assert</xhtml:p>
+	<xhtml:p id="sch-message-8-nl">Markup fout: er is geen 'test' attribuut in &lt;report></xhtml:p>
+	<xhtml:p id="sch-message-9-nl">Markup fout: er is geen 'id' attribuut in &lt;diagnostic></xhtml:p>
+	<xhtml:p id="sch-message-10-nl">Markup fout: er is geen 'rule' attribuut in &lt;extends></xhtml:p>
+	<xhtml:p id="sch-message-11a-nl">Referentie fout: de abstracte regel "</xhtml:p>
+	<xhtml:p id="sch-message-11b-nl">" werd gerefereerd maar niet gedeclareerd</xhtml:p>
+	<xhtml:p id="sch-message-12-nl">Markup fout: er is geen 'name' attribuut in &lt;key></xhtml:p>
+	<xhtml:p id="sch-message-13-nl">Markup fout: er is geen 'path' of 'use' attribuut in &lt;key></xhtml:p>
+	<xhtml:p id="sch-message-14-nl">Markup fout: er is geen 'path' of 'use' attribuut in &lt;key></xhtml:p>
+	<xhtml:p id="sch-message-15-nl">Schema fout: Het 'key' element zit niet in de ISO Schematron namespace. Gebruik de XSLT namespace.</xhtml:p>
+	<xhtml:p id="sch-message-16-nl">Markup fout: er is geen 'name' attribuut in &lt;function></xhtml:p>
+	<xhtml:p id="sch-message-17-nl">Schema fout: Het 'function' element zit niet in de ISO Schematron namespace. Gebruik de XSLT namespace.</xhtml:p>
+	<xhtml:p id="sch-message-18-nl">Schema fout: Leeg 'href=' attribuut bij de include opdracht.</xhtml:p>
+	<xhtml:p id="sch-message-19-nl">Fout: Onmogelijke URL gebruikt bij de Schematron include</xhtml:p>
+	<xhtml:p id="sch-message-20a-nl">Kan de gerefereerde 'include' file niet openen: </xhtml:p>
+	<xhtml:p id="sch-message-20b-nl"/>
+	<xhtml:p id="sch-message-21-nl">Schema fout: Gebruik include om fragmenten op te nemen, niet een volledig schema</xhtml:p>
+	<xhtml:p id="sch-message-22-nl">Schema fout: XSD schemas kunnen enkel geïmporteerd worden indien de 'xslt2' query language binding gebruikt is</xhtml:p>
+	<xhtml:p id="sch-message-23-nl">Schema fout: Het 'import-schema' element is niet beschikbaar in the ISO Schematron namespace. Gebruik de XSLT namespace.</xhtml:p>
+	<xhtml:p id="sch-message-24-nl">Waarschuwing: Variabelen niet gebruiken met de "xpath" query language binding.</xhtml:p>
+	<xhtml:p id="sch-message-25-nl">Waarschuwing: Variabelen niet gebruiken met de "xpath2" query language binding.</xhtml:p>
+	<xhtml:p id="sch-message-26-nl">Markup fout: er is geen 'uri' attribute in &lt;ns></xhtml:p>
+	<xhtml:p id="sch-message-27-nl">Markup fout: er is geen 'prefix' attribute in &lt;ns></xhtml:p>
+	<xhtml:p id="sch-message-28-nl">Schema implementatie fout: Dit schema heeft abstracte patronen, die al gepreprocessed zouden moeten zijn</xhtml:p>
+	<xhtml:p id="sch-message-29-nl">Markup fout: er is geen 'id' attribuut in &lt;phase></xhtml:p>
+	<xhtml:p id="sch-message-30-nl">Markup fout: er is geen 'context' attribuut in &lt;rule></xhtml:p>
+	<xhtml:p id="sch-message-31-nl">Markup fout: er is geen 'id' attribuut op abstracte &lt;rule></xhtml:p>
+	<xhtml:p id="sch-message-32-nl">Markup fout: (2) context attributen op abstracte &lt;rule></xhtml:p>
+	<xhtml:p id="sch-message-33-nl">Markup fout: context attribuut op abstracte &lt;rule></xhtml:p>
+	<xhtml:p id="sch-message-34-nl">Markup fout: er is geen 'select' attribute in &lt;value-of></xhtml:p>
+	<xhtml:p id="sch-message-35a-nl">Waarschuwing: </xhtml:p>
+	<xhtml:p id="sch-message-35b-nl"> mag geen kind elementen bevatten</xhtml:p>
+	<xhtml:p id="sch-message-36a-nl">Referentie fout: Een diagnostic "</xhtml:p>
+	<xhtml:p id="sch-message-36b-nl">" werd gerefereerd maar is niet gedeclareerd.</xhtml:p>
+	<xhtml:p id="sch-message-37a-nl">Het gebruik van de XSLT namespace met een prefix verschillend
+		van "xsl" in Schematron regels wordt niet ondersteund in deze processor:</xhtml:p>
+	<xhtml:p id="sch-message-37b-nl"/>
+	<xhtml:p id="sch-message-38a-nl">Fout: een niet herkend element in de ISO Schematron namespace: check spelling en hoofdlettergebruik</xhtml:p>
+	<xhtml:p id="sch-message-38b-nl"/>
+	<xhtml:p id="sch-message-39a-nl">Waarschuwing: een niet herkend element </xhtml:p>
+	<xhtml:p id="sch-message-39b-nl"/>
+</xhtml:div>

http://git-wip-us.apache.org/repos/asf/camel/blob/a07d71fe/components/camel-schematron/src/main/resources/iso-schematron-xslt2/schematron-skeleton-api.htm
----------------------------------------------------------------------
diff --git a/components/camel-schematron/src/main/resources/iso-schematron-xslt2/schematron-skeleton-api.htm b/components/camel-schematron/src/main/resources/iso-schematron-xslt2/schematron-skeleton-api.htm
new file mode 100644
index 0000000..af81377
--- /dev/null
+++ b/components/camel-schematron/src/main/resources/iso-schematron-xslt2/schematron-skeleton-api.htm
@@ -0,0 +1,723 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
+	<TITLE>The ISO Schematron Skeleton API</TITLE>
+	<META NAME="GENERATOR" CONTENT="OpenOffice.org 2.4  (Win32)">
+	<META NAME="CREATED" CONTENT="0;0">
+	<META NAME="CHANGED" CONTENT="20080808;2200065">
+</HEAD>
+<BODY LANG="en-AU" DIR="LTR">
+<H1>API for ISO Schematron Skeleton</H1>
+<H2><BR><BR>
+</H2>
+<P>Rick Jelliffe, 2010/04/14</P>
+<P>This document provides documentation on the XSLT API available in
+the implementation of Schematron called <TT>iso_schematron_skeleton.xsl</TT>.
+(available in an XSLT1 and XSLT2 version). The API makes available as
+much information from the schema, however there may be some edge
+cases where it is not exhaustive.   
+</P>
+<P>The <I>skeleton</I> is an XSLT script which provides all the basic
+parsing and validating routines for compiling a Schematron schema
+into XSLT. Schematron was designed to allow many different uses, and
+the skeleton gives you a headstart in creating a customized
+implementation. You just need to write XSLT templates to override the
+default ones. (The program you write is sometimes called a
+<I>meta-stylesheet</I>.)   It is the meta-stylesheet that is called
+as the XSLT script, not the skeleton. There are several
+pre-processing stages which the Schematron schema should be processed
+through first, to handle such things as include statements and
+abstract patterns. 
+</P>
+<P>Phases and error reporting for problems in the schema itself are
+handled by the skeleton with no interaction with a &ldquo;meta-stylesheet&rdquo;.
+Note that there is no guarantee that the context node is always the
+element being handled: in most cases the only information available
+is the information in the parameters. 
+</P>
+<P>For an introductory tutorial on using this API, see Bob DuCharme's
+<A HREF="http://www.xml.com/pub/a/2004/10/05/tr.html">Schematron 1.5:
+Looking Under the Hood</A> 
+</P>
+<H1>Superset of API for Schematron 1.5 and 1.6</H1>
+<P>(This is an updated version of the API for the Schematron 1.5
+implementation called <TT>skeleton1-5.xsl</TT>, which in turn comes
+from the <I>new architecture</I> contributed by Oliver Becker for
+Schematron 1.3.)</P>
+<P>The current API contains only additions. Well-written
+meta-stylesheets that use the new API will be be able to run on the
+existing 1.5 and 1.6 skeletons. Similarly, it should be possible to
+upgrade the skeleton from 1.5 or 1.6 to the iso-schematron-skeleton
+only by correcting the import statement at the beginning of the
+meta-stylsheet. Additions or re-groupings from the 1.5 schema are
+shown in red. Deletions have overstrike.</P>
+<P>Mooted addition: a parameter @action  which for specifying
+processing instructions on assertions and reports.</P>
+<HR>
+<H2><TT>process-prolog</TT></H2>
+<P>The <TT>process-prolog</TT> template gets called at the start of
+the validation session. It has no parameters. The default
+implementation is no action.</P>
+<HR>
+<H2><TT>process-root</TT></H2>
+<P>The <TT>process-root</TT> template processes the root element of
+the schema (which is not the same thing as the root of the document /
+and need not be the document element /*) .</P>
+<DL>
+	<DT><TT><I>node-list</I></TT><TT> $contents</TT> 
+	</DT><DT>
+	<TT><I>string</I></TT><TT> $schemaVersion</TT> 
+	</DT><DD>
+	The version of the schema, perhaps a datestamp. 
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>&quot;xslt&quot; | &quot;xpath&quot; |
+	&quot;xslt2&quot; | ...</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$queryBinding</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The query language binding. </FONT>
+	</DD><DT>
+	<TT><I>string</I></TT><TT> $title</TT> 
+	</DT><DD>
+	The title of this schema 
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>&quot;iso&quot; | &quot;1.5&quot; |
+	&quot;1.6&quot; | ...</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$version</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	<FONT COLOR="#ff0000">The version of Schematron being used. </FONT>
+	</DD></DL>
+<P>
+Rich properties:</P>
+<DL>
+	<DT><TT><FONT COLOR="#ff0000"><I>XML SystemId</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$icon</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The URI of an icon </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>XML ID</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$id</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The unique identifier with the schema for the
+	</FONT><TT><FONT COLOR="#ff0000">schema</FONT></TT><FONT COLOR="#ff0000">
+	element. </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>SGML FPI</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$fpi</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The Formal Public Identifier for this schema. </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>IETF language</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$lang</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The human language used in this schema, from
+	xml:lang </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>URL</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$see</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">Link to documentation on WWW or file </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>&quot;preserve&quot; | &quot;default&quot;</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$space</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	<FONT COLOR="#ff0000">The value for xml:space </FONT>
+	</DD></DL>
+<P>
+To print the documentation paragraphs, use <TT>&lt;xsl:apply-templates
+mode=&quot;do-schema-p&quot; /&gt;</TT></P>
+<P>To output the results, use <TT>&lt;xsl:copy-of select=&quot;$contents&quot;
+/&gt;</TT></P>
+<HR>
+<H2><TT>process-assert</TT></H2>
+<P>The <TT>process-assert</TT> template handles asserts whose test
+has failed. 
+</P>
+<DL>
+	<DT><TT><I>XPath</I></TT><TT> $test</TT> 
+	</DT><DD>
+	The test 
+	</DD><DT>
+	<TT><I>XML IDREFS</I></TT><TT> $diagnostics</TT> 
+	</DT><DD>
+	A list of the idrefs diagnostic elements related to the current
+	assertion 
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>XML NMTOKEN</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$flag</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	<FONT COLOR="#ff0000">The name of a flag that becomes true because
+	this assertion fails. The flag is true for the document if it is
+	flagged true on any assertion. For compatability, this parameter
+	should not be used with Schematron 1.5.</FONT> 
+	</DD></DL>
+<P>
+Rich properties:</P>
+<DL>
+	<DT><TT><FONT COLOR="#ff0000"><I>XML SystemId</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$icon</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The URI of an icon </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>XML ID</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$id</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The unique identifier with the schema for the
+	</FONT><TT><FONT COLOR="#ff0000">assert</FONT></TT><FONT COLOR="#ff0000">
+	element. </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>SGML FPI</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$fpi</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The Formal Public Identifier for this
+	assertion. </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>IETF language</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$lang</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The human language used in this assertion,
+	from xml:lang </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>URL</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$see</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">Link to documentation on WWW or file </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>&quot;preserve&quot; | &quot;default&quot;</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$space</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	<FONT COLOR="#ff0000">The value for xml:space </FONT>
+	</DD></DL>
+<P>
+Linking properties:</P>
+<DL>
+	<DT><TT><FONT COLOR="#ff0000"><I>XML NMTOKEN</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$role</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">A name for the generic role of this assertion.
+	The schema creator would have their own vocabulary. </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>XPath</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$subject</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	<FONT COLOR="#ff0000">A path relative to the current context to some
+	interesting node considered the subject. </FONT>
+	</DD></DL>
+<P>
+To print the text contents, use <TT>&lt;xsl:apply-templates
+mode=&quot;text&quot; /&gt;</TT></P>
+<HR>
+<H2><TT>process-diagnostic</TT></H2>
+<P>The <TT>process-diagnostic</TT> template handles diagnostic
+messages for <TT>assert</TT> statements that have failed and <TT>report</TT>
+statements that have succeeded. The diagnostics are evaluated in the
+context of the rule.</P>
+<P>Rich properties:</P>
+<DL>
+	<DT><TT><FONT COLOR="#ff0000"><I>XML SystemId</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$icon</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The URI of an icon </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>XML ID</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$id</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The unique identifier with the schema for the
+	</FONT><TT><FONT COLOR="#ff0000">assert</FONT></TT><FONT COLOR="#ff0000">
+	element. </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>SGML FPI</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$fpi</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The Formal Public Identifier for this
+	assertion. </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>IETF language</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$lang</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The human language used in this assertion,
+	from xml:lang </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>URL</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$see</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">Link to documentation on WWW or file </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>&quot;preserve&quot; | &quot;default&quot;</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$space</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	<FONT COLOR="#ff0000">The value for xml:space </FONT>
+	</DD><HR>
+</DL>
+<H2><TT>process-dir</TT></H2>
+<P>The <TT>process-dir</TT> template handles bi-directionality
+markup, which is only needed by certain human scripts such as Arabic.</P>
+<DL>
+	<DT><TT><I>&quot;ltr&quot; or &quot;rtl&quot; or &quot;&quot;</I></TT><TT>
+	$value</TT> 
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	Left-to-right or right-to-left or unspecified 
+	</DD><HR>
+</DL>
+<H2><TT>process-emph</TT></H2>
+<P>The <TT>process-emph</TT> template handles the markup of
+emphasized text in paragraphs, assertions and diagnostics. It has no
+parameters.</P>
+<HR>
+<H2><TT>process-message</TT></H2>
+<P>The <TT>process-message</TT> handles default outputing of text.</P>
+<DL>
+	<DT><TT><I>string</I></TT><TT> $pattern</TT> 
+	</DT><DD>
+	Some text that may be some kind of pattern 
+	</DD><DT>
+	<TT><I>string</I></TT><TT> $role</TT> 
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	Some text that may be some kind of role 
+	</DD><HR>
+</DL>
+<H2><TT>process-name</TT></H2>
+<P>The <TT>process-name</TT> templates handle name strings that can
+be used in assertions. <TT>asssert</TT> and <TT>report</TT> only
+provide <TT>name</TT> subelements rather than the more general
+<TT>value-of</TT> elements to encourage plain language and generic
+descriptions rather than specific diagnostics, for which purpose the
+<TT>diagnostics</TT> elements are used.</P>
+<DL>
+	<DT><TT><I>string</I></TT><TT> $name</TT> 
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	The name of the current element, or of the node specified by a <TT>name</TT>
+	element 
+	</DD><HR>
+</DL>
+<H2><TT>process-ns</TT></H2>
+<P>The <TT>process-ns</TT> template reports on <TT>ns</TT>
+declarations, which are used to transmit on namespace information by
+the skeleton.</P>
+<DL>
+	<DT><TT><I>Namespace NCName</I></TT><TT> $prefix</TT> 
+	</DT><DD>
+	The prefix of a namespace 
+	</DD><DT>
+	<TT><I>XML SystemId</I></TT><TT> $uri</TT> 
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	The (internationalized) URI Reference of a namespace 
+	</DD><HR>
+</DL>
+<H2><TT>process-p</TT></H2>
+<P>The <TT>process-p</TT> template handles paragraphs.</P>
+<DL>
+	<DT><TT><I>XML NMTOKEN</I></TT><TT> $class</TT> 
+	</DT><DD>
+	An attribute that can be used for stylesheet style 
+	</DD><DT>
+	<TT><I>XML ID</I></TT><TT> $id</TT> 
+	</DT><DD>
+	The unique identifier with the schema for the <TT>p</TT> element. 
+	</DD><DT>
+	<TT><I>XML SystemId</I></TT><TT> $icon</TT> 
+	</DT><DD>
+	The URI of an icon 
+	</DD><DT>
+	<TT><I>IETF Language</I></TT><TT> $lang</TT> 
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	The human language used in this paragraph 
+	</DD></DL>
+<P>
+To print the text contents, use <TT>&lt;xsl:apply-templates
+mode=&quot;text&quot; /&gt;</TT> 
+</P>
+<HR>
+<H2><TT>process-pattern</TT></H2>
+<P>The <TT>process-pattern</TT> reports on the start of evaluation of
+a <TT>pattern</TT> element.</P>
+<DL>
+	<DT><TT><I>string</I></TT><TT> $name</TT> 
+	</DT><DD>
+	The title of the current pattern 
+	</DD><DT>
+	<TT><I>XML NCNAMES</I></TT><TT> $is-a</TT> 
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	Empty or not provided if the pattern is not derived from an abstract
+	pattern. Otherwise the name of the abstract pattern. A list may be
+	used if there was a sequence of abstract patterns. 
+	</DD></DL>
+<P>
+Rich properties:</P>
+<DL>
+	<DT><TT><FONT COLOR="#ff0000"><I>XML SystemId</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$icon</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The URI of an icon </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>XML ID</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$id</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The unique identifier with the schema for the
+	</FONT><TT><FONT COLOR="#ff0000">pattern</FONT></TT><FONT COLOR="#ff0000">
+	element. </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>SGML FPI</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$fpi</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The Formal Public Identifier for this pattern.
+	</FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>IETF language</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$lang</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The human language used in this pattern, from
+	xml:lang </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>URL</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$see</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">A (internationalized) URI reference to some
+	supporting or defining documentation </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>&quot;preserve&quot; | &quot;default&quot;</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$space</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	<FONT COLOR="#ff0000">The value for xml:space </FONT>
+	</DD></DL>
+<P>
+To print the documentation contents, use <TT>&lt;xsl:apply-templates
+mode=&quot;do-pattern-p&quot;/&gt;</TT></P>
+<HR>
+<H2><TT>process-report</TT></H2>
+<P>The <TT>process-report</TT> template handles <TT>report</TT> whose
+test has succeeded. 
+</P>
+<DL>
+	<DT><TT><I>XPath</I></TT><TT> $test</TT> 
+	</DT><DD>
+	The test 
+	</DD><DT>
+	<TT><I>XML IDREFS</I></TT><TT> $diagnostics</TT> 
+	</DT><DD>
+	A list of the diagnostic elements related to the current assertion 
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>XML NMTOKEN</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$flag</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	<FONT COLOR="#ff0000">The name of a flag that becomes true because
+	this assertion fails. The flag is true for the document if it is
+	flagged true on any assertion. For compatability, this parameter
+	should not be used with Schematron 1.5.</FONT> 
+	</DD></DL>
+<P>
+Rich properties:</P>
+<DL>
+	<DT><TT><FONT COLOR="#ff0000"><I>XML SystemId</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$icon</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The URI of an icon </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>XML ID</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$id</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The unique identifier with the schema for the
+	</FONT><TT><FONT COLOR="#ff0000">report</FONT></TT><FONT COLOR="#ff0000">
+	element. </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>SGML FPI</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$fpi</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The Formal Public Identifier for this report. </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>IETF language</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$lang</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The human language used in this report, from
+	xml:lang </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>URL</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$see</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">Link to documentation on WWW or file </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>&quot;preserve&quot; | &quot;default&quot;</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$space</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	<FONT COLOR="#ff0000">The value for xml:space </FONT>
+	</DD></DL>
+<P>
+Linking properties:</P>
+<DL>
+	<DT><TT><FONT COLOR="#ff0000"><I>XML NMTOKEN</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$role</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">A name for the generic role of this assertion.
+	The schema creator would have their own vocabulary. </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>XPath</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$subject</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	<FONT COLOR="#ff0000">A path relative to the current context to some
+	interesting node considered the subject. </FONT>
+	</DD></DL>
+<P>
+To print the text contents, use <TT>&lt;xsl:apply-templates
+mode=&quot;text&quot; /&gt;</TT></P>
+<HR>
+<H2><TT>process-rule</TT></H2>
+<P>The <TT>process-rule</TT> reports that a <TT>rule</TT> element has
+fired: its <TT>context</TT> attribute matched some nodes. .</P>
+<DL>
+	<DT><TT><I>XSLT expression</I></TT><TT> $context</TT> 
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	The expression that gives the context of the current 
+	</DD></DL>
+<P>
+Rich properties:</P>
+<DL>
+	<DT><TT><FONT COLOR="#ff0000"><I>XML SystemId</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$icon</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The URI of an icon </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>XML ID</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$id</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The unique identifier with the schema for this
+	</FONT><TT><FONT COLOR="#ff0000">rule</FONT></TT><FONT COLOR="#ff0000">
+	element. </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>SGML FPI</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$fpi</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The Formal Public Identifier for this rule. </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>IETF language</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$lang</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">The human language used in this rule, from
+	xml:lang </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>URL</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$see</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">Link to documentation on WWW or file </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>&quot;preserve&quot; | &quot;default&quot;</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$space</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	<FONT COLOR="#ff0000">The value for xml:space </FONT>
+	</DD></DL>
+<P>
+Linking properties:</P>
+<DL>
+	<DT><TT><FONT COLOR="#ff0000"><I>XML NMTOKEN</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$role</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD>
+	<FONT COLOR="#ff0000">A name for the generic role of this assertion.
+	The schema creator would have their own vocabulary. </FONT>
+	</DD><DT>
+	<TT><FONT COLOR="#ff0000"><I>XPath</I></FONT></TT><TT><FONT COLOR="#ff0000">
+	$subject</FONT></TT><FONT COLOR="#ff0000"> </FONT>
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	<FONT COLOR="#ff0000">A path relative to the current context to some
+	interesting node considered the subject. </FONT>
+	</DD><HR>
+</DL>
+<H2><TT>process-span</TT></H2>
+<P>The <TT>process-span</TT> handles span elements, which are generic
+elements for styling, like HTML's .</P>
+<DL>
+	<DT><TT><I>XML NMTOKEN</I></TT><TT> $class</TT> 
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	An attribute that can be used for stylesheet style 
+	</DD><HR>
+</DL>
+<H2><TT>process-title</TT></H2>
+<P>The <TT>process-title</TT> handles title elements, which are
+generic elements for styling, like HTML's .</P>
+<DL>
+	<DT><TT><I>XML NMTOKEN</I></TT><TT> $class</TT> 
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	An attribute that can be used for stylesheet style 
+	</DD></DL>
+<P>
+By default, titles are handled by invocing <TT>process-p</TT> with
+the parameter class with a value &quot;title&quot;.</P>
+<HR>
+<H2><TT>process-value-of</TT></H2>
+<P>The <TT>process-value-of</TT> template handles <TT>value-of</TT>
+elements, which are used in diagnostic messages to allow very
+specific hinting .</P>
+<DL>
+	<DT><TT><I>XPath</I></TT><TT> $select</TT> 
+	</DT><DD STYLE="margin-bottom: 0.5cm">
+	The path of some node that will be evaluated and printed.</DD><HR>
+</DL>
+<H1>Global Parameters</H1>
+<P>There are several global parameters that may be available for use.
+However, it is not a requirement to follow these, and implementations
+may not supply them with any value. So a test of
+string-length(<I>variable</I><SPAN STYLE="font-style: normal">) &lt;
+0 is appropriate in each case.</SPAN></P>
+<P><BR><BR>
+</P>
+<TABLE WIDTH=557 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=1 CELLSPACING=0>
+	<COL WIDTH=132>
+	<COL WIDTH=77>
+	<COL WIDTH=340>
+	<TR>
+		<TD WIDTH=132>
+			<P ALIGN=CENTER><FONT SIZE=2><B>Parameter</B></FONT></P>
+		</TD>
+		<TD WIDTH=77>
+			<P ALIGN=CENTER><FONT SIZE=2><B>Value</B></FONT></P>
+		</TD>
+		<TD WIDTH=340>
+			<P ALIGN=CENTER><FONT SIZE=2><B>Description</B></FONT></P>
+		</TD>
+	</TR>
+	<TR>
+		<TD WIDTH=132>
+			<P><FONT SIZE=2>allow-foreign</FONT></P>
+		</TD>
+		<TD WIDTH=77>
+			<P><FONT SIZE=2>&quot;true&quot; | &quot;false&quot; (default) </FONT>
+			</P>
+		</TD>
+		<TD WIDTH=340>
+			<P><FONT SIZE=2>Pass non-Schematron elements to the generated
+			stylesheet.  Pass the Schematron elements span, emph and dir: to
+			the output SVRL.  </FONT>
+			</P>
+		</TD>
+	</TR>
+	<TR>
+		<TD WIDTH=132>
+			<P><FONT SIZE=2>fileNameParameter</FONT></P>
+		</TD>
+		<TD WIDTH=77>
+			<P><FONT SIZE=2>string</FONT></P>
+		</TD>
+		<TD WIDTH=340>
+			<P><FONT SIZE=2>A parameter passed to the Validator and
+			potentially available as a variable in Schematron schemas as
+			$fileNameParameter</FONT></P>
+		</TD>
+	</TR>
+	<TR>
+		<TD WIDTH=132>
+			<P><FONT SIZE=2>fileDirParameter</FONT></P>
+		</TD>
+		<TD WIDTH=77>
+			<P><FONT SIZE=2>string</FONT></P>
+		</TD>
+		<TD WIDTH=340>
+			<P><FONT SIZE=2>A parameter passed to the Validator and
+			potentially available as a variable in Schematron schemas as
+			$fileDirParameter</FONT></P>
+		</TD>
+	</TR>
+	<TR>
+		<TD WIDTH=132>
+			<P><FONT SIZE=2>archiveNamePaameter</FONT></P>
+		</TD>
+		<TD WIDTH=77>
+			<P><FONT SIZE=2>string</FONT></P>
+		</TD>
+		<TD WIDTH=340>
+			<P><FONT SIZE=2>A parameter passed to the Validator and
+			potentially available as a variable in Schematron schemas as
+			$archiveNameParameter</FONT></P>
+		</TD>
+	</TR>
+	<TR>
+		<TD WIDTH=132>
+			<P><FONT SIZE=2>archiveDirParameter</FONT></P>
+		</TD>
+		<TD WIDTH=77>
+			<P><FONT SIZE=2>string</FONT></P>
+		</TD>
+		<TD WIDTH=340>
+			<P><FONT SIZE=2>A parameter passed to the Validator and
+			potentially available as a variable in Schematron schemas as
+			$archivePathParameter</FONT></P>
+		</TD>
+	</TR>
+	<TR>
+		<TD WIDTH=132>
+			<P><FONT SIZE=2>debug </FONT>
+			</P>
+		</TD>
+		<TD WIDTH=77>
+			<P>&ldquo;<FONT SIZE=2>true&rdquo; | &ldquo;false&rdquo; (default)</FONT></P>
+		</TD>
+		<TD WIDTH=340>
+			<P><FONT SIZE=2>Verbose error messages (Note this may be
+			superceded by &ldquo;verbose&rdquo; at some stage in the future.)</FONT></P>
+		</TD>
+	</TR>
+	<TR>
+		<TD WIDTH=132>
+			<P><FONT SIZE=2>generate-paths</FONT></P>
+		</TD>
+		<TD WIDTH=77>
+			<P><FONT SIZE=2>true|false </FONT>
+			</P>
+		</TD>
+		<TD WIDTH=340>
+			<P><FONT SIZE=2>generate the SVRL @location attribute with XPaths</FONT></P>
+		</TD>
+	</TR>
+	<TR>
+		<TD WIDTH=132>
+			<P><FONT SIZE=2>diagnose</FONT></P>
+		</TD>
+		<TD WIDTH=77>
+			<P><FONT SIZE=2>yes | no </FONT>
+			</P>
+		</TD>
+		<TD WIDTH=340>
+			<P><FONT SIZE=2>Add the diagnostics to the assertion results</FONT></P>
+		</TD>
+	</TR>
+	<TR>
+		<TD WIDTH=132>
+			<P><A NAME="DDE_LINK"></A><FONT SIZE=2>terminate</FONT></P>
+		</TD>
+		<TD WIDTH=77>
+			<P><FONT SIZE=2>yes | no | true | false | assert</FONT>
+			</P>
+		</TD>
+		<TD WIDTH=340>
+			<P><FONT SIZE=2>Terminate on the first failed assertion or
+			successful report</FONT></P>
+		</TD>
+	</TR>
+	<TR>
+		<TD WIDTH=132>
+			<P><FONT SIZE=2>message-newline </FONT>
+			</P>
+		</TD>
+		<TD WIDTH=77>
+			<P><FONT SIZE=2>&quot;true&quot; (default) | &quot;false&quot;  </FONT>
+			</P>
+		</TD>
+		<TD WIDTH=340>
+			<P><FONT SIZE=2>Generate an extra newline at the end of messages</FONT></P>
+		</TD>
+	</TR>
+	<TR>
+		<TD WIDTH=132>
+			<P><FONT SIZE=2>output-encoding</FONT></P>
+		</TD>
+		<TD WIDTH=77>
+			<P><FONT SIZE=2>string</FONT></P>
+		</TD>
+		<TD WIDTH=340>
+			<P><FONT SIZE=2>The encoding used for output, for example if the
+			output is XML</FONT></P>
+		</TD>
+	</TR>
+</TABLE>
+<DL>
+	<DD STYLE="margin-bottom: 0.5cm"> 
+	</DD></DL>
+</BODY>
+</HTML>
\ No newline at end of file