[oXygen-user] which Schematron processor?

Radu Coravu
Mon Dec 27 03:15:58 CST 2010


Hi Syd,

We'll try to update the user manual to state more clearly the default 
processor used for XSLT 2.0 binding. It is Saxon PE.

The warnings you are receiving come from Saxon 9 so changing from PE to 
EE does not help.

Indeed the schematron file is transformed (using intermediary XSLT 
stylesheets) to an XSLT which is then applied on the input XML file 
using the Saxon EE engine in your case.

It depends if the warning messages are given when the final XSLT gets 
constructed or when the final XSLT gets applied on the XML input.

Usually these warnings mean:

> The child axis starting at an attribute node will never select anything

The XSLT template matches an attribute but then tries to match another 
attribute in that context like:

     <xsl:template match="@id">
         <xsl:value-of select="@id"/>
     </xsl:template>

> The child axis starting at an attribute node will never select anything

The XSLT template matches an attribute but then tries to match another 
element in that context like:

     <xsl:template match="@id">
         <xsl:value-of select="revisionDesc"/>
     </xsl:template>

The equivalent schematron pattern would be like:

   <sch:pattern>
     <sch:rule context="tei:*/*">
       <sch:assert test="revisionDesc">
         MY MESSAGE
       </sch:assert>
     </sch:rule>
   </sch:pattern>

Maybe if you can compose a sample small Schematron file on which the 
problem can be reproduced we can take a closer look.

Regards,
Radu

Radu Coravu
<oXygen/>  XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com

On 12/24/2010 4:38 PM, Syd Bauman wrote:
> I'm guessing that if I check the "Use Saxon EE (schema aware) for
> xslt2 query binding - If checked, Saxon EE will be used for xslt2
> query binding." box in the "ISO Schematron" section of the XML / XML
> Parser preferences page, then oXygen will use Saxon EE to validate my
> documents against an ISO Schematron schema that uses xslt2 query
> binding.
>
> But what does oXygen use as an ISO Schematron validator if I *don't*
> check that box? (The documentation under the Help menu doesn't say.)
>
>
> As I side note, I'm asking because I'm getting warnings from the
> validation that I thought might really be indicative of a processor-
> specific problem, rather than a Schematron schema or validation
> error. Probatron does not complain, but oXygen warns that "The
> attribute axis starting at an attribute node will never select
> anything" and that "The child axis starting at an attribute node will
> never select anything". The rule that generates the complaint is
>    <rule context="tei:*/@*">  ...</rule>
> So I'm guessing that the processor tried to convert this to some
> generic XSLT that included a match pattern that would never fire.
>
> So I tried switching processors to Saxon EE, but that just added an
> error to the warnings: "Cannot validate<TEI>: no element declaration
> available". It took a Google search to find out that setting oXygen
> to use Saxon's -vlax switch is how to deal with that. (Found
> http://www.oxygenxml.com/forum/topic4460.html.)
> _______________________________________________
> oXygen-user mailing list
> 
> http://www.oxygenxml.com/mailman/listinfo/oxygen-user




More information about the oXygen-user mailing list