[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: XML Schema Question: specifying restrictions for a list of
Peter, I don't know if this can be done in XSD, but here is a RELAX NG schema ( compact syntax ) that can handle it: start = computer_list computer_list = element computer_list { computer* & computerDefault } computer = element computer { computerNames } computerDefault = element computer { attribute default { xsd:boolean }, computerNames } computerNames = 'HP' | 'Dell' You can interleave ('&' connector) the single 'computer with default attribute' with one or more 'computers without default attribute'. Tom -----Original Message----- From: Peter Loh Yoon Chao [mailto:yoonchao@s...] Sent: Wednesday, April 07, 2004 8:23 AM To: xml-dev@l... Subject: XML Schema Question: specifying restrictions for a list of elements Hi, I have the following construct in my XML document: <computer_list> <computer default="true">Dell</do_type> <computer>HP</do_type> </computer_list> Only 1 of <computer> can have the "default" attribute set to true. I am trying to specify the corresponding XML schema to enforce this. I tried the following among other variations: <xs:element name="computer_list"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="computer"> <xs:complexType> <xs:simpleContent> <xs:restriction base="xs:string"> <xs:enumeration value="Dell"/> <xs:enumeration value="HP"/> </xs:restriction> <xs:extension base="xs:string"> <xs:attribute name="default" type="xs:boolean" use="optional" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> The above suffers from the following problems: 1.) It allows the "default" attribute to be set to true for any number of <computer>. 2.) With the <xs:restriction> element, the parser complained that "Element 'extension' is invalid, misplaced, or occurs too often." Would really appreciate any input as to the modifications required to achieve my objectives. Thanks. Peter ----------------------------------------------------------------- The xml-dev list is sponsored by XML.org <http://www.xml.org>, an initiative of OASIS <http://www.oasis-open.org> The list archives are at http://lists.xml.org/archives/xml-dev/ To subscribe or unsubscribe from this list use the subscription manager: <http://www.oasis-open.org/mlmanage/index.php>
|
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
|