<?xml version="1.0"?>

<!--

file      : examples/cxx/tree/performance/test.xsd
author    : Boris Kolpackov <boris@codesynthesis.com>
copyright : not copyrighted - public domain

-->

<schema targetNamespace="test" xmlns:t="test"
        xmlns="http://www.w3.org/2001/XMLSchema">

  <simpleType name="enum">
    <restriction base="string">
      <enumeration value="romance"/>
      <enumeration value="fiction"/>
      <enumeration value="horror"/>
      <enumeration value="history"/>
      <enumeration value="philosophy"/>
    </restriction>
  </simpleType>

  <complexType name="record">
    <sequence>
      <element name="int" type="unsignedInt"/>
      <element name="double" type="double"/>
      <element name="name" type="NCName"/>
      <element name="string" type="string" minOccurs="0" maxOccurs="1"/>
      <choice>
        <element name="choice1" type="string"/>
        <element name="choice2" type="string"/>
        <element name="choice3" type="string"/>
        <element name="choice4" type="string"/>
      </choice>
      <element name="enum" type="t:enum"/>
    </sequence>
    <attribute name="apple" type="boolean"/>
    <attribute name="orange" type="unsignedLong" use="required"/>
  </complexType>

  <complexType name="root">
    <sequence>
      <element name="record" type="t:record" maxOccurs="unbounded"/>
    </sequence>
  </complexType>

  <element name="root" type="t:root"/>

</schema>
