<!-- Copyright 2004 The Apache Software Foundation

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

         http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<xs:schema
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   xmlns:tns="http://www.bea.com/2003/05/xmlbean/ltgfmt"
   targetNamespace="http://www.bea.com/2003/05/xmlbean/ltgfmt"
   elementFormDefault="qualified">

  <xs:element name="tests">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="test" type="tns:test-case" minOccurs="0" maxOccurs="unbounded"/> 
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="test-case">
    <xs:sequence>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="files">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="file" type="tns:file-desc" minOccurs="1" maxOccurs="4"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="id" type="xs:ID"/>
    <xs:attribute name="origin" type="xs:token"/>
    <xs:attribute name="modified" type="xs:boolean"/>
  </xs:complexType>
  
  <xs:complexType name="file-desc">
    <xs:sequence>
        <xs:element name="code" type="tns:code" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="tsDir" type="xs:token"/>
    <xs:attribute name="folder" type="xs:token"/>
    <xs:attribute name="fileName" type="xs:token"/>
    <xs:attribute name="role">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="schema"/>
          <xs:enumeration value="instance"/>
          <xs:enumeration value="resource"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="validity" type="xs:boolean"/>
  </xs:complexType>

  <xs:complexType name="code">
      <xs:attribute name="ID" type="xs:token"/>
  </xs:complexType>

</xs:schema>
