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 alist of

[ Lists Home | Date Index | Thread Index ]

On Wed, 2004-04-07 at 15:11, Michael Kay wrote:
> 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.

Yes, that's a hack prone to interoperability issues, but this schema:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
  <xs:element name="computer-list">
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="computer"/>
    <xs:key name="atLeastOnedefault">
      <xs:selector xpath="."/>
      <xs:field xpath="computer/@default"/>
    <xs:unique name="atMostOnedefault">
      <xs:selector xpath="computer"/>
      <xs:field xpath="@default"/>
  <xs:element name="computer">
        <xs:restriction base="xs:anyType">
            <xs:restriction base="xs:token">
              <xs:enumeration value="Dell"/>
              <xs:enumeration value="HP"/>
          <xs:attribute name="default">
              <xs:restriction base="xs:token">
                <xs:enumeration value="true"/>

works fine with Xerces2-J.


Tired to type XML tags?
Upcoming XML schema languages tutorial:
 - Amsterdam   -half day- (18/04/2004)        http://masl.to/?P220516D7
Eric van der Vlist       http://xmlfr.org            http://dyomedea.com
(ISO) RELAX NG   ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema


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

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