Re: attribute constraints

David,

David Carlisle wrote:

> I'm currently trying to recast the OpenMath DTD into W3C Schema (and
> relax ng and schematron) Many of the extra prose restrictions not
> specified in the dtd can be encapsualted (regexp restrictions, mainly) 
> 
> but one is alluding me at present (for W3C Schema)
> The "Float" element has two attributes, taking either a hex or decimal
> value. You have to have exactly one of these present.
> 
> If it were child elements rather than attributes I'd use xsd:choice


Right.


> and if it were simple types rather than attributes I could use a union


Yes.

> but it seems that both of these constructs are not available here.
> Unless I missed something (which is quite possible) so the question:
> 
> Is it possible to change the following so that 
> <OMF/> and <OMF dec="2" hex="F"/>
> do not  validate?


No, it is impossible with "pure" W3C XML Schema and the best you can do 
is to define that those 2 attributes are not required (exactly like you 
would to in a DTD).

This is one of the features allowed by RELAX NG (which treats attributes 
and elements in a more consistent way than XML Schema) and Schematron 
(which can test *almost* anything) that is not supported by W3C XML Schema.

This is also a case where it makes sense to add Schematron rules to a 
W3C XML Schema using the xs:annotation/xs:appinfo extension mechanism 
provided by XML Schema (this is supported by a couple of tools).

Eric


 
> thanks,
> 
> 
> David
> 


-- 
Rendez-vous à Paris pour une visite guidee de la nebuleuse XML.
                                           http://dyomedea.com/formation/
------------------------------------------------------------------------
Eric van der Vlist       http://xmlfr.org            http://dyomedea.com
http://xsltunit.org      http://4xt.org           http://examplotron.org
------------------------------------------------------------------------

Received on Tuesday, 9 October 2001 07:30:04 UTC