W3C home > Mailing lists > Public > xmlschema-dev@w3.org > January 2002

Re: SchemaLocation Question

From: Eddie Robertsson <eddie@allette.com.au>
Date: Thu, 24 Jan 2002 10:00:49 +1100
Message-ID: <3C4F40A1.EB2E5183@allette.com.au>
To: "Arigapudi, Shyam" <Shyam.Arigapudi@ugs.com>
CC: "'xmlschema-dev@w3.org'" <xmlschema-dev@w3.org>

"Arigapudi, Shyam" wrote:

> Hi,
>
> I have 2 schema files, both using the same namespace.
> Let's say box.xsd,pallet.xsd. Both of them derive from common.xsd.
>
> Common.xsd has an abstract type, which is overridden in each of the other
> xsd's (box - boxType, pallet - palletType).

<snip/>

> Now,  I want to have both the types to be in one xml file. Is this possible?
>
> <?xml version="1.0" encoding="UTF-8"?>
> <x:CimfObjects xmlns:x="urn:www.eai.com:CIMF"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="urn:www.eai.com:CIMF box.xsd
>                                 urn:www.eai.com:CIMF pallet.xsd">
>
> <x:Object xsi:type="x:BoxType>
>         ...
> </x:Object>
> <x:Object xsi:type="x:PalletType>
>         ...
> </x:Object>
> </x:CimfObjects>
>
> Not sure about the syntax for schemaLocation (since both xsd files use the
> same
>  urn). Is the solution to change these name spaces or is there a better way?

To change the namespace is one solution but a better one is probably to create a
"main" schema that use the same targetNamespace as box and pallet
(urn:www.eai.com:CIMF) and then includes these two schemas. This will bring in
all the types and elements from box and pallet to this "main" schema and in your
instance document it is enough if you include this schema:

<x:CimfObjects xmlns:x="urn:www.eai.com:CIMF"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:www.eai.com:CIMF main.xsd">

Cheers,
/Eddie
Received on Wednesday, 23 January 2002 17:50:32 GMT

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