w3c / qtspecs

XSLT and XQuery Specifications - the source used to build the specs, and the errata
Other
30 stars 25 forks source link

[xslt30] Assertion on exclude-result-prefixes in Schema for XSLT 3.0 #30

Closed walmsleyph closed 3 years ago

walmsleyph commented 3 years ago

The Schema for XSLT 3.0 in H.1 has the following assertion on the "transform" element:

      <xs:assert test="every $prefix in (@exclude-result-prefixes[not(. = '#all')], 
                                         @extension-element-prefixes) 
                       satisfies ((if ($prefix = '#default') then '' else $prefix) = in-scope-prefixes(.))">

It appears to not take into account that the values of @exclude-result-prefixes and @extension-element-prefixes could be multiple space-separated prefixes. Should it be tokenizing them?

michaelhkay commented 3 years ago

XSD 1.1 part 2 clause 4.3.13.3 says that in the XDM representation of the tree used for evaluation of an assertion, the atomization of the list-valued attribute @exclude-result-prefixes is the typed value, which is a sequence of tokens. So the tokenization has already been done, implicitly.

walmsleyph commented 3 years ago

Oh, interesting, thanks. (That is not what Xerces is doing - guess I will go complain over there ;)