ph-schematron icon indicating copy to clipboard operation
ph-schematron copied to clipboard

Rule is fired even if context was matched by a previous rule

Open dmj opened this issue 4 years ago • 1 comments

Using the following Schematron:

<sch:schema>
  <sch:pattern>
    <sch:rule context="element">
      <sch:assert test="true()"/>
    </sch:rule>
    <sch:rule context="*">
      <sch:assert test="false()"/>
    </sch:rule>
  </sch:pattern>
</sch:schema>

And the following document:

<?pi Processing instruction ?>
<element attribute="value">
  <!-- Comment -->
  <element>Text content</element>
</element>

I expect the second rule not to fire. But it does:

<?xml version="1.0" encoding="UTF-8"?>
<schematron-output xmlns="http://purl.oclc.org/dsdl/svrl">
  <active-pattern/>
  <fired-rule context="//element"/>
  <fired-rule context="//*"/>
  <failed-assert location="/element" test="false()">
    <text/>
  </failed-assert>
  <failed-assert location="/element/element" test="false()">
    <text/>
  </failed-assert>
</schematron-output>

This was discovered with running ph-schematron 5.2.0 against a in-progress schematron testsuite. The complete test results are shown here.

dmj avatar Aug 06 '19 09:08 dmj

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Nov 04 '19 10:11 stale[bot]