<?xml version="1.0" encoding="UTF-8" ?>

<xsd:schema
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  version="1.0.0">

  <xsd:annotation>
  	<xsd:documentation>
        Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved.
        DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER

        This program is free software; you can redistribute it and/or
        modify it under the terms of the GNU General Public License version
        2 only, as published by the Free Software Foundation.

        This program is distributed in the hope that it will be useful, but
        WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
        General Public License version 2 for more details (a copy is
        included at /legal/license.txt).

        You should have received a copy of the GNU General Public License
        version 2 along with this work; if not, write to the Free Software
        Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
        02110-1301 USA

        Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
        Clara, CA 95054 or visit www.sun.com if you need additional
        information or have any questions.
  	</xsd:documentation>
  </xsd:annotation>

  <xsd:simpleType name="IDWithColon">
    <xsd:annotation>
      <xsd:documentation>
        IDs are colon free strings followed by a colon followed by digits.
        The digits are there to disambiguate entries that are repeated.
        Repeats can occur for test results, for instance, when a test is
        run more than once.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[\w\.\[\]\(\)\{\},_-]+:[0-9]+"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="Machine">
    <xsd:annotation>
      <xsd:documentation>
        Machines are identified by name and date.  The name must be qualified.
        Only lower case is accepted in the COF.
        Host name space specifiers are defined in http://www.ietf.org/rfc/rfc2141.txt .  This
        schema checks for the existence of two or more domains in the name space specifier.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="([a-z0-9][a-z0-9\-]*[a-z0-9]\.){2,}([a-z][a-z0-9\-]*[a-z0-9])"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="KeyWord">
    <xsd:annotation>
      <xsd:documentation>
        Keywords are very rough descriptions of test content.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="DTF"/>
      <xsd:enumeration value="JPI"/>
      <xsd:enumeration value="JAWS"/>
      <xsd:enumeration value="JSS"/>
      <xsd:enumeration value="demo"/>
      <xsd:enumeration value="manual"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="KeyWords" abstract="false">
    <xsd:sequence>
      <xsd:element name="keyword" type="KeyWord" minOccurs="1" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="Bits">
    <xsd:restriction base="xsd:int">
      <xsd:enumeration value="32"/>
      <xsd:enumeration value="64"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="DisplayDepth">
    <xsd:annotation>
      <xsd:documentation>
        Display depth is recorded as part of a software configuration.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:int">
      <xsd:enumeration value="8"/>
      <xsd:enumeration value="12"/>
      <xsd:enumeration value="15"/>
      <xsd:enumeration value="16"/>
      <xsd:enumeration value="24"/>
      <xsd:enumeration value="32"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="OS">
    <xsd:annotation>
      <xsd:documentation>
        Operating system.
      </xsd:documentation>
      <xsd:documentation>
        Name should be one of windows, redhat_linux, turbo_linux,
        suse_linux, caldera_linux, mandrake_linux, solaris, palmos,
        psos, symbianos, or vxworks.
        These names are derived from BugTraq names.
      </xsd:documentation>
      <xsd:documentation>
        Versions are derived from BugTraq names.  Allowable version
        strings for Windows are 2000, 95, 98, ce, me, nt_4.0,
        pocketpc2000, pocketpc2002, and xp.
        Allowable version strings for Solaris are 2.6, 2.7, 8, and 9.
        Linux versioning is sane in comparison with that of Solaris
        and Windows.  Redhat versions are 5.1, 5.2, 6.0, 6.1, 6.2,
        7.0, 7.1, and 7.2.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="name">
        <xsd:simpleType>
          <xsd:restriction base="xsd:string">
            <xsd:enumeration value="caldera_linux"/>
            <xsd:enumeration value="mandrake_linux"/>
            <xsd:enumeration value="palmos"/>
            <xsd:enumeration value="psos"/>
            <xsd:enumeration value="redhat_linux"/>
            <xsd:enumeration value="solaris"/>
            <xsd:enumeration value="suse_linux"/>
            <xsd:enumeration value="symbianos"/>
            <xsd:enumeration value="turbo_linux"/>
            <xsd:enumeration value="windows"/>
            <xsd:enumeration value="vxworks"/>
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:element>
      <xsd:element name="version" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="TestAttribute">
    <xsd:annotation>
      <xsd:documentation>
        Test attributes encode test-specific settings that we might want recorded.
        The motivation for inclusion in the COF is the desire to record locale as
        set by a test, time zone as set by a test, and the use of the Java command
        line switches like -client, -server, -d32, or -d64.  It is expected that
        the absence of any use of -client or -server will be reflected by an absence
        of a TestAttribute element whose name is "client" or "server", respectively.
        Tests that use both flags should create an element for each setting.
        Similar considerations govern use of "d32" and "d64".
      </xsd:documentation>
      <xsd:documentation>
        Locale values should be in the usual Java format of strings separated by
        underscores.  For instance, ja, ja_JP, and ja_JP_custom are all valid.
        Locale values should be in the usual Java format of strings separated
        by underscores.  For instance, ja, ja_JP, and ja_JP_custom are all valid.
        The first string is a valid ISO Language Code and the second is a valid
        ISO Country Code.  The list of language and country codes are at
        http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt and
        http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html ,
        respectively.  The third string in the concatenation is for variants
        and can contain underscores.
      </xsd:documentation>
      <xsd:documentation>
        Time zone values document the time zone used for a particular test or
        test case.  Time zones should be in the format used by Java.  For instance, the
        string for Pacific Standard Time is "America/Los Angeles".  The list of
        supported time zones is obtained by invoking java.util.TimeZone.getAvailableIDs.
        Do not use a deprecated three-letter time zone ID.
      </xsd:documentation>
      <xsd:documentation>
        In general, a Java command line flag argument that it is agreed will get tracked as
        an attribute, say -foo,will get tracked by a test attribute <name>foo</name>
        without a corresponding value element.  A Java command line argument pair
        "-foo bar" will get tracked by a test attribute <name>foo</name><value>bar</value>.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/>
      <xsd:element name="value" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="TestAttributes">
    <xsd:sequence>
      <xsd:element name="attribute" type="TestAttribute" minOccurs="1" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Status">
    <xsd:annotation>
      <xsd:documentation>
        Status can be one of pass, fail, vm_fail, error, did_not_run, or ambiguous.
        Fail is for test failures that the test or test case anticipates.  A vm_fail
        status indicates that a VM failure caused the failure.  An example of this is
        a HotSpot abort.  An error status can be used to cover all failures not
        explained as a test or vm failure.  Examples are seg faults in the VM or
        a harness failure.
      </xsd:documentation>
      <xsd:documentation>
        Status did_not_run is an odd one.  It's there because test execution may
        conditional on the successful completion of a setup step, itself a test.
      </xsd:documentation>
      <xsd:documentation>
        The setting ambiguous is the least self-explanatory of the status codes.
        I18n tests are run in locales that they do not support.  These tests fail,
        but there failure has no meaning that should get reported back to product
        development.
      </xsd:documentation>
      <xsd:documentation>
        Expected elements contain text that refers to an expected value.  This
        can be anything.  A header, value, body, .....  If the tag log appears,
        it may be understood that a URL of a log file will appear as the PCDATA
        for this tag.  If present, that URL uses either http or file protocol.  If
        http protocol, the server name will be fully qualified.  If file protocol,
        the full path beginning with /net will be expected.  Microsoft file mapping or
        Unix automounts should not be used.
      </xsd:documentation>
      <xsd:documentation>
        Actual elements contain text that refers to an actual value.  This
        can be anything.  A header, value, body, .....  If the tag log appears,
        it may be understood that a URL of a log file will appear as the PCDATA
        for this tag.  If present, that URL uses either http or file protocol.  If
        http protocol, the server name will be fully qualified.  If file protocol,
        the full path beginning with /net will be expected.  Microsoft file mapping or
        Unix automounts should not be used.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence minOccurs="0" maxOccurs="1">
        <xsd:element name="expected" type="xsd:string" minOccurs="0" maxOccurs="1"/>
        <xsd:element name="actual" type="xsd:string" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
    <xsd:attribute name="value" use="required">
      <xsd:simpleType>
        <xsd:restriction base="xsd:string">
          <xsd:enumeration value="pass"/>
          <xsd:enumeration value="fail"/>
          <xsd:enumeration value="ambiguous"/>
          <xsd:enumeration value="error"/>
          <xsd:enumeration value="vm_fail"/>
          <xsd:enumeration value="did_not_run"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:attribute>
  </xsd:complexType>

  <xsd:complexType name="TestCase" abstract="false">
    <xsd:annotation>
      <xsd:documentation>
         Testcase elements define the test cases of a test that are
         exercised in the course of a run.  The id
         for a test takes the form test_case_name:unique_id. The information
         will be gathered using the test_coverage.xml file associated with the test case,
         if present.  The unique_id is unique within the xml file.  The unique_id portion
         is present because test run might contain repetitions.
         Testcases are often tests run with different command line arguments or
         environments.  Often, the different test cases in a test are in reality
         different methods inside that test's source code.
      </xsd:documentation>
      <xsd:documentation>
         The starttime and endtime fields use an XML format.  Times are in UTC (like
         those that java.util.Date works with).  An acceptable dateTime
         format is yyyy-mm-ddThh:mm:ss.ff.  DateTime format is specified in
         section 5.4 of ISO 8601.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="status" type="Status" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="starttime" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="endtime" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="attributes" type="TestAttributes" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
    <xsd:attribute name="id" type="IDWithColon" use="required"/>
  </xsd:complexType>

  <xsd:complexType name="TestCases" abstract="false">
    <xsd:sequence>
      <xsd:element name="testcase" type="TestCase" minOccurs="1" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Test" abstract="false">
    <xsd:annotation>
      <xsd:documentation>
         Test elements define all the tests exercised by the test suite.  The id
         for a test takes the form test_name:unique_id. The information
         will be gathered using the test_coverage.xml file associated with the test,
         if present.  The unique_id is unique within the xml file.  The unique_id portion
         is present because test run might contain repetitions.
      </xsd:documentation>
      <xsd:documentation>
         Status is required if there are zero test cases.
         Starttime is required if there are zero test cases.
         Endtime is required if there are zero test cases.
         The starttime and endtime fields use an XML format.  Times are in UTC (like
         those that java.util.Date works with).  An acceptable dateTime
         format is yyyy-mm-ddThh:mm:ss.ff.  DateTime format is specified in
         section 5.4 of ISO 8601.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="appuse" type="IDWithColon" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="status" type="Status" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="testcases" type="TestCases" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="starttime" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="endtime" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="keywords" type="KeyWords" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="attributes" type="TestAttributes" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
    <xsd:attribute name="id" type="IDWithColon" use="required"/>
  </xsd:complexType>

  <xsd:complexType name="Tests" abstract="false">
    <xsd:sequence>
      <xsd:element name="test" type="Test" minOccurs="1" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="TestSuite" abstract="false">
    <xsd:annotation>
      <xsd:documentation>
         Test suite elements contain the test suite name.  The name must be the same
         as one defined in the test_coverage.xml file, if that file is defined.
         The id element for a suite takes the form test_suite:unique_id.  The information
         will be gathered using the test_coverage.xml file associated with the test
         suite, if present.  The unique_id is unique within the xml file.  The
         unique_id portion is present because test run might contain repetitions.
      </xsd:documentation>
      <xsd:documentation>
         The version field uses an XML format.  Times are in UTC (like
         those that java.util.Date works with).  An acceptable dateTime
         format is yyyy-mm-ddThh:mm:ss.ff.  DateTime format is specified in
         section 5.4 of ISO 8601.
      </xsd:documentation>
      <xsd:documentation>
         The starttime and endtime fields use an XML format.  Times are in UTC (like
         those that java.util.Date works with).  An acceptable dateTime
         format is yyyy-mm-ddThh:mm:ss.ff.  DateTime format is specified in
         section 5.4 of ISO 8601.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="version" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="starttime" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="endtime" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="tests" type="Tests" minOccurs="1" maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="id" type="IDWithColon" use="required"/>
  </xsd:complexType>

  <xsd:complexType name="TestSuites" abstract="false">
    <xsd:sequence>
      <xsd:element name="testsuite" type="TestSuite" minOccurs="1" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Environment">
    <xsd:annotation>
      <xsd:documentation>
        Software configurations are a way to document the software environment used
        for testing.  
      </xsd:documentation>
      <xsd:documentation>
        Machines are identified by name, not Internet address.  The name must be
        fully qualified.  Hardware configuration is obtained with a combination of
        name and date.
      </xsd:documentation>
      <xsd:documentation>
        Locale documents the default locale for the test run.  Locale values should be
        in the usual Java format of strings separated by underscores.  For instance, ja,
        ja_JP, and ja_JP_custom are all valid.  The first string is a valid ISO
        Language Code and the second is a valid ISO Country Code.  The list of
        language and country codes are at
        http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt and
        http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html ,
        respectively.  The third string in the concatenation is for variants
        and can contain underscores.
      </xsd:documentation>
      <xsd:documentation>
        System-locale is that used by the OS to configure OS applications.  On Windows
        systems, system-locale is attached to the OS and cannot be changed.
        User-locale is that used by the Java API.  It is the setting reported out by
        java.util.Locale.getDefault().
      </xsd:documentation>
      <xsd:documentation>
        Time zone elements document the default time zone for the test run.
        Time zones should be in the format used by Java.  For instance, the
        string for Pacific Standard Time is "America/Los Angeles".  The list of
        supported time zones is obtained by invoking java.util.TimeZone.getAvailableIDs.
        Do not use a deprecated three-letter time zone ID.
      </xsd:documentation>
      <xsd:documentation>
        JDK elements use the property java.runtime.version.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="machine" type="Machine"/>
      <xsd:element name="os" type="OS"/>
      <xsd:element name="jdk" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="system-locale" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="user-locale" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="timezone" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="bits" type="Bits" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="displaydepth" type="DisplayDepth" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="sw" type="SWEntity" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="id" type="IDWithColon" use="required"/>
  </xsd:complexType>

  <xsd:complexType name="Environments">
    <xsd:sequence>
      <xsd:element name="environment" type="Environment" minOccurs="1" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="SWEntity">
    <xsd:annotation>
      <xsd:documentation>
        Software is tracked in the hardware/software database that backs up
        the COF XML.  The elements in the SW type map to fields in the software
        table of that database.
        Type is enumerated.  See below.
        Name is a product name with no version string.  For example, "Tomcat".
        Version is a product version.  For instance, "8i".
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="type">
        <xsd:simpleType>
          <xsd:restriction base="xsd:string">
            <xsd:enumeration value="appserver"/>
            <xsd:enumeration value="browser"/>
            <xsd:enumeration value="database"/>
            <xsd:enumeration value="editor"/>
	        <xsd:enumeration value="java"/>
            <xsd:enumeration value="webserver"/>
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:element>
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="version" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
    <xsd:attribute name="id" type="IDWithColon" use="required"/>
  </xsd:complexType>

  <xsd:complexType name="SWEntities" abstract="false">
    <xsd:sequence>
      <xsd:element name="swentity" type="SWEntity" minOccurs="1" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Application" abstract="false">
    <xsd:attribute name="id" type="IDWithColon" use="required"/>
    <xsd:attribute name="environmentid" type="IDWithColon" use="required"/>
    <xsd:attribute name="swentityid" type="IDWithColon" use="required"/>
  </xsd:complexType>

  <xsd:complexType name="Applications" abstract="false">
    <xsd:sequence>
      <xsd:element name="application" type="Application" minOccurs="1" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Report" abstract="false">
    <xsd:annotation>
      <xsd:documentation>
         The version is the common XML output version.  The first version will be 1.0.
         The date fields use an XML format.  Times are in UTC (like
         those that java.util.Date works with).  An acceptable dateTime
         format is yyyy-mm-ddThh:mm:ss.ff.  DateTime format is specified in
         section 5.4 of ISO 8601.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="date" type="xsd:dateTime"/>
      <xsd:element name="version" type="xsd:string"/>
      <xsd:element name="environments" type="Environments"/>
      <xsd:element name="swentities" type="SWEntities" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="applications" type="Applications" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="operator" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="harness" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="testsuites" type="TestSuites" minOccurs="1" maxOccurs="unbounded"/>
	  <xsd:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:element name="report" type="Report">
  <xsd:key name="EnvironmentKey">
    <xsd:selector xpath="report/environments/environment"/>
    <xsd:field xpath="@id"/>
  </xsd:key>
  <xsd:keyref name="RefToEnvironment" refer="EnvironmentKey">
    <xsd:selector xpath="report/applications/application"/>
    <xsd:field xpath="@environmentid"/>
  </xsd:keyref>

  <xsd:key name="SWEntityKey">
    <xsd:selector xpath="report/swentities/swentity"/>
    <xsd:field xpath="@id"/>
  </xsd:key>
  <xsd:keyref name="RefToSWEntity" refer="SWEntityKey">
    <xsd:selector xpath="report/applications/application"/>
    <xsd:field xpath="@swentityid"/>
  </xsd:keyref>

  <xsd:key name="ApplicationKey">
    <xsd:selector xpath="report/applications/application"/>
    <xsd:field xpath="@id"/>
  </xsd:key>
  <xsd:keyref name="RefToApplication" refer="ApplicationKey">
    <xsd:selector xpath="report/testsuites/testsuite/tests/test/appuse"/>
    <xsd:field xpath="@id"/>
  </xsd:keyref>

  <xsd:unique name="UniqueTestSuiteID">
    <xsd:selector xpath="report/testsuites/testsuite"/>
    <xsd:field xpath="@id"/>
  </xsd:unique>

  <xsd:unique name="UniqueTestID">
    <xsd:selector xpath="report/testsuites/testsuite/tests/test"/>
    <xsd:field xpath="@id"/>
  </xsd:unique>

  <xsd:unique name="UniqueTestCaseID">
    <xsd:selector xpath="report/testsuites/testsuite/tests/test/testcases/testcase"/>
    <xsd:field xpath="@id"/>
  </xsd:unique>

  </xsd:element>

</xsd:schema>
