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] Re: RE : [xml-dev] Text or tags choice with XSD

[ Lists Home | Date Index | Thread Index ]

Hi Dare,

> Actually I was wrong. I've never thought about solving the problem
> using xsi:type before. Using xsi:type makes it possible, schema and
> instances follow

I would make the simple version explicitly a complex type with
*simple* content, as follows:

<!-- abstract base type is mixed and emptiable -->
<xs:complexType name="baseTime" mixed="true" abstract="true">
  <xs:sequence minOccurs="0">
    <xs:element name="hour" type="xs:integer" />
    <xs:element name="min" type="xs:integer" />

<!-- complex derived type is not mixed and must have element content
<xs:complexType name="complexTime">
    <xs:restriction base="baseTime">
        <xs:element name="hour" type="xs:integer" />
        <xs:element name="min" type="xs:integer" />

<!-- simple derived type has simple content -->
<xs:complexType name="simpleTime">
    <xs:restriction base="baseTime">
        <xs:restriction base="xs:token">
          <xs:pattern value="\d{2}:\d{2}" />

This gives you a control over the format of the simple version.

Note that there was a contradiction in the spec about whether this is
actually allowed or not, but this has been resolved, in favour of
allowing it, by Erratum E1-27 at:




Jeni Tennison


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

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