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] XML Schema Question: specifying restrictions for a list of

[ 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>
> 
> 





 

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

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