如何在没有“ select”属性的情况下强制<xsl:param>错误?

Nor*_*ais 3 xslt xslt-2.0 xslt-1.0

如果我使用时<xsl:param>未指定值,则转换器会假定该值是一个空字符串。

换句话说,如果我忘记指定值(例如<xsl:param name="N"/>),则编译器不会发出错误信号。这可能会导致我的程序无提示地失败,这是一件坏事。

如何指定我<xsl:param> 必须具有显式值?例如,此代码应该给我一个错误,因为没有指定显式值:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <xsl:call-template name="F1"></xsl:call-template>
        <html>
            <head>
                <title></title>
            </head>
            <body>stuff</body>
        </html>
    </xsl:template>
    <xsl:template name="F1">
        <xsl:param name="N"/> <!-- I Should Get An Error Here! -->
    </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

我正在寻找XSLT 1.0和XSLT 2.0中的解决方案。

Mic*_*Kay 5

当然,在XSLT 2.0中,您可以说<xsl:param required="yes">,这样问题就解决了。