Cross-schema restrictions

Hi,

I have another question relating to cross-schema derivations. Given the 
following schemata:

Schema A
<schema
           xmlns='http://www.w3.org/2001/XMLSchema'
           xmlns:A='AAA'
           targetNamespace='AAA'
           elementFormDefault='qualified'
           attributeFormDefault='qualified'
           >

   <complexType name='ctA'>
     <sequence>
       <element name='eltA' type='integer'/>
     </sequence>
     <attribute name='attrA' type='integer'/>
   </complexType>
</schema>

Schema B
<schema
           xmlns='http://www.w3.org/2001/XMLSchema'
           xmlns:A='AAA'
           xmlns:B='BBB'
           targetNamespace='BBB'
           elementFormDefault='qualified'
           attributeFormDefault='qualified'
           >
   <import namespace='AAA'/>

   <complexType name='ctB'>
     <complexContent>
       <restriction base='A:ctA'>
         <sequence>
           <element name='eltA' type='positiveInteger'/>
         </sequence>
         <attribute name='attrA' type='positiveInteger'/>
       </restriction>
     </complexContent>
   </complexType>

   <element name='foo' type='B:ctB'/>
</schema>

My question is: is that even a valid restriction? In schema B, eltA would appear 
to me to be in effect B:eltA, and thus not valid per ctA. I couldn't find text 
in the spec to make me balance either way (but then I could have missed it), 
though I would prefer that restriction to be impossible.

If by any chance it happens to be a valid restriction, which of the two 
following instances (given already declared namespaces) validates?

   <B:foo B:attrA='1'><B:eltA/></B:foo>

or

   <B:foo A:attrA='1'><A:eltA/></B:foo>

or (worse) both?

Thanks,

-- 
Robin Berjon <robin.berjon@expway.fr>
Research Engineer, Expway
7FC0 6F5F D864 EFB8 08CE  8E74 58E6 D5DB 4889 2488

Received on Thursday, 28 November 2002 11:03:43 UTC