- From: <bugzilla@jessica.w3.org>
- Date: Wed, 26 Mar 2014 14:57:39 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=25158
Bug ID: 25158
Summary: [xslt 3.0] Error for uninitialized parameter of
xsl:iterate
Product: XPath / XQuery / XSLT
Version: Last Call drafts
Hardware: PC
OS: All
Status: NEW
Severity: normal
Priority: P2
Component: XSLT 3.0
Assignee: mike@saxonica.com
Reporter: mike@saxonica.com
QA Contact: public-qt-comments@w3.org
Consider
<xsl:iterate select="...">
<xsl:param name="p" as="xs:integer"/>
The initial value of $p is an empty sequence, which is not a valid value given
the type as="xs:integer". The error should be a static error.
The nearest we have to this in the spec is:
[ERR XTDE0610] If an optional parameter has no select attribute and has an
empty sequence constructor, and if there is an as attribute, then the default
value of the parameter is an empty sequence. If the empty sequence is not a
valid instance of the required type defined in the as attribute, then the
parameter is treated as a required parameter, which means that it is a dynamic
error if the caller supplies no value for the parameter.
but that is a dynamic error.
The "which means..." clause also seems incorrect for a parameter to a named
template; if such a parameter is required, it's a static error.
Propose changing it to:
A parameter defined using xsl:param is *implicitly required* if all the
following apply:
* it has no select attribute
* it has an empty sequence constructor
* it does not specify required="yes"
* it has an .as. attribute defining the required type, and the empty sequence
is not a valid instance of the required type
When an xsl:param element defines an implicitly required parameter, then:
* if its parent is an xsl:template with a .name. attribute, then it is a static
error [REF:XXXXXXX] if there is an xsl:call-template instruction that does not
supply a value for the parameter
* if its parent is an xsl:iterate instruction, it is a static error [XXXXXXXX]
* if its parent is an xsl:template element with a .match. attribute, it is a
dynamic error if the caller supplies no value for the parameter.
--
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Wednesday, 26 March 2014 14:57:40 UTC