Including Chameleon Schemas

XML Schema part 1 says that:

The ·XML Schema· corresponding to <schema> contains not only the components
corresponding to its definition and declaration [children], but also all the
components of all the ·XML Schemas· corresponding to any <include>d schema
documents. Such included schema documents must either (a) have the same
targetNamespace as the <include>ing schema document, or (b) no
targetNamespace at all, in which case the <include>d schema document is
converted to the <include>ing schema document's targetNamespace.

My question relates to the meaning of "converted" in the last line. Does
this mean just that the definitions and declarations in the <include>d
schema document belong in the targetNamespace of the <include>ing schema
document, or that references to these definitions and declarations in the
<include>d schema document also change to reference the new namespace? In
other words, the <include>d schema document behaves as though there were a
targetNamespace declaration *and a defaultNamespace declaration with the
same URI*. I suspect just the former, in which case the <include>d schema
document cannot reference it's own definitions and declarations.

I have noticed that the MS .NET parser seems to interpret this by the
stricter definition, but that others do not. I have been arguing on and off
with others about this for years, but have never had a definitive answer and
cannot find anything in the archives.

Regards

Paul Spencer

Received on Wednesday, 27 October 2004 09:15:30 UTC