在Binding References to Components中有一个我觉得令人困惑的例子:
<xsl:package name="P"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:use-package name="Q">
<xsl:override>
<xsl:variable name="C" visibility="private" select="$xsl:original + 3"/>
</xsl:override>
</xsl:use-package>
<xsl:template name="T" visibility="public">
<xsl:value-of select="$A"/>
</xsl:template>
</xsl:package>
然后它说:
根据 3.5.3.2 接受组件中的规则更改可见性:特别是,可见性=“私有”更改为可见性=“隐藏”。
为什么需要指定private
将可见性更改为hidden
?我希望,由于您正在覆盖组件,因此原始覆盖的组件会自动隐藏,并且 using 和 used 包中的所有符号引用都引用新的覆盖组件。
组件 Cp 是最重要的组件。它的属性就像它被声明为 P 中的顶级组件一样(在 xsl:use-package 元素之外)......
这意味着C
任何使用包都可以看到它,但它被标记为private
.