Re: Both extending and restricting with <redefine>

"Hirtle, David" <David.Hirtle@nrc-cnrc.gc.ca> writes:

> a.xsd (http://www.ruleml.org/0.89/xsd/a.xsd) defines an element "body"
> which allows only the element "x".
>
> b.xsd (http://www.ruleml.org/0.89/xsd/b.xsd) redefines "body" from
> a.xsd, first extending it to allow a new element "y" and then
> restricting it to disallow "x", effectively replacing "x" with "y" in
> the content model of "body".
>
> Assuming this is permissible in XML Schema...
>
> ab.ruleml (http://www.ruleml.org/0.89/exa/ab.ruleml) should not be
> valid w.r.t. b.xsd because "body" contains an "x".
>
> XSV (web form and installation) reports no validity problems but
> crashes.  Saxon correctly (?) identifies the problem, as appended
> below.

Are you sure -- web form reports the expected error when I run it:

  http://www.w3.org/2001/03/webdata/xsv?docAddrs=http%3A%2F%2Fwww.ruleml.org%2F0.89%2Fexa%2Fab.ruleml&style=xsl#

> So I'm left with the question: is this the correct way to "replace" an
> element with another in a content model via <redefine> (if possible at
> all with XML Schema)?  And what about the validators?

I can see why this works, but I don't _think_ it should.

The 'correct' way to do this is with _three_ files.

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]

Received on Saturday, 2 April 2005 14:43:09 UTC