<?xml version="1.0" encoding="UTF-8"?>
<!-- 
    Attention: Generated code! Do not modify by hand!
    Generated by: XmlSchema.vsl (cartridge for FuGE version 1) 
         
  -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:fuge="http://fuge.sourceforge.net/fuge/1.0" targetNamespace="http://fuge.sourceforge.net/fuge/1.0" elementFormDefault="qualified">
	<xsd:complexType name="FuGE.Bio.ConceptualMolecule.SequenceAnnotationSetType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> This is used to annotate a set of sequences that share the same species, type and PolymerType. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element name="_species" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The organism from which this sequence was obtained. If more than one species are provided, this indicates that the identical sequence is found in these species. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_types" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The type of Sequence, e.g. gene, exon, UniGene cluster, fragment, BAC, EST, etc. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_polymerType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> A choice of protein, RNA, or DNA. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.ConceptualMolecule.SequenceType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A Sequence is a representation of a DNA, RNA, or protein sequence. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Bio.ConceptualMolecule.ConceptualMoleculeType">
				<xsd:sequence/>
				<xsd:attribute name="length" type="xsd:int">
					<xsd:annotation>
						<xsd:documentation> The number of residues in the Sequence. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="isApproximateLength" type="xsd:boolean">
					<xsd:annotation>
						<xsd:documentation> If length not positively known will be true </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="isCircular" type="xsd:boolean">
					<xsd:annotation>
						<xsd:documentation> Indicates if the Sequence is circular in nature. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="sequence" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The actual components of the sequence, for instance, for DNA a string consisting of A,T,C and G.   The attribute is optional and if the actual sequence is not specified here, it can be found through the DatabaseEntry. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="start" type="xsd:int">
					<xsd:annotation>
						<xsd:documentation> The start position of the referenced Sequence with respect to a larger Sequence, such as a complete chromosome, BAC etc. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="end" type="xsd:int">
					<xsd:annotation>
						<xsd:documentation> The end position of the referenced Sequence with respect to a larger Sequence, such as a complete chromosome, BAC etc. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="SequenceAnnotationSet_ref" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> Shared annotations for a set of sequences. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.ConceptualMolecule.ConceptualMoleculeType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> An abstract class for describing database entries of biological molecules such as DNA and protein sequences, metabolites or lipids etc. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Investigation.InvestigationType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> An Investigation is a self-contained unit of study that contains one or more types of 'omics technology. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element ref="fuge:InvestigationComponent" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The association to the techniques that comprise the Investigation. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:ContactRole" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The providers of the Investigation, its data and annotation. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="_summaryResults" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> HigherLevelAnalyses performed over data. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="HigherLevelAnalysis_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_sourceMaterials" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Investigationally important materials.  These are typically a species or set of strains.  This might also be a bucket of seawater or a pound of dirt. It is expected that these Materials are referenced by a ProtocolApplication. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Material_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_hypothesis" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The hypothesis being tested in the investigation. 
          </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="fuge:Description"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_investigationTypes" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The biological design type of the Investigation, such as toxicity, drug-response, gene knockout etc. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_conclusion" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The conclusions of the Investigation. 
          </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="fuge:Description"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_investigationSummary" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> OntologyTerms can be referenced that describe the hypothesis, conclusion or other summary information about the Investigation. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="start" type="xsd:dateTime">
					<xsd:annotation>
						<xsd:documentation> The start point of the investigation. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="end" type="xsd:dateTime">
					<xsd:annotation>
						<xsd:documentation> The end point of the investigation. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Investigation.InvestigationComponentType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> An overview of the design using a single omics technique. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element name="_factors" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The description of the factors (TimeCourse, Dosage, etc.) that segment the Data. The aggregation of Factors is limited to a single Investigation. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Factor_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_replicateDescription" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> Description of the replicate strategy of the InvestigationComponent. 
          </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="fuge:Description"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_qualityControlDescription" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> Description of the quality control aspects of the InvestigationComponent. 
          </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="fuge:Description"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_normalizationDescription" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> Description of the normalization strategy of the InvestigationComponent. 
          </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="fuge:Description"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_allProtocolApplications" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Complete set of all ProtocolApplications for a given InvestigationComponent. This allows access to the complete set of Materials and Data for the component. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="ProtocolApplication_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_componentDesignTypes" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The design of the investigation with respect to a single technique (InvestigationComponent) e.g. dye swap. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Investigation.FactorType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> Factors are the independent variables of an experiment (e.g. time, glucose concentration, ...). Note that Factors can be shared by multiple InvestigationComponents. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element ref="fuge:FactorValue" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The FactorValues for this Factor e.g. the time points in a time course. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="_factorType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The category of a Factor could be biological (time, [glucose]) or methodological (differing cDNA preparation protocols). </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Investigation.FactorValueType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The value for a Factor. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element name="_dataPartitions" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Represents a segmentation of the data by indexing existing DimensionElements of Data that relate to the FactorValue. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="DataPartition_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element ref="fuge:Measurement">
						<xsd:annotation>
							<xsd:documentation> Allows a value to be specified for a FactorValue using the Measurement class, which includes support for storing values as ontology terms. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Investigation.HigherLevelAnalysisType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> A container for domain-specific analyses performed on data. Subclasses must be created for different domains. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element name="_hypothesis" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The hypothesis being tested by the HigherLevelAnalysis 
          </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="fuge:Description"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_conclusion" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The conclusion reached from the HigherLevelAnalysis. 
          </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="fuge:Description"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Data.DataType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> Data can be an input to or an output from a ProtocolApplication. Data may be produced from a Material (data acquisition) or from another Data object (data transformation).  Examples of Data are gene expression measurements, or phenotypes associated with genetic manipulations. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Data.DimensionType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> A single dimension of a coordinate system. The DimensionElement class represents the discrete domain values represented in this dimension. A dimension with infinite domain values is not modeled here, for practical reasons. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element name="_dimensionType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The type of Dimension e.g. "array feature dimension" </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Data.DimensionElementType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> A single point within a parent dimension. This class should be extended. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Data.ExternalDataType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> Data external to the XML instance document. The location of the data file is given in the location attribute. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Bio.Data.DataType">
				<xsd:sequence>
					<xsd:element name="_externalFormatDocumentation" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> A URI to access documentation and tools to interpret the external format of the ExternalData instance. For example, XML Schema or static libraries (APIs) to access binary formats. 
          </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="fuge:URI"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_fileFormat" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The format of the ExternalData file, for example "tiff" for image files. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="location" type="xsd:anyURI" use="required">
					<xsd:annotation>
						<xsd:documentation> The location of the data file. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Data.InternalDataType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> Data that is internal to an instance XML document.   InternalData can be extended with an element that defines a particular encoding or data type for the storage array or the subclass GenericInternalData should be instantiated.   The array will typically use pointer arithmetic to access values based on the rank (e.g. number of)  Dimensions and their respective sizes (e.g. the number of contained DimensionElements). </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Bio.Data.DataType">
				<xsd:sequence/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Data.DataPartitionType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> An abstract class to represents a segmentation of the data by indexing existing DimensionElements of a Data. The class can be extended to reference specific subclasses of DimensionElement. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Data.PartitionPairType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> Relates a DataPartition (subset of Data) from one data set to another data set, for example for "supporting evidence". </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element name="_partitionPairAlgorithm" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The algorithm that relates the input partitions to the output partitions. 
          </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="fuge:Description"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Data.GenericInternalDataType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> Data that is internal to an instance XML document stored in an array with a specified encoding. The array will typically use pointer arithmetic to access values based on the rank (e.g. number of)  Dimensions and their respective sizes (e.g. the number of contained DimensionElements). </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Bio.Data.InternalDataType">
				<xsd:sequence>
					<xsd:element name="_matrixEncoding" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The format or data type in which the data matrix is represented in the storage object of GenericInternalData. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="storage">
						<xsd:annotation>
							<xsd:documentation> The storage matrix for data as specified by instantiation of extensions of Dimension and DimensionElement. </xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:list itemType="xsd:string"/>
						</xsd:simpleType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Data.GenericDataPartitionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> Represents a segmentation of the data by indexing existing DimensionElements of a Data </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Bio.Data.DataPartitionType">
				<xsd:sequence>
					<xsd:element name="_dimensionElementSet" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The DimensionElements segmented by this DataPartition. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="DimensionElement_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="Data_ref" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> This is a reference to the Data on which this DataPartition is based. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Material.MaterialType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> Material represents any kind of substance used in an experimental workflow, such as whole organisms, cells, DNA, solutions, compounds and experimental substances (gels, arrays etc.). The Material class can be extended by adding subclasses to model domain specific properties, or the relationships to OntologyIndividual can be used to describe the characteristics and type of Material.   Materials can be related to other materials through a directed acyclic graph (represented by ProtocolApplication(s)). Sub-component materials can be represented by the self-association on Material (e.g. Wells within a array). These associations are abstract and should be extended to represent these semantics for extensions of ProtocolApplication and Material. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element ref="fuge:ContactRole" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Contact details for the Material. The association to ContactRole could specify, for example, the creator or provider of the Material. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="_materialType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The type of material used, i.e. RNA, DNA, lipid, phosphoprotein, organism etc. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_characteristics" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The characteristics of a Material. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_qualityControlStatistics" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Measures of the quality of the Material. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Material.MaterialMeasurementType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> MaterialMeasurement represents the quantity of a source Material used in a ProtocolApplication. MaterialMeasurement is abstract and should be extended if a subclass of ProtocolApplication has to be associated with a measured source of a subclass of Material. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element ref="fuge:Measurement" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The value of the measured source of material. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Material.GenericMaterialType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A subclass of the abstract Material class, which should be used in conjunction with controlled vocabulary terms to describe Materials of any types used in an investigation. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Bio.Material.MaterialType">
				<xsd:sequence>
					<xsd:element name="_components" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Association from a GenericMaterial to other GenericMaterials that are sub-components (such as wells within an array plate). If a subcomponent undergoes a ProtocolApplication, then the containing GenericMaterial must also be an input to the ProtocolApplication and be output as a new GenericMaterial or version of the GenericMaterial. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="GenericMaterial_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Material.GenericMaterialMeasurementType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A subclass of MaterialMeasurement to be used without being extended in conjunction with GenericProtocolApplication and GenericMaterial to model measured sources of materials. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Bio.Material.MaterialMeasurementType">
				<xsd:sequence/>
				<xsd:attribute name="Material_ref" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> The instance of GenericMaterial or a subclass of Material that is input to the GenericProtocolApplication. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Audit.PersonType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A person for which the attributes are self describing. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Audit.ContactType">
				<xsd:sequence>
					<xsd:element name="_affiliations" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The organization a person belongs to. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Organization_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="lastName" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The Person's last/family name. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="firstName" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The Person's first name. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="midInitials" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The Person's middle initial. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Audit.SecurityType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> Permission information for an object as to ownership, write and read permissions. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element name="_owners" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The owner(s) of the security rights on the object. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Contact_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element ref="fuge:SecurityAccess" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Specifies which security groups have permission to view the associated object. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Audit.AuditType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> Tracks information on the Contact that creates or modifies an object. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence/>
				<xsd:attribute name="date" type="xsd:dateTime" use="required">
					<xsd:annotation>
						<xsd:documentation> The date of a change. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="action" use="required">
					<xsd:simpleType>
						<xsd:restriction base="xsd:NMTOKEN">
							<xsd:enumeration value="creation"/>
							<xsd:enumeration value="modification"/>
							<xsd:enumeration value="deletion"/>
						</xsd:restriction>
					</xsd:simpleType>
				</xsd:attribute>
				<xsd:attribute name="Contact_ref" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The contact for creating or changing the instance referred to by the Audit. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Audit.OrganizationType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> Organizations are entities like companies, universities, government agencies for which the attributes are self describing. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Audit.ContactType">
				<xsd:sequence>
					<xsd:element name="_parent" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The containing organization (the university or business which a lab belongs to, etc.) </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Organization_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Audit.SecurityGroupType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> Groups Contacts together based on their security privileges. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element name="_members" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The members of the SecurityGroup. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Contact_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Audit.ContactType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> A contact is either a person or an organization. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence/>
				<xsd:attribute name="address" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The address of the Contact. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="phone" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The telephone number of the Contact including the suitable area codes. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="email" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The email address of the Contact. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="fax" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The fax number of the Contact. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="tollFreePhone" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> A toll free phone number for the Contact, including suitable area codes. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Audit.ContactRoleType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The role that a Contact plays in an organization or with respect to the associating class.  A Contact may have several Roles within scope, and as such, associations to ContactRole allow the use of a Contact in a certain manner.  Examples might include a provider, or a data analyst. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element name="_role">
						<xsd:annotation>
							<xsd:documentation> The roles (lab equipment sales, contractor, etc.) the Contact fills. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="Contact_ref" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> When a ContactRole is used, it specifies which Contact the role is associated with. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Audit.SecurityAccessType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A specification of the access right (e.g. read or write) that a specified group (SecurityGroup) has on a particular object. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element name="_accessRight" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The type of AccessRight allowed on this object e.g. Read, Write etc. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="SecurityGroup_ref" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> The group of contacts that have the specified access right on an object. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.References.BibliographicReferenceType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> Represents bibliographic references, including the most common attributes. Note that because a BibliographicReference is Identifiable, a DatabaseEntry can also be specified. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence/>
				<xsd:attribute name="authors" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The names of the authors of the reference. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="publication" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The name of the journal, book etc. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="publisher" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The publisher of the publication. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="editor" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The editor(s) of the reference. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="year" type="xsd:int">
					<xsd:annotation>
						<xsd:documentation> The year of publication. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="volume" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The volume name or number. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="issue" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The issue name or number. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="pages" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The page numbers. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="title" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The title of the BibliographicReference. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.References.DatabaseType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> An address to a repository. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element ref="fuge:ContactRole" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Contacts associated with this database, such as hosting institution, database curators, manager etc. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="version" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The version of the Database. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="URI" type="xsd:anyURI">
					<xsd:annotation>
						<xsd:documentation> The location of the Database. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.References.DatabaseReferenceType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A reference to a record in a database. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence/>
				<xsd:attribute name="accession" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> The identifier used to look up the record. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="accessionVersion" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The appropriate version of the accession (if applicable). </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="Database_ref" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> Reference to the database where the DatabaseEntry instance can be found. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Description.DescriptionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A free text description of an object. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence/>
				<xsd:attribute name="text" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The description. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Description.URIType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A URI is short for Uniform Resource Identifier.   A URI is a compact sequence of characters that identifies an abstract or physical resource. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence/>
				<xsd:attribute name="location" type="xsd:anyURI" use="required">
					<xsd:annotation>
						<xsd:documentation> The Uniform Resource Indicator for this object. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Description.NameValueTypeType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A tuple designed to store data, keyed by a name and type. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence/>
				<xsd:attribute name="name" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The name of the key. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="value" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The value of the name. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="type" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The type of the key. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ProtocolType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> A Protocol is a parameterizable description of a method.  ProtocolApplication is used to specify the ParameterValues of its Protocol's Parameters.   Protocol should be extended in data formats. For cases where no extension is developed, the subclass of Protocol, GenericProtocol, should be used to capture experimental protocols. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.ParameterizableType">
				<xsd:sequence>
					<xsd:element name="_inputTypes" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The types of inputs this Protocol can take e.g. organisms, solutions, data formats etc. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_outputTypes" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The types of outputs produced by this Protocol e.g. organisms, solutions, data formats etc. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ParameterType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> A Parameter is a replaceable value in a Parameterizable class.  Examples of Parameters include: scanning wavelength, laser power, centrifuge speed, multiplicative errors, the number of input nodes to a SOM, and PCR temperatures.   Parameter is abstract and should be extended by subclassing. The GenericParameter class offers the functionality of a parameter defined by a controlled vocabulary term. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element ref="fuge:Measurement" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The default value for this parameter. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="isInputParam" type="xsd:boolean">
					<xsd:annotation>
						<xsd:documentation> An optional Boolean value to determine whether the parameter is an input (true) or an output (false). </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ParameterValueType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The value of a Parameter. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element ref="fuge:Measurement">
						<xsd:annotation>
							<xsd:documentation> The runtime value for this Parameter. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="Parameter_ref" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> The parameter this value is for. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ProtocolApplicationType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> The use of a protocol with the requisite Parameters and ParameterValues. ProtocolApplications can take Material or Data (or both) as input and produce Material or Data (or both) as output. ProtocolApplication is abstract and should be subclassed in the development of modular formats. The subclass GenericProtocolApplication can be used without extension. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.ParameterizableApplicationType">
				<xsd:sequence>
					<xsd:element ref="fuge:ActionApplication" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Association to the ActionApplication steps that comprise this ProtocolApplication. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:SoftwareApplication" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The use of software for the application of the protocol. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:EquipmentApplication" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The use of hardware for the application of the protocol. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="_protocolDeviation" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> Used to define human readable notes for annotating deviations to the protocol on a Protocol-wide level, for example, if the order of execution of Actions was changed in some non-destructive manner. 
          </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="fuge:Description"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
					<xsd:element ref="fuge:ContactRole" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The people or organizations who performed the protocol. ContactRole could be used to specify the part of the Protocol performed by a particular Contact. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="activityDate" type="xsd:dateTime">
					<xsd:annotation>
						<xsd:documentation> When the protocol was applied. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.SoftwareType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> Software used in the Protocol.  Examples of Software include: feature extraction software, clustering software, etc...   Software is abstract and should either be extended by subclassing or the GenericSoftware class, a functional version of Software, should be used without extension. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.ParameterizableType">
				<xsd:sequence/>
				<xsd:attribute name="version" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The version of Software used. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.EquipmentType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> The equipment (hardware) used in the Protocol. Examples include: computers, scanners, wash stations etc...   Equipment is abstract and should either be extended by subclassing or the GenericEquipment class, a functional version of Equipment, should be used. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.ParameterizableType">
				<xsd:sequence>
					<xsd:element name="_make" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The equipment make, usually the organization that makes the equipment. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_model" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The Equipment model. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.EquipmentApplicationType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The use of a piece of Equipment with the requisite Parameters and ParameterValues. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.ParameterizableApplicationType">
				<xsd:sequence/>
				<xsd:attribute name="serialNumber" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> Manufacturer's identifier for the Equipment. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="Equipment_ref" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> The Equipment that was used in the ProtocolApplication. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.SoftwareApplicationType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The use of a piece of software with the requisite Parameters and ParameterValues. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.ParameterizableApplicationType">
				<xsd:sequence/>
				<xsd:attribute name="Software_ref" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> The Software that was used in the ProtocolApplication. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ParameterizableType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> The Parameterizable interface encapsulates the association of Parameters with ParameterValues. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element ref="fuge:ContactRole" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The provider of the Protocol, Equipment or Software. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="_types" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The type of Equipment, Software or Protocol. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ParameterizableApplicationType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> The interface that is the use of a Parameterizable class. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element ref="fuge:ParameterValue" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The parameter values for this Parameterizable Application. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ActionType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> An Action is one step of a Protocol. Sets of ordered Actions define the Protocol. Action is abstract and can be extended to specify particular types of steps within a subclass of Protocol. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence/>
				<xsd:attribute name="actionOrdinal" type="xsd:int">
					<xsd:annotation>
						<xsd:documentation> The order by which this Action should occur with respect to the Parent protocol. Note that two Actions with the same actionOrdinal are performed in parallel or the order is not important. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ActionApplicationType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> ActionApplication mirrors the structure of Actions within Protocols and allows ActionDeviations to be reported.   RULE:   If an Action references a childProtocol, an ActionApplication must be created and reference a childProtocolApplication of the corresponding type (or GenericProtocolApplication) to mirror the Protocol structure.   ActionApplications can be (but need not be) created for simple Actions. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.ParameterizableApplicationType">
				<xsd:sequence>
					<xsd:element name="_actionDeviation" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> Used to define human readable notes for annotating deviations to an Action during the ActionApplication. 
          </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="fuge:Description"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="Action_ref" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> Association to the Action that is being performed as recorded by this ActionApplication. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="ProtocolApplication_ref" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> Association to ProtocolApplication if a hierarchical Protocol has been defined representing the child step of the Protocol. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.GenericProtocolType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> GenericProtocol should be used with GenericAction, GenericParameter or protocolText to describe protocols in a data format for cases where no explicit extension of Protocol has been developed. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.ProtocolType">
				<xsd:sequence>
					<xsd:element name="_software" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> A reference to the GenericSoftware used with this GenericProtocol. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="GenericSoftware_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_equipment" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> A reference to the GenericProtocol used with this GenericEquipment. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="GenericEquipment_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element ref="fuge:GenericParameter" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The parameters defined for the GenericProtocol. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:Action" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The actions performed within a GenericProtocol. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="protocolText" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The text that applies to the entire Protocol. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.GenericActionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A GenericAction represents a step within a GenericProtocol. It allows a reference to a sub-GenericProtocol, user entered text to describe the GenericAction or a term from a controlled vocabulary to be given. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.ActionType">
				<xsd:sequence>
					<xsd:element name="_actionTerm" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> Each GenericAction may be associated with an OntologyTerm that defines that GenericAction. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element ref="fuge:GenericParameter" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The parameters belonging to the GenericAction. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:ParameterPair" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> ParameterPairs owned by the GenericAction. The TargetParameter should reference a Parameter owned by a child Protocol which is also referenced by the GenericAction. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="actionText" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> Free text to describe this Action. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="Protocol_ref" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> This is an instantiation of the ChildProtocol association for associating complex, hierarchical protocols together. A GenericAction can reference substeps within the parent GenericProtocol. The substeps can be further instances of GenericProtocol, or defined subclasses of Protocol. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.GenericSoftwareType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A subclass of the abstract Software class for capturing the description of Software used. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.SoftwareType">
				<xsd:sequence>
					<xsd:element name="_equipment" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Associates GenericEquipment with GenericSoftware to indicate that instances of software are run on piece(s) of Equipment. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="GenericEquipment_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element ref="fuge:GenericParameter" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The parameters for this piece of GenericSoftware. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.GenericEquipmentType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A subclass of the abstract Equipment class for capturing the description of Equipment used. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.EquipmentType">
				<xsd:sequence>
					<xsd:element name="_software" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Associates GenericEquipment with GenericSoftware to indicate that instances of software are run on piece(s) of Equipment. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="GenericSoftware_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element ref="fuge:GenericParameter" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The parameters for this piece of GenericEquipment. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="_equipmentParts" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> An association between a parent GenericEquipment and its parts. If a GenericProtocol utilises GenericEquipment and its parts, both the parent and child GenericEquipment instances should be referenced. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="GenericEquipment_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.GenericParameterType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A subclass of the abstract Parameter class to represent a parameter that is defined by a controlled vocabulary term. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.ParameterType">
				<xsd:sequence>
					<xsd:element name="_parameterType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The name of the parameter. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.GenericProtocolApplicationType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A subclass of ProtocolApplication to be used as it is in data formats without being extended. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.ProtocolApplicationType">
				<xsd:sequence>
					<xsd:element ref="fuge:GenericMaterialMeasurement" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Measured sources of material that are inputs to this GenericProtocolApplication. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="_inputData" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The instances of GenericData that are inputs to the GenericProtocolApplication. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Data_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_outputData" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The Data produced from the GenericProtocolApplication. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Data_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_outputMaterials" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The instances of GenericMaterial or a subclass of Material that are produced from the GenericProtocolApplication. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Material_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_inputCompleteMaterials" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Whole Materials that are inputs to the GenericProtocolApplication. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Material_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="Protocol_ref" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> A reference to the GenericProtocol or subclass of Protocol that has been used with this GenericProtocolApplication. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ParameterPairType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A pairing of an output parameter from a Protocol (SourceParameter) with an input parameter to a separate Protocol (TargetParameter) to indicate that the ParameterValue will be the same. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element name="_targetParameter">
						<xsd:annotation>
							<xsd:documentation> A Parameter that is an input to a process which has been an output from another process. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Parameter_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_sourceParameter">
						<xsd:annotation>
							<xsd:documentation> A Parameter that is output from one process which will be input to another process. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Parameter_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Ontology.OntologyIndividualType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> An instance of an Ontology class. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Ontology.OntologyTermType">
				<xsd:sequence>
					<xsd:element ref="fuge:OntologyProperty" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> A list of properties associated with the Individual.  If based on an external Ontology, the list should be able to be validated against that Ontology. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Ontology.OntologyPropertyType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> Base class for instances of Ontology properties </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Ontology.OntologyTermType">
				<xsd:sequence/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Ontology.DataPropertyType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> An instance of an Ontology data property.  So an individual of Age might be restricted to a value of 8. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Ontology.OntologyPropertyType">
				<xsd:sequence/>
				<xsd:attribute name="dataType" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> An optional data type attribute which should be either one of the CORBA Any types or one of the XML Schema simple types.   If the Parent Individual is associated with a has_datatype property, instead of stating that property explicity, it could be used as the value of the datatype attribute, or the datatype can be provided as a hint to applications on how to store the value. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="value" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The value associated with the DataProperty instance. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Ontology.ObjectPropertyType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> An instance of an Ontology object property that restricts the parent individual to its child individual.  So an Age individual may be restricted to an Individual unit of years. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Ontology.OntologyPropertyType">
				<xsd:sequence>
					<xsd:element ref="fuge:OntologyIndividual" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The instance(s) of the child OntologyIndividuals referenced by the parent OntologyIndividual. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Ontology.OntologyTermType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> A single entry from an ontology or a controlled vocabulary.   If it is a simple controlled vocabulary, there may be no formal accession for the term. In these cases the local name should be repeated in both term and termAccession. If the term has a value, the OntologyIndividual will have a single DataProperty whose value was the value for the property.   For instance, for an OntologyIndividual based on the MO ontology the attributes might be:   The term would be what is usually called the local name in the Ontology, for instance 'Age';   The termAccession could be 'http://mged.sourceforge.net/ontologies/MGEDOntology.owl#Age' or a an arbitrary accession if one exists;   The identifier is a unique identifier for individuals in the scope of the FuGE instance;   The inherited name attribute should not be used;   The ontologyURI of OntologySource could be 'http://mged.sourceforge.net/ontologies/MGEDOntology.owl".   The OntologyTerm subclasses are instances of Ontology classes and properties, not the actual terms themselves.  An OntologyIndividual, if based on an existing Ontology, can be considered a statement that can be validated against the referenced ontology.   The subclasses and their associations are based on the Ontology Definition Model, ad/2005-04-13, submitted to the OMG as a response to RFP ad/2003-03-40,   Copyright © 2005 DSTC Pty Ltd.   Copyright © 2005 IBM   Copyright © 2005 Sandpiper Software, Inc   under the standard OMG license terms. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence/>
				<xsd:attribute name="term" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> The ontology term itself, also known as the local name in some ontologies. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="termAccession" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> The accession number assigned to the ontology term in the source ontology. If there is no explicit accession assigned, then the term (localname) must be repeated (i.e. the term is the unique accession). </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="OntologySource_ref" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The source ontology or controlled vocabulary list that ontology terms have been obtained from. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Ontology.OntologySourceType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The source ontology or controlled vocabulary list that ontology terms have been obtained from. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence/>
				<xsd:attribute name="ontologyURI" type="xsd:anyURI" use="required">
					<xsd:annotation>
						<xsd:documentation> A URI that references the location of the ontology. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.DescribableType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> Abstract class that allows subclasses to inherit associations that enable objects to be given a text description, additional annotations as Ontology entries, a URI, associations to Audit for tracking changes, and the association to Security for indicating permissions. The URI, Annotations, PropertySets and Descriptions associations inherited from Describable should only be used to capture additional information where the model contains no other structures that could be used to capture the information. </xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="_auditTrail" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation> A list of Audit instances that track changes to the instance of Describable. 
          </xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element ref="fuge:Audit" maxOccurs="unbounded"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="_descriptions" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation> Free hand text descriptions. 
          </xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element ref="fuge:Description" maxOccurs="unbounded"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="_uri" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation> A URI associated with a Describable object. 
          </xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element ref="fuge:URI"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="_annotations" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation> Allows specification of additional ontology entries related to the instance being described that are not directly specified elsewhere. </xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="_propertySets" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation> Allows specification of name, value, type triples.  Meant to primarily help in-house, pipeline processing of instances by providing a place for values that are not part of the specification proper. 
          </xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element ref="fuge:NameValueType" maxOccurs="unbounded"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
		<xsd:attribute name="Security_ref" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation> Information on the security for the instance of the class. </xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.IdentifiableType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> Other classes in the model can be specified as sub-classes, inheriting from Identifiable. Identifiable gives classes a unique identifier within the scope and a name that need not be unique. Identifiable also provides a mechanism for annotating objects with BibliographicReference(s) and DatabaseEntry(s). </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element ref="fuge:DatabaseReference" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> References to entries in databases. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="_bibliographicReferences" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> References to existing literature. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="BibliographicReference_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="identifier" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="name" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The potentially ambiguous common identifier, such as a human-readable name for the instance. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Measurement.AtomicValueType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> An atomic value i.e. one that has a single value. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Measurement.MeasurementType">
				<xsd:sequence/>
				<xsd:attribute name="value" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> An atomic default value for the parameter. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Measurement.BooleanValueType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A Boolean value. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Measurement.MeasurementType">
				<xsd:sequence/>
				<xsd:attribute name="value" type="xsd:boolean" use="required">
					<xsd:annotation>
						<xsd:documentation> A Boolean default value for the parameter. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Measurement.ComplexValueType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A complex default value for the Parameter, such as a term from a controlled list or a function. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Measurement.MeasurementType">
				<xsd:sequence>
					<xsd:element name="_value">
						<xsd:annotation>
							<xsd:documentation> A value given by an ontology term. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Measurement.RangeType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A range value. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Measurement.MeasurementType">
				<xsd:sequence>
					<xsd:element name="_rangeDescriptors" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Ontology terms can be used the define the semantics of the lower and upper limit in the range, for example the inclusivity of the values or what the values correspond to in the annotated object. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="lowerLimit" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> The lower limit of a range value. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="upperLimit" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> The upper limit of a range value. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Measurement.MeasurementType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> Abstract superclass representing different methods of supplying a value or measurement. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element name="_unit" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The Unit of Measurement. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="_dataType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The data type of the Parameter such as Boolean, integer, String. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.ProtocolCollectionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The complete set of Protocol, Equipment, Software and ProtocolApplication objects in the FuGE document. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element ref="fuge:Protocol" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Reference to all Protocol objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:Software" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Reference to all Software objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:ProtocolApplication" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Reference to all ProtocolApplication objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:Equipment" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Reference to all Equipment objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.InvestigationCollectionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The collection of Investigation and Factor objects in the FuGE document. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element ref="fuge:Investigation" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Reference to all Investigation objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:Factor" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Reference to the complete set of Factor objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.ReferenceableCollectionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The collection of objects that allow external references. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element ref="fuge:BibliographicReference" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Reference to the complete set of BibliographicReference objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:Database" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Reference to the complete set of Database objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.DataCollectionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The complete collection of all Data, Dimension, DataPartition and HigherLevelAnalysis objects. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element ref="fuge:Dimension" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Reference to the complete set of Dimension objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:HigherLevelAnalysis" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Reference to the complete set of HigherLevelAnalysis objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:Data" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Reference to the complete set of Data objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:DataPartition" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Reference to the complete set of DataPartitions. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.ConceptualMoleculeCollectionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The complete set of ConceptualMolecule objects and SequenceAnnotationSet objects. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element ref="fuge:ConceptualMolecule" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Reference to the complete set of ConceptualMolecule objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:SequenceAnnotationSet" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Reference to the complete set of SequenceAnnotation objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.OntologyCollectionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The complete set of OntologyIndividual and OntologySource objects referenced in the FuGE document. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element ref="fuge:OntologyTerm" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The complete set of OntologyTerms in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:OntologySource" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The complete set of OntologySources in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.MaterialCollectionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The complete set of all Material objects in the FuGE document. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element ref="fuge:Material" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The complete set of Materials. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.AuditCollectionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The collection of Audit objects (Security, SecurityGroup and Contacts). </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element ref="fuge:Security" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Reference to the complete set of Security objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:Contact" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The complete set of Contacts. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:SecurityGroup" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Reference to the complete set of SecurityGroup objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.ProviderType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The provider of the FuGE document in terms of the Contact and the software the produced the document instance. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element ref="fuge:ContactRole" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The Contact that provided the document instance. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="Software_ref" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The Software that produced the document instance. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.FuGEType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The root container for accessing all objects. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element ref="fuge:MaterialCollection" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The complete set of all Material objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:ConceptualMoleculeCollection" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The complete set of ConceptualMolecule objects and SequenceAnnotationSet objects. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:ReferenceableCollection" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The complete set of BibliographicReferences and Databases. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:InvestigationCollection" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The collection of Investigation and Factor objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:DataCollection" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The complete collection of all Data, Dimension, DataPartition and HigherLevelAnalysis objects. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:AuditCollection" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The collection of Audit objects (Security, SecurityGroup and Contacts). </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:ProtocolCollection" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The complete set of Protocol, Equipment, Software and ProtocolApplication objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:OntologyCollection" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The complete set of OntologyIndividual objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="fuge:Provider" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The Provider of the FuGE document </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:element name="SequenceAnnotationSet" type="fuge:FuGE.Bio.ConceptualMolecule.SequenceAnnotationSetType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="Sequence" type="fuge:FuGE.Bio.ConceptualMolecule.SequenceType" abstract="false" substitutionGroup="fuge:ConceptualMolecule"/>
	<xsd:element name="ConceptualMolecule" type="fuge:FuGE.Bio.ConceptualMolecule.ConceptualMoleculeType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="Investigation" type="fuge:FuGE.Bio.Investigation.InvestigationType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="InvestigationComponent" type="fuge:FuGE.Bio.Investigation.InvestigationComponentType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="Factor" type="fuge:FuGE.Bio.Investigation.FactorType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="FactorValue" type="fuge:FuGE.Bio.Investigation.FactorValueType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="HigherLevelAnalysis" type="fuge:FuGE.Bio.Investigation.HigherLevelAnalysisType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="Data" type="fuge:FuGE.Bio.Data.DataType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="Dimension" type="fuge:FuGE.Bio.Data.DimensionType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="DimensionElement" type="fuge:FuGE.Bio.Data.DimensionElementType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="ExternalData" type="fuge:FuGE.Bio.Data.ExternalDataType" abstract="false" substitutionGroup="fuge:Data"/>
	<xsd:element name="InternalData" type="fuge:FuGE.Bio.Data.InternalDataType" abstract="true" substitutionGroup="fuge:Data"/>
	<xsd:element name="DataPartition" type="fuge:FuGE.Bio.Data.DataPartitionType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="PartitionPair" type="fuge:FuGE.Bio.Data.PartitionPairType" abstract="true" substitutionGroup="fuge:Describable"/>
	<xsd:element name="GenericInternalData" type="fuge:FuGE.Bio.Data.GenericInternalDataType" abstract="false" substitutionGroup="fuge:InternalData"/>
	<xsd:element name="GenericDataPartition" type="fuge:FuGE.Bio.Data.GenericDataPartitionType" abstract="false" substitutionGroup="fuge:DataPartition"/>
	<xsd:element name="Material" type="fuge:FuGE.Bio.Material.MaterialType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="MaterialMeasurement" type="fuge:FuGE.Bio.Material.MaterialMeasurementType" abstract="true" substitutionGroup="fuge:Describable"/>
	<xsd:element name="GenericMaterial" type="fuge:FuGE.Bio.Material.GenericMaterialType" abstract="false" substitutionGroup="fuge:Material"/>
	<xsd:element name="GenericMaterialMeasurement" type="fuge:FuGE.Bio.Material.GenericMaterialMeasurementType" abstract="false" substitutionGroup="fuge:MaterialMeasurement"/>
	<xsd:element name="Person" type="fuge:FuGE.Common.Audit.PersonType" abstract="false" substitutionGroup="fuge:Contact"/>
	<xsd:element name="Security" type="fuge:FuGE.Common.Audit.SecurityType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="Audit" type="fuge:FuGE.Common.Audit.AuditType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="Organization" type="fuge:FuGE.Common.Audit.OrganizationType" abstract="false" substitutionGroup="fuge:Contact"/>
	<xsd:element name="SecurityGroup" type="fuge:FuGE.Common.Audit.SecurityGroupType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="Contact" type="fuge:FuGE.Common.Audit.ContactType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="ContactRole" type="fuge:FuGE.Common.Audit.ContactRoleType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="SecurityAccess" type="fuge:FuGE.Common.Audit.SecurityAccessType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="BibliographicReference" type="fuge:FuGE.Common.References.BibliographicReferenceType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="Database" type="fuge:FuGE.Common.References.DatabaseType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="DatabaseReference" type="fuge:FuGE.Common.References.DatabaseReferenceType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="Description" type="fuge:FuGE.Common.Description.DescriptionType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="URI" type="fuge:FuGE.Common.Description.URIType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="NameValueType" type="fuge:FuGE.Common.Description.NameValueTypeType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="Protocol" type="fuge:FuGE.Common.Protocol.ProtocolType" abstract="true" substitutionGroup="fuge:Parameterizable"/>
	<xsd:element name="Parameter" type="fuge:FuGE.Common.Protocol.ParameterType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="ParameterValue" type="fuge:FuGE.Common.Protocol.ParameterValueType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="ProtocolApplication" type="fuge:FuGE.Common.Protocol.ProtocolApplicationType" abstract="true" substitutionGroup="fuge:ParameterizableApplication"/>
	<xsd:element name="Software" type="fuge:FuGE.Common.Protocol.SoftwareType" abstract="true" substitutionGroup="fuge:Parameterizable"/>
	<xsd:element name="Equipment" type="fuge:FuGE.Common.Protocol.EquipmentType" abstract="true" substitutionGroup="fuge:Parameterizable"/>
	<xsd:element name="EquipmentApplication" type="fuge:FuGE.Common.Protocol.EquipmentApplicationType" abstract="false" substitutionGroup="fuge:ParameterizableApplication"/>
	<xsd:element name="SoftwareApplication" type="fuge:FuGE.Common.Protocol.SoftwareApplicationType" abstract="false" substitutionGroup="fuge:ParameterizableApplication"/>
	<xsd:element name="Parameterizable" type="fuge:FuGE.Common.Protocol.ParameterizableType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="ParameterizableApplication" type="fuge:FuGE.Common.Protocol.ParameterizableApplicationType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="Action" type="fuge:FuGE.Common.Protocol.ActionType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="ActionApplication" type="fuge:FuGE.Common.Protocol.ActionApplicationType" abstract="false" substitutionGroup="fuge:ParameterizableApplication"/>
	<xsd:element name="GenericProtocol" type="fuge:FuGE.Common.Protocol.GenericProtocolType" abstract="false" substitutionGroup="fuge:Protocol"/>
	<xsd:element name="GenericAction" type="fuge:FuGE.Common.Protocol.GenericActionType" abstract="false" substitutionGroup="fuge:Action"/>
	<xsd:element name="GenericSoftware" type="fuge:FuGE.Common.Protocol.GenericSoftwareType" abstract="false" substitutionGroup="fuge:Software"/>
	<xsd:element name="GenericEquipment" type="fuge:FuGE.Common.Protocol.GenericEquipmentType" abstract="false" substitutionGroup="fuge:Equipment"/>
	<xsd:element name="GenericParameter" type="fuge:FuGE.Common.Protocol.GenericParameterType" abstract="false" substitutionGroup="fuge:Parameter"/>
	<xsd:element name="GenericProtocolApplication" type="fuge:FuGE.Common.Protocol.GenericProtocolApplicationType" abstract="false" substitutionGroup="fuge:ProtocolApplication"/>
	<xsd:element name="ParameterPair" type="fuge:FuGE.Common.Protocol.ParameterPairType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="OntologyIndividual" type="fuge:FuGE.Common.Ontology.OntologyIndividualType" abstract="false" substitutionGroup="fuge:OntologyTerm"/>
	<xsd:element name="OntologyProperty" type="fuge:FuGE.Common.Ontology.OntologyPropertyType" abstract="true" substitutionGroup="fuge:OntologyTerm"/>
	<xsd:element name="DataProperty" type="fuge:FuGE.Common.Ontology.DataPropertyType" abstract="false" substitutionGroup="fuge:OntologyProperty"/>
	<xsd:element name="ObjectProperty" type="fuge:FuGE.Common.Ontology.ObjectPropertyType" abstract="false" substitutionGroup="fuge:OntologyProperty"/>
	<xsd:element name="OntologyTerm" type="fuge:FuGE.Common.Ontology.OntologyTermType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="OntologySource" type="fuge:FuGE.Common.Ontology.OntologySourceType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="Describable" type="fuge:FuGE.Common.DescribableType" abstract="true"/>
	<xsd:element name="Identifiable" type="fuge:FuGE.Common.IdentifiableType" abstract="true" substitutionGroup="fuge:Describable"/>
	<xsd:element name="AtomicValue" type="fuge:FuGE.Common.Measurement.AtomicValueType" abstract="false" substitutionGroup="fuge:Measurement"/>
	<xsd:element name="BooleanValue" type="fuge:FuGE.Common.Measurement.BooleanValueType" abstract="false" substitutionGroup="fuge:Measurement"/>
	<xsd:element name="ComplexValue" type="fuge:FuGE.Common.Measurement.ComplexValueType" abstract="false" substitutionGroup="fuge:Measurement"/>
	<xsd:element name="Range" type="fuge:FuGE.Common.Measurement.RangeType" abstract="false" substitutionGroup="fuge:Measurement"/>
	<xsd:element name="Measurement" type="fuge:FuGE.Common.Measurement.MeasurementType" abstract="true" substitutionGroup="fuge:Describable"/>
	<xsd:element name="ProtocolCollection" type="fuge:FuGE.Collection.ProtocolCollectionType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="InvestigationCollection" type="fuge:FuGE.Collection.InvestigationCollectionType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="ReferenceableCollection" type="fuge:FuGE.Collection.ReferenceableCollectionType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="DataCollection" type="fuge:FuGE.Collection.DataCollectionType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="ConceptualMoleculeCollection" type="fuge:FuGE.Collection.ConceptualMoleculeCollectionType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="OntologyCollection" type="fuge:FuGE.Collection.OntologyCollectionType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="MaterialCollection" type="fuge:FuGE.Collection.MaterialCollectionType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="AuditCollection" type="fuge:FuGE.Collection.AuditCollectionType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="Provider" type="fuge:FuGE.Collection.ProviderType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="FuGE" type="fuge:FuGE.Collection.FuGEType" abstract="false" substitutionGroup="fuge:Identifiable"/>
</xsd:schema>
