[Bug 29957] [XSLT30] Non-schema-aware processors and schema-attribute and schema-element node tests: error or not?

https://www.w3.org/Bugs/Public/show_bug.cgi?id=29957

--- Comment #1 from Michael Kay <mike@saxonica.com> ---
>But one could also argue that these definitions automatically include mappings for xs:untyped and xs:untypedAtomic for all elements/attributes.

I don't quite see what form such an argument might take.

XSLT 5.3.1 says: The in-scope schema definitionsXP30 for the XPath expression
are the same as the in-scope schema components for the stylesheet, and are as
specified in 3.14 Built-in Types. [The reference should really include 3.15 as
well.]

Section 3.15 says: The schema components included in the in-scope schema
components (that is, the components whose names are available for use within
the stylesheet) are the top-level element and attribute declarations and type
definitions that are available for reference within the synthetic schema
document. See [XML Schema Part 1] (section 4.2.3, References to schema
components across namespaces).

If there is no import-schema, then the synthetic schema document contains no
global attribute declarations, therefore schema-element(foo) refers to an
attribute name that is not present in the in-scope schema declarations,
therefore a static error occurs.

The error code XTSE1660 applies specifically to non-schema-aware processors,
not to schema-aware processors when there is no imported schema, and there's
room for debate about which error code takes precedence. But either way, "foo"
is not in the in-scope schema declarations and therefore can't be referenced in
schema-attribute().

XPath says "If the ElementName specified in the SchemaElementTest is not found
in the in-scope element declarations, a static error is raised [err:XPST0008]."
which seems pretty unambiguous to me.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Sunday, 23 October 2016 08:50:05 UTC