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

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] property dependency checking

[ 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





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS