<?xml version="1.0" encoding="UTF-8"?>
<!-- FuGELight schema, generated by manual edition of the official FuGE v1 schema 
	Distributed under the Creative Commons license http://creativecommons.org/licenses/by/2.0/.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            elementFormDefault="qualified"
            version="1.0.0">
    
	<xsd:complexType name="FuGE.Bio.ConceptualMolecule.ConceptualMoleculeType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> An abstract class for describing database entries of biological molecules such as DNA and protein sequences, metabolites or lipids etc. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.IdentifiableType"/>			
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Data.DataType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> Data can be an input to or an output from a ProtocolApplication. Data may be produced from a Material (data acquisition) or from another Data object (data transformation).  Examples of Data are gene expression measurements, or phenotypes associated with genetic manipulations. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.IdentifiableType"/>			
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Data.ExternalDataType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> Data external to the XML instance document. The location of the data file is given in the location attribute. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Bio.Data.DataType">
				<xsd:sequence>
					<xsd:element name="externalFormatDocumentation" minOccurs="0" type="xsd:anyURI">
						<xsd:annotation>
							<xsd:documentation> A URI to access documentation and tools to interpret the external format of the ExternalData instance. For example, XML Schema or static libraries (APIs) to access binary formats. 
         					 </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="fileFormat" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The format of the ExternalData file, for example "tiff" for image files.</xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="cvParam"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="location" type="xsd:anyURI" use="required">
					<xsd:annotation>
						<xsd:documentation> The location of the data file. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Data.InternalDataType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> Data that is internal to an instance XML document.   InternalData can be extended with an element that defines a particular encoding or data type for the storage array or the subclass GenericInternalData should be instantiated.   The array will typically use pointer arithmetic to access values based on the rank (e.g. number of)  Dimensions and their respective sizes (e.g. the number of contained DimensionElements). </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Bio.Data.DataType"/>			
		</xsd:complexContent>
	</xsd:complexType>	
	<xsd:complexType name="FuGE.Bio.Material.MaterialType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> Material represents any kind of substance used in an experimental workflow, such as whole organisms, cells, DNA, solutions, compounds and experimental substances (gels, arrays etc.). The Material class can be extended by adding subclasses to model domain specific properties, or the relationships to OntologyIndividual can be used to describe the characteristics and type of Material.   Materials can be related to other materials through a directed acyclic graph (represented by ProtocolApplication(s)). Sub-component materials can be represented by the self-association on Material (e.g. Wells within a array). These associations are abstract and should be extended to represent these semantics for extensions of ProtocolApplication and Material. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element ref="ContactRole" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Contact details for the Material. The association to ContactRole could specify, for example, the creator or provider of the Material. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
                    <xsd:group ref="ParamGroup" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation> The characteristics of a Material. </xsd:documentation>
                        </xsd:annotation>
                    </xsd:group>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Material.MaterialMeasurementType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> MaterialMeasurement represents the quantity of a source Material used in a ProtocolApplication. MaterialMeasurement is abstract and should be extended if a subclass of ProtocolApplication has to be associated with a measured source of a subclass of Material. </xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
            <xsd:group ref="MeasurementGroup" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation> The value of the measured source of material. </xsd:documentation>
                </xsd:annotation>
            </xsd:group>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Material.GenericMaterialType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A subclass of the abstract Material class, which should be used in conjunction with controlled vocabulary terms to describe Materials of any types used in an investigation. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Bio.Material.MaterialType">
				<xsd:sequence>
					<xsd:element name="components" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Association from a GenericMaterial to other GenericMaterials that are sub-components (such as wells within an array plate). If a subcomponent undergoes a ProtocolApplication, then the containing GenericMaterial must also be an input to the ProtocolApplication and be output as a new GenericMaterial or version of the GenericMaterial. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="GenericMaterial_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Bio.Material.GenericMaterialMeasurementType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A subclass of MaterialMeasurement to be used without being extended in conjunction with GenericProtocolApplication and GenericMaterial to model measured sources of materials. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Bio.Material.MaterialMeasurementType">
				<xsd:attribute name="Material_ref" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> The instance of GenericMaterial or a subclass of Material that is input to the GenericProtocolApplication. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Audit.PersonType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A person for which the attributes are self describing. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.Audit.ContactType">
				<xsd:sequence>
					<xsd:element name="affiliations" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The organization a person belongs to. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Organization_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="lastName" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The Person's last/family name. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="firstName" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The Person's first name. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="midInitials" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The Person's middle initial. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Audit.OrganizationType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> Organizations are entities like companies, universities, government agencies for which the attributes are self describing. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.Audit.ContactType">
				<xsd:sequence>
					<xsd:element name="parent" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The containing organization (the university or business which a lab belongs to, etc.) </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Organization_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Audit.ContactType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> A contact is either a person or an organization. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.IdentifiableType">
				<xsd:attribute name="address" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The address of the Contact. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="phone" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The telephone number of the Contact including the suitable area codes. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="email" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The email address of the Contact. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="fax" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The fax number of the Contact. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="tollFreePhone" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> A toll free phone number for the Contact, including suitable area codes. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Audit.ContactRoleType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The role that a Contact plays in an organization or with respect to the associating class.  A Contact may have several Roles within scope, and as such, associations to ContactRole allow the use of a Contact in a certain manner.  Examples might include a provider, or a data analyst. </xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="role">
				<xsd:annotation>
					<xsd:documentation> The roles (lab equipment sales, contractor, etc.) the Contact fills. </xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element ref="cvParam"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
		<xsd:attribute name="Contact_ref" type="xsd:string" use="required">
			<xsd:annotation>
				<xsd:documentation> When a ContactRole is used, it specifies which Contact the role is associated with. </xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.References.BibliographicReferenceType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> Represents bibliographic references, including the most common attributes. Note that because a BibliographicReference is Identifiable, a DatabaseEntry can also be specified. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.IdentifiableType">
				<xsd:attribute name="authors" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The names of the authors of the reference. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="publication" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The name of the journal, book etc. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="publisher" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The publisher of the publication. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="editor" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The editor(s) of the reference. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="year" type="xsd:int">
					<xsd:annotation>
						<xsd:documentation> The year of publication. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="volume" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The volume name or number. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="issue" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The issue name or number. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="pages" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The page numbers. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="title" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The title of the BibliographicReference. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.References.DatabaseType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> An address to a repository. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element ref="ContactRole" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Contacts associated with this database, such as hosting institution, database curators, manager etc. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="version" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The version of the Database. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="URI" type="xsd:anyURI">
					<xsd:annotation>
						<xsd:documentation> The location of the Database. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.References.DatabaseReferenceType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A reference to a record in a database. </xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="accession" type="xsd:string" use="required">
			<xsd:annotation>
				<xsd:documentation> The identifier used to look up the record. </xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="accessionVersion" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation> The appropriate version of the accession (if applicable). </xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="Database_ref" type="xsd:string" use="required">
			<xsd:annotation>
				<xsd:documentation> Reference to the database where the DatabaseEntry instance can be found. </xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Description.DescriptionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A free text description of an object. </xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="text" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation> The description. </xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ProtocolType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> A Protocol is a parameterizable description of a method.  ProtocolApplication is used to specify the ParameterValues of its Protocol's Parameters.   Protocol should be extended in data formats. For cases where no extension is developed, the subclass of Protocol, GenericProtocol, should be used to capture experimental protocols. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.IdentifiableType"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ParameterType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> A Parameter is a replaceable value in a Parameterizable class, and uses the Measurement class for giving a specific type of value.  Examples of Parameters include: scanning wavelength, laser power, centrifuge speed, multiplicative errors, the number of input nodes to a SOM, and PCR temperatures.   Parameter is abstract and should be extended by subclassing. The GenericParameter class offers the functionality of a parameter defined by a controlled vocabulary term. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.IdentifiableType">
				<xsd:sequence>
                    <xsd:group ref="MeasurementGroup" minOccurs="0">
                        <xsd:annotation>
                            <xsd:documentation> The default value for this parameter. </xsd:documentation>
                        </xsd:annotation>
                    </xsd:group>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ParameterValueType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The runtime value of a Parameter. </xsd:documentation>
		</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="value" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation/>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="Parameter_ref" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> The parameter this value is for. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ProtocolApplicationType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> The use of a protocol with the requisite Parameters and ParameterValues. ProtocolApplications can take Material or Data (or both) as input and produce Material or Data (or both) as output. ProtocolApplication is abstract and should be subclassed in the development of modular formats. The subclass GenericProtocolApplication can be used without extension. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.IdentifiableType">
				<xsd:attribute name="activityDate" type="xsd:dateTime">
					<xsd:annotation>
						<xsd:documentation> When the protocol was applied. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.SoftwareType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> Software used in the Protocol.  Examples of Software include: feature extraction software, clustering software, etc...   Software is abstract and should either be extended by subclassing or the GenericSoftware class, a functional version of Software, should be used without extension. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element ref="ContactRole" minOccurs="0"/>
				</xsd:sequence>
				<xsd:attribute name="version" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The version of Software used. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.EquipmentType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> The equipment (hardware) used in the Protocol. Examples include: computers, scanners, wash stations etc...   Equipment is abstract and should either be extended by subclassing or the GenericEquipment class, a functional version of Equipment, should be used. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.IdentifiableType">
				<xsd:sequence>
                    <xsd:element name="make" type="ParamType" minOccurs="0">
                        <xsd:annotation>
                            <xsd:documentation> The equipment make, usually the organization that makes the equipment. </xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element name="model" type="ParamType" minOccurs="0">
                        <xsd:annotation>
                            <xsd:documentation> The Equipment model. </xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.EquipmentApplicationType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The use of a piece of Equipment with the requisite Parameters and ParameterValues. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.Protocol.ParameterizableApplicationType">
				<xsd:attribute name="serialNumber" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> Manufacturer's identifier for the Equipment. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="Equipment_ref" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> The Equipment that was used in the ProtocolApplication. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>				
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.SoftwareApplicationType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The use of a piece of software with the requisite Parameters and ParameterValues. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.Protocol.ParameterizableApplicationType">
				<xsd:attribute name="Software_ref" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> The Software that was used in the ProtocolApplication. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ParameterizableApplicationType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> The interface that is the use of a Parameterizable class. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element ref="ParameterValue" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The parameter values for this Parameterizable Application. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ActionType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> An Action is one step of a Protocol. Sets of ordered Actions define the Protocol. Action is abstract and can be extended to specify particular types of steps within a subclass of Protocol. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.IdentifiableType">
				<xsd:attribute name="actionOrdinal" type="xsd:int">
					<xsd:annotation>
						<xsd:documentation> The order by which this Action should occur with respect to the Parent protocol. Note that two Actions with the same actionOrdinal are performed in parallel or the order is not important. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ActionApplicationType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> ActionApplication mirrors the structure of Actions within Protocols and allows ActionDeviations to be reported.   RULE:   If an Action references a childProtocol, an ActionApplication must be created and reference a childProtocolApplication of the corresponding type (or GenericProtocolApplication) to mirror the Protocol structure.   ActionApplications can be (but need not be) created for simple Actions. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.Protocol.ParameterizableApplicationType">
				<xsd:sequence>
					<xsd:element name="actionDeviation" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> Used to define human readable notes for annotating deviations to an Action during the ActionApplication. 
          </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="Description"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="Action_ref" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> Association to the Action that is being performed as recorded by this ActionApplication. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="ProtocolApplication_ref" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> Association to ProtocolApplication if a hierarchical Protocol has been defined representing the child step of the Protocol. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.GenericProtocolType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> GenericProtocol should be used with GenericAction, GenericParameter or protocolText to describe protocols in a data format for cases where no explicit extension of Protocol has been developed. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.Protocol.ProtocolType">
				<xsd:sequence>
					<xsd:element name="protocolText" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The text that applies to the entire Protocol. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="software" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> A reference to the GenericSoftware used with this GenericProtocol. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="GenericSoftware_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="equipment" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> A reference to the GenericProtocol used with this GenericEquipment. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="GenericEquipment_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element ref="GenericParameter" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The parameters defined for the GenericProtocol. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="GenericAction" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The actions performed within a GenericProtocol. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.GenericActionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A GenericAction represents a step within a GenericProtocol. It allows a reference to a sub-GenericProtocol, user entered text to describe the GenericAction or a term from a controlled vocabulary to be given. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.Protocol.ActionType">
				<xsd:sequence>
					<xsd:element name="actionTerm" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> Each GenericAction may be associated with an OntologyTerm that defines that GenericAction. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="cvParam"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
					<xsd:element ref="GenericParameter" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The parameters belonging to the GenericAction. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="ParameterPair" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> ParameterPairs owned by the GenericAction. The TargetParameter should reference a Parameter owned by a child Protocol which is also referenced by the GenericAction. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="actionText" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> Free text to describe this Action. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="Protocol_ref" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> This is an instantiation of the ChildProtocol association for associating complex, hierarchical protocols together. A GenericAction can reference substeps within the parent GenericProtocol. The substeps can be further instances of GenericProtocol, or defined subclasses of Protocol. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.GenericSoftwareType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A subclass of the abstract Software class for capturing the description of Software used. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.Protocol.SoftwareType">
				<xsd:sequence>
					<xsd:element name="equipment" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Associates GenericEquipment with GenericSoftware to indicate that instances of software are run on piece(s) of Equipment. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="GenericEquipment_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element ref="GenericParameter" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The parameters for this piece of GenericSoftware. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.GenericEquipmentType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A subclass of the abstract Equipment class for capturing the description of Equipment used. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.Protocol.EquipmentType">
				<xsd:sequence>
					<xsd:element name="software" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Associates GenericEquipment with GenericSoftware to indicate that instances of software are run on piece(s) of Equipment. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="GenericSoftware_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element ref="GenericParameter" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The parameters for this piece of GenericEquipment. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="equipmentParts" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> An association between a parent GenericEquipment and its parts. If a GenericProtocol utilises GenericEquipment and its parts, both the parent and child GenericEquipment instances should be referenced. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="GenericEquipment_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.GenericParameterType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A subclass of the abstract Parameter class to represent a parameter that is defined by a controlled vocabulary term. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.Protocol.ParameterType">
				<xsd:sequence>
					<xsd:element name="parameterType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The name of the parameter. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="cvParam"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.GenericProtocolApplicationType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A subclass of ProtocolApplication to be used as it is in data formats without being extended. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.Protocol.ProtocolApplicationType">
				<xsd:sequence>
					<xsd:element ref="GenericMaterialMeasurement" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Measured sources of material that are inputs to this GenericProtocolApplication. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="inputData" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The instances of GenericData that are inputs to the GenericProtocolApplication. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Data_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="outputData" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The Data produced from the GenericProtocolApplication. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Data_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="outputMaterials" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The instances of GenericMaterial or a subclass of Material that are produced from the GenericProtocolApplication. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Material_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="inputCompleteMaterials" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Whole Materials that are inputs to the GenericProtocolApplication. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Material_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element ref="ParameterValue" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The parameter values for this Parameterizable Application. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>					
				</xsd:sequence>
				<xsd:attribute name="Protocol_ref" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> A reference to the GenericProtocol or subclass of Protocol that has been used with this GenericProtocolApplication. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Protocol.ParameterPairType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A pairing of an output parameter from a Protocol (SourceParameter) with an input parameter to a separate Protocol (TargetParameter) to indicate that the ParameterValue will be the same. </xsd:documentation>
		</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="targetParameter">
						<xsd:annotation>
							<xsd:documentation> A Parameter that is an input to a process which has been an output from another process. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Parameter_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="sourceParameter">
						<xsd:annotation>
							<xsd:documentation> A Parameter that is output from one process which will be input to another process. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:attribute name="Parameter_ref" type="xsd:string" use="required"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Ontology.ParamType" abstract="true">
		<xsd:annotation>
			<xsd:documentation>Abstract entity allowing either cvParam or userParam to be referenced in other schemas.</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="name" type="xsd:string" use="required">
			<xsd:annotation>
				<xsd:documentation>The name of the parameter.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="value" type="xsd:string" use="optional">
			<xsd:annotation>
				<xsd:documentation>The user-entered value of the parameter.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="unitAccession" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation>An accession number identifying the unit within the OBO foundry Unit CV.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="unitName" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation>The name of the unit.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="unitCvRef" type="xsd:string" use="optional">
			<xsd:annotation>
				<xsd:documentation>If a unit term is referenced, this attribute must refer to the CV 'id' attribute defined in the cvList in this file.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Ontology.userParamType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>A single user-defined parameter.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.Ontology.ParamType"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Ontology.cvParamType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A single entry from an ontology or a controlled vocabulary.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.Ontology.ParamType">
				<xsd:attribute name="cvRef" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation>A reference to the cv element from which this term originates.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="accession" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation>The accession or ID number of this CV term in the source CV.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Ontology.PropertyValue" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A single value and unit combination.</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="value" type="xsd:string" use="required">
			<xsd:annotation>
				<xsd:documentation>A user-entered value for the parameter.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="unitAccession" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation>The accession number of the unit term in the source unit CV.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="unitName" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation>The name of the unit.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="unitCvRef" type="xsd:string" use="optional">
			<xsd:annotation>
				<xsd:documentation>If a unit term is referenced, this attribute must refer to the CV 'id' attribute defined in the cvList in this file.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Ontology.cvType" abstract="false">
		<xsd:annotation>
			<xsd:documentation>A source controlled vocabulary from which cvParams will be obtained.</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="fullName" type="xsd:string" use="required">
			<xsd:annotation>
				<xsd:documentation>The full name of the CV.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="version" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation>The version of the CV.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="URI" type="xsd:anyURI" use="required">
			<xsd:annotation>
				<xsd:documentation>The URI of the source CV.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="id" type="xsd:string" use="required">
			<xsd:annotation>
				<xsd:documentation>The unique identifier of this cv within the document to be referenced by cvParam elements.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.IdentifiableType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> Other classes in the model can be specified as sub-classes, inheriting from Identifiable. Identifiable gives classes a unique identifier within the scope and a name that need not be unique. Identifiable also provides a mechanism for annotating objects with BibliographicReference(s) and DatabaseEntry(s). </xsd:documentation>
		</xsd:annotation>
				<xsd:attribute name="id" type="xsd:string" use="required">
					<xsd:annotation>
						<xsd:documentation> An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="name" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The potentially ambiguous common identifier, such as a human-readable name for the instance. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Measurement.AtomicValueType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> An atomic value i.e. one that has a single value. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.Measurement.MeasurementType">
				<xsd:sequence>
					<xsd:element ref="PropertyValue"/>
				</xsd:sequence>
			</xsd:extension>			
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Measurement.BooleanValueType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A Boolean value. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.Measurement.MeasurementType">
				<xsd:attribute name="value" type="xsd:boolean" use="required">
					<xsd:annotation>
						<xsd:documentation> A Boolean default value for the parameter. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Measurement.ComplexValueType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A complex default value for the Parameter, such as a term from a controlled list or a function. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.Measurement.MeasurementType">
				<xsd:sequence>
					<!--<xsd:element ref="Param" maxOccurs="unbounded"/>-->
                    <xsd:group ref="ParamGroup" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Measurement.RangeType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> A range value. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.Measurement.MeasurementType">
				<xsd:sequence>
					<xsd:element name="lowerLimit">
						<xsd:annotation>
							<xsd:documentation> The lower limit of a range value. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="PropertyValue"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="upperLimit">
						<xsd:annotation>
							<xsd:documentation> The lower limit of a range value. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="PropertyValue"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="rangeDescriptors" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Ontology terms can be used the define the semantics of the lower and upper limit in the range, for example the inclusivity of the values or what the values correspond to in the annotated object. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="cvParam"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Common.Measurement.MeasurementType" abstract="true">
		<xsd:annotation>
			<xsd:documentation> Abstract superclass representing different methods of supplying a value or measurement. </xsd:documentation>
		</xsd:annotation>
				<xsd:sequence>
                    <!--
					<xsd:element name="dataType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The data type of the Parameter such as Boolean, integer, String. </xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="cvParam"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
					-->
                    <xsd:element name="dataType" type="FuGE.Common.Ontology.cvParamType" minOccurs="0">
                        <xsd:annotation>
                            <xsd:documentation> The data type of the Parameter such as Boolean, integer, String. </xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
				</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.ReferenceableCollectionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The collection of objects that allow external references. </xsd:documentation>
		</xsd:annotation>
				<xsd:sequence>
					<xsd:element ref="BibliographicReference" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Reference to the complete set of BibliographicReference objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="Database" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> Reference to the complete set of Database objects in the FuGE document. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.AuditCollectionType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The collection of Contact records. </xsd:documentation>
		</xsd:annotation>
				<xsd:sequence>
                    <!--
					<xsd:element ref="Contact" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation> The complete set of Contacts. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					-->
                    <xsd:group ref="ContactGroup" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation> The complete set of Contacts. </xsd:documentation>
                        </xsd:annotation>
                    </xsd:group>
				</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="FuGE.Collection.ProviderType" abstract="false">
		<xsd:annotation>
			<xsd:documentation> The provider of the document in terms of the Contact and the software the produced the document instance. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FuGE.Common.IdentifiableType">
				<xsd:sequence>
					<xsd:element ref="ContactRole" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation> The Contact that provided the document instance. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="Software_ref" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation> The Software that produced the document instance. </xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:complexType name="ParamType">
        <xsd:group ref="ParamGroup"/>
	</xsd:complexType>
    <xsd:complexType name="ParamListType">
        <xsd:group ref="ParamGroup" maxOccurs="unbounded"/>
    </xsd:complexType>
    <xsd:group name="ParamGroup">
        <xsd:choice>
            <xsd:element name="cvParam" type="FuGE.Common.Ontology.cvParamType"/>
            <xsd:element name="userParam" type="FuGE.Common.Ontology.userParamType"/>
        </xsd:choice>
    </xsd:group>
    <xsd:group name="MeasurementGroup">
        <xsd:choice>
            <xsd:element name="AtomicValue" type="FuGE.Common.Measurement.AtomicValueType"/>
            <xsd:element name="BooleanValue" type="FuGE.Common.Measurement.BooleanValueType"/>
            <xsd:element name="ComplexValue" type="FuGE.Common.Measurement.ComplexValueType"/>
            <xsd:element name="Range" type="FuGE.Common.Measurement.RangeType"/>
        </xsd:choice>
    </xsd:group>
    <xsd:group name="ContactGroup">
        <xsd:choice>
            <xsd:element name="Person" type="FuGE.Common.Audit.PersonType"/>
            <xsd:element name="Organization" type="FuGE.Common.Audit.OrganizationType"/>
        </xsd:choice>
    </xsd:group>

	<xsd:element name="ExternalData" type="FuGE.Bio.Data.ExternalDataType" abstract="false"/>
	<xsd:element name="GenericMaterial" type="FuGE.Bio.Material.GenericMaterialType" abstract="false"/>
	<xsd:element name="GenericMaterialMeasurement" type="FuGE.Bio.Material.GenericMaterialMeasurementType" abstract="false"/>
	<xsd:element name="Person" type="FuGE.Common.Audit.PersonType" abstract="false"/>
	<xsd:element name="Organization" type="FuGE.Common.Audit.OrganizationType" abstract="false"/>
	<xsd:element name="ContactRole" type="FuGE.Common.Audit.ContactRoleType" abstract="false"/>
	<xsd:element name="BibliographicReference" type="FuGE.Common.References.BibliographicReferenceType" abstract="false"/>
	<xsd:element name="Database" type="FuGE.Common.References.DatabaseType" abstract="false"/>
	<xsd:element name="DatabaseReference" type="FuGE.Common.References.DatabaseReferenceType" abstract="false"/>
	<xsd:element name="Description" type="FuGE.Common.Description.DescriptionType" abstract="false"/>
	<xsd:element name="userParam" type="FuGE.Common.Ontology.userParamType" abstract="false"/>
	<xsd:element name="ParameterValue" type="FuGE.Common.Protocol.ParameterValueType" abstract="false"/>
	<xsd:element name="EquipmentApplication" type="FuGE.Common.Protocol.EquipmentApplicationType" abstract="false"/>
	<xsd:element name="SoftwareApplication" type="FuGE.Common.Protocol.SoftwareApplicationType" abstract="false"/>
	<xsd:element name="ActionApplication" type="FuGE.Common.Protocol.ActionApplicationType" abstract="false"/>
	<xsd:element name="GenericProtocol" type="FuGE.Common.Protocol.GenericProtocolType" abstract="false"/>
	<xsd:element name="GenericAction" type="FuGE.Common.Protocol.GenericActionType" abstract="false"/>
	<xsd:element name="GenericSoftware" type="FuGE.Common.Protocol.GenericSoftwareType" abstract="false"/>
	<xsd:element name="GenericEquipment" type="FuGE.Common.Protocol.GenericEquipmentType" abstract="false"/>
	<xsd:element name="GenericParameter" type="FuGE.Common.Protocol.GenericParameterType" abstract="false"/>
	<xsd:element name="GenericProtocolApplication" type="FuGE.Common.Protocol.GenericProtocolApplicationType" abstract="false"/>
	<xsd:element name="ParameterPair" type="FuGE.Common.Protocol.ParameterPairType" abstract="false"/>
	<xsd:element name="cvParam" type="FuGE.Common.Ontology.cvParamType" abstract="false"/>
	<xsd:element name="cv" type="FuGE.Common.Ontology.cvType" abstract="false"/>	
	<xsd:element name="ReferenceableCollection" type="FuGE.Collection.ReferenceableCollectionType" abstract="false"/>
	<xsd:element name="AuditCollection" type="FuGE.Collection.AuditCollectionType" abstract="false"/>
	<xsd:element name="Provider" type="FuGE.Collection.ProviderType" abstract="false"/>
	<xsd:element name="PropertyValue" type="FuGE.Common.Ontology.PropertyValue" abstract="false"/>
</xsd:schema>
