[
Lists Home |
Date Index |
Thread Index
]
Prasad G S K wrote:
> I want to state my requirement as follows:
> -> When the value of "prop1" is ABC then "prop2" should follow "prop1"
> -> When the value of "prop1" is XYZ then "prop3" should follow "prop1"
>
> Can I define this kind of restriction/dependency in XSD files? Or is the
> restriction too fine that it is to be handled within the application?
No and no. You really should be using RELAX NG, which can cope with
this constraint without defensive code.
This is what you want:
<?xml version="1.0"?>
<grammar
xmlns="http://relaxng.org/ns/structure/1.0">
<start>
<ref name="rooty"/>
</start>
<define name="rooty">
<element name="root" >
<choice>
<group>
<element name="prop1" >
<attribute name="value">
<value>ABC</value>
</attribute>
</element>
<ref name="prop2y"/>
</group>
<group>
<element name="prop1" >
<attribute name="value">
<value>XYZ</value>
</attribute>
</element>
<ref name="prop3y"/>
</group>
</choice>
<empty/>
</element>
</define>
<define name="prop2y">
<element name="prop2" >
<attribute name="value">
<text/>
</attribute>
<text/>
</element>
</define>
<define name="prop3y">
<element name="prop3" >
<attribute name="value">
<text/>
</attribute>
<text/>
</element>
</define>
</grammar>
Bill de hÓra
--
Propylon
www.propylon.com
Sorry, I don't know the word "sorry".- SHRDLU
|