Я хотел бы изменить ключевой параметр в проекте Schematron + XSLT, который влияет на глубину проверки, и наиболее удобным способом было бы связать имя фазы Schematron с глобальной переменной (или внутри файла Schematron)
У меня есть обходной путь, где Schematron привязывается к соответствующему, который определяет конкретное, и это работает, но это означает, что каждая фаза должна изменить переменную уникального имени параметра, потому что это неразрешено включать в один файл несколько s (или s) для одного и того же параметра (переменной).
<phase id="terse">
<active pattern="core-tests"/>
<active pattern="terse-true"/>
</phase>
<phase id="verbose">
<active pattern="core-tests"/>
<active pattern="verbose-true"/>
</phase>
<pattern id="terse-true">
<xsl:param name="validation-is-terse" select="true()"/>
</pattern>
<pattern id="verbose-true">
<xsl:param name="validation-is-verbose" select="true()"/>
</pattern>
Я бы предпочел написать что-то вроде этого:
<xsl:param name="validation-depth" select="{$phase}"/>
<phase id="terse">
<active pattern="core-tests"/>
</phase>
<phase id="verbose">
<active pattern="core-tests"/>
</phase>