<?xml version="1.0" encoding="UTF-8"?>
<!-- Mit XMLSpy v2007 sp1 bearbeitet (http://www.altova.com) von Oliver Kohlbacher (Universität Tübingen) -->
<!-- edited with XMLSpy v2008 rel. 2 sp2 (http://www.altova.com) by Chris Bielow (FU Berlin) -->
<!-- edited with gvim by Clemens Groepl, 2009-10-07. -->
<!-- edited with notepad++ by Chris Bielow, 2011-10-27. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="consensusXML">
		<xs:annotation>
			<xs:documentation> Schema for a result of a multiple LC-MS map alignment. </xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="UserParam" type="UserParam" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>user parameters</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="dataProcessing" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>data processing applied to this file</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="software">
								<xs:annotation>
									<xs:documentation>processing software</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:attribute name="name" type="xs:string" use="required">
										<xs:annotation>
											<xs:documentation>software name</xs:documentation>
										</xs:annotation>
									</xs:attribute>
									<xs:attribute name="version" type="xs:string" use="required">
										<xs:annotation>
											<xs:documentation>software version</xs:documentation>
										</xs:annotation>
									</xs:attribute>
								</xs:complexType>
							</xs:element>
							<xs:element name="processingAction" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>processing actions applied by the software</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:attribute name="name" type="xs:string" use="required">
										<xs:annotation>
											<xs:documentation>action name</xs:documentation>
										</xs:annotation>
									</xs:attribute>
								</xs:complexType>
							</xs:element>
							<xs:element name="UserParam" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>user parameters</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:complexContent>
										<xs:extension base="UserParam"/>
									</xs:complexContent>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
						<xs:attribute name="completion_time" type="xs:dateTime" use="required">
							<xs:annotation>
								<xs:documentation>end time of processing</xs:documentation>
							</xs:annotation>
						</xs:attribute>
					</xs:complexType>
				</xs:element>
				<xs:element name="IdentificationRun" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>Identification runs mapped to this consensus feature map.</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="SearchParameters" type="SearchParametersType" minOccurs="0" maxOccurs="unbounded"/>
							<xs:element name="ProteinIdentification" type="ProteinIdentificationType" minOccurs="0" maxOccurs="unbounded"/>
						</xs:sequence>
						<xs:attribute name="id" type="xs:ID" use="required">
							<xs:annotation>
								<xs:documentation>Identifier of the identification run, which is referenced by the peptide identifications in order to relate them to the run.</xs:documentation>
							</xs:annotation>
						</xs:attribute>
						<xs:attribute name="search_engine" type="xs:string" use="required">
							<xs:annotation>
								<xs:documentation>search engine name, e.g. 'Mascot', 'Sequest'</xs:documentation>
							</xs:annotation>
						</xs:attribute>
						<xs:attribute name="search_engine_version" type="xs:string" use="required">
							<xs:annotation>
								<xs:documentation>search engine version</xs:documentation>
							</xs:annotation>
						</xs:attribute>
						<xs:attribute name="date" type="xs:dateTime" use="required">
							<xs:annotation>
								<xs:documentation>date, when the search was performed (Format: yyyy-mm-ddThh:mm:ss)</xs:documentation>
							</xs:annotation>
						</xs:attribute>
					</xs:complexType>
				</xs:element>
				<xs:element name="UnassignedPeptideIdentification" type="PeptideIdentificationType" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="mapList"/>
				<xs:element ref="consensusElementList"/>
			</xs:sequence>
			<xs:attribute name="version" type="xs:float">
				<xs:annotation>
					<xs:documentation>Schema version, e.g. '1.1'. If it is missing, version 1.0 is assumed.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="experiment_type">
				<xs:annotation>
					<xs:documentation>Type of experiment, e.g. icat, label-free</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="labeled_MS1"/>
						<xs:enumeration value="labeled_MS2"/>
						<xs:enumeration value="icat"/>
						<xs:enumeration value="itraq"/>
						<xs:enumeration value="silac"/>
						<xs:enumeration value="label-free"/>
						<xs:enumeration value="other"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="document_id" type="xs:string">
				<xs:annotation>
					<xs:documentation>An optional id for the document. It is recommended to use LSIDs when possible.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="id" type="xs:string">
				<xs:annotation>
					<xs:documentation>An optional unique id for the document, for internal use by OpenMS.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="mapList">
		<xs:annotation>
			<xs:documentation>This list contains the names of all LC-MS file which were aligned.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="map" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute name="count" type="xs:unsignedInt" use="required">
				<xs:annotation>
					<xs:documentation>Number of maps.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="map">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="UserParam" type="UserParam" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>user parameters</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
			<xs:attribute name="name" type="xs:string" use="required">
				<xs:annotation>
					<xs:documentation>Name of the map.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="unique_id" type="xs:string" use="optional">
				<xs:annotation>
					<xs:documentation>An optional unique id for the map, for internal use by OpenMS.  Usually copied from the file specified by the name attibute.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="id" type="xs:unsignedInt" use="required">
				<xs:annotation>
					<xs:documentation>An identifier for the map, used by elements of consensus features to indicate the map from which they originate.  It has no meaning outside of the ConsensusXML file.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="label" type="xs:string">
				<xs:annotation>
					<xs:documentation>A label, e.g. 'heavy' and 'light' in ICAT.  The label attribute represents the different roles of elements of consensus features.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="size" type="xs:unsignedInt" use="optional">
				<xs:annotation>
					<xs:documentation>Number of elements.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="consensusElementList">
		<xs:annotation>
			<xs:documentation>The list of consensus elements.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="consensusElement" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>The consensus element combines corresponding elements of the maps. </xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="consensusElement">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="centroid"/>
				<xs:element ref="groupedElementList"/>
				<xs:element name="PeptideIdentification" type="PeptideIdentificationType" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element name="UserParam" type="UserParam" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>user parameters</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
			<xs:attribute name="id" type="xs:ID" use="required">
				<xs:annotation>
					<xs:documentation>Unique identifier for the consensus element.  OpenMS uses unsigned 64 bit integers as unique ids.  As an xs:id cannot be an integer number, the values are typically prefixed with 'e_'.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="quality" type="xs:double">
				<xs:annotation>
					<xs:documentation>Quality value assigned to this consensus element.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="charge" type="xs:integer">
				<xs:annotation>
					<xs:documentation>Charge assigned to the  consensus element. A missing change attribute is equal to charge 0.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="centroid">
		<xs:annotation>
			<xs:documentation>The centroid coordinates of the consensus element.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:attribute name="rt" type="xs:double" use="required">
				<xs:annotation>
					<xs:documentation>Retention time.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="mz" type="xs:double" use="required">
				<xs:annotation>
					<xs:documentation>M/Z value.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="it" type="xs:double" use="required">
				<xs:annotation>
					<xs:documentation>Intensity.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="groupedElementList">
		<xs:annotation>
			<xs:documentation>The list of elements which are grouped together and define this consensus element.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="element" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>The combined elements.</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="element">
		<xs:complexType>
			<xs:attribute name="map" type="xs:unsignedInt" use="required">
				<xs:annotation>
					<xs:documentation>The element's original map index.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="id" type="xs:string" use="required">
				<xs:annotation>
					<xs:documentation>The element's unique id in its original map.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="rt" type="xs:double" use="required">
				<xs:annotation>
					<xs:documentation>Retention time of the element.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="mz" type="xs:double" use="required">
				<xs:annotation>
					<xs:documentation>M/Z of the element.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="it" type="xs:double" use="required">
				<xs:annotation>
					<xs:documentation>The intensity of the element.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="charge" type="xs:integer">
				<xs:annotation>
					<xs:documentation>The charge of the element. A missing change attribute is equal to charge 0.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
		</xs:complexType>
	</xs:element>

	<xs:complexType name="SearchParametersType">
		<xs:annotation>
			<xs:documentation>Search parameters that can be used for several identification runs</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="FixedModification" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>fixed modifications for the search</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence minOccurs="0">
						<xs:element name="UserParam" type="UserParam" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
					<xs:attribute name="name" use="required">
						<xs:annotation>
							<xs:documentation>modification name</xs:documentation>
						</xs:annotation>
						<xs:simpleType>
							<xs:restriction base="xs:string">
								<xs:minLength value="1"/>
							</xs:restriction>
						</xs:simpleType>
					</xs:attribute>
				</xs:complexType>
			</xs:element>
			<xs:element name="VariableModification" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>variable modifications for the search</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence minOccurs="0">
						<xs:element name="UserParam" type="UserParam" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
					<xs:attribute name="name" use="required">
						<xs:annotation>
							<xs:documentation>modification name</xs:documentation>
						</xs:annotation>
						<xs:simpleType>
							<xs:restriction base="xs:string">
								<xs:minLength value="1"/>
							</xs:restriction>
						</xs:simpleType>
					</xs:attribute>
				</xs:complexType>
			</xs:element>
			<xs:element name="UserParam" type="UserParam" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
<!--
		<xs:attribute name="id" type="xs:ID" use="required">
			<xs:annotation>
				<xs:documentation>'id' of search parameters.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
-->
		<xs:attribute name="db" type="xs:string" use="required">
			<xs:annotation>
				<xs:documentation>protein sequence database name</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="db_version" type="xs:string" use="required">
			<xs:annotation>
				<xs:documentation>database version</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="taxonomy" type="xs:string">
			<xs:annotation>
				<xs:documentation>taxonomy restriction</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="mass_type" type="MassType" use="required">
			<xs:annotation>
				<xs:documentation>mass type ('monoisotopic' or 'average')</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="charges" type="xs:string" use="required">
			<xs:annotation>
				<xs:documentation>searched for charges. If you want these charges to be automatically processed use the following format: '+1,+2,+3'</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="enzyme" type="xs:string">
			<xs:annotation>
				<xs:documentation>digestion enzyme name</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="missed_cleavages" type="xs:unsignedInt">
			<xs:annotation>
				<xs:documentation>number of allowed missed cleavages</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="precursor_peak_tolerance" type="xs:float" use="required">
			<xs:annotation>
				<xs:documentation>peak mass tolerance of precursor peak in Da</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="precursor_peak_tolerance_ppm" type="xs:boolean">
			<xs:annotation>
				<xs:documentation>flag to indicate relative mass tolerance of precursor peak</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="peak_mass_tolerance" type="xs:float" use="required">
			<xs:annotation>
				<xs:documentation>peak mass tolerance of fragment ions in Da</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="peak_mass_tolerance_ppm" type="xs:boolean">
			<xs:annotation>
				<xs:documentation>flag to indicate relative mass tolerance of fragment peak</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="ProteinIdentificationType">
		<xs:annotation>
			<xs:documentation>Collection of identified proteins</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="ProteinHit" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Single reported protein hit</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence minOccurs="0">
						<xs:element name="UserParam" type="UserParam" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
					<xs:attribute name="id" type="xs:ID" use="required">
						<xs:annotation>
							<xs:documentation>'id' of the protein hit. Is referenced by peptide hits.</xs:documentation>
						</xs:annotation>
					</xs:attribute>
					<xs:attribute name="accession" type="xs:string" use="required">
						<xs:annotation>
							<xs:documentation>accession of the protein in the used database.</xs:documentation>
						</xs:annotation>
					</xs:attribute>
					<xs:attribute name="score" type="xs:float" use="required">
						<xs:annotation>
							<xs:documentation>score of the hit</xs:documentation>
						</xs:annotation>
					</xs:attribute>
					<xs:attribute name="coverage" type="xs:float">
						<xs:annotation>
							<xs:documentation>protein coverage</xs:documentation>
						</xs:annotation>
					</xs:attribute>
					<xs:attribute name="sequence" type="xs:string">
						<xs:annotation>
							<xs:documentation>protein sequences, if known</xs:documentation>
						</xs:annotation>
					</xs:attribute>
				</xs:complexType>
			</xs:element>
			<xs:element name="UserParam" type="UserParam" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="score_type" type="xs:string" use="required">
			<xs:annotation>
				<xs:documentation>score type of the protein hits, e.g. MOWSE, p-value,...</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="higher_score_better" type="xs:boolean" use="required">
			<xs:annotation>
				<xs:documentation>if a higher score is better ('true' or false')</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="significance_threshold" type="xs:float">
			<xs:annotation>
				<xs:documentation>significance threshold as calculated by the search engine</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="PeptideIdentificationType">
		<xs:annotation>
			<xs:documentation>Peptide identifications not mapped to any consensus feature.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="PeptideHit" type="PeptideHitType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="UserParam" type="UserParam" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="identification_run_ref" type="xs:IDREF" use="required">
			<xs:annotation>
				<xs:documentation>Reference to the corresponding identification run.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="score_type" type="xs:string" use="required">
			<xs:annotation>
				<xs:documentation>score type of the protein hits, e.g. MOWSE, p-value,...</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="higher_score_better" type="xs:boolean" use="required">
			<xs:annotation>
				<xs:documentation>if a higher score is better ('true' or false')</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="significance_threshold" type="xs:float">
			<xs:annotation>
				<xs:documentation>significance threshold as calculated by the search engine</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="spectrum_reference" type="xs:unsignedInt">
			<xs:annotation>
				<xs:documentation>Integer reference number of the identified spectrum (or feature)</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="RT" type="xs:float">
			<xs:annotation>
				<xs:documentation>Precursor peak retention time of the identified spectrum</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="MZ" type="xs:float">
			<xs:annotation>
				<xs:documentation>Precursor peak mass-to-charge ratio of the identified spectrum</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="PeptideHitType">
		<xs:annotation>
			<xs:documentation>single reported peptide hit</xs:documentation>
		</xs:annotation>
		<xs:sequence minOccurs="0">
			<xs:element name="UserParam" type="UserParam" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="sequence" type="xs:string" use="required">
			<xs:annotation>
				<xs:documentation>peptide sequence</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="charge" type="xs:integer" use="required">
			<xs:annotation>
				<xs:documentation>charge of the peptide</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="score" type="xs:float" use="required">
			<xs:annotation>
				<xs:documentation>score of the hit</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="aa_before" type="CharListType">
			<xs:annotation>
				<xs:documentation>amino acid before the sequence (for DB search)</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="aa_after" type="CharListType">
			<xs:annotation>
				<xs:documentation>amino acid after the sequence (for DB search)</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="start" type="IntListType">
			<xs:annotation>
				<xs:documentation>start positions in protein</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="end" type="IntListType">
			<xs:annotation>
				<xs:documentation>end positions in protein</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="protein_refs" type="xs:IDREFS">
			<xs:annotation>
				<xs:documentation>References to proteins hits, this peptide occurs in.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:simpleType name="MassType">
		<xs:annotation>
			<xs:documentation>Enumeration of mass types</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="average"/>
			<xs:enumeration value="monoisotopic"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IntListType">
		<xs:annotation>
			<xs:documentation>list of integers</xs:documentation>
		</xs:annotation>
		<xs:list itemType="xs:int"/>
	</xs:simpleType>
	<xs:simpleType name="CharListType">
		<xs:annotation>
			<xs:documentation>list of strings</xs:documentation>
		</xs:annotation>
		<xs:list itemType="xs:string"/>
	</xs:simpleType>
	<xs:simpleType name="UserParamType">
		<xs:annotation>
			<xs:documentation>Enumeration of types</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="int"/>
			<xs:enumeration value="float"/>
			<xs:enumeration value="string"/>
			<xs:enumeration value="intList"/>
			<xs:enumeration value="floatList"/>
			<xs:enumeration value="stringList"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="UserParam">
		<xs:annotation>
			<xs:documentation>Type-Name-Value type for annotations</xs:documentation>
		</xs:annotation>
		<xs:attribute name="type" type="UserParamType" use="required">
			<xs:annotation>
				<xs:documentation>value type ('int', 'float' or 'string')</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="name" type="xs:string" use="required">
			<xs:annotation>
				<xs:documentation>name of the annotation</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="value" type="xs:anySimpleType" use="required">
			<xs:annotation>
				<xs:documentation>actual value of the annotation</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
</xs:schema>
