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] Schema validation question

[ Lists Home | Date Index | Thread Index ]

Couldn't you do:

<xs:complexType name="Fruit">
   <xs:choice>
     <xs:group ref="apple"/>
     <xs:group ref="orange"/>
   </xs:choice>
</xs:complexType>

<xs:group name="apple">
   <xs:element name="Apple" type="xs:string"/>
   <xs:element name="APL" type="xs:token"/>
</xs:group>

<xs:group name="orange">
   <xs:element name="Orange" type="xs:string"/>
   <xs:element name="ORG" type="xs:token"/>
</xs:group>

Maybe I missed something?

best,
-Rob


Chiusano Joseph wrote:

> I was also just reminded that this can also be done with RNG (I knew
> there was another one!).
> 
> Kind Regards,
> Joe Chiusano
> Booz | Allen | Hamilton
> Strategy and Technology Consultants to the World
> 
> Joseph Chiusano wrote:
> 
>>Using elements as data rather than metadata - very offensive indeed. ;)
>>
>>There is no solution for this with W3C Schema, but it can be done with
>>Schematron.
>>
>>Kind Regards,
>>Joe Chiusano
>>Booz | Allen | Hamilton
>>Strategy and Technology Consultants to the World
>>
>>Linda Grimaldi wrote:
>>
>>>I have been out of the XML world for a little while now, but someone just asked me a question and I have to admit, it's going to keep me up tonight if I can't come up with a better solution.  And I'm a little rusty, to boot...
>>>
>>>The issue is one of data dependency and validation.  The goal is to enforce a restriction on pairs of data values- if the data associated with the node <Fruit><Name> is "Apple", then the value of the sibling node <Fruit><Abbrev> must be "APL".  Effectively, the goal is to enforce a specific mapping from one enum into another within an XML document. The only way my associate could figure to capture this dependency is as follows:
>>>
>>><xs:complexType name="Fruit">
>>>        <xs:annotation>
>>>                <xs:documentation>Defines the valid values for fruit types</xs:documentation>
>>>        </xs:annotation>
>>>        <xs:choice>
>>>                <xs:element name="APL" type="xs:token" fixed="Apple"/>
>>>                <xs:element name="ORG" type="xs:token" fixed="Orange"/>
>>>                <xs:element name="BAN" type="xs:token" fixed="Banana"/>
>>>                <xs:element name="LEM" type="xs:token" fixed="Lemon"/>
>>>                <xs:element name="GRP" type="xs:token" fixed="Grape"/>
>>>        </xs:choice>
>>></xs:complexType>
>>>
>>>All in all, this strikes me as a very ugly, even offensive, solution.  My initial response was to forget about the validation- it wasn't worth it.  Is there a way to preserve the data dependency validation without warping the instance document as the above schema fragment would require?
>>>
>>>Thanks,
>>>Linda
>>>

> 





 

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

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