<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2006 rel. 3 U (http://www.altova.com) by Eugene Song (NIST) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding" xmlns:corba="http://www.omg.org/IDL-WSDL/1.0/" xmlns:stml="http://localhost/1451HTTPAPI" targetNamespace="http://localhost/1451HTTPAPI" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<!--This is IEEE 1451.0 data types-->
	<xs:simpleType name="Int8">
		<xs:restriction base="xs:byte"/>
	</xs:simpleType>
	<xs:simpleType name="Int16">
		<xs:restriction base="xs:short"/>
	</xs:simpleType>
	<xs:simpleType name="Int32">
		<xs:restriction base="xs:int"/>
	</xs:simpleType>
	<xs:simpleType name="UInt8">
		<xs:restriction base="xs:unsignedByte"/>
	</xs:simpleType>
	<xs:simpleType name="UInt16">
		<xs:restriction base="xs:unsignedShort"/>
	</xs:simpleType>
	<xs:simpleType name="UInt32">
		<xs:restriction base="xs:unsignedInt"/>
	</xs:simpleType>
	<xs:simpleType name="Float32">
		<xs:restriction base="xs:float"/>
	</xs:simpleType>
	<xs:simpleType name="Float64">
		<xs:restriction base="xs:double"/>
	</xs:simpleType>
	<xs:simpleType name="_Boolean">
		<xs:annotation>
			<xs:documentation source="boolean "/>
		</xs:annotation>
		<xs:restriction base="xs:boolean"/>
	</xs:simpleType>
	<xs:simpleType name="Octet">
		<xs:restriction base="xs:unsignedByte"/>
	</xs:simpleType>
	<xs:simpleType name="_String">
		<xs:annotation>
			<xs:documentation source="string"/>
		</xs:annotation>
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	<xs:simpleType name="Int8Array">
		<xs:annotation>
			<xs:documentation source="Array of Int8"/>
		</xs:annotation>
		<xs:list itemType="stml:Int8"/>
	</xs:simpleType>
	<xs:simpleType name="Int16Array">
		<xs:annotation>
			<xs:documentation source="Array of Int16"/>
		</xs:annotation>
		<xs:list itemType="stml:Int16"/>
	</xs:simpleType>
	<xs:simpleType name="Int32Array">
		<xs:annotation>
			<xs:documentation source="Array of  Int32"/>
		</xs:annotation>
		<xs:list itemType="stml:Int32"/>
	</xs:simpleType>
	<xs:simpleType name="UInt8Array">
		<xs:annotation>
			<xs:documentation source="Array of UInt8"/>
		</xs:annotation>
		<xs:list itemType="stml:UInt8"/>
	</xs:simpleType>
	<xs:simpleType name="UInt16Array">
		<xs:annotation>
			<xs:documentation source="Array of UInt16"/>
		</xs:annotation>
		<xs:list itemType="stml:UInt16"/>
	</xs:simpleType>
	<xs:simpleType name="UInt32Array">
		<xs:annotation>
			<xs:documentation source="Array of UInt32"/>
		</xs:annotation>
		<xs:list itemType="stml:UInt32"/>
	</xs:simpleType>
	<xs:simpleType name="Float32Array">
		<xs:annotation>
			<xs:documentation source="Array of Float32"/>
		</xs:annotation>
		<xs:list itemType="stml:Float32"/>
	</xs:simpleType>
	<xs:simpleType name="Float64Array">
		<xs:annotation>
			<xs:documentation source="Array of Float64"/>
		</xs:annotation>
		<xs:list itemType="stml:Float64"/>
	</xs:simpleType>
	<xs:simpleType name="OctetArray">
		<xs:annotation>
			<xs:documentation source="Array of Octet"/>
		</xs:annotation>
		<xs:list itemType="stml:Octet"/>
	</xs:simpleType>
	<xs:simpleType name="BooleanArray">
		<xs:annotation>
			<xs:documentation source="Array of _Boolean"/>
		</xs:annotation>
		<xs:list itemType="stml:_Boolean"/>
	</xs:simpleType>
	<xs:simpleType name="StringArray">
		<xs:annotation>
			<xs:documentation source="Array of _String"/>
		</xs:annotation>
		<xs:list itemType="stml:_String"/>
	</xs:simpleType>
	<xs:simpleType name="ErrorCode" final="restriction">
		<xs:restriction base="xs:string">
			<xs:enumeration value="NO_ERROR"/>
			<xs:enumeration value="INVALID_COMMID"/>
			<xs:enumeration value="UNKNOWN_DESTID"/>
			<xs:enumeration value="TIMEOUT"/>
			<xs:enumeration value="NETWORK_FAILURE"/>
			<xs:enumeration value="NETWORK_CORRUPTION"/>
			<xs:enumeration value="MEMORY"/>
			<xs:enumeration value="QOS_FAILURE"/>
			<xs:enumeration value="MCAST_NOT_SUPPORTED"/>
			<xs:enumeration value="UNKNOWN_GROUPID"/>
			<xs:enumeration value="UNKNOWN_MODULEID"/>
			<xs:enumeration value="UNKNOWN_MSGID"/>
			<xs:enumeration value="NOT_GROUP_MEMBER"/>
			<xs:enumeration value="ILLEGAL_MODE"/>
			<xs:enumeration value="LOCKED_RESOURCE"/>
			<xs:enumeration value="FATAL_TEDS_ERROR"/>
			<xs:enumeration value="NON_FATAL_TEDS_ERROR"/>
			<xs:enumeration value="CLOSE_ON_LOCKED_RESOURCE"/>
			<xs:enumeration value="LOCK_BROKEN"/>
			<xs:enumeration value="NETWORK_RESOURCE_EXCEEDED"/>
			<xs:enumeration value="MEMORY_RESOURCE_EXCEEDED"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TypeCode">
		<xs:annotation>
			<xs:documentation>Each valid type of 1451.0 Argument has a unique typeCode.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="UNKNOWN_TC"/>
			<xs:enumeration value="INT8_TC"/>
			<xs:enumeration value="INT16_TC"/>
			<xs:enumeration value="INT32_TC"/>
			<xs:enumeration value="UINT8_TC"/>
			<xs:enumeration value="UINT16_TC"/>
			<xs:enumeration value="UINT32_TC"/>
			<xs:enumeration value="FLOAT32_TC"/>
			<xs:enumeration value="FLOAT64_TC"/>
			<xs:enumeration value="STRING_TC"/>
			<xs:enumeration value="OCTET_TC"/>
			<xs:enumeration value="BOOLEAN_TC"/>
			<xs:enumeration value="TIME_INSTANCE_TC"/>
			<xs:enumeration value="TIME_DURATION_TC"/>
			<xs:enumeration value="QOS_PARAMS_TC"/>
			<xs:enumeration value="INT8_ARRAY_TC"/>
			<xs:enumeration value="INT16_ARRAY_TC"/>
			<xs:enumeration value="INT32_ARRAY_TC"/>
			<xs:enumeration value="UINT8_ARRAY_TC"/>
			<xs:enumeration value="UINT16_ARRAY_TC"/>
			<xs:enumeration value="UINT32_ARRAY_TC"/>
			<xs:enumeration value="FLOAT16_ARRAY_TC"/>
			<xs:enumeration value="FLOAT32_ARRAY_TC"/>
			<xs:enumeration value="STRING_ARRAY_TC"/>
			<xs:enumeration value="OCTET_ARRAY_TC"/>
			<xs:enumeration value="BOOLEAN_ARRAY_TC"/>
			<xs:enumeration value="TIME_INSTANCE_ARRAY_TC"/>
			<xs:enumeration value="TIME_DURATION_ARRAY_TC"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="UUID">
		<xs:list itemType="xs:short"/>
	</xs:simpleType>
	<xs:simpleType name="ErrorCodeSource">
		<xs:restriction base="xs:string">
			<xs:enumeration value="LOCAL_1451_0_LAYER"/>
			<xs:enumeration value="LOCAL_1451_X_LAYER"/>
			<xs:enumeration value="REMOTE_1451_0_LAYER"/>
			<xs:enumeration value="REMOTE_1451_X_LAYER"/>
			<xs:enumeration value="REMOTE_APPLICATION_LAYER"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="Argument" type="stml:ArgumentType"/>
	<xs:element name="ArgumentArray" type="stml:ArgumentArrayType"/>
	<xs:element name="QoSParam" type="stml:QoSParamType"/>
	<xs:element name="TimeDurationArray" type="stml:TimeInstanceArrayType"/>
	<xs:element name="TimeDuration" type="stml:TimeDurationType"/>
	<xs:element name="TimeInstanceArray" type="stml:TimeInstanceArrayType"/>
	<xs:element name="TimeInstance" type="stml:TimeInstanceType"/>
	<xs:complexType name="TimeDurationType">
		<xs:sequence>
			<xs:element name="secs" type="stml:UInt32"/>
			<xs:element name="nsecs" type="stml:UInt32"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="QoSParamType">
		<xs:annotation>
			<xs:documentation source="QoSParams structure S"/>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="service" type="stml:_Boolean"/>
			<xs:element name="period" type="stml:TimeDurationType"/>
			<xs:element name="transmitSize" type="stml:UInt32"/>
			<xs:element name="accesLatency" type="stml:TimeDurationType"/>
			<xs:element name="transmitLatency" type="stml:TimeDurationType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="TimeInstanceArrayType">
		<xs:sequence>
			<xs:element name="TimeInstance" type="stml:TimeDurationType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="size" type="xs:short"/>
	</xs:complexType>
	<xs:complexType name="TimeInstanceType">
		<xs:sequence>
			<xs:element name="secs" type="stml:UInt32"/>
			<xs:element name="nsecs" type="stml:UInt32"/>
			<xs:element name="epoch" type="stml:UInt8"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="TimeDurationArrayType">
		<xs:sequence>
			<xs:element name="timeDuration" type="stml:TimeDurationType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="size" type="xs:short"/>
	</xs:complexType>
	<xs:complexType name="ArgumentType">
		<xs:annotation>
			<xs:documentation source="A generic data container"/>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="discriminator" type="stml:TypeCode"/>
			<xs:choice>
				<xs:element name="ValueError" type="stml:_Boolean" minOccurs="0"/>
				<xs:element name="valueInt8" type="stml:UInt8" minOccurs="0"/>
				<xs:element name="valueInt16" type="stml:Int16" minOccurs="0"/>
				<xs:element name="valueInt32" type="stml:Int32" minOccurs="0"/>
				<xs:element name="valueUInt8" type="stml:UInt8" minOccurs="0"/>
				<xs:element name="valueUInt16" type="stml:UInt16" minOccurs="0"/>
				<xs:element name="valueUIn32" type="stml:UInt32" minOccurs="0"/>
				<xs:element name="valueFloat32" type="stml:Float32" minOccurs="0"/>
				<xs:element name="valueFloat64" type="stml:Float64" minOccurs="0"/>
				<xs:element name="valueString" type="stml:_String" minOccurs="0"/>
				<xs:element name="valueOctet" type="stml:Octet" minOccurs="0"/>
				<xs:element name="valueBoolean" type="stml:_Boolean" minOccurs="0"/>
				<xs:element name="valueTimeInstance" type="stml:TimeDurationType" minOccurs="0"/>
				<xs:element name="valueTimeDuration" type="stml:TimeDurationType" minOccurs="0"/>
				<xs:element name="valueQosParams" type="stml:QoSParamType" minOccurs="0"/>
				<xs:element name="valueUInt8Array" type="stml:UInt8Array" minOccurs="0"/>
				<xs:element name="valueUInt16Array" type="stml:UInt16Array" minOccurs="0"/>
				<xs:element name="valueUInt32Array" type="stml:UInt32Array" minOccurs="0"/>
				<xs:element name="valueFloat32Array" type="stml:Float32Array" minOccurs="0"/>
				<xs:element name="valueFloat64Array" type="stml:Float64Array" minOccurs="0"/>
				<xs:element name="valueStringArray" type="stml:StringArray" minOccurs="0"/>
				<xs:element name="valueOctetArray" type="stml:OctetArray" minOccurs="0"/>
				<xs:element name="valueBooleanArray" type="stml:BooleanArray" minOccurs="0"/>
				<xs:element name="valueTimeInstanceArray" type="stml:TimeInstanceArrayType" minOccurs="0"/>
				<xs:element name="valueTimeDurationArray" type="stml:TimeDurationArrayType" minOccurs="0"/>
			</xs:choice>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Units">
		<xs:annotation>
			<xs:documentation source="Definitions of the SI base units are given in The International System of Units (SI), "/>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="interpret" type="stml:UInt8"/>
			<xs:element name="radians" type="stml:UInt8"/>
			<xs:element name="steradians" type="stml:UInt8"/>
			<xs:element name="meters" type="stml:UInt8"/>
			<xs:element name="kilograms" type="stml:UInt8"/>
			<xs:element name="seconds" type="stml:UInt8"/>
			<xs:element name="amperes" type="stml:UInt8"/>
			<xs:element name="kelvins" type="stml:UInt8"/>
			<xs:element name="moles" type="stml:UInt8"/>
			<xs:element name="candelas" type="stml:UInt8"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ArgumentArrayType">
		<xs:sequence>
			<xs:element name="argument" type="stml:ArgumentType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="size" type="xs:short"/>
	</xs:complexType>
</xs:schema>
