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

Qualification, inheritance and import

From: Grégoire Pau <gpau@acland.fr>
Date: Mon, 7 May 2001 19:51:20 +0200
Message-ID: <019001c0d71e$536e4460$1601a8c0@acland.fr>
To: <www-xml-schema-comments@w3.org>
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>


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>

Thank you very much,
Grégoire.
_____________________________________________________________________

Grégoire Pau
Expway
Received on Monday, 7 May 2001 13:56:05 GMT

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