<?xml version="1.0" encoding="UTF-8" standalone="no"?><wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:sch="http://ws.nemsis.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.nemsis.org/" targetNamespace="http://ws.nemsis.org/">
  <wsdl:types>
    <xs:schema xmlns="http://ws.nemsis.org/" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" attributeFormDefault="unqualified" elementFormDefault="qualified" jaxb:version="2.0" targetNamespace="http://ws.nemsis.org/">
	<xs:annotation>
		<xs:appinfo>
			<jaxb:schemaBindings>
				<jaxb:package name="org.nemsis.ws"/>
			</jaxb:schemaBindings>
		</xs:appinfo>
	</xs:annotation>
	<xs:element name="ListBenchmarksRequest">
		<xs:complexType>
			<xs:sequence/>
		</xs:complexType>
	</xs:element>
	<xs:element name="ListBenchmarksResponse">
		<xs:complexType>
			<xs:choice>
				<xs:element maxOccurs="unbounded" name="benchmark" type="Benchmark"/>
				<xs:element name="error" type="xs:string"/>
			</xs:choice>
			<xs:attribute name="status" type="ListBenchmarksResponseCode" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="Benchmark">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="id" type="xs:string" use="required"/>
				<xs:attribute name="numeratorType" type="xs:QName" use="required"/>
				<xs:attribute name="denominatorType" type="xs:QName" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>

	<xs:element name="ListParametersRequest">
		<xs:complexType>
			<xs:sequence/>
		</xs:complexType>
	</xs:element>

	<xs:element name="ListParametersResponse">
		<xs:complexType>
			<xs:choice>
				<xs:element maxOccurs="unbounded" name="parameter" type="Parameter"/>
				<xs:element name="error" type="xs:string"/>
			</xs:choice>
			<xs:attribute name="status" type="ListParametersResponseCode" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="Parameter">
		<xs:sequence>
			<xs:element maxOccurs="unbounded" name="value" type="Value"/>
		</xs:sequence>
		<xs:attribute name="code" type="xs:ID" use="required"/>
		<xs:attribute name="name" type="xs:string" use="required"/>
	</xs:complexType>
	<xs:complexType name="Value">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="code" type="xs:string" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>

	<xs:element name="RetrieveBenchmarkRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="benchmark" type="BenchmarkRequest"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="BenchmarkRequest">
		<xs:sequence>
			<xs:element maxOccurs="unbounded" minOccurs="0" name="filter" type="Filter"/>
			<xs:element minOccurs="0" name="segment" type="xs:string"/>
		</xs:sequence>
		<xs:attribute name="id" type="xs:string" use="required"/>
	</xs:complexType>
	<xs:complexType name="Filter">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="parameter" type="xs:string"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>

	<xs:element name="RetrieveBenchmarkResponse">
		<xs:complexType>
			<xs:choice>
				<xs:sequence>
					<xs:element name="database" type="Database"/>
					<xs:element name="benchmark" type="BenchmarkRequest"/>
					<xs:element name="data" type="Data"/>
				</xs:sequence>
				<xs:element name="error" type="xs:string"/>
			</xs:choice>
			<xs:attribute name="status" type="RetrieveBenchmarkResponseCode" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="Database">
		<xs:sequence>
			<xs:element name="databaseUpdateDateTime" type="xs:dateTime"/>
			<xs:element name="databaseRecords" type="xs:nonNegativeInteger"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Data">
		<xs:sequence>
			<xs:element maxOccurs="unbounded" minOccurs="0" name="result" type="Result"/>
		</xs:sequence>
		<xs:attribute name="records" type="xs:nonNegativeInteger"/>
		<xs:attribute name="numeratorType" type="xs:QName"/>
		<xs:attribute name="denominatorType" type="xs:QName"/>
		<xs:attribute name="states" type="xs:nonNegativeInteger"/>
	</xs:complexType>

	<xs:complexType name="Result">
		<xs:sequence>
			<xs:element name="numerator" nillable="true" type="xs:anySimpleType"/>
			<xs:element name="denominator" nillable="true" type="xs:anySimpleType"/>
		</xs:sequence>
		<xs:attribute name="segmentMember" type="xs:string"/>
		<xs:attribute name="records" type="xs:nonNegativeInteger"/>
	</xs:complexType>

	<xs:simpleType name="ListBenchmarksResponseCode">
		<xs:union memberTypes="CommonResponseCode ResultPendingCode ListBenchmarksErrorCode"/>
	</xs:simpleType>
	<xs:simpleType name="ListParametersResponseCode">
		<xs:union memberTypes="CommonResponseCode ResultPendingCode ListParametersErrorCode"/>
	</xs:simpleType>
	<xs:simpleType name="RetrieveBenchmarkResponseCode">
		<xs:union memberTypes="CommonResponseCode ResultPendingCode RetrieveBenchmarkErrorCode"/>
	</xs:simpleType>
	<xs:simpleType name="CommonResponseCode">
		<xs:union memberTypes="ServerErrorCodes ParameterErrorCodes CustomErrorCodes CustomSuccessCodes"/>
	</xs:simpleType>
	<xs:simpleType name="ServerErrorCodes">
		<xs:annotation>
			<xs:documentation>Error codes for web service server </xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:integer">
			<xs:enumeration value="-20">
				<xs:annotation>
					<xs:documentation>Generic server error</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="-21">
				<xs:annotation>
					<xs:documentation>Server error, because of database connection/operation issue </xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="-22">
				<xs:annotation>
					<xs:documentation>Server error, because of file system/network/IO issue </xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ParameterErrorCodes">
		<xs:annotation>
			<xs:documentation>Generic error codes for an attempted web service operation </xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:integer">
			<xs:enumeration value="-8">
				<xs:annotation>
					<xs:documentation>Invalid parameter value</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="-9">
				<xs:annotation>
					<xs:documentation>Invalid parameter combination</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="CustomErrorCodes">
		<xs:annotation>
			<xs:documentation>State or vendor specified error returning code for web service request. It should be smaller than -1000 </xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:integer">
			<xs:maxExclusive value="-1000"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="CustomSuccessCodes">
		<xs:annotation>
			<xs:documentation>State or vendor specified success returning code for web service request. It should be greater than 1000 </xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:integer">
			<xs:minExclusive value="1000"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ResultPendingCode">
		<xs:annotation>
			<xs:documentation>Code to indicate the process has not finished on the server for an attempted web service operation </xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:integer">
			<xs:enumeration value="0">
				<xs:annotation>
					<xs:documentation>The expected data processing is not yet complete </xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ListBenchmarksErrorCode">
		<xs:annotation>
			<xs:documentation>Code to indicate the status for ListBenchmarks operation </xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:integer">
			<xs:enumeration value="71">
				<xs:annotation>
					<xs:documentation>Successful operation of ListBenchmarks </xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="-70">
				<xs:annotation>
					<xs:documentation>Server is too busy. The client should request later </xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="-71">
				<xs:annotation>
					<xs:documentation>Failed operation of ListBenchmarks </xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ListParametersErrorCode">
		<xs:annotation>
			<xs:documentation>Code to indicate the status for ListParameters operation </xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:integer">
			<xs:enumeration value="81">
				<xs:annotation>
					<xs:documentation>Successful operation of ListParameters </xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="-80">
				<xs:annotation>
					<xs:documentation>Server is too busy. The client should request later </xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="-81">
				<xs:annotation>
					<xs:documentation>Failed operation of ListParameters </xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="RetrieveBenchmarkErrorCode">
		<xs:annotation>
			<xs:documentation>Code to indicate the error status for RetrieveBenchmark operation </xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:integer">
			<xs:enumeration value="91">
				<xs:annotation>
					<xs:documentation>Successful operation of RetrieveBenchmark </xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="-90">
				<xs:annotation>
					<xs:documentation>Server is too busy. The client should request later </xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="-91">
				<xs:annotation>
					<xs:documentation>Failed operation of RetrieveBenchmark </xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
  </wsdl:types>
  <wsdl:message name="ListBenchmarksRequest">
    <wsdl:part element="tns:ListBenchmarksRequest" name="ListBenchmarksRequest">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="ListParametersRequest">
    <wsdl:part element="tns:ListParametersRequest" name="ListParametersRequest">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="RetrieveBenchmarkRequest">
    <wsdl:part element="tns:RetrieveBenchmarkRequest" name="RetrieveBenchmarkRequest">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="ListBenchmarksResponse">
    <wsdl:part element="tns:ListBenchmarksResponse" name="ListBenchmarksResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="ListParametersResponse">
    <wsdl:part element="tns:ListParametersResponse" name="ListParametersResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="RetrieveBenchmarkResponse">
    <wsdl:part element="tns:RetrieveBenchmarkResponse" name="RetrieveBenchmarkResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="NemsisPmWsPort">
    <wsdl:operation name="ListBenchmarks">
      <wsdl:input message="tns:ListBenchmarksRequest" name="ListBenchmarksRequest">
    </wsdl:input>
      <wsdl:output message="tns:ListBenchmarksResponse" name="ListBenchmarksResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="ListParameters">
      <wsdl:input message="tns:ListParametersRequest" name="ListParametersRequest">
    </wsdl:input>
      <wsdl:output message="tns:ListParametersResponse" name="ListParametersResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="RetrieveBenchmark">
      <wsdl:input message="tns:RetrieveBenchmarkRequest" name="RetrieveBenchmarkRequest">
    </wsdl:input>
      <wsdl:output message="tns:RetrieveBenchmarkResponse" name="RetrieveBenchmarkResponse">
    </wsdl:output>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="NemsisPmWsPortSoap11" type="tns:NemsisPmWsPort">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="ListBenchmarks">
      <soap:operation soapAction=""/>
      <wsdl:input name="ListBenchmarksRequest">
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="ListBenchmarksResponse">
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="ListParameters">
      <soap:operation soapAction=""/>
      <wsdl:input name="ListParametersRequest">
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="ListParametersResponse">
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="RetrieveBenchmark">
      <soap:operation soapAction=""/>
      <wsdl:input name="RetrieveBenchmarkRequest">
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="RetrieveBenchmarkResponse">
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="NemsisPmWsPortService">
    <wsdl:port binding="tns:NemsisPmWsPortSoap11" name="NemsisPmWsPortSoap11">
      <soap:address location="https://perfmeasures.nemsis.org//"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>