[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [xml-dev] Validate XML selectively
>> I'm using MS-XML4 to schema validate XML. Is it
>> possible to validate an element depending upon the
>> value of another element in XML. For example, if
>> <COUNTRY> tag has the value US, <STATE> needs to be
>> validated against schema definition for <STATE>. If
>> not whatever value <STATE> holds should be let through
>> without validation. Is it possible? Thanks in advance.
>
> Unfortunately not with W3C XML Schema. I think you can do this in
> RELAX-NG but I'm not 100% sure.
Yes, it's straighforward in RELAX NG:
<choice>
<group>
<element name="STATE">
<data type="string"/>
</element>
<element name="COUNTRY">
<data type="string">
<except>
<value>US</value>
</except>
</data>
</element>
</group>
<group>
<element name="STATE">
<choice>
<value>MA</value>
<value>NY</value>
<!-- ... -->
</choice>
</element>
<element name="COUNTRY">
<value>US</value>
</element>
</group>
</choice>
James