OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[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