<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	    xmlns="http://incubator.apache.org/harmony/testing" 
	    targetNamespace="http://incubator.apache.org/harmony/testing">

  <!--
  * A suite contains zero or more type declarations 
  -->
  <xsd:element name="suite">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="type" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  <!--
  * A type contains one or more exclude elements.
  * A type has a single attribute (id) which can be
  * any meaningful character value that is based on
  * proper XML naming conventions (must begin with a 
  * letter or underscore).
  -->
  <xsd:element name="type">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="exclude" minOccurs="1" maxOccurs="unbounded"/>
      </xsd:sequence>
      <xsd:attribute name="id" type="idtype" use="required" />
    </xsd:complexType>
  </xsd:element>

  <!--
  * An exclude element can have an optional reason
  * element. 
  -->
  <xsd:element name="exclude">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="reason" minOccurs="0" maxOccurs="1"/>
      </xsd:sequence>
      <xsd:attribute name="id" type="idtype"  default="all" />
      <xsd:attribute name="platform" type="platformlisttype" default="all" />
      <xsd:attribute name="shouldfix" type="booleanstringtype" default="true" />
    </xsd:complexType>
  </xsd:element>

<!--
  * A reason element has no attributes, only parsed
  * character data.	
  -->
  <xsd:element name="reason">
    <xsd:complexType mixed="true"/>
  </xsd:element>

 
  <!--
  * Type idtype is any string data.
  -->
  <xsd:simpleType name="idtype">
    <xsd:restriction base="xsd:string"/>
  </xsd:simpleType>
  

  <!--
  * Type platformstringtype is one of the 
  * strings "all", "win.IA32" or "linux.IA32".
  -->
  <xsd:simpleType name="platformstringtype" >
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="win.IA32"/>
      <xsd:enumeration value="linux.IA32"/>
      <xsd:enumeration value="all"/>
    </xsd:restriction>
  </xsd:simpleType>


  <xsd:simpleType name="platformlisttype">
    <xsd:list itemType="platformstringtype"/>
  </xsd:simpleType>


  <!--
  * Type booleanstringtype is one of the 
  * strings "true" or "false".
  -->
  <xsd:simpleType name="booleanstringtype" >
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="true"/>
      <xsd:enumeration value="false"/>
    </xsd:restriction>
  </xsd:simpleType>
  
</xsd:schema>