This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
I have always assumed it may not, but I cannot find proof of this in the spec. The error messages talk about the effective value of the attribute, which suggest that it might be possible to pass an AVT.
For instructions like xsl:element, the syntax proforma is normative: this has <xsl:element name = { qname } namespace? = { uri-reference } inherit-namespaces? = "yes" | "no" use-attribute-sets? = qnames type? = qname validation? = "strict" | "lax" | "preserve" | "strip"> <!-- Content: sequence-constructor --> </xsl:element> Attributes that may be AVTs are shown in curly braces; therefore "validation" is not an AVT. For literal result elements, we have to rely on the fact that 11.1.1 says that the allowed values of the attribute are defined in 19.2, and in 19.2 the possible values are enumerated in the text as strict|lax|preserve|strip. The use of the term "effective value" is perhaps injudicious. It's not hyperlinked to the definition of the term "effective value" as used in relation to AVTs, and is in fact intended as a reference to the statement "If both attributes are omitted, the effect is the same as specifying the validation attribute with the value specified in the default-validation attribute of the containing xsl:stylesheet element; if this is not specified, the effect is the same as specifying validation='strip'." I think we could probably add clarity by stating explicitly in section 11.1.1 that the value of xsl:validation must be one of these four values and that AVTs are not allowed.
I would endorse your proposed addition to 11.1.1. I spent a lot of time last night double-checking that section, but couldn't find anything definite.
I have added clarifying text to section 11.1.1 as proposed.