<?xml version="1.0" encoding="UTF-8"?>
<!--  

PushToTest(TM) TestMaker is the open-source SOA governance and test  
automation platform. The PushToTest runtime turns unit and functional  
tests into scalability and performance tests and service monitors  
with no extra effort.

- Reduce development costs by finding bugs and scalability problems  
fasterf
- Reduce the time to validate installations, upgrades, patches, and  
customizations
- Effortlessly develop proof of your service level agreements (SLA)

The PushToTest Company (http://www.pushtotest.com) distributes the  
PushToTest platform in three ways:

1) GPL version 2- A free open source license allows you to make  
changes to the PushToTest platform, including fixing bugs, adding new  
features, and improving performance.

2) Distribution License - Licenses you to run the PushToTest platform  
runtime for free, including distributing the PushToTest runtime with  
your software packages.

3) Commercial License - A commercial license for organizations that  
adopt the PushToTest platform runtime and need a close business  
relationship with the PushToTest company and extended features and  
functions.

For more info check http://www.pushtotest.com or send email to  
info@pushtotest.com

-

This program is free software; you can redistribute it and/or modify  
it under
the terms of the GNU General Public License as published by the Free  
Software
Foundation; either version 2 of the License, or (at your option) any  
later version.

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 for more details

PushToTest TestMaker comes with a copy of the GNU General Public  
License in the docs/license.html file;
if you cannot find the license, then write to the Free Software  
Foundation, Inc., 59 Temple
Place - Suite 330, Boston, MA 02111-1307, USA.

Please direct questions regarding this license agreement to  
PushToTest at
2248 Montezuma Drive, Campbell, California 95008 USA, phone: (408)  
374-7426.

(c) 2007 Frank Cohen. All rights reserved.
-->
<schema targetNamespace="www.pushtotest.com/tm5"
	xmlns:xsd="www.pushtotest.com/tm5"
	xmlns:xsdw3c="http://www.w3.org/2001/XMLSchema"
	xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
	attributeFormDefault="unqualified">
	<element name="testscenario" type="xsd:testscenario_t" />
	<complexType name="testscenario_t">
		<all>
			<element name="basics" type="xsd:basics_t" minOccurs="0" />
			<element name="testnodes" type="xsd:testnodes_t" minOccurs="0"  />
			<element name="arguments" type="xsd:arguments_t"  minOccurs="0" />
			<element name="DataSources" type="xsd:datasources_t" minOccurs="0" />
			<element name="resources" type="xsd:resources_t" minOccurs="0"  />
			
			<element name="ftest" type="xsd:monitorTest_t" minOccurs="0"  />
			<element name="monitor" type="xsd:monitorTest_t" minOccurs="0"  />
			<element name="loadtest" type="xsd:loadTest_t" minOccurs="0" />
                        <element name="shocktest" type="xsd:loadTest_t" minOccurs="0" />
                        <element name="functionaltest" type="xsd:loadTest_t" minOccurs="0" />
			
			<element name="logs" type="xsd:logs_t" minOccurs="0"  />
			<element name="tally" type="xsd:tally_t" minOccurs="0" />
			<element name="chart" type="xsd:chart_t" minOccurs="0" />
			<element name="monitoring" type="xsd:monitor_t" minOccurs="0" />
			<element name="options" type="xsd:options_t" minOccurs="0" />
			<element name="mail" type="xsd:mail_t" minOccurs="0" />
			<element name="notifications" type="xsd:notifications_t" minOccurs="0" />
		</all>
		<attribute name="version" type="float" use="required" />
	</complexType>
	<complexType name="basics_t">
		<sequence>
			<element name="name" type="string" />
			<element name="defaultdirectory" type="string" minOccurs="0" maxOccurs="1"  />
			<element name="properties" type="xsd:path_t" minOccurs="0" />
			<element name="uri" type="string" maxOccurs="1" minOccurs="0"></element>
			<element name="wsdl" type="string" maxOccurs="1" minOccurs="0"></element>
			<element name="description" type="string" maxOccurs="1" minOccurs="0" />
			<element name="accepts" type="xsd:accepts_t" maxOccurs="1" minOccurs="0"/>
			<element name="security" type="xsd:security_t" maxOccurs="1" minOccurs="0" />
		</sequence>
	</complexType>
	<complexType name="accepts_t">
		<sequence>
			<element name="wsdl" maxOccurs="unbounded" type="string" minOccurs="0"/>
		</sequence>
		<attribute name="type" use="required"/>
	</complexType>
	<complexType name="security_t">
		<sequence>
			<element name="certificate" type="string"/>
			<element name="id" type="string"/>
			<element name="note" type="string"/>
		</sequence>
		<attribute name="type" use="required"/>
	</complexType>
	<complexType name="testnodes_t">
		<sequence>
			<element name="node" type="xsd:node_t" minOccurs="0"
				maxOccurs="unbounded" />
		</sequence>
	</complexType>
	<complexType name="node_t">
		<attribute name="name" type="string" />
		<attribute name="location" type="string" />
                <attribute name="monitor" type="string"/>
	</complexType>
	<complexType name="arguments_t">
		<sequence>
			<element name="argument" type="xsd:argument_t" minOccurs="0"
				maxOccurs="unbounded" />
		</sequence>
	</complexType>
	<complexType name="argument_t">
		<attribute name="name" type="string" />
		<attribute name="value" type="string" />
		<attribute name="dpl" type="string" />
		<attribute name="index" type="string" />
	</complexType>
	<complexType name="resources_t">
		<sequence>
			<choice minOccurs="0" maxOccurs="unbounded">
				<element name="jar" type="xsd:jar_t" />
				<element name="soapui" type="xsd:soapuiT" />
                                <element name="selenese" type="xsd:seleneseT" />
				<element name="testgen4web" type="xsd:testgen4web_t" />
                                <element name="data" type="xsd:data_t" />
				<element name="module" type="xsd:module_t" />
			</choice>
		</sequence>
                <attribute name="path" type="string" />
	</complexType>
	<complexType name="jar_t">
		<attribute name="path" type="string" />
	</complexType>
	<complexType name="data_t">
		<attribute name="path" type="string" />
	</complexType>
	<complexType name="testusecase_t">
		<sequence>
			<element name="dimensions" type="xsd:dimensions_t" />
		</sequence>
	</complexType>
	<complexType name="dimensions_t">
		<sequence>
			<element name="crlevels" type="xsd:crlevels_t"
				minOccurs="0" />
			<element name="messagesizes" type="xsd:messagesizes_t"
				minOccurs="0" />
			<element name="dataindices" type="xsd:dataindex_t"
				minOccurs="0" /> 
                                <element name="barin" type="xsd:call_t" minOccurs="0" maxOccurs="1" />
			<element name="setup" type="xsd:call_t" minOccurs="0" maxOccurs="1"/>                                 
			<element name="usecases">
				<complexType>
					<choice>
						<element name="usecase" type="xsd:usecase_t" minOccurs="0"
							maxOccurs="unbounded" />
							<sequence maxOccurs="1" minOccurs="1">
								<element name="setup" type="xsd:call_t" minOccurs="0" />
								<choice maxOccurs="1" minOccurs="1">
									<element name="test" type="xsd:test_t" />
									<element name="sequence" type="xsd:sequence_t"
										maxOccurs="unbounded" />
								</choice>
								<element name="teardown" type="xsd:call_t" minOccurs="0" />
							</sequence>
					</choice>
				</complexType>
			</element>
			<element name="teardown" type="xsd:call_t" minOccurs="0" maxOccurs="1"/>                           

		</sequence>
	</complexType>
	<complexType name="crlevels_t">
		<sequence>
			<element name="crlevel" type="xsd:valueContainer_t"
				maxOccurs="unbounded" />
		</sequence>
	</complexType>
	<complexType name="usecases_t">
		</complexType>
	<complexType name="usecase_t">
		<sequence>
			<element name="setup" type="xsd:call_t" minOccurs="0" />
			<choice maxOccurs="1" minOccurs="1">
				<element name="test" type="xsd:test_t" />
				<element name="sequence" type="xsd:sequence_t"
					maxOccurs="unbounded" />
			</choice>
			<element name="teardown" type="xsd:call_t" minOccurs="0" />
		</sequence>
		<attribute name="name" type="string" />
	</complexType>
	<complexType name="call_t">
		<sequence>
			<element name="argument" type="xsd:argument_t" minOccurs="0"
				maxOccurs="unbounded" />
		</sequence>
		<attribute name="instance" type="string" />
                <attribute name="name" type="string" />
		<attribute name="testclass" type="string" />
		<attribute name="method" type="string" />
		<attribute name="langtype" type="string" />
		<attribute name="module" type="string" />
                <attribute name="timeout" type="long" />

	</complexType>
	<complexType name="test_t">
		<sequence>
                        <element name="while" type="xsd:call_t" minOccurs="0" maxOccurs="1" />
			<element name="setup" type="xsd:call_t" minOccurs="0"  maxOccurs="1"/>
			<element name="run" type="xsd:call_t" maxOccurs="unbounded" minOccurs="0"/>
			<element name="teardown" type="xsd:call_t" minOccurs="0" maxOccurs="1"/>
		</sequence>
		<attribute name="name">
			<simpleType>
				<restriction base="string" />
			</simpleType>
		</attribute>
	</complexType>
	<complexType name="logs_t">
            
		<sequence>
			<element name="log" type="xsd:log_t" minOccurs="0"
				maxOccurs="unbounded" />
		</sequence>
                <attribute name="summaryreport" type="boolean" />
                <attribute name="showsummary" type="boolean" />
                <attribute name="chart" type="string" />
                <attribute name="step" type="boolean" />
                <attribute name="logerror" type="boolean" />
	</complexType>
	<complexType name="log_t">
		<attribute name="type" type="string" />
		<attribute name="path" type="string" />
		<attribute name="level" type="string" />
		<attribute name="connector" type="string"/>
		<attribute name="url" type="string"></attribute>
		<attribute name="loggin" type="string"></attribute>
		<attribute name="password" type="string"></attribute>
	</complexType>
	<complexType name="tally_t">
		<attribute name="enabled" type="string" />
		<attribute name="destination" type="string" />
		<attribute name="archive" type="string" />
		<attribute name="basefilename" type="string" />
	</complexType>
	<complexType name="chart_t">
		<sequence>
			<element name="graph" type="xsd:graph_type" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
		<attribute name="liveresults" type="boolean" />
                <attribute name="usedatacompression" type="boolean" />
                <attribute name="samples" type="int" />
	</complexType>
	<complexType name="graph_type">
		<sequence>
			<element name="XAxis" type="xsd:Axis_type"/>
			<element name="YAxis" type="xsd:Axis_type"/>
			<element name="options" type="xsd:options_type" minOccurs="0"/>
			<element name="series" type="xsd:series_type"/>
		</sequence>
		<attribute name="name" type="string"/>
                <attribute name="type" type="string"/>
	</complexType>
	<complexType name="Axis_type">
		<attribute name="value" type="string"/>
	</complexType>
	<complexType name="series_type">
		<sequence>
			<element name="name" type="string" minOccurs="1" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<complexType name="options_type">
		<sequence>
			<element name="option" type="xsd:option_type" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<complexType name="option_type">
		<attribute name="name" type="string"/>
		<attribute name="value" type="string"/>
	</complexType>
	<complexType name="value_type">
		<attribute name="name" type="string"/>
	</complexType>
	<complexType name="monitor_t">
		<sequence>
			<element name="host" type="xsd:targethost_type" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>            
		<attribute name="enablednodes" type="boolean" />
		<attribute name="enabledtarget" type="boolean" />
		<attribute name="targethost" type="string" />
	</complexType>
	<complexType name="targethost_type">
		<attribute name="name" type="string"/>
                <attribute name="location" type="string"/>
                <attribute name="enabled" type="boolean"/>
	</complexType>     
	<xsdw3c:complexType name="options_t">
		<xsdw3c:all>
			<xsdw3c:element name="debug" type="xsd:debug_t" minOccurs="0"/>
			<xsdw3c:element name="sleeptime" type="int" minOccurs="0"/>
			<xsdw3c:element name="sleepTime" type="xsd:seconds_t" minOccurs="0"/>
			<xsdw3c:element name="delayBetweenStartingUseCases" type="xsd:seconds_t" minOccurs="0"/>
			<xsdw3c:element name="delayBetweenTestCases" type="xsd:seconds_t" minOccurs="0"/>
			<xsdw3c:element name="testTime" type="xsd:seconds_t" minOccurs="0"/>
			<xsdw3c:element name="target" type="xsd:node_t" minOccurs="0"/>
			<xsdw3c:element name="logging" type="xsd:logging_t" minOccurs="0"/>
			<xsdw3c:element name="htmlunit" type="xsd:htmlunit_type" minOccurs="0"/>
			<xsdw3c:element name="selenium" type="xsd:selenium_type" minOccurs="0"/>
		</xsdw3c:all>
	</xsdw3c:complexType>
	<xsdw3c:complexType name="selenium_type">
		<xsdw3c:attribute name="rc" type="boolean"/>
		<xsdw3c:attribute name="port" type="int"/>
	</xsdw3c:complexType>
	<complexType name="valueContainer_t">
		<attribute name="start" type="int" />
		<attribute name="multiple" type="int" />
		<attribute name="steps" type="int" />
		<attribute name="value" type="int" />
                <attribute name="name" type="string" />
                <attribute name="size" type="int" />
        </complexType>        
	<complexType name="htmlunit_type">
		<attribute name="DebuggingWebConnection" type="boolean" />
		<attribute name="HtmlUnitContextFactory" type="boolean" />
                <attribute name="xmltestresultimpl" type="boolean" />
                <attribute name="csswarning" type="boolean" />
                <attribute name="jswarning" type="boolean" />
	</complexType>
	<complexType name="messagesizes_t">
		<sequence>
			<element name="messagesize" type="xsd:valueContainer_t"
				maxOccurs="unbounded" />
		</sequence>
	</complexType>
	<complexType name="dataindex_t">
		<sequence>
			<element name="dataindex" type="xsd:valueContainer_t"
				maxOccurs="unbounded" />
		</sequence>
	</complexType>
	<complexType name="notifications_t">
		<sequence>
			<element name="email" type="xsd:email_t" minOccurs="0"
				maxOccurs="unbounded" />
		</sequence>
	</complexType>
	<complexType name="email_t">
		<attribute name="on" type="string" />
		<attribute name="email" type="string" />
		<attribute name="subject" type="string" />

		<attribute name="message" type="string" />
		<attribute name="id" type="string" />
		<attribute name="password" type="string" />
		<attribute name="host" type="string" />
		<attribute name="secure" type="string" />
	</complexType>
	<complexType name="sequence_t">
		<sequence>
			<element name="setup" type="xsd:call_t" minOccurs="0" />
			<element name="test" type="xsd:test_t" />
			<element name="teardown" type="xsd:call_t" minOccurs="0" />
		</sequence>
		<attribute name="proportion" type="int" />
		<attribute name="name" type="string" />
                <attribute name="mustrun" type="boolean" />
	</complexType>
	<complexType name="debug_t">
		<attribute name="loglevel" type="int" />
	</complexType>
	<complexType name="path_t">
		<attribute name="path" type="string" />
	</complexType>
	<complexType name="seconds_t">
		<attribute name="time" type="int" />
	</complexType>
	<complexType name="soapuiT">
		<attribute name="path" type="string" />
	</complexType>
	<complexType name="seleneseT">
		<attribute name="path" type="string" />
	</complexType>
	<complexType name="testgen4web_t">
		<attribute name="path" type="string" />
	</complexType>
	<complexType name="datasources_t">
		<sequence>
			<element name="dplDefType" type="xsd:dplDefType_t"
				minOccurs="0" maxOccurs="unbounded" />
			<element name="dpl" type="xsd:dpl_t" minOccurs="0"
				maxOccurs="unbounded" />
		</sequence>
	</complexType>
	<complexType name="dpl_t">
		<sequence>
			<element name="argument" type="xsd:argument_t" minOccurs="0"
				maxOccurs="unbounded" />
		</sequence>
		<attribute name="name" type="string" />
		<attribute name="type" type="string" />
	</complexType>
	<complexType name="dplDefType_t">
		<attribute name="name" type="string" />
		<attribute name="library" type="string" />
		<attribute name="lang" type="string" />
		<attribute name="classname" type="string" />
	</complexType>
	<complexType name="module_t">
		<attribute name="name" type="string" />
		<attribute name="path" type="string" />
	</complexType>

	<complexType name="monitorTest_t">
		<sequence>
			<element name="until" type="xsd:until_t" maxOccurs="1" minOccurs="0"/>
			<element name="messagesize" type="xsd:valueContainer_t" maxOccurs="1" minOccurs="0" />
			<element name="testusecase" type="xsd:testusecase_t" />
		</sequence>
		<attribute name="repeat" type="int"></attribute>
		<attribute name="timeBetweenTest" type="int"></attribute>
		<attribute name="checkTime" type="int"></attribute>
	</complexType>

	<complexType name="exception_t">
		<attribute name="type" type="string" />
	</complexType>

	<complexType name="until_t">
		<sequence>
			<element name="exception" type="xsd:exception_t"
				maxOccurs="unbounded" minOccurs="0" />
		</sequence>
		<attribute name="timeExceeds" type="int" />
	</complexType>

	<complexType name="loadTest_t">
		<sequence>
			<element name="testusecase" type="xsd:testusecase_t"></element>
		</sequence>
                <attribute name="repeat" type="int" />
	</complexType>

	<complexType name="mail_t">
		<sequence>
			<element name="username" type="xsd:container_t"></element>
			<element name="password" type="xsd:container_t"></element>
			<element name="hostname" type="xsd:container_t"></element>
		</sequence>
	</complexType>

	<complexType name="container_t">
		<attribute name="value" type="string"></attribute>
	</complexType>
        
	<complexType name="logging_t">
		<attribute name="step" type="boolean" />
	</complexType>
</schema>
