Schematron / schematron

Schematron "skeleton" - XSLT implementation
MIT License
93 stars 45 forks source link

Placeholder in abstract pattern replaced with wrong value #78

Open dmj opened 5 years ago

dmj commented 5 years ago

Running iso_abstract_expand.xsl on the following Schematron:

<schema xmlns="http://purl.oclc.org/dsdl/schematron">
  <pattern abstract="true" id="abstract">
    <rule context="$ab">
      <assert test="$a"/>
    </rule>
  </pattern>
  <pattern is-a="abstract" id="instance">
    <param name="a" value="x"/>
    <param name="ab" value="yz"/>
  </pattern>
  <properties/>
</schema>

Creates a Schematron where the character sequence '$a' in '$ab' was replaced with the value of the placeholder '$a'.

<schema xmlns="http://purl.oclc.org/dsdl/schematron">
  <!--Suppressed abstract pattern abstract was here-->
  <!--Start pattern based on abstract abstract--><pattern id="instance">
    <rule context="xb">
      <assert test="x"/>
    </rule>
  </pattern>
  <properties/>
</schema>

What happes is that iso_abstract_expand.xsl mistakenly recognizes the '$a' in '$ab' as placeholder $a.