<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
xmlns:about="http://CytometryML/ACS/about" 
xmlns:nums="http://CytometryML/ACS/num_types" 
targetNamespace="http://CytometryML/ACS/num_types" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<import namespace="http://CytometryML/ACS/about" schemaLocation="about.xsd"/>
	<annotation>
		<appinfo>
			<about:about Subject="XML representaion of numbers" 
			Version="0.30" 
			Latest_Location="file:///CytometryML/ACS/num_types.xsd" 
			Regulatory_Status="Under_Development" 
			Copyright_Holder="Newport Instruments" 
			Release_Date="2009-01-01" 
			Supplementary_Info="URI" 
			Keywords="Numbers, Integer, Float, Real, ECMA, nummerical" 
			Verification_Value="unverified" 
			xmlns:about="file:///CytometryML/ACS/num_types.xsd" 
			xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
			xsi:schemaLocation="file:///CytometryML/ACS/num_types.xsd num_types.xsd">
				<about:Maintainer Maintainer_Is_An_Author="true" Email="rleif@rleif.com">
					<about:PreferredGivenName>Robert</about:PreferredGivenName>
					<about:MiddleName>Cary</about:MiddleName>
					<about:FamilyName>Leif</about:FamilyName>
					<about:qualification>Ph.D.</about:qualification>
				</about:Maintainer>
				<about:Source>This schema is derived from a copyrighted schema from ECMA and are also used by Microsoft for C#. 
				It has been extended to include positive numerical types (http://www.ecmainternational.org/) 
				ECMA 335, Common Language Infrastructure (CLI)Partitions I to VI: Section 8.2.2 Built-in value and reference types
					(http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-335.pdf)
				Standard ECMA-334, C# Language Specification
					(http://www.ecma-international.org/publications/standards/Ecma-334.htm)
				</about:Source>
				<about:Description>This schema includes  the elements that are necessary to describe numbers.</about:Description>
				<about:Status_Disclaimer>This is a DRAFT proposal that has not been formally 
				  tested to comply with the W3C XML schema version 1.0 specification. No position
				  is taken in respect to whether a particular software implementing this schema
				  works according to medical or other regulations.</about:Status_Disclaimer>
				<about:Document_Status>Draft</about:Document_Status>
				<about:Patent_Disclaimer>Attention is called to the possibility that implementation of this 
				  specification may require use of subject matter covered by patent rights. 
				  By publication of this standard, no position is taken with respect to the existence 
				  or validity of any patent rights in connection therewith.
				  Newport Instruments shall not be responsible for identifying patents 
				  or patent applications for which a license may be required to implement a standard 
				  or for conducting inquiries into the legal 
				  validity or scope of those patents that are brought to its attention.</about:Patent_Disclaimer>
				<about:Permisions>Copyright 2002-2009 Newport Instruments. One print or electronic copy may be made 
				  for personal use only. Systematic or multiple reproduction, distribution to multiple 
				  locations via electronic or other means, or duplication of any material in this document 
				  for a fee or for commercial purposes require permission of the copyright holder. 
				  For all other uses, please contact Robert C. Leif, Ph.D. at rleif@rleif.com 
				  Since this is, at present, a research project, this schema should not be used in 
				  a medical device."</about:Permisions>
				<about:Acknowledgement>
					<about:Acknowledgement_Institution>Supported by Newport Instruments internal development funds.</about:Acknowledgement_Institution>
					<about:Disclaimer>The content is solely the responsibility of the authors and
            does not necessarily represent the official views of any governmental or private organization.</about:Disclaimer>
				</about:Acknowledgement>
			</about:about>
		</appinfo>
	</annotation>
	<annotation>
		<documentation>Josef Spidlen, Ph.D. created the special Float64 types, 
		which therefore are not covered by this copyright. R. C. Leif has modified them to be consistent with the other data-types in this schema.</documentation>
	</annotation>
	<annotation>
		<documentation>These are from ECMA and are also used by Microsoft for C#. This will permit the user to specify 
		the power of two of a maximum value without remembering the actual values for the powers of two.
		 Since these types either start at zero or are symmetrical around zero, the maximum is (2**n) -1</documentation>
	</annotation>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="Two_Powers_Max_Type" id="Two_Powers_Max_Type">
		<restriction base="integer">
			<enumeration value="0"/>
			<enumeration value="1"/>
			<enumeration value="3"/>
			<enumeration value="7"/>
			<enumeration value="15"/>
			<enumeration value="31"/>
			<enumeration value="63"/>
			<enumeration value="127"/>
			<enumeration value="255"/>
			<enumeration value="511"/>
			<enumeration value="1023"/>
			<enumeration value="2047"/>
			<enumeration value="4095"/>
			<enumeration value="8191"/>
			<enumeration value="16383"/>
			<enumeration value="32767"/>
			<enumeration value="65535"/>
			<enumeration value="131071"/>
			<enumeration value="262143"/>
			<enumeration value="524287"/>
			<enumeration value="1048575"/>
			<enumeration value="2097151"/>
			<enumeration value="4194303"/>
			<enumeration value="8388607"/>
			<enumeration value="16777215"/>
			<enumeration value="33554431"/>
			<enumeration value="67108863"/>
			<enumeration value="134217727"/>
			<enumeration value="268435455"/>
			<enumeration value="536870911"/>
			<enumeration value="1073741823"/>
			<enumeration value="2147483647"/>
			<enumeration value="4294967295"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="Numeric_Simple_Type" id="Numeric_Simple_Type">
		<restriction base="string">
			<enumeration value="UInt8"/>
			<enumeration value="UInt16"/>
			<enumeration value="UInt32"/>
			<enumeration value="UInt64"/>
			<enumeration value="Int8"/>
			<enumeration value="Int16"/>
			<enumeration value="Int32"/>
			<enumeration value="Int64"/>
			<enumeration value="UInt8"/>
			<enumeration value="UInt16"/>
			<enumeration value="UInt32"/>
			<enumeration value="UInt64"/>
			<enumeration value="Float32"/>
			<enumeration value="Float64"/>
			<enumeration value="UFloat32"/>
			<enumeration value="PFloat32"/>
			<enumeration value="Float32_Gt1"/>
			<enumeration value="Float32_GtE0_LtE1"/>
			<enumeration value="UFloat64"/>
			<enumeration value="PFloat64"/>
			<enumeration value="Float64_Gt1"/>
			<enumeration value="Float64_GtE0_LtE1"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="Data_8_Type" id="Data_8_Type">
		<restriction base="short">
			<minInclusive value="0"/>
			<maxInclusive value="255"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<!--element name="Data_16" type="nums:Data_16_Type"/ -->
	<simpleType name="Data_16_Type" id="Data_16_Type">
		<restriction base="unsignedShort">
			<minInclusive value="0"/>
			<maxInclusive value="65535"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="Data_32_Type" id="Data_32_Type">
		<restriction base="unsignedInt">
			<minInclusive value="0"/>
			<maxInclusive value="4294967295"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<!--May not be implemented for some programming languages-->
	<simpleType name="Data_64_Type" id="Data_64_Type">
		<restriction base="unsignedLong">
			<minInclusive value="0"/>
			<maxInclusive value="18446744073709551615"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="Int8_Type" id="Int8_Type">
		<restriction base="short">
			<minInclusive value="-128"/>
			<maxInclusive value="127"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="Int16_Type" id="Int16_Type">
		<restriction base="short">
			<minInclusive value="-32768"/>
			<maxInclusive value="32767"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="Int32_Type" id="Int32_Type">
		<restriction base="int">
			<minInclusive value="-2147483648"/>
			<maxInclusive value="2147483647"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<!--corresponds to Ada Positive Type-->
	<simpleType name="PInt32_Type" id="PInt32_Type">
		<restriction base="nums:Int32_Type">
			<minInclusive value="1"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="UInt8_Type" id="UInt8_Type">
		<restriction base="unsignedShort">
			<minInclusive value="0"/>
			<maxInclusive value="255"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="PInt8_Type" id="PInt8_Type">
		<restriction base="nums:UInt8_Type">
			<minInclusive value="1"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="UInt16_Type" id="UInt16_Type">
		<restriction base="unsignedShort">
			<minInclusive value="0"/>
			<maxInclusive value="65535"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="PInt16_Type" id="PInt16_Type">
		<restriction base="nums:UInt16_Type">
			<minInclusive value="1"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="UInt32_Type" id="UInt32_Type">
		<restriction base="unsignedInt">
			<minInclusive value="0"/>
			<maxInclusive value="4294967295"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="UInt64_Type" id="UInt64_Type">
		<restriction base="unsignedLong">
			<minInclusive value="0"/>
			<maxInclusive value="18446744073709551615"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="Int64_Type" id="Int64_Type">
		<restriction base="long">
			<minInclusive value="-9223372036854775808"/>
			<maxInclusive value="9223372036854775807"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="PInt64_Type" id="PInt64_Type">
		<restriction base="nums:UInt64_Type">
			<minInclusive value="1"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<annotation>
		<documentation>Chapter 11 Types s × m × 2e, where s is 1 or −1, and m and e are determined by the particular 
	floating-point type: For float, 0 less than m less than 2E24 and −149 ≤ e ≤ 104. 2E24 or 2**24= 16,777,216. 
	Microsoft does not work with  minInclusive value="-16777215E-149" and maxInclusive value="16777215E104"</documentation>
	</annotation>
	<simpleType name="Float32_Type" id="Float32_Type">
		<restriction base="float"/>
	</simpleType>
	<element name="Pi" type="nums:Float32_Type" fixed="3.1415926535897932384626433832795"/>
	<!--This is a constant declaration-->
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="UFloat32_Type" id="UFloat32_Type">
		<annotation>
			<documentation xml:lang="en">A type of float that is greater or equal 0</documentation>
		</annotation>
		<restriction base="double">
			<minInclusive value="0.0"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="PFloat32_Type" id="PFloat32_Type">
		<annotation>
			<documentation xml:lang="en">A type of float that is greater than 0</documentation>
		</annotation>
		<restriction base="float">
			<minExclusive value="0.0"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="Float32_Gt1_Type" id="Float32_Gt1_Type">
		<annotation>
			<documentation xml:lang="en">A type of float that is greater than 1</documentation>
		</annotation>
		<restriction base="float">
			<minExclusive value="1.0"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="Float32_GtE0_LtE1_Type" id="Float32_GtE0_LtE1_Type">
		<annotation>
			<documentation xml:lang="en">A type of float that is greater or equal 0 and less or equal 1</documentation>
		</annotation>
		<restriction base="float">
			<minInclusive value="0.0"/>
			<maxInclusive value="1.0"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<annotation>
		<documentation>Chapter 11 Types "for double,
0 less than m less than 2E53 and −1075 ≤ e ≤ 970. 2E53 or 2**53 = 9,007,199,254,740,990not work with minInclusive value="-9007199254740990E1075" and 
     maxInclusive value="9007199254740990E970"</documentation>
	</annotation>
	<simpleType name="Float64_Type" id="Float64_Type">
		<restriction base="double"/>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="UFloat64_Type" id="UFloat64_Type">
		<annotation>
			<documentation xml:lang="en">A type of double that is greater or equal 0</documentation>
		</annotation>
		<restriction base="double">
			<minInclusive value="0.0"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="PFloat64_Type" id="PFloat64_Type">
		<annotation>
			<documentation xml:lang="en">A type of double that is greater than 0</documentation>
		</annotation>
		<restriction base="double">
			<minExclusive value="0.0"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="Float64_Gt1_Type" id="Float64_Gt1_Type">
		<annotation>
			<documentation xml:lang="en">A type of double that is greater than 1</documentation>
		</annotation>
		<restriction base="double">
			<minExclusive value="1.0"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<simpleType name="Float64_GtE0_LtE1_Type" id="Float64_GtE0_LtE1_Type">
		<annotation>
			<documentation xml:lang="en">A type of double that is greater or equal 0 and less or equal 1</documentation>
		</annotation>
		<restriction base="double">
			<minInclusive value="0.0"/>
			<maxInclusive value="1.0"/>
		</restriction>
	</simpleType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<complexType name="Numeric_Type" id="Numeric_Type">
		<choice>
			<element name="UInt8" type="nums:UInt8_Type"/>
			<element name="UInt16" type="nums:UInt16_Type"/>
			<element name="UInt32" type="nums:UInt32_Type"/>
			<element name="UInt64" type="nums:UInt64_Type"/>
			<element name="int8" type="nums:Int8_Type"/>
			<element name="int16" type="nums:Int16_Type"/>
			<element name="int32" type="nums:Int32_Type"/>
			<element name="Float32" type="nums:Float32_Type"/>
			<element name="Float64" type="nums:Float64_Type"/>
			<element name="UFloat32" type="nums:UFloat32_Type"/>
			<element name="PFloat32" type="nums:PFloat32_Type"/>
			<element name="Float32_Gt1" type="nums:Float32_Gt1_Type"/>
			<element name="Float32_GtE0_LtE1" type="nums:Float32_GtE0_LtE1_Type"/>
			<element name="UFloat64" type="nums:UFloat64_Type"/>
			<element name="PFloat64" type="nums:PFloat64_Type"/>
			<element name="Float64_Gt1" type="nums:Float64_Gt1_Type"/>
			<element name="Float64_GtE0_LtE1" type="nums:Float64_GtE0_LtE1_Type"/>
		</choice>
	</complexType>
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
	<!--<element name="Numeric" type="nums:Numeric_Type"/ -->
	<!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
</schema>
