[
Lists Home |
Date Index |
Thread Index
]
Hi Stan,
Le mardi 27 juin 2006 à 14:26 -0700, Stan Kitsis a écrit :
> Howard,
>
> In general Xml Schema doesn't support co-occurrence constraints and the
> generic answer is to use something like Schematron. However, there are
> exceptions and your case is one of them. The following schema enforces
> that one and only one of a1, a2, or a3 attributes appears in the
> instance document:
>
> <xs:element name="e1">
> <xs:complexType>
> <xs:attribute name="a1" />
> <xs:attribute name="a2" />
> <xs:attribute name="a3" />
> </xs:complexType>
> <xs:key name="uniqueAtt">
> <xs:selector xpath="."/>
> <xs:field xpath="@a1|@a2|@a3"/>
> </xs:key>
> </xs:element>
I used to teach that trick in my trainings for this kind of situations
too, but don't advise using it any longer because:
1) the error messages that you get when there are several attributes
would be misleading for end users
2) W3C XML Schema processors differ in their interpretation of the spec
on this point and this leads to interoperability issues.
Eric
--
GPG-PGP: 2A528005
Did you know it? Python has now a Relax NG (partial) implementation.
http://advogato.org/proj/xvif/
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
(ISO) RELAX NG ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------
Ceci est une partie de message=?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?=
|