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" />
  </xs:sequence>
</xs:complexType>

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

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

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:

  http://www.w3.org/2001/05/xmlschema-errata#e1-27

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/





 

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

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