← Prev in month
← Prev in thread
RE: [xml-dev] XML Schema Question: specifying restrictions for a list of elements
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" elementFormDefault="qualified"> <xs:element name="computer-list"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" ref="computer"/> </xs:sequence> </xs:complexType> <xs:key name="atLeastOnedefault"> <xs:selector xpath="."/> <xs:field xpath="computer/@default"/> </xs:key> <xs:unique name="atMostOnedefault"> <xs:selector xpath="computer"/> <xs:field xpath="@default"/> </xs:unique> </xs:element> <xs:element name="computer"> <xs:complexType> <xs:simpleContent> <xs:restriction base="xs:anyType"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="Dell"/> <xs:enumeration value="HP"/> </xs:restriction> </xs:simpleType> <xs:attribute name="default"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="true"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:restriction> </xs:simpleContent> </xs:complexType> </xs:element> </xs:schema> works fine with Xerces2-J. Eric -- Tired to type XML tags? http://wikiml.org 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 ------------------------------------------------------------------------
← Prev in month
← Prev in thread