W3C home > Mailing lists > Public > xmlschema-dev@w3.org > May 2003

Re: import/include question

From: Rajul Gupta <rajul@oss.com>
Date: Wed, 14 May 2003 08:24:12 -0400
Message-ID: <003401c31a13$bd2d28a0$514f5543@ORBIT>
To: <noah_mendelsohn@us.ibm.com>
Cc: "XML Schema Dev" <xmlschema-dev@w3.org>

Hi Noah,

----- Original Message -----
From: <noah_mendelsohn@us.ibm.com>
To: "Rajul Gupta" <rajul@oss.com>
Cc: "XML Schema Dev" <xmlschema-dev@w3.org>
Sent: Tuesday, May 13, 2003 10:55 PM
Subject: Re: import/include question


> If I'm following your example, this is not legal because A.xsd has an
> explicit reference to a component from namespace http://www.example.com/N1
> but no import for that namespace.

Please note that A.xsd and C.xsd have same targetNamespace N1.

> The rule is, each document must declare
> its dependencies on anything it explicitly references.

Do you mean that if you reference any component from other schema
explicitly, then you must include/import this schema in the original schema
**directly**? For example, in A.xsd, I must "include" c.xsd. correct?

> Namespaces that
> are used implicitly (for example the base type of some type) need not be
> imported by your schema document.  I hope this helps.

Do you mean, had there been a base type in C.xsd, I could derive the base
type in A.xsd without direct "include"? Could you please explain this a
little more?

Thanks a lot for your help.

Regards,

Rajul

> ------------------------------------------------------------------
> Noah Mendelsohn                              Voice: 1-617-693-4036
> IBM Corporation                                Fax: 1-617-693-8676
> One Rogers Street
> Cambridge, MA 02142
> ------------------------------------------------------------------
>
>
>
>
>
>
>
> "Rajul Gupta" <rajul@oss.com>
> Sent by: xmlschema-dev-request@w3.org
> 05/13/2003 04:51 PM
>
>
>         To:     "XML Schema Dev" <xmlschema-dev@w3.org>
>         cc:     (bcc: Noah Mendelsohn/Cambridge/IBM)
>         Subject:        import/include question
>
>
> Hi,
>
> I have one question about the import/include. I have following three
> schemas. A.xsd and C.xsd have same targetNamespace N1; and B.xsd has
> targetNamespace N2. A.xsd imports B.xsd, and B.xsd imports C.xsd. Is this
> example legal since there is no direct "include" between A.xsd and C.xsd?
>
> Thanks in advance,
>
> Rajul
> --------------------------------------------------------------------------
> A.xsd:
>
> <xs:schema targetNamespace="http://www.example.com/N1"
>  xmlns:n2="http://www.example.com/N2"
>  xmlns:n1="http://www.example.com/N1"
>  xmlns:xs="http://www.w3.org/2001/XMLSchema">
>
>  <xs:import namespace="http://www.example.com/N2" schemaLocation="b.xsd"/>
>
>  <xs:complexType name="MyType">
>   <xs:sequence>
>    <xs:element ref="n1:el"/>
>   </xs:sequence>
>  </xs:complexType>
>
>  <xs:element name="root" type="n1:MyType"/>
>
> </xs:schema>
>
> -------------------------------------------------------------------------
>
> B.xsd:
>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
>  xmlns="http://www.example.com/N2"
>  targetNamespace="http://www.example.com/N2">
>
>  <xs:import schemaLocation="c.xsd" namespace="http://www.example.com/N1"/>
>
> </xs:schema>
>
> --------------------------------------------------------------------------
>
> C.xsd:
>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
>  xmlns="http://www.example.com/N1"
>  targetNamespace="http://www.example.com/N1">
>
>  <xs:element name="el" type="xs:integer"/>
>
> </xs:schema>
>
> -------------------------------------------------------------------------
>
>
>
>
Received on Wednesday, 14 May 2003 08:25:27 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:14:37 GMT