- From: <afo@zurich.ibm.com>
- Date: Thu, 15 Feb 2001 15:51:39 +0100
- To: "Martin Gudgin" <marting@develop.com>, www-xml-schema-comments@w3.org
Martin Gudgin wrote : >My understanding is as follows; >With include the only components that become part of the target namespace >are those that are unqualified ( in no namespace ). So in your example >Schema A consists of {http://www.example.org/A}{eB}. It may also contain >{http://www.example.org/C}{eC} but as Schema B never refers to anything in >the http://www.example.org/C namespace it's hard to tell. I don't think a schema needs to explicitly refer to a component in an imported schema in order to have it as one of its components. Section 6.2.3 says "The schema components of a schema corresponding to a schema element information item with one or more import element information items must include not only definitions or declarations corresponding to the appropriate members of its [children], but also, for each of those import element information items for which clause 1.1 above obtains successfully, a set of schema components identical to all the schema components of I. " >It will *never* >contain anything called {http://www.example.org/A}{eC} That is exactly what I would like but I'm not sure it is what the spec says. > > >Because B imports C, the declarations in C are unchanged, they stay in the >http://www.example.org/C namespace. So when B is included by A on eB becomes >part of the http://www.example.org/A namespace. >The crucial part of 6.2.1 is >or (b) no targetNamespace at all, in which case all the top-level included >components are converted to the includeing schema document's >targetNamespace. > >Note that it refers to *top-level* components. The components defined in >schema C are not top-level components with respect to schema B. This quotation seems to be inconsistent with the following : "The schema components of a schema corresponding to a schema element information item with one or more include element information items must include not only definitions or declarations corresponding to the appropriate members of its [children], but also, for each of those include element information items for which clause 1.1 above obtains successfully, a set of components identical to all the schema components of I (if clause 1.2.2 above obtains), or identical in all respects except their {target namespace}, which is that of the includeing schema (if clause 1.2.1 above obtains). " There is no reference to "top-level included components" . Maybe the editors simply forgot to mention here that only top level included component are subjected to a namespace modification. >Hope this helps, Thanks, Achille Fokoue. ----- Original Message ----- From: <afo@zurich.ibm.com> To: <www-xml-schema-comments@w3.org> Sent: Thursday, February 15, 2001 9:59 AM Subject: include and import > > > > The spec (Section 6.2.1 of Part I) says that if a schema A, which has a > non null target namespace, includes a schema B without target namespace, > all components of B are included in schema A and their namespace becomes > the same as the target namespace of A. > However, although schema B does not have any target namespace, it > may have components with a non null namespace ( for instance if schema B > imports another schema whose target namespace is not null). So if my > reading of the spec is correct, we should also change the namespace of > these > components to the target namespace of schema A. > > Example: > > A.xsd > <schema targetNamesapce="http://www.example.org/A" > xmlns="http://www.w3.org/2000/10/XMLSchema" > xmlns:tns="http://www.example.org/A"> > > <include schemaLocation="B.xsd"/> > > </schema> > > B.xsd > <xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"> > > <xsd:import namespace="http://www.example.org/C" > schemaLocation="C.xsd"/> > > <xsd:element name="eB" type="xsd:string"/> > > </xsd:schema> > > C.xsd > <schema targetNamesapce="http://www.example.org/C" > xmlns="http://www.w3.org/2000/10/XMLSchema" > xmlns:tns="http://www.example.org/C"> > > <element name="eC" type="xsd:string"/> > > </schema> > > According to the spec, schema A consists of > {http://www.example.org/A}{eB} and {http://www.example.org/A}{eC} but I > wonder if it should not consist of {http://www.example.org/A}{eB} and > {http://www.example.org/C}{eC} . > > Regards, > > Achille Fokoue. > > >
Received on Thursday, 15 February 2001 09:54:29 UTC