<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:annotation>
	<xs:documentation xml:lang="en">
		Phoronix Test Suite / OpenBenchmarking.org XML Test Profile Specification
		Copyright (C) 2008 - 2015, Phoronix Media
		Copyright (C) 2008 - 2015, Michael Larabel
	</xs:documentation>
</xs:annotation>
<xs:include schemaLocation="types.xsd" />
<xs:element name="PhoronixTestSuite">
<xs:complexType>
<xs:sequence>
		<xs:element name="TestInformation" minOccurs="0" maxOccurs="1">
		<xs:complexType>
		<xs:sequence>
			<xs:element name="Title" type="TitleString" minOccurs="0" maxOccurs="1" />
			<xs:element name="AppVersion" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="Description" type="DescriptionString" minOccurs="0" maxOccurs="1" />
			<xs:element name="ResultScale" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="Proportion" type="Proportion" minOccurs="0" maxOccurs="1" />
			<xs:element name="ResultQuantifier" type="ResultQuantifier" minOccurs="0" maxOccurs="1" />
			<xs:element name="DisplayFormat" type="DisplayFormat" minOccurs="0" maxOccurs="1" />
			<xs:element name="SubTitle" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="Executable" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="TimesToRun" type="TimesToRun" minOccurs="0" maxOccurs="1" />
			<xs:element name="IgnoreRuns" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="InstallationAgreement" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="PreInstallMessage" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="PostInstallMessage" type="xs:string" minOccurs="0" maxOccurs="1" />
		</xs:sequence>
		</xs:complexType>
		</xs:element>

		<xs:element name="TestProfile">
		<xs:complexType>
		<xs:sequence>
			<xs:element name="Version" type="VersionString" />
			<xs:element name="SupportedPlatforms" type="PlatformString" minOccurs="0" maxOccurs="1"  />
			<xs:element name="SoftwareType" type="SoftwareType" minOccurs="0" maxOccurs="1"  />
			<xs:element name="TestType" type="TestType" minOccurs="0" maxOccurs="1" />
			<xs:element name="License" type="License" minOccurs="0" maxOccurs="1" />
			<xs:element name="Status" type="ProfileStatus" minOccurs="0" maxOccurs="1" />
			<xs:element name="SupportedArchitectures" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="ExternalDependencies" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="Extends" type="TestExtends" minOccurs="0" maxOccurs="1" />
			<xs:element name="RequiresRoot" type="Boolean" minOccurs="0" maxOccurs="1" />
			<xs:element name="EnvironmentSize" type="xs:decimal" minOccurs="0" maxOccurs="1" />
			<xs:element name="EnvironmentTestingSize" type="xs:decimal" minOccurs="0" maxOccurs="1" />
			<xs:element name="EstimatedTimePerRun" type="PositiveInteger" minOccurs="0" maxOccurs="1" />
			<xs:element name="ProjectURL" type="URLString" minOccurs="0" maxOccurs="1" />
			<xs:element name="RequiresCoreVersionMin" type="CoreVersion" minOccurs="0" maxOccurs="1" />
			<xs:element name="RequiresCoreVersionMax" type="CoreVersion" minOccurs="0" maxOccurs="1" />
			<xs:element name="InternalTags" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="Maintainer" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="AllowResultsSharing" type="Boolean" minOccurs="0" maxOccurs="1" />
			<xs:element name="AutoSaveResults" type="Boolean" minOccurs="0" maxOccurs="1" />
			<xs:element name="SystemDependencies" type="xs:string" minOccurs="0" maxOccurs="1" />
		</xs:sequence>
		</xs:complexType>
		</xs:element>

		<xs:element name="TestSettings" minOccurs="0" maxOccurs="1">
		<xs:complexType>
		<xs:sequence>
			<xs:element name="Default" minOccurs="0" maxOccurs="1">
			<xs:complexType>
			<xs:sequence>
				<xs:element name="Arguments" type="xs:string" minOccurs="0" maxOccurs="1" />
				<xs:element name="PostArguments" type="xs:string" minOccurs="0" maxOccurs="1" />
				<xs:element name="AllowCacheShare" type="Boolean" minOccurs="0" maxOccurs="1" />
				<xs:element name="MinimumLength" type="xs:decimal" minOccurs="0" maxOccurs="1" />
				<xs:element name="MaximumLength" type="xs:decimal" minOccurs="0" maxOccurs="1" />
			</xs:sequence>
			</xs:complexType>
			</xs:element>

			<xs:element name="Option" minOccurs="0" maxOccurs="unbounded">
			<xs:complexType>
			<xs:sequence>
				<xs:element name="DisplayName" type="xs:string" />
				<xs:element name="Identifier" type="xs:string" minOccurs="0" maxOccurs="1" />
				<xs:element name="ArgumentPrefix" type="xs:string" minOccurs="0" maxOccurs="1" />
				<xs:element name="ArgumentPostfix" type="xs:string" minOccurs="0" maxOccurs="1" />
				<xs:element name="DefaultEntry" type="xs:string" minOccurs="0" maxOccurs="1" />

				<xs:element name="Menu" minOccurs="0" maxOccurs="1">
				<xs:complexType>
				<xs:sequence>

					<xs:element name="Entry" maxOccurs="unbounded" minOccurs="1">
					<xs:complexType>
					<xs:sequence>
						<xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="1" />
						<xs:element name="Value" type="xs:string" minOccurs="0" maxOccurs="1" />
						<xs:element name="Message" type="xs:string" minOccurs="0" maxOccurs="1" />
					</xs:sequence>
					</xs:complexType>
					</xs:element>

				</xs:sequence>
				</xs:complexType>
				</xs:element>
			</xs:sequence>
			</xs:complexType>
			</xs:element>
		</xs:sequence>
		</xs:complexType>
		</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
