[Bug 4104] Transitive chameleon includes

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

           Summary: Transitive chameleon includes
           Product: XML Schema
           Version: 1.0/1.1 both
          Platform: PC
        OS/Version: Windows 2000
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Structures: XSD Part 1
        AssignedTo: cmsmcq@w3.org
        ReportedBy: noah_mendelsohn@us.ibm.com
         QAContact: www-xml-schema-comments@w3.org


I was just reviewing the discussion of chameleon includes at [1].  It says:

2 One of the following must be true:
2.1 SII has a targetNamespace [attribute], and its ·actual value· is identical
to the ·actual value· of the targetNamespace [attribute] of SII’ (which must
have such an [attribute]).
2.2 Neither SII nor SII’ have a targetNamespace [attribute].
2.3 SII has no targetNamespace [attribute] (but SII’ does).
3 The appropriate case among the following must be true:
3.1 If clause 2.1 or clause 2.2 above is satisfied, then the schema
corresponding to SII’ must include not only definitions or declarations
corresponding to the appropriate members of its own [children], but also
components identical to all the ·schema components· of I.
3.2 If clause 2.3 above is satisfied, then the schema corresponding to the
<include>d item's parent <schema> must include not only definitions or
declarations corresponding to the appropriate members of its own [children],
but also components identical to all the ·schema components· of I, except that
anywhere the ·absent· target namespace name would have appeared, the ·actual
value· of the targetNamespace [attribute] of SII’ is used. In particular, it
replaces ·absent· in the following places:
3.2.1 The {target namespace} of named schema components, both at the top level
and (in the case of nested type definitions and nested attribute and element
declarations whose code was qualified) nested within definitions;
3.2.2 The {namespace constraint} of a wildcard, whether negated or not;

Clause 2.3 seems to have effect only in the case that the including schema
document has an explicit targetNamespace attribute.  The result seems to be
that if the included chameleon schema document itself issues an include, that
grandchild schema document will not be subject to chameleon processing, even if
it lacks a targetNamespace attribute.

Is this intentional?  If not, then probably it's a bug that should be
addressed.

Noah

[1] http://www.w3.org/TR/2004/PER-xmlschema-1-20040318/#compound-schema

Received on Wednesday, 20 December 2006 18:55:03 UTC