← Prev in month ← Prev in thread

XML Schema Question: specifying restrictions for a list of elements

From
Peter Loh Yoon Chao <>
To
Date
2004-04-07T12:23:13Z
ID
<>
Thread
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
← Prev in month ← Prev in thread