[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Schema validation question
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 >>> >
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|