<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by Andrew Jones (U Glasgow) -->
<!-- 
    Attention: Generated code! Do not modify by hand!
    Generated by: XmlSchema.vsl (FuGE milestone 3 version) 
          

  -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:fuge="http://fuge.org/core" targetNamespace="http://fuge.org/core" elementFormDefault="qualified">
	<xsd:complexType name="FuGE.Common.Ontology.OntologyTermType" abstract="true">
		<xsd:annotation>
			<xsd:documentation>
				<p>
A single entry from an ontology or a controlled vocabulary.
</p>
				<p>
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 with have a single DataProperty
whose value was the value for the property.
</p>
				<p>
For instance, for an OntologyIndividual based on the MO ontology
the attributes might be:
</p>
				<p>
The identifier is some unique identifier for individuals,
possible a UUID,
</p>
				<p>
The term would be what is usually called the local name in the
Ontology, for instance 'Age'
</p>
				<p>
The inherited name attribute should not be used.
</p>
				<p>
The termAccession could be
'http://mged.sourceforge.net/ontologies/MGEDOntology.owl#Age' or
a an arbitrary accession if one exists,
</p>
				<p>
The ontologyURI of OntologySource could be
'http://mged.sourceforge.net/ontologies/MGEDOntology.owl".
</p>
				<p>
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.
</p>
				<p>
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,
</p>
				<p>
Copyright © 2005 DSTC Pty Ltd.
</p>
				<p>
Copyright © 2005 IBM
</p>
				<p>
Copyright © 2005 Sandpiper Software, Inc
</p>
				<p>
under the standard OMG license terms.
</p>
			</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>
							<p>
The ontology term itself, also known as the localname is some
ontologies.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="termAccession" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation>
							<p>
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 (in effect the term is the
accession).
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="OntologySource_ref" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation/>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ComplexValueType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
A complex default value for the Parameter, such as a term from a
controlled list or a function.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.DefaultValueType">
				<xsd:sequence>
					<xsd:element name="defaultValue">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
The default value for the parameter is given by an ontology
term.
</p>
							</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.DimensionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
A single dimension of a coordinate system. The DimensionElement
class represents the discreet domain values represented in this
dimension. A dimension with infinite domain values is not
modeled here, for practical reasons.
</p>
			</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>This is a reference to an object (or its subclasses) of type: <p>
The type of Dimension e.g. "array feature dimension"
</p>
							</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.NameValueTypeType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
A tuple designed to store data, keyed by a name and type.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="name" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation>
					<p>
The name of the key.
</p>
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="value" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation>
					<p>
The value of the name.
</p>
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="type" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation>
					<p>
The type of the key.
</p>
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.AtomicValueType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
An atomic defaultValue i.e. one that has a single value.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.DefaultValueType">
				<xsd:attribute name="defaultValue" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation>
							<p>
An atomic default value for the parameter.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Data.PartitionPairType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
Relates a DataPartition (subset of Data) from one data set with
a DataPartition from another data set, for example for
"supporting evidence".
</p>
			</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>
          </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="fuge:Description"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="inputPartitions" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
The DataPartitions corresponding to the InputData for this
PartitionPair. There should be no more than one DataPartition
per set of InputData.
</p>
							</xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="DataPartition_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="outputPartitions" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
The DataPartitions corresponding to the OutputData for this
PartitionPair. There should be no more than one DataPartition
per set of OutputData.
</p>
							</xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="DataPartition_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.ReferenceableCollectionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
The collection of objects that allow external references.
</p>
			</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:element ref="fuge:Database" minOccurs="0" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.GenericParameterType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
A subclass of the abstract Paramter class to represent a
parameter that is defined by a controlled vocabulary term.
</p>
			</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>This is a reference to an object (or its subclasses) of type: <p>
The name of the parameter.
</p>
							</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.BooleanValueType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
A Boolean default value for the Parameter
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.DefaultValueType">
				<xsd:attribute name="defaultValue" type="xsd:boolean" use="required">
					<xsd:annotation>
						<xsd:documentation>
							<p>
A Boolean default value for the parameter.
</p>
						</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>
				<p>
ActionApplication mirrors the structure of Actions within
Protocols and allows ActionDeviations to be reported.
</p>
				<p>
RULE:
</p>
				<p>
If an Action references a sub-Protocol, an ActionApplication
must be created and reference a sub-ProtocolApplication of the
corresponding type (or GenericProtocolApplication) to mirror the
Protocol structure.
</p>
				<p>
ActionApplications can be (but need not be) created for simple
Actions.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element name="actionDeviation" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								<p>
Used to define human readable notes for annotating deviations to
an Action during the ActionApplication.
</p>
							</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>
							<p>
Association to the Action that is being performed as recorded by
this ActionApplication.
</p>
						</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>
				<p>
An abstract class for describing biological molecules such as
DNA and protein sequences or metabolites.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Investigation.FactorType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
Factors are the dependent variables of an experiment (e.g. time,
glucose concentration, ...). Note that Factors can be shared by
multiple InvestigationComponents.
</p>
			</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:element name="factorCategory" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
The category of a Factor could be biological (time, [glucose])
or methodological (differing cDNA preparation protocols).
</p>
							</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.GenericMaterialType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
A subclass of the abstract Material class, which should be used
in conjunction with controlled vocabulary terms describe
Materials of any types used in an investigation.
</p>
			</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>This is a reference to an object (or its subclasses) of type: <p>
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.
</p>
							</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.Investigation.InvestigationType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
An Investigation is a self-contained unit of study that contains
one or more types of 'omics technology.
</p>
			</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:element ref="fuge:ContactRole" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element name="summaryResults" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
HigherLevelAnalyses performed over data.
</p>
							</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>This is a reference to an object (or its subclasses) of type: <p>
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.
</p>
							</xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Material_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="investigationTypes" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
The biological design type of the Investigation, such as
toxicity, drug-response, gene knockout etc.
</p>
							</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.DescribableType" abstract="true">
		<xsd:annotation>
			<xsd:documentation>
				<p>
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.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="auditTrail" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>
						<p>
A list of Audit instances that track changes to the instance of
Describable.
</p>
					</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>
						<p>
Free hand text descriptions.
</p>
					</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>
						<p>
A URI associated with a Describable object.
</p>
					</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>This is a reference to an object (or its subclasses) of type: <p>
Allows specification of additional ontology entries related to
the instance being described that are not directly specified
elsewhere.
</p>
					</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>
						<p>
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.
</p>
					</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>
					<p>
Information on the security for the instance of the class.
</p>
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ParameterizableApplicationType" abstract="true">
		<xsd:annotation>
			<xsd:documentation>
				<p>
The interface that is the use of a Parameterizable class.
</p>
			</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:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Material.MaterialType" abstract="true">
		<xsd:annotation>
			<xsd:documentation>
				<p>
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.
</p>
				<p>
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)
</p>
			</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:element name="materialType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
The type of material used, i.e. RNA, DNA, lipid, phosphoprotein,
organism etc.
</p>
							</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>This is a reference to an object (or its subclasses) of type: <p>
The characteristics of a Material.
</p>
							</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>This is a reference to an object (or its subclasses) of type: <p>
Measures of the quality of the Material.
</p>
							</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.GenericEquipmentType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
A subclass of the abtract Equipment class for capturing the
description of Equipment used.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.EquipmentType">
				<xsd:sequence>
					<xsd:element ref="fuge:GenericParameter" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element name="genericEquipmentParts" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
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.
</p>
							</xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="GenericEquipment_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="software" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="GenericSoftware_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.InvestigationCollectionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
The collection of Investigation and Factor objects in the FuGE
document.
</p>
			</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:element ref="fuge:Factor" minOccurs="0" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Material.GenericMaterialMeasurementType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
A subclass of MaterialMeasurement to be used without being
extended in conjunction with GenericProtocolApplication and
GenericMaterial to model measured sources of materials.
</p>
			</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>
							<p>
The instance of GenericMaterial or a subclass of Material that
is input to the GenericProtocolApplication.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.RangeParameterValueType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
A range for the runtime value of a Parameter.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.ParameterValueType">
				<xsd:attribute name="lowValue" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation>
							<p>
The lower end of a range value for the parameter.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="highValue" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation>
							<p>
The higher end of a range value for the parameter.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.FuGEType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
The root container for accessing all objects.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element ref="fuge:MaterialCollection" minOccurs="0"/>
					<xsd:element ref="fuge:ConceptualMoleculeCollection" minOccurs="0"/>
					<xsd:element ref="fuge:ReferenceableCollection" minOccurs="0"/>
					<xsd:element ref="fuge:InvestigationCollection" minOccurs="0"/>
					<xsd:element ref="fuge:DataCollection" minOccurs="0"/>
					<xsd:element ref="fuge:AuditCollection" minOccurs="0"/>
					<xsd:element ref="fuge:ProtocolCollection" minOccurs="0"/>
					<xsd:element ref="fuge:OntologyCollection" minOccurs="0"/>
					<xsd:element ref="fuge:Provider" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.ProviderType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
The provider of the FuGE document in terms of the Contact and
the software the produced the document instance.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element ref="fuge:ContactRole" minOccurs="0"/>
				</xsd:sequence>
				<xsd:attribute name="Software_ref" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>
							<p>
The software that produced the document instance.
</p>
						</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>
				<p>
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.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Ontology.OntologyPropertyType">
				<xsd:sequence>
					<xsd:element ref="fuge:OntologyIndividual" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.DefaultValueType" abstract="true">
		<xsd:annotation>
			<xsd:documentation>
				<p>
Abstract class with sub-classes that define different
specifications of a defaultValue.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Investigation.InvestigationComponentType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
An overview of the design using a single omics technique.
</p>
			</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>This is a reference to an object (or its subclasses) of type: <p>
The description of the factors (TimeCourse, Dosage, etc.) that
segment the Data. The aggregation of Factors is limited to a
single Investigation.
</p>
							</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>
								<p>
Description of the replicate strategy of the
InvestigationComponent.
</p>
							</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>
								<p>
Description of the quality control aspects of the
InvestigationComponent.
</p>
							</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>
								<p>
Description of the normalization strategy of the
InvestigationComponent.
</p>
							</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>This is a reference to an object (or its subclasses) of type: <p>
Complete set of all ProtocolApplications for a given
InvestigationComponent. This allows access to the complete set
of Materials and Data for the component.
</p>
							</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>This is a reference to an object (or its subclasses) of type: <p>
The design of the investigation with respect to a single
technique (InvestigationComponent) e.g. dye swap.
</p>
							</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>
				<p>
The use of a piece of Equipment with the requisite Parameters
and ParameterValues.
</p>
			</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>
							<p>
Manufacturer's identifier for the Equipment.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="Equipment_ref" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation>
							<p>
The underlying hardware.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.ConceptualMoleculeCollectionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
The complete set of ConceptualMolecule objects and
SequenceAnnotation objects.
</p>
			</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:element ref="fuge:SequenceAnnotation" minOccurs="0" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ParameterType" abstract="true">
		<xsd:annotation>
			<xsd:documentation>
				<p>
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.
</p>
				<p>
Parameter is abstract and should be extended by subclassing. The
GenericParameter class offers the functionality of a parameter
defined by a controlled vocabulary term.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element name="dataType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
The data type of the Parameter such as Boolean, integer, String
and can include a specification of whether the parameter can
accept range or other complex value types.
</p>
							</xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element ref="fuge:DefaultValue" minOccurs="0"/>
					<xsd:element name="unit" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
The Unit of the Parameter
</p>
							</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.Audit.SecurityGroupType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
Groups contacts together based on their security privileges.
</p>
			</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>This is a reference to an object (or its subclasses) of type: <p>
The members of the SecurityGroup.
</p>
							</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.References.BibliographicReferenceType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
Represents bibliographic references, including the most common
attributes. Note that because a BibliographicReference is
Identifiable, a DatabaseEntry can also be specified.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:attribute name="authors" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation/>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="publication" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation/>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="publisher" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation/>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="editor" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation/>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="year" type="xsd:date">
					<xsd:annotation>
						<xsd:documentation/>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="volume" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation/>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="issue" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation/>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="pages" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation/>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="title" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation/>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.MaterialCollectionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
The complete set of all Material objects in the FuGE document.
</p>
			</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:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.OntologyCollectionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
The complete set of OntologyIndividual objects referenced in the
FuGE document.
</p>
			</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:element ref="fuge:OntologySource" minOccurs="0" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Audit.AuditType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
Tracks information on the contact that creates or modifies an
object.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence/>
				<xsd:attribute name="date" type="xsd:date" use="required">
					<xsd:annotation>
						<xsd:documentation>
							<p>
The date of a change.
</p>
						</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>
							<p>
The contact for creating or changing the instance referred to by
the Audit.
</p>
						</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>
				<p>
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.
</p>
			</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>This is a reference to an object (or its subclasses) of type: <p>
Each Action may be associated with an OntologyTerm that defines
that Action.
</p>
							</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:sequence>
				<xsd:attribute name="actionText" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>
							<p>
Free text to describe this Action.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="Protocol_ref" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>
							<p>
This is an instantiation of the ProtocolReference 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.
</p>
						</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>
				<p>
The Parameterizable interface encapsulates the association of
Parameters with ParameterValues.
</p>
			</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:element name="types" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
The type of Equipment, Software or Protocol.
</p>
							</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>
				<p>
A Sequence is a representation of a DNA, RNA, or protein
sequence.
</p>
			</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>
							<p>
The number of residues in the biosequence.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="isApproximateLength" type="xsd:boolean">
					<xsd:annotation>
						<xsd:documentation>
							<p>
If length not positively known will be true
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="isCircular" type="xsd:boolean">
					<xsd:annotation>
						<xsd:documentation>
							<p>
Indicates if the BioSequence is circular in nature.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="sequence" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>
							<p>
The actual components of the sequence, for instance, for DNA a
string consisting of A,T,C and G.
</p>
							<p>
The attribute is optional and instead of specified here, can be
found through the DatabaseEntry.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="start" type="xsd:int">
					<xsd:annotation>
						<xsd:documentation/>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="end" type="xsd:int">
					<xsd:annotation>
						<xsd:documentation/>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="SequenceAnnotation_ref" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>
							<p>
Shared annotations for a set of sequences.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Investigation.HigherLevelAnalysisType" abstract="true">
		<xsd:annotation>
			<xsd:documentation>
				<p>
A container for domain-specific analyses performed on data.
Subclasses must be created for different domains.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element name="supportingData" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
Association to the Data on which the HigherLevelAnalysis has
been performed.
</p>
							</xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Data_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="hypothesis" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
          </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>
          </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.Common.IdentifiableType" abstract="true">
		<xsd:annotation>
			<xsd:documentation>
				<p>
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).
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element ref="fuge:DatabaseEntry" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element name="bibliographicReferences" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
References to existing literature.
</p>
							</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>
							<p>
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.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="name" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>
							<p>
The potentially ambiguous common identifier.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Ontology.DataPropertyType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
An instance of an Ontology data property.  So an individual of
Age might be restricted to a value of 8.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Ontology.OntologyPropertyType">
				<xsd:attribute name="dataType" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>
							<p>
An optional data type attribute which should be either one of
the CORBA Any types or one of the XML Schema simple types.
</p>
							<p>
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.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="value" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>
							<p>
The value associated with the DataProperty instance.
</p>
						</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>
				<p>
A subclass of the abtract Software class for capturing the
description of Software used.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.SoftwareType">
				<xsd:sequence>
					<xsd:element ref="fuge:GenericParameter" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element name="equipment" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: </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.Audit.OrganizationType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
Organizations are entities like companies, universities,
government agencies for which the attributes are self
describing.
</p>
			</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>This is a reference to an object (or its subclasses) of type: <p>
The containing organization (the university or business which a
lab belongs to, etc.)
</p>
							</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.SecurityAccessType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
A specification of the access right (e.g. read or write) that a
specified group (SecurityGroup) has on a particular object.
</p>
			</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>This is a reference to an object (or its subclasses) of type: <p>
The type of AccessRight allowed on this object e.g. Read, Write
etc.
</p>
							</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>
							<p>
The group of contacts that have the specified access right on an
object.
</p>
						</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>
				<p>
GenericProtocol should be used in conjunction with GenericAction
to describe protocols in a data format for cases where no
explicit extension of Protocol has been developed.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.ProtocolType">
				<xsd:sequence>
					<xsd:element ref="fuge:GenericAction" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element name="genericSoftware" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
A reference to the GenericSoftware used with this
GenericProtocol.
</p>
							</xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="GenericSoftware_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="genericEquipment" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
A reference to the GenericProtocol used with this
GenericEquipment.
</p>
							</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:sequence>
				<xsd:attribute name="protocolText" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>
							<p>
The text for that applies to the entire Protocol.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Data.ExternalDataType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
Data external to the XML instance document. The location of the
data file is given in the association to the URI class.
</p>
			</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>
								<p>
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.
</p>
							</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>This is a reference to an object (or its subclasses) of type: <p>
The format of the ExternalData file, for example "tiff" for
image files.
</p>
							</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:string" use="required">
					<xsd:annotation>
						<xsd:documentation>
							<p>
The location of the external data file.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Material.MaterialMeasurementType" abstract="true">
		<xsd:annotation>
			<xsd:documentation>
				<p>
MaterialMeasurement represents the quantity of a source Material
used in a MaterialTreatment. The Measurement is represented
using an ontology to allow complex specifications of
measurements.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element name="measurement" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
The value of the measured source of material.
</p>
							</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="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
A single point within a parent dimension. This class should be
extended.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Data.InternalDataType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
Data that is internal to an instance XML document. The storage
array will typically use pointer arithmatic to access values
based on the rank (e.g. number of)  Dimensions and their
respective sizes (e.g. the number of contained
DimensionElements).
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Bio.Data.DataType">
				<xsd:attribute name="storage" type="xsd:anySimpleType">
					<xsd:annotation>
						<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>
				<p>
An address to a repository.
</p>
			</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:sequence>
				<xsd:attribute name="version" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>
							<p>
The version for which a DatabaseReference applies.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="URI" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>
							<p>
The location of the Database.
</p>
						</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>
				<p>
The use of a piece of software with the requisite Parameters and
ParameterValues.
</p>
			</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>
							<p>
The underlying software.
</p>
						</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>
				<p>
Permission information for an object as to ownership, write and
read permissions.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element name="owner" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
The owner of the security rights on the object.
</p>
							</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:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Ontology.OntologySourceType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
The source ontology or controlled vocabulary list that ontology
terms have been obtained from.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:attribute name="ontologyURI" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation>
							<p>
A URI that references the location of the ontology.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.BooleanParameterValueType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
A Boolean runtime value for the Parameter.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.ParameterValueType">
				<xsd:attribute name="value" type="xsd:boolean" use="required">
					<xsd:annotation>
						<xsd:documentation>
							<p>
A Boolean value for the parameter.
</p>
						</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>
				<p>
A URI is short for Uniform Resource Identifier.
</p>
				<p>
A URI is a compact sequence of characters that identifies an
abstract or physical resource.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:attribute name="uri" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation>
							<p>
The Uniform Resource Indicator for this object.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ComplexParameterValueType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
A complex runtime value for the Parameter, such as a term from a
controlled list or a function.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.ParameterValueType">
				<xsd:sequence>
					<xsd:element name="parameterValue">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
The value of the parameter.  Will have the datatype of its
associated Parameter.
</p>
							</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.DataCollectionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
The complete collection of all Data, Dimension and
HigherLevelAnalysis objects.
</p>
			</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:element ref="fuge:HigherLevelAnalysis" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element ref="fuge:Data" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element ref="fuge:DataPartition" minOccurs="0" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ParameterValueType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
The value of a Parameter.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence/>
				<xsd:attribute name="Parameter_ref" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation>
							<p>
The parameter this value is for.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Data.DataType" abstract="true">
		<xsd:annotation>
			<xsd:documentation>
				<p>
Data may have associations to the ProtocolApplication that
created them.  Data may be produced from a Material through the
DataAcquisition or from another Data object through the
DataTransformation.  Examples of Data are gene expression
measurements, or phenotypes associated with genetic
manipulations.  Data is abstract and must be subclassed in an
appropriate domain (i.e. microarray or proteomic experiments).
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element name="dimensions" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
The dimensions contained within this Data object.
</p>
							</xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Dimension_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ProtocolApplicationType" abstract="true">
		<xsd:annotation>
			<xsd:documentation>
				<p>
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.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.ParameterizableApplicationType">
				<xsd:sequence>
					<xsd:element ref="fuge:PartitionPair" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element ref="fuge:ActionApplication" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element ref="fuge:SoftwareApplication" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element ref="fuge:EquipmentApplication" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element name="protocolDeviation" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								<p>
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.
</p>
							</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:sequence>
				<xsd:attribute name="activityDate" type="xsd:dateTime">
					<xsd:annotation>
						<xsd:documentation>
							<p>
When the protocol was applied.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.References.DatabaseEntryType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
A reference to a record in a database.
</p>
			</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>
							<p>
The identifier used to look up the record.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="accessionVersion" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>
							<p>
The appropriate version of the accession (if applicable).
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="Database_ref" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation>
							<p>
Reference to the database where the DatabaseEntry instance can
be found.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Ontology.OntologyIndividualType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
An instance of an Ontology class.
</p>
			</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:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Audit.ContactRoleType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
The role that a Contact plays in an organization.  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.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:sequence>
					<xsd:element name="role">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
The roles (lab equipment sales, contractor, etc.) the contact
fills.
</p>
							</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>
							<p>
When a ContactRole is used, it specifies which Contact the role
is associated with.
</p>
						</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>
				<p>
A Protocol is a parameterizable description of a method. 
ProtocolApplication is used to specify the ParameterValues of
its Protocol's Parameters.
</p>
				<p>
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.
</p>
			</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>This is a reference to an object (or its subclasses) of type: <p>
The types of inputs this Protocol can take e.g. organisms,
solutions, data formats etc.
</p>
							</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>This is a reference to an object (or its subclasses) of type: <p>
The types of outputs produced by this Protocol e.g. organisms,
solutions, data formats etc.
</p>
							</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.Audit.ContactType" abstract="true">
		<xsd:annotation>
			<xsd:documentation>
				<p>
A contact is either a person or an organization.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:attribute name="address" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation/>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="phone" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation/>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="email" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation/>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="fax" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation/>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="tollFreePhone" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation/>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.AuditCollectionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
The collection of Audit objects (Security, SecurityGroup and
Contacts).
</p>
			</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:element ref="fuge:Contact" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element ref="fuge:SecurityGroup" minOccurs="0" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Ontology.OntologyPropertyType" abstract="true">
		<xsd:annotation>
			<xsd:documentation>
				<p>
Base class for instances of Ontology properties
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Ontology.OntologyTermType"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.ProtocolCollectionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
The complete set of Protocol, Equipment, Software and
ProtocolApplication objects in the FuGE document.
</p>
			</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:element ref="fuge:Software" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element ref="fuge:ProtocolApplication" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element ref="fuge:Equipment" minOccurs="0" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ActionType" abstract="true">
		<xsd:annotation>
			<xsd:documentation>
				<p>
A Action is one step of a Protocol.  Sets of ordered Actions
define the Protocol.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:attribute name="actionOrdinal" type="xsd:int">
					<xsd:annotation>
						<xsd:documentation>
							<p>
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.
</p>
						</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>
				<p>
The equipment (hardware) used in this Protocol. Examples
include: computers, scanners, wash stations etc...
</p>
				<p>
Equipment is abstract and should either be extended by
subclassing or the GenericEquipment class, a functional version
of Equipment, should be used.
</p>
			</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>This is a reference to an object (or its subclasses) of type: <p>
The equipment make, usually the organisation that makes the
equipment.
</p>
							</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>This is a reference to an object (or its subclasses) of type: <p>
The Equipment model.
</p>
							</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.RangeType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
A range for the default value of a Parameter.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.DefaultValueType">
				<xsd:attribute name="defaultLowValue" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation>
							<p>
The lower end of a default range value for the parameter.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="defaultHighValue" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation>
							<p>
The higher end of a default range value for the parameter.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.ConceptualMolecule.SequenceAnnotationType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
This is used to annotate a set of sequences that share the same
species, type and PolymerType.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element name="species" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
The organism from which this sequence was obtained.
</p>
							</xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="OntologyTerm_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="type" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
The type of Sequence, e.g. gene, exon, UniGene cluster,
fragment, BAC, EST, etc.
</p>
							</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>This is a reference to an object (or its subclasses) of type: <p>
A choice of protein, RNA, or DNA.
</p>
							</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.Audit.PersonType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
A person for which the attributes are self describing.
</p>
			</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>This is a reference to an object (or its subclasses) of type: <p>
The organization a person belongs to.
</p>
							</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/>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="firstName" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation/>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="midInitials" type="xsd:string">
					<xsd:annotation>
						<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>
				<p>
Software represents the software used.  Examples of Software
include: feature extraction software, clustering software,
etc...
</p>
				<p>
Software is abstract and should either be extended by
subclassing or the GenericSoftware class, a functional version
of Software, should be used.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.ParameterizableType">
				<xsd:attribute name="version" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>
							<p>
The version of software used.
</p>
						</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>
				<p>
A free text description of an object.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.DescribableType">
				<xsd:attribute name="text" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>
							<p>
The description.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.AtomicParameterValueType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
An atomic runtime value for the Parameter.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.Protocol.ParameterValueType">
				<xsd:attribute name="value" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation>
							<p>
An atomic value for the parameter.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Data.DataPartitionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
Represents a segmentation of the data by indexing existing
DimensionElements of a Data.
</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="fuge:FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element name="dimensionElementSet" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
The DimensionElements segmented by this DataPartition.
</p>
							</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>
							<p>
This is a reference to the Data on which this DataPartition is
based.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Investigation.FactorValueType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>
				<p>
The value for a Factor
</p>
			</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>This is a reference to an object (or its subclasses) of type: <p>
Represents a segmentation of the data by indexing existing
DimensionElements of a Data.
</p>
							</xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="DataPartition_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="value" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
Allows a value to be specified for a FactorValue using an
ontology.
</p>
							</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>
				<p>
A subclass of ProtocolApplication to be used as it is in data
formats without being extended.
</p>
			</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:element name="genericInputData" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
The instances of GenericData that are inputs to the
GenericProtocolApplication.
</p>
							</xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Data_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="genericOutputData" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
The Data produced from the GenericProtocolApplication.
</p>
							</xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Data_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="genericOutputMaterials" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>This is a reference to an object (or its subclasses) of type: <p>
The instances of GenericMaterial or a subclass of Material that
are produced from the GenericProtocolApplication.
</p>
							</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>This is a reference to an object (or its subclasses) of type: </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>
							<p>
A reference to the GenericProtocol or subclass of Protocol that
has been used with this GenericProtocolApplication.
</p>
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:element name="OntologyTerm" type="fuge:FuGE.Common.Ontology.OntologyTermType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="ComplexValue" type="fuge:FuGE.Common.Protocol.ComplexValueType" abstract="false" substitutionGroup="fuge:DefaultValue"/>
	<xsd:element name="Dimension" type="fuge:FuGE.Bio.Data.DimensionType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="NameValueType" type="fuge:FuGE.Common.NameValueTypeType" abstract="false"/>
	<xsd:element name="AtomicValue" type="fuge:FuGE.Common.Protocol.AtomicValueType" abstract="false" substitutionGroup="fuge:DefaultValue"/>
	<xsd:element name="PartitionPair" type="fuge:FuGE.Bio.Data.PartitionPairType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="ReferenceableCollection" type="fuge:FuGE.Collection.ReferenceableCollectionType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="GenericParameter" type="fuge:FuGE.Common.Protocol.GenericParameterType" abstract="false" substitutionGroup="fuge:Parameter"/>
	<xsd:element name="BooleanValue" type="fuge:FuGE.Common.Protocol.BooleanValueType" abstract="false" substitutionGroup="fuge:DefaultValue"/>
	<xsd:element name="ActionApplication" type="fuge:FuGE.Common.Protocol.ActionApplicationType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="ConceptualMolecule" type="fuge:FuGE.Bio.ConceptualMolecule.ConceptualMoleculeType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="Factor" type="fuge:FuGE.Bio.Investigation.FactorType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="GenericMaterial" type="fuge:FuGE.Bio.Material.GenericMaterialType" abstract="false" substitutionGroup="fuge:Material"/>
	<xsd:element name="Investigation" type="fuge:FuGE.Bio.Investigation.InvestigationType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="Describable" type="fuge:FuGE.Common.DescribableType" abstract="true"/>
	<xsd:element name="ParameterizableApplication" type="fuge:FuGE.Common.Protocol.ParameterizableApplicationType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="Material" type="fuge:FuGE.Bio.Material.MaterialType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="GenericEquipment" type="fuge:FuGE.Common.Protocol.GenericEquipmentType" abstract="false" substitutionGroup="fuge:Equipment"/>
	<xsd:element name="InvestigationCollection" type="fuge:FuGE.Collection.InvestigationCollectionType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="GenericMaterialMeasurement" type="fuge:FuGE.Bio.Material.GenericMaterialMeasurementType" abstract="false" substitutionGroup="fuge:MaterialMeasurement"/>
	<xsd:element name="RangeParameterValue" type="fuge:FuGE.Common.Protocol.RangeParameterValueType" abstract="false" substitutionGroup="fuge:ParameterValue"/>
	<xsd:element name="FuGE" type="fuge:FuGE.FuGEType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="Provider" type="fuge:FuGE.Collection.ProviderType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="ObjectProperty" type="fuge:FuGE.Common.Ontology.ObjectPropertyType" abstract="false" substitutionGroup="fuge:OntologyProperty"/>
	<xsd:element name="DefaultValue" type="fuge:FuGE.Common.Protocol.DefaultValueType" abstract="true" substitutionGroup="fuge:Describable"/>
	<xsd:element name="InvestigationComponent" type="fuge:FuGE.Bio.Investigation.InvestigationComponentType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="EquipmentApplication" type="fuge:FuGE.Common.Protocol.EquipmentApplicationType" abstract="false" substitutionGroup="fuge:ParameterizableApplication"/>
	<xsd:element name="ConceptualMoleculeCollection" type="fuge:FuGE.Collection.ConceptualMoleculeCollectionType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="Parameter" type="fuge:FuGE.Common.Protocol.ParameterType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="SecurityGroup" type="fuge:FuGE.Common.Audit.SecurityGroupType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="BibliographicReference" type="fuge:FuGE.Common.References.BibliographicReferenceType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="MaterialCollection" type="fuge:FuGE.Collection.MaterialCollectionType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="OntologyCollection" type="fuge:FuGE.Collection.OntologyCollectionType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="Audit" type="fuge:FuGE.Common.Audit.AuditType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="GenericAction" type="fuge:FuGE.Common.Protocol.GenericActionType" abstract="false" substitutionGroup="fuge:Action"/>
	<xsd:element name="Parameterizable" type="fuge:FuGE.Common.Protocol.ParameterizableType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="Sequence" type="fuge:FuGE.Bio.ConceptualMolecule.SequenceType" abstract="false" substitutionGroup="fuge:ConceptualMolecule"/>
	<xsd:element name="HigherLevelAnalysis" type="fuge:FuGE.Bio.Investigation.HigherLevelAnalysisType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="Identifiable" type="fuge:FuGE.Common.IdentifiableType" abstract="true" substitutionGroup="fuge:Describable"/>
	<xsd:element name="DataProperty" type="fuge:FuGE.Common.Ontology.DataPropertyType" abstract="false" substitutionGroup="fuge:OntologyProperty"/>
	<xsd:element name="GenericSoftware" type="fuge:FuGE.Common.Protocol.GenericSoftwareType" abstract="false" substitutionGroup="fuge:Software"/>
	<xsd:element name="Organization" type="fuge:FuGE.Common.Audit.OrganizationType" abstract="false" substitutionGroup="fuge:Contact"/>
	<xsd:element name="SecurityAccess" type="fuge:FuGE.Common.Audit.SecurityAccessType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="GenericProtocol" type="fuge:FuGE.Common.Protocol.GenericProtocolType" abstract="false" substitutionGroup="fuge:Protocol"/>
	<xsd:element name="ExternalData" type="fuge:FuGE.Bio.Data.ExternalDataType" abstract="false" substitutionGroup="fuge:Data"/>
	<xsd:element name="MaterialMeasurement" type="fuge:FuGE.Bio.Material.MaterialMeasurementType" abstract="true" substitutionGroup="fuge:Describable"/>
	<xsd:element name="DimensionElement" type="fuge:FuGE.Bio.Data.DimensionElementType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="InternalData" type="fuge:FuGE.Bio.Data.InternalDataType" abstract="false" substitutionGroup="fuge:Data"/>
	<xsd:element name="Database" type="fuge:FuGE.Common.References.DatabaseType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="SoftwareApplication" type="fuge:FuGE.Common.Protocol.SoftwareApplicationType" abstract="false" substitutionGroup="fuge:ParameterizableApplication"/>
	<xsd:element name="Security" type="fuge:FuGE.Common.Audit.SecurityType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="OntologySource" type="fuge:FuGE.Common.Ontology.OntologySourceType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="BooleanParameterValue" type="fuge:FuGE.Common.Protocol.BooleanParameterValueType" abstract="false" substitutionGroup="fuge:ParameterValue"/>
	<xsd:element name="URI" type="fuge:FuGE.Common.Description.URIType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="ComplexParameterValue" type="fuge:FuGE.Common.Protocol.ComplexParameterValueType" abstract="false" substitutionGroup="fuge:ParameterValue"/>
	<xsd:element name="DataCollection" type="fuge:FuGE.Collection.DataCollectionType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="ParameterValue" type="fuge:FuGE.Common.Protocol.ParameterValueType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="Data" type="fuge:FuGE.Bio.Data.DataType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="ProtocolApplication" type="fuge:FuGE.Common.Protocol.ProtocolApplicationType" abstract="true" substitutionGroup="fuge:ParameterizableApplication"/>
	<xsd:element name="DatabaseEntry" type="fuge:FuGE.Common.References.DatabaseEntryType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="OntologyIndividual" type="fuge:FuGE.Common.Ontology.OntologyIndividualType" abstract="false" substitutionGroup="fuge:OntologyTerm"/>
	<xsd:element name="ContactRole" type="fuge:FuGE.Common.Audit.ContactRoleType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="Protocol" type="fuge:FuGE.Common.Protocol.ProtocolType" abstract="true" substitutionGroup="fuge:Parameterizable"/>
	<xsd:element name="Contact" type="fuge:FuGE.Common.Audit.ContactType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="AuditCollection" type="fuge:FuGE.Collection.AuditCollectionType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="OntologyProperty" type="fuge:FuGE.Common.Ontology.OntologyPropertyType" abstract="true" substitutionGroup="fuge:OntologyTerm"/>
	<xsd:element name="ProtocolCollection" type="fuge:FuGE.Collection.ProtocolCollectionType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="Action" type="fuge:FuGE.Common.Protocol.ActionType" abstract="true" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="Equipment" type="fuge:FuGE.Common.Protocol.EquipmentType" abstract="true" substitutionGroup="fuge:Parameterizable"/>
	<xsd:element name="Range" type="fuge:FuGE.Common.Protocol.RangeType" abstract="false" substitutionGroup="fuge:DefaultValue"/>
	<xsd:element name="SequenceAnnotation" type="fuge:FuGE.Bio.ConceptualMolecule.SequenceAnnotationType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="Person" type="fuge:FuGE.Common.Audit.PersonType" abstract="false" substitutionGroup="fuge:Contact"/>
	<xsd:element name="Software" type="fuge:FuGE.Common.Protocol.SoftwareType" abstract="true" substitutionGroup="fuge:Parameterizable"/>
	<xsd:element name="Description" type="fuge:FuGE.Common.Description.DescriptionType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="AtomicParameterValue" type="fuge:FuGE.Common.Protocol.AtomicParameterValueType" abstract="false" substitutionGroup="fuge:ParameterValue"/>
	<xsd:element name="DataPartition" type="fuge:FuGE.Bio.Data.DataPartitionType" abstract="false" substitutionGroup="fuge:Identifiable"/>
	<xsd:element name="FactorValue" type="fuge:FuGE.Bio.Investigation.FactorValueType" abstract="false" substitutionGroup="fuge:Describable"/>
	<xsd:element name="GenericProtocolApplication" type="fuge:FuGE.Common.Protocol.GenericProtocolApplicationType" abstract="false" substitutionGroup="fuge:ProtocolApplication"/>
</xsd:schema>
