<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://www.tpc.org/tpce/spec/tpce-es.xsd" elementFormDefault="qualified" xmlns="http://www.tpc.org/tpce/spec/tpce-es.xsd" xmlns:mstns="http://www.tpc.org/tpce/spec/tpce-es.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" version="1.0">
	<xs:element name="tpceResult" type="RootType">
	</xs:element>
	<xs:complexType name="RootType">
		<xs:sequence>
			<xs:element name="DBServer" type="DBServerType" maxOccurs="1" minOccurs="1" />
			<xs:element name="RunData" type="RunDataType" maxOccurs="1" minOccurs="1" />
		</xs:sequence>
		<xs:attribute name="SponsorName" type="xs:string" use="required" />
		<xs:attribute name="ServerName" type="xs:string" use="required" />
		<xs:attribute name="SpecVersion" type="SpecVersionType" use="required" />
		<xs:attribute name="PricingSpecVersion" type="SpecVersionType" use="required" />
		<xs:attribute name="ReportDate" type="xs:date" use="required" />
		<xs:attribute name="RevisionDate" type="xs:date" use="optional" />
		<xs:attribute name="AvailabilityDate" type="xs:date" use="required" />
		<xs:attribute name="tpsE" type="tpsEType" use="required" />
		<xs:attribute name="PricePerf" type="PriceType" use="required" />
		<xs:attribute name="Currency" type="CurrencyType" use="required" />
		<xs:attribute name="TotalSystemCost" type="PriceType" use="required" />
		<xs:attribute name="AuditorName" type="AuditorType" use="required" />
		<xs:attribute name="Cluster" type="ClusterType" use="required" />
		<xs:attribute name="SchemaVersion" type="SchemaVersionType" use="required" />
	</xs:complexType>
	<xs:complexType name="DBServerType">
		<xs:sequence>
		</xs:sequence>
		<xs:attribute name="DBName" type="xs:string" use="required" />
		<xs:attribute name="DBVersion" type="xs:string" use="required" />
		<xs:attribute name="DBMiscInfo" type="xs:string" use="optional" />
		<xs:attribute name="OSName" type="xs:string" use="required" />
		<xs:attribute name="OSVersion" type="xs:string" use="required" />
		<xs:attribute name="OSMiscInfo" type="xs:string" use="optional" />
		<xs:attribute name="ProcessorName" type="xs:string" use="required" />
		<xs:attribute name="ProcessorCount" type="xs:positiveInteger" use="required" />
		<xs:attribute name="CoreCount" type="xs:positiveInteger" use="required" />
		<xs:attribute name="ThreadCount" type="xs:positiveInteger" use="required" />
		<xs:attribute name="Memory" type="xs:decimal" use="required" />
		<xs:attribute name="InitialDBSize" type="xs:positiveInteger" use="required" />
		<xs:attribute name="RedundancyLevel" type="xs:string" use="required" />
		<xs:attribute name="SpindleCount" type="xs:positiveInteger" use="required" />
	</xs:complexType>
	<xs:complexType name="RunDataType">
		<xs:sequence>
			<xs:element name="Broker-Volume" type="TxnDataType" maxOccurs="1" minOccurs="1" />
			<xs:element name="Customer-Position" type="TxnDataType" maxOccurs="1" minOccurs="1" />
			<xs:element name="Market-Feed" type="TxnDataType" maxOccurs="1" minOccurs="1" />
			<xs:element name="Market-Watch" type="TxnDataType" maxOccurs="1" minOccurs="1" />
			<xs:element name="Security-Detail" type="TxnDataType" maxOccurs="1" minOccurs="1" />
			<xs:element name="Trade-Lookup" type="TxnDataType" maxOccurs="1" minOccurs="1" />
			<xs:element name="Trade-Order" type="TxnDataType" maxOccurs="1" minOccurs="1" />
			<xs:element name="Trade-Result" type="TxnDataType" maxOccurs="1" minOccurs="1" />
			<xs:element name="Trade-Status" type="TxnDataType" maxOccurs="1" minOccurs="1" />
			<xs:element name="Trade-Update" type="TxnDataType" maxOccurs="1" minOccurs="1" />
			<xs:element name="Data-Maintenance" type="DataMaintType" maxOccurs="1" minOccurs="1" />
		</xs:sequence>
		<xs:attribute name="MeasurementInterval" type="TimeType" use="required" />
		<xs:attribute name="RampupTime" type="TimeType" use="required" />
		<xs:attribute name="RecoveryTime" type="TimeType" use="required" />
		<xs:attribute name="MeasuredThroughput" type="tpsEType" use="required" />
		<xs:attribute name="TotalTxns" type="xs:positiveInteger" use="required" />
	</xs:complexType>
	<xs:complexType name="TxnDataType">
		<xs:sequence>
		</xs:sequence>
		<xs:attribute name="Count" type="xs:positiveInteger" use="required" />
		<xs:attribute name="MixPercent" type="MixPercentType" use="required" />
		<xs:attribute name="RTMin" type="RTType" use="required" />
		<xs:attribute name="RTMax" type="RTType" use="required" />
		<xs:attribute name="RTAvg" type="RTType" use="required" />
		<xs:attribute name="RT90th" type="RTType" use="required" />
	</xs:complexType>
	<xs:simpleType name="PriceType">
		<xs:restriction base="xs:decimal">
			<xs:minInclusive value="0" />
			<xs:fractionDigits value="3" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="CategoryType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Server Hardware" />
			<xs:enumeration value="Server Storage" />
			<xs:enumeration value="Server Software" />
			<xs:enumeration value="Client Hardware" />
			<xs:enumeration value="Client Software" />
			<xs:enumeration value="Infrastructure" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="AuditorType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Francois Raab" />
			<xs:enumeration value="Doug Johnson" />
			<xs:enumeration value="Lorna Livingtree" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TimeType">
		<xs:restriction base="xs:string">
			<xs:pattern value="\d?\d:[0-5]\d:[0-5]\d" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="SpecVersionType">
		<xs:restriction base="xs:string">
			<xs:pattern value="\d+.\d+.\d+" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="CurrencyType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="USD" />
			<xs:enumeration value="EUR" />
			<xs:enumeration value="CNY" />
			<xs:enumeration value="AUD" />
			<xs:enumeration value="JPY" />
			<xs:enumeration value="BRL" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ClusterType">
		<xs:restriction base="xs:string">
			<xs:pattern value="[Y|N]" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="tpsEType">
		<xs:restriction base="xs:decimal">
			<xs:fractionDigits value="2" />
			<xs:minExclusive value="0" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="RTType">
		<xs:restriction base="xs:decimal">
			<xs:minInclusive value="0" />
			<xs:fractionDigits value="2" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="MixPercentType">
		<xs:restriction base="xs:decimal">
			<xs:minInclusive value="0" />
			<xs:maxInclusive value="100" />
			<xs:fractionDigits value="2" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="SchemaVersionType">
		<xs:restriction base="xs:string">
			<xs:pattern value="\d+.\d+" />
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="DataMaintType">
		<xs:sequence />
		<xs:attribute name="Count" type="xs:positiveInteger" use="required" />
		<xs:attribute name="RTMin" type="RTType" use="required" />
		<xs:attribute name="RTMax" type="RTType" use="required" />
		<xs:attribute name="RTAvg" type="RTType" use="required" />
	</xs:complexType>
</xs:schema>