Re: Understanding Restrictions on Groups

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Eliot Kimber writes:

> I'm trying to understand what I can and can't do with restrictions on 
> groups.
>
> What I want to do is redefine a group in order to completely replace its 
> members, rather than extending its members. What I have that works 
> (using OxygenXML 8.2, which I believe uses XercesJ 2.9):

Well, in principle you can't do that.  W3C XML Schema defines
restriction as the elimination of _optional_ content, so getting rid
of _required_ content isn't allowed.

The motivation is to provide an invariant rather like that of
object-oriented programming languages:  any valid member of a type
defined by restriction is also a valid member of the type defined by
its base.

Having said that, there's a loophole in practice (which will probably
be closed in XML Schema 1.1 -- you have been warned!), which means you
can get what you want if you do it in two steps:

Redefine2.xsd:

<xs:redefine schemaLocation="Redefine.xsd">

   <xs:group name="a">
     <xs:choice>
       <xs:group ref="b"/>
     </xs:choice>
   </xs:group>

</xs:redefine>

First step extends the original by wrapping it in a choice with 'b',
second step restricts away the now-optional 'a'.  Don't try this at
home, even sending this message makes me feel a bit guilty :-)

ht
- -- 
 Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
                     Half-time member of W3C Team
    2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
            Fax: (44) 131 650-4587, e-mail: ht@inf.ed.ac.uk
                   URL: http://www.ltg.ed.ac.uk/~ht/
[mail really from me _always_ has this .sig -- mail without it is forged spam]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)

iD8DBQFGgO8JkjnJixAXWBoRAsZHAJwIxUoBaW9qs39aSVZCEzWbGo/UXwCfZ+vi
gOYbmzG+T/+UTTBv8aLD1cU=
=NfIM
-----END PGP SIGNATURE-----

Received on Tuesday, 26 June 2007 10:48:56 UTC