[
Lists Home |
Date Index |
Thread Index
]
You need to do restriction and extension in two separate steps, via an
intermediate named type.
I don't think it's possible to declare that only one element can have
default="true" and at the same time allow multiple elements to specify
default="false". The XPath expression allowed in unique/key constraints
aren't rich enough. However, if default="false" is never specified (or is
only specified once), then I think it can probably be done.
Michael Kay
> -----Original Message-----
> From: Peter Loh Yoon Chao [mailto:yoonchao@starhub.net.sg]
> Sent: 07 April 2004 12:23
> To: xml-dev@lists.xml.org
> Subject: [xml-dev] 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>
>
>
|