[XMLSCHEMA-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Both extending and restricting with <redefine>

From: Hirtle, David <David.Hirtle@nrc-cnrc.gc.ca>
Date: Fri, 1 Apr 2005 09:10:25 -0500
Message-ID: <10C94843061E094A98C02EB77CFC3287132E7536@nrcmrdex1d.imsb.nrc.ca>
To: xmlschema-dev@w3.org
Both extending and restricting with <redefine>

(Apologies if this message is received more than once -- yesterday's
attempt seems to have not gone through.)

I originally thought that XML Schema didn't permit "replacing" an
element with another via <redefine>, i.e. both extending and
restricting a content model, but the spec doesn't seem to forbid doing
it in two steps... so I whipped up an example.  Unfortunately, I'm
getting mixed validation results.

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.

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?

Thanks,

David

***

java com.saxonica.Validate -t http://www.ruleml.org/0.89/exa/ab.ruleml
Saxon-SA 8.3 from Saxonica
Java version 1.5.0_01
Processing http://www.ruleml.org/0.89/exa/ab.ruleml
Loading schema document http://www.ruleml.org/0.89/xsd/b.xsd
Loading schema document http://www.ruleml.org/0.89/xsd/a.xsd
Finished loading schema document http://www.ruleml.org/0.89/xsd/a.xsd
Finished loading schema document http://www.ruleml.org/0.89/xsd/b.xsd
Validation error on line 5 column 4 of http://www.ruleml.org/0.89/exa/ab.ruleml:
In content of element <body>: The content model does not allow element <x>
to appear here.
Expected: {http://www.ruleml.org/0.89/xsd}y
Validation error on line 7 column 8 of http://www.ruleml.org/0.89/exa/ab.ruleml:
One or more validation errors were reported
Validation of source document failed
Received on Friday, 1 April 2005 14:10:29 GMT

Subscribe to the Stylus Scoop newsletter for helpful XML tips and tutorials.
Email
First Name
Last Name
Company

Download Stylus Studio 6 XML Enterprise Edition

Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2007 All Rights Reserved.