W3C home > Mailing lists > Public > www-xml-schema-comments@w3.org > April to June 2001

Re: Qualification, inheritance and import

From: Grégoire Pau <gpau@acland.fr>
Date: Mon, 7 May 2001 20:51:35 +0200
Message-ID: <02a401c0d726$bdc4e320$1601a8c0@acland.fr>
To: "Martin Gudgin" <marting@develop.com>, <www-xml-schema-comments@w3.org>
Thanks for this quick answer.

But, in the elementFormDefault=unqualified mode, I thought that
the namespace was inherited from its father tag. Ex. in the following
example:

<t1:a>
    <b/>
    <c>
        ...
    </c>
</t1:a>

b and c are belonging to the t1 associated namespace ?

Therefore, there is no way to determine the namespace of an
element without the schema when using the unqualified form.
Is that correct ?

in which part of XML Schema doc can I find more details ?

Regards,
Grégoire.
_____________________________________________________________________

Grégoire Pau
Expway
----- Original Message -----
From: "Martin Gudgin" <marting@develop.com>
To: "Grégoire Pau" <gpau@acland.fr>; <www-xml-schema-comments@w3.org>
Sent: Monday, May 07, 2001 8:26 PM
Subject: Re: Qualification, inheritance and import


> Comments inline
>
> ----- Original Message -----
> From: "Grégoire Pau" <gpau@acland.fr>
> To: <www-xml-schema-comments@w3.org>
> Sent: Monday, May 07, 2001 6:51 PM
> Subject: Qualification, inheritance and import
>
>
> Dear all,
>
> I am currently having trouble with the combined use of
> inheritance and imports. Let's have an example :
>
>  - In namespace ns1 :
>
>    <schema
>         xmlns="http://www.w3.org/2000/10/XMLSchema"
>         xmlns:ns1="http://www.ns1.com"
>         xmlns:ns2="http://www.ns2.com"
>         targetNamespace="http://www.ns1.com">
>
>              <element name="A" type="USAddress"/>
>
>              <complexType name="USAddress">
>                <complexContent>
>                  <sequence>
>                   <element name="name"   type="string"/>
>                   <element name="street" type="string"/>
>                  </sequence>
>                </complexContent>
>               </complexType>
>    </schema>
>
>
>  - In namespace ns2 :
>
>    <schema
>         xmlns="http://www.w3.org/2000/10/XMLSchema"
>         xmlns:ns1="http://www.ns1.com"
>         xmlns:ns2="http://www.ns2.com"
>         targetNamespace="http://www.ns2.com">
>
>             <import namespace="http://www.ns1.com"
>                 schemaLocation="http://www.ns1.com/ns1.xsd"/>
>
>             <complexType name="Analyst">
>               <complexContent>
>                <extension base="ns1:USAddress">
>                 <sequence>
>                  <element name="phone" type="string"/>
>                 </sequence>
>                </extension>
>               </complexContent>
>              </complexType>
>
>             <!-- for later use -->
>             <element name="email" type="string"/>
>    </schema>
>
>
> Which one of the following document is valid ?
>
>  - Document 1:
>
>     <ns1:A xsi:type="ns2:Analyst"
>                         xmlns:xsi="http://www....."
>                         xmlns:ns1="http://www.ns1.com"
>                         xmlns:ns2="http://www.ns2.com">
>         <ns1:name>John doe</ns1:name>
>         <ns1:street>Lacepede</ns1:street>
>         <ns2:phone>...</ns2:phone>
>     </ns1:A>
>
>
>  - Document 2:
>
>     <ns1:A xsi:type="ns2:Analyst"
>                 xmlns:xsi="http://www....."
>                 xmlns:ns1="http://www.ns1.com"
>                 xmlns:ns2="http://www.ns2.com">
>         <ns2:name>John doe</ns2:name>
>         <ns2:street>Lacepede</ns2:street>
>         <ns2:phone>...</ns2:phone>
>     </ns1:A>
>
>
> <MJG>
> Neither! The following would be valid;
>
>     <ns1:A xsi:type="ns2:Analyst"
>                         xmlns:xsi="http://www....."
>                         xmlns:ns1="http://www.ns1.com"
>                         xmlns:ns2="http://www.ns2.com">
>         <name>John doe</name>
>         <street>Lacepede</street>
>         <phone>...</phone>
>     </ns1:A>
>
> Local element declarations are unqualified by default. Put
> elementFormDefault='qualified' on the schema element for ns1 and ns2 to
make
> Document 1 valid.
> </MJG>
>
> Then, what about element ref ?
>
> Let's define a new schema in a new namespace :
>
>    <schema
>         xmlns="http://www.w3.org/2000/10/XMLSchema"
>         xmlns:ns2="http://www.ns2.com"
>         xmlns:ns3="http://www.ns3.com"
>         targetNamespace="http://www.ns3.com">
>
>             <import namespace="http://www.ns2.com"
>                 schemaLocation="http://www.ns2.com/ns2.xsd"/>
>
>             <complexType name="ModernAnalyst">
>               <complexContent>
>                <extension base="ns2:Analyst">
>                 <sequence>
>                  <element ref="ns2:email"/>
>                 </sequence>
>                </extension>
>               </complexContent>
>              </complexType>
>    </schema>
>
> Then which one of the following document is valid ?
>
>     <ns1:A xsi:type="ns3:ModernAnalyst">
>                 xmlns:xsi="http://www....."
>                 xmlns:ns1="http://www.ns1.com"
>                 xmlns:ns2="http://www.ns2.com"
>                 xmlns:ns3="http://www.ns3.com">
>         <??:name>John doe</??:name>
>         <??:street>Lacepede</??:street>
>         <??:phone>...</??:phone>
>         <ns3:email>...</ns3:email>
>     </ns1:A>
>
>     <ns1:A xsi:type="ns3:ModernAnalyst">
>                 xmlns:xsi="http://www....."
>                 xmlns:ns1="http://www.ns1.com"
>                 xmlns:ns2="http://www.ns2.com"
>                 xmlns:ns3="http://www.ns3.com">
>         <??:name>John doe</??:name>
>         <??:street>Lacepede</??:street>
>         <??:phone>...</??:phone>
>         <ns2:email>...</ns2:email>
>     </ns1:A>
>
> <MJG>
> Valid document would be
>
>     <ns1:A xsi:type="ns3:ModernAnalyst">
>                 xmlns:xsi="http://www....."
>                 xmlns:ns1="http://www.ns1.com"
>                 xmlns:ns2="http://www.ns2.com"
>                 xmlns:ns3="http://www.ns3.com">
>         <name>John doe</name>
>         <street>Lacepede</street>
>         <phone>...</phone>
>         <ns2:email>...</ns2:email>
>     </ns1:A>
>
> If you put elementFormDefault='qualified' on the schema element for ns1
and
> ns2 the following would be valid;
>
>     <ns1:A xsi:type="ns3:ModernAnalyst">
>                 xmlns:xsi="http://www....."
>                 xmlns:ns1="http://www.ns1.com"
>                 xmlns:ns2="http://www.ns2.com"
>                 xmlns:ns3="http://www.ns3.com">
>         <ns1:name>John doe</ns1:name>
>         <ns1:street>Lacepede</ns1:street>
>         <ns2:phone>...</ns2:phone>
>         <ns2:email>...</ns2:email>
>     </ns1:A>
>
> Hope this helps,
>
> Martin Gudgin
> DevelopMentor
> </MJG>
>
>
>
>
>
Received on Monday, 7 May 2001 14:56:14 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Sunday, 6 December 2009 18:12:50 GMT