- From: Martin Gudgin <marting@develop.com>
- Date: Thu, 15 Feb 2001 12:13:48 -0000
- To: <afo@zurich.ibm.com>, <www-xml-schema-comments@w3.org>
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. It will *never*
contain anything called {http://www.example.org/A}{eC}
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.
Hope this helps,
Martin Gudgin
DevelopMentor
----- 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 07:14:42 UTC