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

RE: Changing "substitutionGroup" to "choice" and maintaining the validation equality of the schema

From: Marko Smiljanic <m.smiljanic@utwente.nl>
Date: Fri, 17 Oct 2003 15:19:38 +0200
To: <xmlschema-dev@w3.org>
Message-ID: <001201c394b1$512446c0$240b5982@dynamic.cs.utwente.nl>

Thanks Harald,

I was quite happy with the `so far so good' part but I'm a bit confused
with your follow up...
(btw. please excuse if this turns out to be a "stupid question". I do
not really know all the tiny bits of XSD).

Here are the schemas that you've given:

>Schema 1: targetNamespace: ns1 
> element A (abstract=true) 
> element B (substitutionGroup="ns1:A") 
> element C (substitutionGroup="ns1:A") 
> element D () - sequence - element (ref="ns1:A") 

>Schema 2: targetNamespace: ns2 
> element E (substitutionGroup="ns1:A") 
> element F () - sequence - element (ref="ns1:A") 

>D translates into: 
> element D () - sequence - element - ref="ns1:B" 
>                                   - ref="ns1:C" 
>F translates into: 
> element F () - sequence - element - ref="ns1:B" 
>                                   - ref="ns1:C" 
>                                   - ref="ns2:E" 
>so far so good, but imagine the following instance: 
><ns1:root><ns1:D><ns2:F>... [ns2 is located by xsi:schemaLocation] 

Last row, gives an XML instance like this I guess:

<ns1:root>
  <ns1:D>
     <ns2:F>
      ...
     </ns2:F>
  <ns1:D>
</ns1:root>

If that is so, than I do not see why do you expect this to be a valid
document in respect to Schema 2.
If I'm not wrong, when you wrote Schema 2 you imported Schema 1, and
thus Schema 2 declares both 
ns2:F and ns1:D as shown below:

Both (ns2:F and ns1:D) - sequence - choice - ref="ns1:B" 
                                           - ref="ns1:C" 
                                           - ref="ns2:E" 

I do not see the schema declaration that allows ns2:F to be nested in
ns1:D like in the example?
What did I get wrong?

Thanks,
Marko.

************************* 
Research assistant, Database Technology 
Department of Computer Science, University of Twente 
P.O. Box 217, 7500 AE Enschede, The Netherlands 
Phone +31 (053) 489 4520, Fax ~ 2927 
E-mail: m.smiljanic@utwente.nl 
WWW: www.cs.utwente.nl/~markosm 
Received on Friday, 17 October 2003 09:19:46 GMT

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