[Bug 4057] elemZ006

http://www.w3.org/Bugs/Public/show_bug.cgi?id=4057





------- Comment #1 from mike@saxonica.com  2006-12-09 18:04 -------
The same problem applies to elemZ007. In this case

elemZ007.xsd includes elemZ007_a.xsd
elemZ007_a.xsd imports elemZ007_b.xsd

and elemZ007.xsd contains a reference to a component in the namespace of
elemZ007_b. I believe this is invalid, on the grounds that

(a) in the specification of xs:import, it is clear that the effect is local to
a schema document

(b) in the specification of xs:include, it is clear that the effect is to
include schema components defined in the included schema document, but not to
inherit the effects of declarations such as xs:import that do not themselves
result in construction of schema components.

To be fair, the specification is fuzzy in this area. Although it says that
xs:import enables reference to components across namespaces, it's hard to find
a definitive statement that the absence of an xs:import disables it, or causes
the schema to be invalid; indeed, the sentence in 4.2.1 "During schema
construction, implementations must retain ·QName· values for such references,
in case an appropriately-named component becomes available to discharge the
reference by the time it is actually needed." could be taken as making this
test case valid. But if that's the correct interpretation, then it's hard to
see why the description of xs:import in 4.2.3 repeatedly maintains that its
scope is confined to the containing schema document.

So perhaps this bug report should be taken as a request to the WG to clarify
the spec (something that is long overdue).

Received on Saturday, 9 December 2006 18:05:04 UTC