<?xml version="1.0" encoding="UTF-8"?>
<!-- 
    Attention: Generated code! Do not modify by hand!
    Generated by: XmlSchema.vsl (FuGE milestone 3 version) 
         

  -->
<xsd:schema 
    targetNamespace="psidev.sf.net/gelml"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:fuge="fuge.sf.net"
     xmlns:gelml="psidev.sf.net/gelml"      elementFormDefault="qualified">
    
<xsd:import namespace="fuge.sf.net" schemaLocation="http://fuge.sourceforge.net/Version1Candidate/FuGE-version1-Sept-candidate.xsd"/>
    
  <xsd:complexType name="GelML.GelMLRoot.GelMLMaterialCollectionType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> Collection class for accessing all GenericMaterial instances used in GelML. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.DescribableType">
     <xsd:sequence>
                    <xsd:element ref="fuge:GenericMaterial" minOccurs="0" maxOccurs="unbounded"/>
      

    </xsd:sequence> 


    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.GelMLRoot.GelMLDataCollectionType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> Collection class for accessing all ExternalData instances in GelML. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.DescribableType">
     <xsd:sequence>
                    <xsd:element ref="fuge:ExternalData" minOccurs="0" maxOccurs="unbounded"/>
      

    </xsd:sequence> 


    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.GelMLRoot.GelMLType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> The root of the GelML document. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.IdentifiableType">
     <xsd:sequence>
                    <xsd:element ref="gelml:GelMLMaterialCollection" minOccurs="0" maxOccurs="1"/>
                      <xsd:element ref="gelml:GelMLDataCollection" minOccurs="0" maxOccurs="1"/>
                      <xsd:element ref="gelml:GelMLProtocolCollection" minOccurs="0" maxOccurs="1"/>
                      <xsd:element ref="gelml:GelExperiment" minOccurs="0" maxOccurs="unbounded"/>
                      <xsd:element ref="fuge:OntologyCollection" minOccurs="0" maxOccurs="1"/>
                      <xsd:element ref="fuge:AuditCollection" minOccurs="0" maxOccurs="1"/>
                      <xsd:element ref="fuge:ReferenceableCollection" minOccurs="0" maxOccurs="1"/>
               

    </xsd:sequence> 


    
    
    
    
    
    
    
           <xsd:attribute name="Provider_ref" type="xsd:string">
     <xsd:annotation>
      <xsd:documentation><p>
The provider of the document in terms of the Contact and the
software the produced the document instance.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.GelMLRoot.Gel2DExperimentType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> Gel2DExperiment captures the ProtocolApplications that should be reported for 2D gel electrophoresis in a GelML file. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.GelMLRoot.GelExperimentType">
     <xsd:sequence>
                    <xsd:element ref="gelml:Gel2DApplication" minOccurs="1" maxOccurs="1"/>
                      <xsd:element ref="gelml:ElectrophoresisApplication" minOccurs="1" maxOccurs="unbounded"/>
      

    </xsd:sequence> 


    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.GelMLRoot.GelMLProtocolCollectionType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> Collection class for accessing all Software, Protocol, Equipment and GenericProtocolApplications. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.DescribableType">
     <xsd:sequence>
                    <xsd:element ref="fuge:Equipment" minOccurs="0" maxOccurs="unbounded"/>
                      <xsd:element ref="fuge:Software" minOccurs="0" maxOccurs="unbounded"/>
                      <xsd:element ref="fuge:Protocol" minOccurs="0" maxOccurs="unbounded"/>
                      <xsd:element ref="fuge:GenericProtocolApplication" minOccurs="0" maxOccurs="unbounded"/>
      

    </xsd:sequence> 


    
    
    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.GelMLRoot.GelExperimentType" abstract = "true">
     <xsd:annotation>
          <xsd:documentation> Abstract superclass representing the groups of ProtocolApplications that should be represented in a valid GelML document. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.IdentifiableType">
     <xsd:sequence>
                    <xsd:element ref="gelml:DetectionApplication" minOccurs="0" maxOccurs="unbounded"/>
                      <xsd:element ref="gelml:ExcisionApplication" minOccurs="0" maxOccurs="unbounded"/>
                      <xsd:element ref="gelml:ImageAcquisitionApplication" minOccurs="0" maxOccurs="unbounded"/>
                      <xsd:element ref="gelml:SampleLoadingApplication" minOccurs="1" maxOccurs="unbounded"/>
                      <xsd:element ref="gelml:GelManufactureApplication" minOccurs="0" maxOccurs="unbounded"/>
                      <xsd:element name="_electrophoresisType" minOccurs="0" maxOccurs="1">          <xsd:annotation>
          <xsd:documentation> The experiment type definition, such as "2D-DIGE", "one-dimensional gel electrophoresis", "two-dimensional gel electrophoresis" etc. </xsd:documentation>
		 </xsd:annotation>
               <xsd:complexType>
        			<xsd:attribute name="OntologyTerm_ref" use="required" type="xsd:string"/>
        	   </xsd:complexType>
        </xsd:element>
                       <xsd:element ref="fuge:ContactRole" minOccurs="0" maxOccurs="1"/>
      

    </xsd:sequence> 

    <xsd:attribute name="date" type="xsd:date">
     <xsd:annotation>
      <xsd:documentation> The date the experiment was initiated on. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 


    
    
    
    
    
    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.GelMLRoot.Gel1DExperimentType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> Gel1DExperiment captures the ProtocolApplications that should be reported for 1D gel electrophoresis in a GelML file. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.GelMLRoot.GelExperimentType">
     <xsd:sequence>
                    <xsd:element ref="gelml:Gel1DApplication" minOccurs="1" maxOccurs="1"/>
                      <xsd:element ref="gelml:ElectrophoresisApplication" minOccurs="1" maxOccurs="1"/>
      

    </xsd:sequence> 


    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.GelMLRoot.OtherGelExperimentType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> OtherGelExperiment captures the ProtocolApplications that should be reported for a type of gel electrophoresis other than 1D or 2D in a GelML file. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.GelMLRoot.GelExperimentType">
     <xsd:sequence>
                    <xsd:element ref="gelml:ElectrophoresisApplication" minOccurs="1" maxOccurs="unbounded"/>
                      <xsd:element ref="gelml:OtherGelApplication" minOccurs="1" maxOccurs="1"/>
      

    </xsd:sequence> 


    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.SelectSubstance.RelativeVolumeType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> The volume of a substance relative to the medium in which it is in. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.SelectSubstance.VolumeParameterType">





    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.SelectSubstance.VolumeFunctionType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> VolumeFunction represents a specification of a volume that changes, for example, over time. The value provided for a VolumeFunction should used the ComplexValue specification to represent the function. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.SelectSubstance.VolumeParameterType">





    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.SelectSubstance.AbsoluteVolumeType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> An absolute volume parameter. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.SelectSubstance.VolumeParameterType">





    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.SelectSubstance.VolumeParameterType" abstract = "true">
     <xsd:annotation>
          <xsd:documentation> Abstract superclass representing the different formats for representing the volume of a substance. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ParameterType">




    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.SelectSubstance.SubstanceActionType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> An action representing the use of a substance within a protocol. The substance can be named by free text or using the OntologyTerm association. The attribute actionText or the actionTerm association to OntologyTerm can be used to specify how the substance has been used within the protocol. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ActionType">
     <xsd:sequence>
                    <xsd:element ref="gelml:Concentration" minOccurs="0" maxOccurs="1"/>
                      <xsd:element ref="gelml:Mass" minOccurs="0" maxOccurs="1"/>
                      <xsd:element name="_substanceCharacteristics" minOccurs="0" maxOccurs="unbounded">          <xsd:annotation>
          <xsd:documentation> The characteristics of the substance. </xsd:documentation>
		 </xsd:annotation>
               <xsd:complexType>
        			<xsd:attribute name="OntologyTerm_ref" use="required" type="xsd:string"/>
        	   </xsd:complexType>
        </xsd:element>
                       <xsd:element name="_substanceType" minOccurs="0" maxOccurs="1">          <xsd:annotation>
          <xsd:documentation> The type of substance, the substance name has not been given as free text in the SubstanceAction. </xsd:documentation>
		 </xsd:annotation>
               <xsd:complexType>
        			<xsd:attribute name="OntologyTerm_ref" use="required" type="xsd:string"/>
        	   </xsd:complexType>
        </xsd:element>
                       <xsd:element ref="gelml:VolumeParameter" minOccurs="0" maxOccurs="1"/>
      

    </xsd:sequence> 

    <xsd:attribute name="substanceName" type="xsd:string">
     <xsd:annotation>
      <xsd:documentation> The name of the substance given as free text. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 

    <xsd:attribute name="actionText" type="xsd:string">
     <xsd:annotation>
      <xsd:documentation> A specification of the use of the substance within the parent protocol. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 


    
    
    
    
    
    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.SelectSubstance.TemporalSubstanceActionType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> The use of a substance within a protocol at a particular time point or for a particular duration. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.SelectSubstance.SubstanceActionType">
     <xsd:sequence>
                    <xsd:element ref="gelml:TimeParameter" minOccurs="1" maxOccurs="1"/>
      

    </xsd:sequence> 


    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.SelectSubstance.SubstanceMixtureProtocolType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> A Protocol representing the creation of a mixture of substances, for example to be used for specifying the components of buffers, solutions etc. If the actionText or actionTerm attributes of SubtanceAction are not used, the SubstanceMixtureProtocol represents only the components of the mixture and not the processes applied to them. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ProtocolType">
     <xsd:sequence>
                    <xsd:element ref="gelml:SubstanceAction" minOccurs="1" maxOccurs="unbounded"/>
                      <xsd:element name="_mixtureType" minOccurs="0" maxOccurs="1">          <xsd:annotation>
          <xsd:documentation> The type of mixture e.g. buffer, solution, protein complex etc. </xsd:documentation>
		 </xsd:annotation>
               <xsd:complexType>
        			<xsd:attribute name="OntologyTerm_ref" use="required" type="xsd:string"/>
        	   </xsd:complexType>
        </xsd:element>
       

    </xsd:sequence> 

    <xsd:attribute name="mixtureName" type="xsd:string">
     <xsd:annotation>
      <xsd:documentation> The name of the mixture represented by this protocol. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 


    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.SelectSubstance.DurationType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> A duration parameter. Note: values for absolute or relative time can be using the Parameter DefaultValue model. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.SelectSubstance.TimeParameterType">





    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.SelectSubstance.TimePointType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> A single time point. A duration parameter. Note: values for absolute or relative time can be using the Parameter DefaultValue model. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.SelectSubstance.TimeParameterType">





    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.SelectSubstance.TimeParameterType" abstract = "true">
     <xsd:annotation>
          <xsd:documentation> Abstract superclass representing Duration and TimePoints. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ParameterType">




    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.SelectSubstance.ConcentrationType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> The Concentration of a substance. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ParameterType">




    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.SelectSubstance.MassType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> The mass of a substance. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ParameterType">




    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Gel2DProtocol.Gel2DType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> Gel2D is the material produced from a Gel2DApplication representing the combination of the two gel substrates and the proteins that have been separated. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.Gel.ElectrophoresedGelType">




    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Gel2DProtocol.Gel2DProtocolType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> A protocol describing the procedure of 2D gel electrophoresis. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ProtocolType">
     <xsd:sequence>
                    <xsd:element ref="gelml:SampleLoadingAction" minOccurs="1" maxOccurs="unbounded"/>
                      <xsd:element ref="gelml:FirstDimensionAction" minOccurs="1" maxOccurs="1"/>
                      <xsd:element ref="gelml:SecondDimensionAction" minOccurs="1" maxOccurs="1"/>
                      <xsd:element ref="gelml:InterDimensionAction" minOccurs="0" maxOccurs="unbounded"/>
      

    </xsd:sequence> 


    
    
    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Gel2DProtocol.Gel2DApplicationType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> Gel2DApplication is the application of a Gel2DProtocol. An instance of Gel2DApplication should reference SampleLoadingApplication,  ElectrophoresisApplication, and GenericProtocolApplication as its sub-steps, as defined by the referenced Gel2DProtocol. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ProtocolApplicationType">
     <xsd:sequence>
                    <xsd:element ref="gelml:Gel2D" minOccurs="1" maxOccurs="1"/>
                      <xsd:element name="_inputFirstDimension" minOccurs="1" maxOccurs="1">
         <xsd:annotation>
          <xsd:documentation> Reference to the Gel on which the first dimension separation is performed. 
          </xsd:documentation>
		 </xsd:annotation>
         <xsd:complexType>
          <xsd:sequence> 
           <xsd:element ref="gelml:Gel" minOccurs="1" maxOccurs="1"/>
	         </xsd:sequence>
         </xsd:complexType>
        </xsd:element>
                       <xsd:element name="_inputSecondDimension" minOccurs="1" maxOccurs="1">
         <xsd:annotation>
          <xsd:documentation> Reference to the Gel on which the second dimension separation is performed. 
          </xsd:documentation>
		 </xsd:annotation>
         <xsd:complexType>
          <xsd:sequence> 
           <xsd:element ref="gelml:Gel" minOccurs="1" maxOccurs="1"/>
	         </xsd:sequence>
         </xsd:complexType>
        </xsd:element>
                

    </xsd:sequence> 


    
    
    
    
           <xsd:attribute name="Gel2DProtocol_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
The Gel2DProtocol that has been run.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Gel2DProtocol.FirstDimensionActionType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> An action to represent the order of the referenced ElectrophoresisProtocol, with respect to other Actions performed within this parent protocol. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ActionType">
     <xsd:sequence>
             

    </xsd:sequence> 


           <xsd:attribute name="ElectrophoresisProtocol_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
The ElectrophoresisProtocol performed in the first dimension.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Gel2DProtocol.SecondDimensionActionType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> An action to represent the order of the referenced ElectrophoresisProtocol, with respect to other Actions performed within this parent protocol. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ActionType">
     <xsd:sequence>
             

    </xsd:sequence> 


           <xsd:attribute name="ElectrophoresisProtocol_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
The ElectrophoresisProtocol performed in the second dimension.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Gel1DProtocol.Gel1DType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> Gel1D is the material produced from a Gel1DApplication representing the combination of the gel substrate with the proteins that have been separated. Gel1D should be reference by a DetectionApplication to describe any detection agents that have been applied. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.Gel.ElectrophoresedGelType">




    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Gel1DProtocol.Gel1DApplicationType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> The application of a Gel1DProtocol. Gel1DApplication should reference (via ActionApplication) SampleLoadingApplication and ElectrophoresisApplication matching the structure of the referenced Gel1DProtocol. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ProtocolApplicationType">
     <xsd:sequence>
                    <xsd:element ref="gelml:Gel1D" minOccurs="1" maxOccurs="1"/>
                      <xsd:element name="_inputGel" minOccurs="1" maxOccurs="1">
         <xsd:annotation>
          <xsd:documentation> The gel material on which this Gel1DProtocol acts. 
          </xsd:documentation>
		 </xsd:annotation>
         <xsd:complexType>
          <xsd:sequence> 
           <xsd:element ref="gelml:Gel" minOccurs="1" maxOccurs="1"/>
	         </xsd:sequence>
         </xsd:complexType>
        </xsd:element>
                

    </xsd:sequence> 


    
    
    
           <xsd:attribute name="Gel1DProtocol_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
The protocol used in this Gel1DProtocolApplication.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Gel1DProtocol.Gel1DProtocolType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> A protocol describing the procedure of 1D gel electrophoresis. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ProtocolType">
     <xsd:sequence>
                    <xsd:element ref="gelml:SampleLoadingAction" minOccurs="1" maxOccurs="unbounded"/>
                      <xsd:element ref="gelml:ElectrophoresisAction" minOccurs="1" maxOccurs="1"/>
      

    </xsd:sequence> 


    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Detection.DetectionApplicationType" abstract = "true">
     <xsd:annotation>
          <xsd:documentation> Abstract superclass to represent applications of a DetectionProtocol. Its subclasses DirectDetection and IndirectDetection capture the application of the procedure. The reference to ElectrophoresedGel represents the Gel on which proteins are being detected. If two stainings are done, the destaining should be the first stage of the second staining process. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ProtocolApplicationType">
     <xsd:sequence>
                      

    </xsd:sequence> 


    
           <xsd:attribute name="DetectionProtocol_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
The DetectionProtocol that has been run.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         
           <xsd:attribute name="ElectrophoresedGel_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
The instance of Gel2D, Gel1D or OtherGel on which detection has
taken place. The referenced object should be an output of
Gel2DApplication, Gel1DApplication or OtherGelApplication as
appropriate.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Detection.DetectionMediumType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> The medium on which proteins are detected in processes such as autoradiography (example photographic film). </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Bio.Material.MaterialType">




    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Detection.DetectionProtocolType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> The process by which proteins are to be detected on a gel, either by a direct process e.g. staining or by an indirect process e.g. Western blot. The type of protocol should be specified using the types association inherited from Protocol </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ProtocolType">
     <xsd:sequence>
                    <xsd:element ref="gelml:AddBufferAction" minOccurs="0" maxOccurs="unbounded"/>
                      <xsd:element ref="gelml:SubstanceAction" minOccurs="1" maxOccurs="unbounded"/>
                      <xsd:element ref="fuge:GenericAction" minOccurs="0" maxOccurs="unbounded"/>
                       <xsd:element name="_detectionEquipment" minOccurs="0" maxOccurs="unbounded">          <xsd:annotation>
          <xsd:documentation> Any equipment used in the DetectionProtocol. </xsd:documentation>
		 </xsd:annotation>
               <xsd:complexType>
        			<xsd:attribute name="GenericEquipment_ref" use="required" type="xsd:string"/>
        	   </xsd:complexType>
        </xsd:element>
       

    </xsd:sequence> 


    
    
    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Detection.DirectDetectionType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> DirectDetection represents the application of a DetectionProtocol in which a detection agent (stain or label) is applied directly to a gel. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.Detection.DetectionApplicationType">





    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Detection.IndirectDetectionType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> IndirectDetection represents the application of a DetectionProtocol in which a detection agent (stain or label) is applied to a TransferMedium (e.g. a membrane) following proteins being transfered from a gel. Subsequently, the proteins may be detected on a DetectionMedium, such as photographic film. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.Detection.DetectionApplicationType">
     <xsd:sequence>
                    <xsd:element name="_outputMedium" minOccurs="0" maxOccurs="1">
         <xsd:annotation>
          <xsd:documentation> An instance of TransferMedium following the transfer of proteins. 
          </xsd:documentation>
		 </xsd:annotation>
         <xsd:complexType>
          <xsd:sequence> 
           <xsd:element ref="gelml:TransferMedium" minOccurs="1" maxOccurs="1"/>
	         </xsd:sequence>
         </xsd:complexType>
        </xsd:element>
                       <xsd:element name="_inputTransferMedium" minOccurs="1" maxOccurs="1">
         <xsd:annotation>
          <xsd:documentation> The TransferMedium prior to the transfer of proteins. 
          </xsd:documentation>
		 </xsd:annotation>
         <xsd:complexType>
          <xsd:sequence> 
           <xsd:element ref="gelml:TransferMedium" minOccurs="1" maxOccurs="1"/>
	         </xsd:sequence>
         </xsd:complexType>
        </xsd:element>
                       <xsd:element name="_inputDetectMedium" minOccurs="0" maxOccurs="1">
         <xsd:annotation>
          <xsd:documentation> An instance of DetectionMedium prior to the detection of proteins. 
          </xsd:documentation>
		 </xsd:annotation>
         <xsd:complexType>
          <xsd:sequence> 
           <xsd:element ref="gelml:DetectionMedium" minOccurs="1" maxOccurs="1"/>
	         </xsd:sequence>
         </xsd:complexType>
        </xsd:element>
                       <xsd:element name="_outputDetectMedium" minOccurs="0" maxOccurs="1">
         <xsd:annotation>
          <xsd:documentation> An instance of DetectionMedium following the detection of proteins. 
          </xsd:documentation>
		 </xsd:annotation>
         <xsd:complexType>
          <xsd:sequence> 
           <xsd:element ref="gelml:DetectionMedium" minOccurs="1" maxOccurs="1"/>
	         </xsd:sequence>
         </xsd:complexType>
        </xsd:element>
       

    </xsd:sequence> 


    
    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Detection.TransferMediumType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> The medium proteins are transfered to during Indirect detection of proteins, such as the membrane in a Western blot. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Bio.Material.MaterialType">




    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Electrophoresis.ElectrophoresisStepType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> The protocol for one step within an ElectrophoresisProtocol. The referenced parameters capture the details of the step. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ActionType">
     <xsd:sequence>
                    <xsd:element ref="gelml:ElectricalParameter" minOccurs="1" maxOccurs="1"/>
                      <xsd:element ref="gelml:TimeParameter" minOccurs="0" maxOccurs="1"/>
                      <xsd:element ref="fuge:GenericParameter" minOccurs="0" maxOccurs="unbounded"/>
                      <xsd:element ref="gelml:Temperature" minOccurs="0" maxOccurs="1"/>
      

    </xsd:sequence> 


    
    
    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Electrophoresis.ElectricalParameterType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> A class to represent the current, voltage, power or volthours etc. in each step.   A measurement can be specified as an atomic value, a range or a complex value. If a range is specifed the following convention MUST be followed, lowValue refers the start measurement in time and highValue refers to end measurement in time. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ParameterType">
     <xsd:sequence>
                    <xsd:element name="_electricalSetting" minOccurs="0" maxOccurs="1">          <xsd:annotation>
          <xsd:documentation> The electrical setting that the parameter value applies to, such as: hold, maximum, gradient and so on. </xsd:documentation>
		 </xsd:annotation>
               <xsd:complexType>
        			<xsd:attribute name="OntologyTerm_ref" use="required" type="xsd:string"/>
        	   </xsd:complexType>
        </xsd:element>
       

    </xsd:sequence> 


    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Electrophoresis.ElectrophoresisActionType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> A reference to the ElectrophoreisProtocol performed within the parent protocol. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ActionType">
     <xsd:sequence>
             

    </xsd:sequence> 


           <xsd:attribute name="ElectrophoresisProtocol_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
A reference to the ElectrophoresisProtocol
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Electrophoresis.ElectrophoresisApplicationType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> An application of the referenced ElectrophoresisProtocol. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ProtocolApplicationType">
     <xsd:sequence>
                      

    </xsd:sequence> 


           <xsd:attribute name="ElectrophoresisProtocol_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
The ElectrophoresisProtocol that is applied.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         
    
    
    
           <xsd:attribute name="Gel_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
The Gel on which Electrophoresis takes place. The referenced
gels must be one of the gels associated as inputs to
Gel1DApplication, Gel2DApplication or OtherGelApplication.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Electrophoresis.ElectrophoresisProtocolType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> A protocol for capturing the details of electrophoresis. The running conditions applied to the gel should be given in terms of voltages versus time/kilovolt hours, (or appropriate measurements) and temperature. The voltage mode profile (eg. step and hold, or gradient) should be given as ontology terms on ElectricalParameter. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ProtocolType">
     <xsd:sequence>
                    <xsd:element name="_otherBuffers" minOccurs="0" maxOccurs="1">
         <xsd:annotation>
          <xsd:documentation> Buffers other than the running buffer used in the ElectrophoresisProtocol. 
          </xsd:documentation>
		 </xsd:annotation>
         <xsd:complexType>
          <xsd:sequence> 
           <xsd:element ref="gelml:AddBufferAction" minOccurs="1" maxOccurs="unbounded"/>
	         </xsd:sequence>
         </xsd:complexType>
        </xsd:element>
                        <xsd:element name="_electrophoresisEquipment" minOccurs="0" maxOccurs="unbounded">          <xsd:annotation>
          <xsd:documentation></xsd:documentation>
		 </xsd:annotation>
               <xsd:complexType>
        			<xsd:attribute name="GenericEquipment_ref" use="required" type="xsd:string"/>
        	   </xsd:complexType>
        </xsd:element>
                       <xsd:element ref="gelml:Temperature" minOccurs="0" maxOccurs="1"/>
                      <xsd:element ref="gelml:ElectrophoresisStep" minOccurs="1" maxOccurs="unbounded"/>
                      <xsd:element name="_runningBuffer" minOccurs="0" maxOccurs="1">
         <xsd:annotation>
          <xsd:documentation> The running buffer used in the ElectrophoresisProtocol. 
          </xsd:documentation>
		 </xsd:annotation>
         <xsd:complexType>
          <xsd:sequence> 
           <xsd:element ref="gelml:AddBufferAction" minOccurs="1" maxOccurs="1"/>
	         </xsd:sequence>
         </xsd:complexType>
        </xsd:element>
       

    </xsd:sequence> 


    
    
    
    
    
    
    
    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Electrophoresis.TemperatureType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> Temperature parameter. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ParameterType">




    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Electrophoresis.AddBufferActionType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> An action to represent the use of buffers in the DetectionProtocol by reference to a SubstanceMixtureProtocol that represents the buffer and optionally the method of producing the buffer. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ActionType">
     <xsd:sequence>
             

    </xsd:sequence> 


    
    
    
           <xsd:attribute name="SubstanceMixtureProtocol_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
The specification of the buffer and its components.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Excision.BoundaryChainType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> A boundary chain is a notation for specifying an arbitrarily shaped location on an image. A starting point is given (startXCoordinate and startYCoordinate) and a directional steps. See chainCode documentation for this encoding. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.Excision.FeatureLocationType">



    <xsd:attribute name="startXCoordinate" use="required" type="xsd:int">
     <xsd:annotation>
      <xsd:documentation> The x-coordinate of the starting position of the chain code. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 

    <xsd:attribute name="startYCoordinate" use="required" type="xsd:int">
     <xsd:annotation>
      <xsd:documentation> The y-coordinate of the starting position of the chain code. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 

    <xsd:attribute name="chainCode" use="required" type="xsd:integer">
     <xsd:annotation>
      <xsd:documentation> A chain code denotes the shape of feature using directional steps of one pixel, starting from the specified X and Y coordinates. Each step is encoded using the following convention:   0 = E; 1 = NE; 2 = N; 3 = NW; 4 = W; 5 = SW; 6 = S; 7 = SE; See the specification document for a diagram.   In house representations of GelML are free to use a compression algorithm over the chain code, such as run length encoding, but for data exchange the code should be uncompressed as shown in the example (since entire data files can be compressed using Zip or Gz for data transfer).   Note: In XML Schema, the chainCode is represented as an xs:integer, which covers the infinite set of integers. Care should be taken when mapping to other platforms, such as Java, i.e. this will not map to a Java Integer. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 



    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Excision.PointType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> A single boundary point used in a BoundaryPointSet. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.DescribableType">



    <xsd:attribute name="xCoordinate" use="required" type="xsd:int">
     <xsd:annotation>
      <xsd:documentation> x-coordinate of the boundary point. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 

    <xsd:attribute name="yCoordinate" use="required" type="xsd:int">
     <xsd:annotation>
      <xsd:documentation> y-coordinate of the boundary point. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 


    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Excision.CircleType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> Circle is for defining a circular location on an image. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.Excision.FeatureLocationType">



    <xsd:attribute name="pixelRadius" type="xsd:int">
     <xsd:annotation>
      <xsd:documentation> Radius of the Circle in pixels. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 



    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Excision.ExcisedSampleType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> A sample excised from a gel. These materials can be referenced by formats modelling other techniques, such as mass spectrometry. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Bio.Material.MaterialType">
     <xsd:sequence>
             

    </xsd:sequence> 


           <xsd:attribute name="GelLocation_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
A reference to the location that this sample was excised from.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Excision.ExcisionApplicationType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> The Application of a protocol that describes the excision of locations on gels. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ProtocolApplicationType">
     <xsd:sequence>
                    <xsd:element name="_inputImageLocations" minOccurs="1" maxOccurs="1">
         <xsd:annotation>
          <xsd:documentation> The set of locations on an image of a gel. 
          </xsd:documentation>
		 </xsd:annotation>
         <xsd:complexType>
          <xsd:sequence> 
           <xsd:element ref="gelml:LocationSet" minOccurs="1" maxOccurs="1"/>
	         </xsd:sequence>
         </xsd:complexType>
        </xsd:element>
                       <xsd:element ref="gelml:ExcisedSample" minOccurs="0" maxOccurs="unbounded"/>
                               <xsd:element name="_inputGelLocations" minOccurs="0" maxOccurs="1">
         <xsd:annotation>
          <xsd:documentation> The set of locations on a gel as determined by, for instance, a robotic spot picker at runtime. 
          </xsd:documentation>
		 </xsd:annotation>
         <xsd:complexType>
          <xsd:sequence> 
           <xsd:element ref="gelml:LocationSet" minOccurs="1" maxOccurs="1"/>
	         </xsd:sequence>
         </xsd:complexType>
        </xsd:element>
                

    </xsd:sequence> 


    
    
           <xsd:attribute name="ElectrophoresedGel_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
The ElectrophoresedGel from which locations are excised.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         
    
    
           <xsd:attribute name="GenericProtocol_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
The Protocol applied for excision. Note that equipment and
software used should be provided using the associations from
GenericProtocol to GenericEquipment and GenericSoftware.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Excision.FeatureLocationType" abstract = "true">
     <xsd:annotation>
          <xsd:documentation> Abstract superclass representing the different types of method that could be used to identify a location. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.DescribableType">



    <xsd:attribute name="centroidX" type="xsd:int">
     <xsd:annotation>
      <xsd:documentation> Added for M2 </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 

    <xsd:attribute name="centroidY" type="xsd:int">
     <xsd:annotation>
      <xsd:documentation></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 


    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Excision.GelLocationType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> A single location on a gel. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.IdentifiableType">
     <xsd:sequence>
                    <xsd:element ref="gelml:LocationMeasure" minOccurs="0" maxOccurs="unbounded"/>
                      <xsd:element ref="gelml:FeatureLocation" minOccurs="1" maxOccurs="1"/>
                      <xsd:element name="_mappedLocation" minOccurs="0" maxOccurs="1">          <xsd:annotation>
          <xsd:documentation> This is for mapping a Location from one set to another, for example for mapping a gel coordinate to an image coordinate for a robotic spot picker. </xsd:documentation>
		 </xsd:annotation>
               <xsd:complexType>
        			<xsd:attribute name="GelLocation_ref" use="required" type="xsd:string"/>
        	   </xsd:complexType>
        </xsd:element>
       

    </xsd:sequence> 


    
    
    
    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Excision.LocationMeasureType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> A measured value, property or annotation about a GelLocation, such as predicted MW or pI. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.DescribableType">
     <xsd:sequence>
                    <xsd:element name="_evidence" minOccurs="0" maxOccurs="1">          <xsd:annotation>
          <xsd:documentation> The evidence for this measure, such as molecular weight markers, mass spectrometry etc. </xsd:documentation>
		 </xsd:annotation>
               <xsd:complexType>
        			<xsd:attribute name="OntologyTerm_ref" use="required" type="xsd:string"/>
        	   </xsd:complexType>
        </xsd:element>
                       <xsd:element ref="fuge:Measurement" minOccurs="1" maxOccurs="1"/>
      

    </xsd:sequence> 


    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Excision.LocationSetType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> LocationSet represents a set of locations on a gel image. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Bio.Data.InternalDataType">
     <xsd:sequence>
                             <xsd:element ref="gelml:GelLocation" minOccurs="0" maxOccurs="unbounded"/>
                               <xsd:element name="_locationEvidence" minOccurs="0" maxOccurs="1">          <xsd:annotation>
          <xsd:documentation> The evidence or source file for this location set. The referenced file should be in the GelInfoML format when it is finalised. </xsd:documentation>
		 </xsd:annotation>
               <xsd:complexType>
        			<xsd:attribute name="ExternalData_ref" use="required" type="xsd:string"/>
        	   </xsd:complexType>
        </xsd:element>
                       <xsd:element name="_setType" minOccurs="0" maxOccurs="1">          <xsd:annotation>
          <xsd:documentation> The type of LocationSet e.g. ImageSet, GelSet. </xsd:documentation>
		 </xsd:annotation>
               <xsd:complexType>
        			<xsd:attribute name="OntologyTerm_ref" use="required" type="xsd:string"/>
        	   </xsd:complexType>
        </xsd:element>
       

    </xsd:sequence> 


           <xsd:attribute name="GelLane_ref" type="xsd:string">
     <xsd:annotation>
      <xsd:documentation><p>
A reference to the lane of a gel from which locations are being
excised. A gel lane should only be supplied if appropriate, e.g.
if this is a Gel1D.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         
    
           <xsd:attribute name="Image_ref" type="xsd:string">
     <xsd:annotation>
      <xsd:documentation><p>
The image of a gel that these locations refer to.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         
    
    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Excision.RectangleType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> Rectangle is for defining a rectangular location on an image. The X/Y coordinates correspond with the upper left corner of the rectangle. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.Excision.FeatureLocationType">



    <xsd:attribute name="xCoordinate" use="required" type="xsd:int">
     <xsd:annotation>
      <xsd:documentation> The X-Coordinate of the upper left corner of the rectangle. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 

    <xsd:attribute name="yCoordinate" use="required" type="xsd:int">
     <xsd:annotation>
      <xsd:documentation> The Y-Coordinate of the upper left corner of the rectangle. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 

    <xsd:attribute name="pixelXSize" use="required" type="xsd:int">
     <xsd:annotation>
      <xsd:documentation> The size of the rectangle along the X axis. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 

    <xsd:attribute name="pixelYSize" use="required" type="xsd:int">
     <xsd:annotation>
      <xsd:documentation> The size of the rectangle along the Y axis. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 



    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Excision.BoundaryPointSetType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> A set of boundary points defining a location on a gel. The BoundaryPoints are inclusive i.e. each point defines the boundary and part of the location. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.Excision.FeatureLocationType">
     <xsd:sequence>
                    <xsd:element ref="gelml:Point" minOccurs="1" maxOccurs="unbounded"/>
      

    </xsd:sequence> 


    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Gel.ElectrophoresedGelType" abstract = "true">
     <xsd:annotation>
          <xsd:documentation> Abstract superclass for describing gels following electrophoresis. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Bio.Material.MaterialType">
     <xsd:sequence>
                     <xsd:element name="_gelLaneReference" minOccurs="0" maxOccurs="unbounded">          <xsd:annotation>
          <xsd:documentation> A reference to the GelLanes defined as part of the Gel substrate that this ElectrophoresedGel came from. </xsd:documentation>
		 </xsd:annotation>
               <xsd:complexType>
        			<xsd:attribute name="GelLane_ref" use="required" type="xsd:string"/>
        	   </xsd:complexType>
        </xsd:element>
       

    </xsd:sequence> 


    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Gel.GelType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> The gel matrix used in any dimension of an electrophoresis assay. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Bio.Material.MaterialType">
     <xsd:sequence>
                    <xsd:element ref="gelml:GelLane" minOccurs="0" maxOccurs="unbounded"/>
                      <xsd:element name="_componentGels" minOccurs="0" maxOccurs="1">
         <xsd:annotation>
          <xsd:documentation> The association can specify component gels, for example to represent a stacking gel. 
          </xsd:documentation>
		 </xsd:annotation>
         <xsd:complexType>
          <xsd:sequence> 
           <xsd:element ref="gelml:Gel" minOccurs="1" maxOccurs="unbounded"/>
	         </xsd:sequence>
         </xsd:complexType>
        </xsd:element>
                       <xsd:element name="_percentAcrylamide" minOccurs="0" maxOccurs="1">
         <xsd:annotation>
          <xsd:documentation> The percentage acrylamide in the gel. 
          </xsd:documentation>
		 </xsd:annotation>
         <xsd:complexType>
          <xsd:sequence> 
           <xsd:element ref="fuge:Measurement" minOccurs="1" maxOccurs="1"/>
	         </xsd:sequence>
         </xsd:complexType>
        </xsd:element>
                       <xsd:element ref="gelml:AcrylBisAcrylamide" minOccurs="0" maxOccurs="1"/>
                       <xsd:element name="_additionalSubstances" minOccurs="0" maxOccurs="unbounded">          <xsd:annotation>
          <xsd:documentation> Any additional substances other than those specified by defined classes should be reported here. </xsd:documentation>
		 </xsd:annotation>
               <xsd:complexType>
        			<xsd:attribute name="GenericMaterial_ref" use="required" type="xsd:string"/>
        	   </xsd:complexType>
        </xsd:element>
                       <xsd:element name="_model" minOccurs="0" maxOccurs="1">          <xsd:annotation>
          <xsd:documentation> The model number of the gel. In no suitable CV of model numbers exist, the model number is encoded as the term and as the termAccession. The OntologySource is the URI of the company producing the gel. </xsd:documentation>
		 </xsd:annotation>
               <xsd:complexType>
        			<xsd:attribute name="OntologyTerm_ref" use="required" type="xsd:string"/>
        	   </xsd:complexType>
        </xsd:element>
                       <xsd:element ref="gelml:Dimensions" minOccurs="0" maxOccurs="1"/>
                      <xsd:element ref="gelml:GelRange" minOccurs="0" maxOccurs="1"/>
      

    </xsd:sequence> 

    <xsd:attribute name="separationDimension" type="xsd:int">
     <xsd:annotation>
      <xsd:documentation> The dimension this gel separates in e.g. for 2D electrophoresis, one Gel separationDimension = 1, other Gel separationDimension = 2. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 


    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Gel.GelLaneType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> A lane on a gel. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Bio.Material.MaterialType">



    <xsd:attribute name="laneNumber" use="required" type="xsd:int">
     <xsd:annotation>
      <xsd:documentation> The lane number with respect to the parent gel. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 


    
    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Gel.GelManufactureApplicationType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> The application of a protocol that defines how a gel was produced. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ProtocolApplicationType">
     <xsd:sequence>
                    <xsd:element name="_productGel" minOccurs="1" maxOccurs="1">          <xsd:annotation>
          <xsd:documentation> The gel produced by the GelManufactureApplication. </xsd:documentation>
		 </xsd:annotation>
               <xsd:complexType>
        			<xsd:attribute name="Gel_ref" use="required" type="xsd:string"/>
        	   </xsd:complexType>
        </xsd:element>
                       <xsd:element ref="fuge:GenericMaterialMeasurement" minOccurs="0" maxOccurs="unbounded"/>
               

    </xsd:sequence> 


    
    
    
           <xsd:attribute name="GenericProtocol_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
The protocol applied in the GelManufactureApplication.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Gel.DimensionsType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> The measurements must be in the form of the Cartesian Coordinate system (x,y,z). According to the standard image orientation   described in section 7.1.6 of the MIAPE document   x represents the distance from the anode (+) to the cathode (-). (For example in an IPG strip x = the strip length, for a standard slab gel, x = the width). z = the matrix depth.   All dimensions should be given in milimetres. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.DescribableType">
     <xsd:sequence>
                    <xsd:element name="_dimensionUnit" minOccurs="1" maxOccurs="1">          <xsd:annotation>
          <xsd:documentation> The unit of the Dimensions. </xsd:documentation>
		 </xsd:annotation>
               <xsd:complexType>
        			<xsd:attribute name="OntologyTerm_ref" use="required" type="xsd:string"/>
        	   </xsd:complexType>
        </xsd:element>
       

    </xsd:sequence> 

    <xsd:attribute name="x" use="required" type="xsd:float">
     <xsd:annotation>
      <xsd:documentation> The x axis represents the distance from the anode (+) to the cathode (-). </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 

    <xsd:attribute name="y" use="required" type="xsd:float">
     <xsd:annotation>
      <xsd:documentation> The y axis is the matrix length. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 

    <xsd:attribute name="z" use="required" type="xsd:float">
     <xsd:annotation>
      <xsd:documentation> The z axis dimensions is the matrix depth. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 


    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Gel.GelRangeType" abstract = "true">
     <xsd:annotation>
          <xsd:documentation> The separation range of the gel. This can use the RangeValue or ComplexValue specification. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.DescribableType">
     <xsd:sequence>
                    <xsd:element ref="fuge:Measurement" minOccurs="0" maxOccurs="1"/>
                      <xsd:element name="_rangeType" minOccurs="0" maxOccurs="1">          <xsd:annotation>
          <xsd:documentation> The type of separation range, e.g. logarithmic, linear etc. </xsd:documentation>
		 </xsd:annotation>
               <xsd:complexType>
        			<xsd:attribute name="OntologyTerm_ref" use="required" type="xsd:string"/>
        	   </xsd:complexType>
        </xsd:element>
       

    </xsd:sequence> 


    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Gel.PHRangeType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> The estimated or know pH range of a gel that separates substances based on their isoelectric point. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.Gel.GelRangeType">





    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Gel.MolWeightRangeType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> The estimated or known range of a gel that separates substances by their molecular weight. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.Gel.GelRangeType">





    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Gel.OtherGelRangeType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> A gel range other than molecular weight or pH by which proteins are separated. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.Gel.GelRangeType">
     <xsd:sequence>
                    <xsd:element name="_separationType" minOccurs="1" maxOccurs="1">          <xsd:annotation>
          <xsd:documentation> The type of separation performed i.e. the biophysical property that is separated on. </xsd:documentation>
		 </xsd:annotation>
               <xsd:complexType>
        			<xsd:attribute name="OntologyTerm_ref" use="required" type="xsd:string"/>
        	   </xsd:complexType>
        </xsd:element>
       

    </xsd:sequence> 


    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.Gel.AcrylBisAcrylamideType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> Describes the acrylamide:bisacrylamide ratio. The values stored in the attributes can be represented as a simple ratio (e.g. 37.5:1) or as percentages out of 100 (97:3). </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.DescribableType">



    <xsd:attribute name="acrylamide" use="required" type="xsd:float">
     <xsd:annotation>
      <xsd:documentation> Ratio of bisacrylamide (i.e. value =97 if ratio is 97:3) </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 

    <xsd:attribute name="bisacrylamide" use="required" type="xsd:float">
     <xsd:annotation>
      <xsd:documentation> Ratio of bisacrylamide (i.e. value =3 if ratio is 97:3) </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 


    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.SampleLoading.SampleLoadingActionType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> An action to represent the order of the referenced SampleLoadingProtocol, with respect to other Actions performed within this parent protocol. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ActionType">
     <xsd:sequence>
             

    </xsd:sequence> 

    <xsd:attribute name="laneNumber" type="xsd:int">
     <xsd:annotation>
      <xsd:documentation> Optional lane number attribute for specifying the intended lane that this protocol should be applied to. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 

    <xsd:attribute name="dimension" type="xsd:int">
     <xsd:annotation>
      <xsd:documentation> The gel dimension that the referenced SampleLoadingProtocol refers to. Note, this is not required in the context of  Gel1DProtocol. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 


           <xsd:attribute name="SampleLoadingProtocol_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
A reference to the SampleLoadingProtocol.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         
    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.SampleLoading.SampleLoadingApplicationType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> An application of the SampleLoadingProtocol. SampleLoadingApplication defines how a sample was loaded to a gel.   To capture loading a first dimension gel onto a second dimension gel,  GelSampleMeasurement should reference the first dimension gel and SampleLoadingApplication references the second dimension Gel (as LoadedGel). </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:sequence> 


           <xsd:attribute name="SampleLoadingProtocol_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
The SampleLoadingProtocol that has been applied.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         
    
           <xsd:attribute name="Gel_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
The gel onto which the sample was loaded. The gel must be an
instance of Gel referenced from Gel1DApplication,
Gel2DApplication or OtherGelApplication.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         
           <xsd:attribute name="GelLane_ref" type="xsd:string">
     <xsd:annotation>
      <xsd:documentation><p>
The lane on which the sample was loaded.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.SampleLoading.SampleLoadingProtocolType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> A Protocol defining how samples are loaded onto a Gel or GelLanes. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ProtocolType">
     <xsd:sequence>
                    <xsd:element ref="gelml:SubstanceAction" minOccurs="0" maxOccurs="unbounded"/>
                       <xsd:element name="_sampleLoadingParameters" minOccurs="0" maxOccurs="unbounded">          <xsd:annotation>
          <xsd:documentation> Any parameters related to the SampleLoadingProtocol. </xsd:documentation>
		 </xsd:annotation>
               <xsd:complexType>
        			<xsd:attribute name="GenericParameter_ref" use="required" type="xsd:string"/>
        	   </xsd:complexType>
        </xsd:element>
                       <xsd:element ref="fuge:GenericAction" minOccurs="0" maxOccurs="unbounded"/>
                       <xsd:element name="_sampleLoadingEquipment" minOccurs="0" maxOccurs="unbounded">          <xsd:annotation>
          <xsd:documentation> Any equipment used in the SampleLoadingProtocol. </xsd:documentation>
		 </xsd:annotation>
               <xsd:complexType>
        			<xsd:attribute name="GenericEquipment_ref" use="required" type="xsd:string"/>
        	   </xsd:complexType>
        </xsd:element>
                       <xsd:element ref="gelml:AddBufferAction" minOccurs="0" maxOccurs="1"/>
      

    </xsd:sequence> 


    
    
    
    
    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.OtherGelProtocol.InterDimensionActionType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> The Action represent a reference to a Protocol for the stages that occur between electrophoresis over particular dimensions and an ordering of the reference with respect to other Actions performed within the parent Protocol. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ActionType">
     <xsd:sequence>
             

    </xsd:sequence> 

    <xsd:attribute name="preDimension" type="xsd:int">
     <xsd:annotation>
      <xsd:documentation> The dimension that this procedure precedes. This attribute is not required for within a Gel2DProtocol as it is assumed that this specifies a Protocol prior to dimension 2. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 


    
    
           <xsd:attribute name="Protocol_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
A reference to the GenericProtocol performed between the
dimensions specified.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.OtherGelProtocol.OtherGelType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> The Gel output from an OtherGelApplication representing the combination of gel substrates and proteins separated. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="gelml:GelML.Gel.ElectrophoresedGelType">




    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.OtherGelProtocol.OtherGelApplicationType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> OtherGelApplication is the application of an OtherGelProtocol.   An instance of OtherApplication should reference (via ActionApplication) SampleLoadingApplication,  ElectrophoresisApplicationand GenericProtocolApplication as its sub-steps, as defined by the referenced OtherGelProtocol. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ProtocolApplicationType">
     <xsd:sequence>
                             <xsd:element name="_inputGels" minOccurs="1" maxOccurs="1">
         <xsd:annotation>
          <xsd:documentation> The gels on which separations are performed. 
          </xsd:documentation>
		 </xsd:annotation>
         <xsd:complexType>
          <xsd:sequence> 
           <xsd:element ref="gelml:Gel" minOccurs="1" maxOccurs="unbounded"/>
	         </xsd:sequence>
         </xsd:complexType>
        </xsd:element>
                       <xsd:element name="_outputGels" minOccurs="0" maxOccurs="1">
         <xsd:annotation>
          <xsd:documentation> The Gel(s) output from an OtherGelApplication representing the combination of gel substrates and proteins separated. 
          </xsd:documentation>
		 </xsd:annotation>
         <xsd:complexType>
          <xsd:sequence> 
           <xsd:element ref="gelml:OtherGel" minOccurs="1" maxOccurs="unbounded"/>
	         </xsd:sequence>
         </xsd:complexType>
        </xsd:element>
       

    </xsd:sequence> 


    
           <xsd:attribute name="OtherGelProtocol_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
The OtherGelProtocol that is applied.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.OtherGelProtocol.OtherGelProtocolType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> A protocol for capturing experiments that cannot be represented by Gel1DProtocol or Gel2DProtocol. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ProtocolType">
     <xsd:sequence>
                    <xsd:element ref="gelml:SampleLoadingAction" minOccurs="0" maxOccurs="unbounded"/>
                      <xsd:element ref="gelml:DimensionAction" minOccurs="1" maxOccurs="unbounded"/>
                      <xsd:element ref="gelml:InterDimensionAction" minOccurs="0" maxOccurs="unbounded"/>
      

    </xsd:sequence> 


    
    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.OtherGelProtocol.DimensionActionType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> An action to represent the order of the referenced ElectrophoresisProtocol, with respect to other Actions performed within this parent protocol. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ActionType">
     <xsd:sequence>
             

    </xsd:sequence> 

    <xsd:attribute name="dimension" type="xsd:int">
     <xsd:annotation>
      <xsd:documentation> The dimension that the referenced electrophoresis protocol occurs in. This value does not need to be given for a Gel1DProtocol as there is only one dimension. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 


           <xsd:attribute name="ElectrophoresisProtocol_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
The ElectrophoresisProtocol performed in this dimension.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.ImageAcquisition.ImageType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> A reference to an image file stored in an external location. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Bio.Data.ExternalDataType">
     <xsd:sequence>
                    <xsd:element name="_channel" minOccurs="0" maxOccurs="1">
         <xsd:annotation>
          <xsd:documentation> The channel or wavelength at which the image was scanned. 
          </xsd:documentation>
		 </xsd:annotation>
         <xsd:complexType>
          <xsd:sequence> 
           <xsd:element ref="fuge:Measurement" minOccurs="1" maxOccurs="1"/>
	         </xsd:sequence>
         </xsd:complexType>
        </xsd:element>
                       <xsd:element name="_resolution" minOccurs="0" maxOccurs="1">
         <xsd:annotation>
          <xsd:documentation> The value of the resolution of the Image. 
          </xsd:documentation>
		 </xsd:annotation>
         <xsd:complexType>
          <xsd:sequence> 
           <xsd:element ref="fuge:Measurement" minOccurs="1" maxOccurs="1"/>
	         </xsd:sequence>
         </xsd:complexType>
        </xsd:element>
       

    </xsd:sequence> 

    <xsd:attribute name="bitDepth" type="xsd:int">
     <xsd:annotation>
      <xsd:documentation> The image bit-depth e.g. 8 bit, 16 bit. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 

    <xsd:attribute name="dimensionX" type="xsd:int">
     <xsd:annotation>
      <xsd:documentation> The x-axis dimension of the image in pixels. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 

    <xsd:attribute name="dimensionY" type="xsd:int">
     <xsd:annotation>
      <xsd:documentation> The y-axis dimension of the image in pixels. </xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 


    
    
    
    

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  
  <xsd:complexType name="GelML.ImageAcquisition.ImageAcquisitionApplicationType" abstract = "false">
     <xsd:annotation>
          <xsd:documentation> An application of a protocol (GenericProtocol) describing the scanning of a material to produce an Image. In this context it is expected that the Material would be an ElectrophoresedGel, TransferMedium or DetectionMedium. </xsd:documentation>
		 </xsd:annotation>
    <xsd:complexContent>
     <xsd:extension base="fuge:FuGE.Common.Protocol.ProtocolApplicationType">
     <xsd:sequence>
                               

    </xsd:sequence> 


           <xsd:attribute name="Image_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
The Image produced from ImageAcquisitionApplication.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         
    
           <xsd:attribute name="GenericProtocol_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
The protocol describing this image acquisition (scanning)
procedure.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         
           <xsd:attribute name="Material_ref" use="required" type="xsd:string">  
     <xsd:annotation>
      <xsd:documentation><p>
The Input material to image acquisition.
</p>
<p>
In a 1D Gel experiment, if the gel is scanned after
electrophoresis, this should reference the Gel1D produced by
Gel1DApplication. In a 2D Gel experiment, if the gel is scanned
after electrophoresis, this should reference the Gel2D produced
by Gel2DApplication. If an image is aquired of a TransferMedium
or DetectionMedium, this should reference an instance that is
referenced by IndirectDetection as OutputTransferMedium or
OutputDetectionMedium.
</p></xsd:documentation>
	 </xsd:annotation>
    </xsd:attribute>	 
         

    </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  


 <xsd:element name="GelMLMaterialCollection" type="gelml:GelML.GelMLRoot.GelMLMaterialCollectionType" abstract="false" substitutionGroup="fuge:Describable" />
 <xsd:element name="GelMLDataCollection" type="gelml:GelML.GelMLRoot.GelMLDataCollectionType" abstract="false" substitutionGroup="fuge:Describable" />
 <xsd:element name="GelML" type="gelml:GelML.GelMLRoot.GelMLType" abstract="false" substitutionGroup="fuge:Identifiable" />
 <xsd:element name="Gel2DExperiment" type="gelml:GelML.GelMLRoot.Gel2DExperimentType" abstract="false" substitutionGroup="gelml:GelExperiment" />
 <xsd:element name="GelMLProtocolCollection" type="gelml:GelML.GelMLRoot.GelMLProtocolCollectionType" abstract="false" substitutionGroup="fuge:Describable" />
 <xsd:element name="GelExperiment" type="gelml:GelML.GelMLRoot.GelExperimentType" abstract="true" substitutionGroup="fuge:Identifiable" />
 <xsd:element name="Gel1DExperiment" type="gelml:GelML.GelMLRoot.Gel1DExperimentType" abstract="false" substitutionGroup="gelml:GelExperiment" />
 <xsd:element name="OtherGelExperiment" type="gelml:GelML.GelMLRoot.OtherGelExperimentType" abstract="false" substitutionGroup="gelml:GelExperiment" />
 <xsd:element name="RelativeVolume" type="gelml:GelML.SelectSubstance.RelativeVolumeType" abstract="false" substitutionGroup="gelml:VolumeParameter" />
 <xsd:element name="VolumeFunction" type="gelml:GelML.SelectSubstance.VolumeFunctionType" abstract="false" substitutionGroup="gelml:VolumeParameter" />
 <xsd:element name="AbsoluteVolume" type="gelml:GelML.SelectSubstance.AbsoluteVolumeType" abstract="false" substitutionGroup="gelml:VolumeParameter" />
 <xsd:element name="VolumeParameter" type="gelml:GelML.SelectSubstance.VolumeParameterType" abstract="true" substitutionGroup="fuge:Parameter" />
 <xsd:element name="SubstanceAction" type="gelml:GelML.SelectSubstance.SubstanceActionType" abstract="false" substitutionGroup="fuge:Action" />
 <xsd:element name="TemporalSubstanceAction" type="gelml:GelML.SelectSubstance.TemporalSubstanceActionType" abstract="false" substitutionGroup="gelml:SubstanceAction" />
 <xsd:element name="SubstanceMixtureProtocol" type="gelml:GelML.SelectSubstance.SubstanceMixtureProtocolType" abstract="false" substitutionGroup="fuge:Protocol" />
 <xsd:element name="Duration" type="gelml:GelML.SelectSubstance.DurationType" abstract="false" substitutionGroup="gelml:TimeParameter" />
 <xsd:element name="TimePoint" type="gelml:GelML.SelectSubstance.TimePointType" abstract="false" substitutionGroup="gelml:TimeParameter" />
 <xsd:element name="TimeParameter" type="gelml:GelML.SelectSubstance.TimeParameterType" abstract="true" substitutionGroup="fuge:Parameter" />
 <xsd:element name="Concentration" type="gelml:GelML.SelectSubstance.ConcentrationType" abstract="false" substitutionGroup="fuge:Parameter" />
 <xsd:element name="Mass" type="gelml:GelML.SelectSubstance.MassType" abstract="false" substitutionGroup="fuge:Parameter" />
 <xsd:element name="Gel2D" type="gelml:GelML.Gel2DProtocol.Gel2DType" abstract="false" substitutionGroup="gelml:ElectrophoresedGel" />
 <xsd:element name="Gel2DProtocol" type="gelml:GelML.Gel2DProtocol.Gel2DProtocolType" abstract="false" substitutionGroup="fuge:Protocol" />
 <xsd:element name="Gel2DApplication" type="gelml:GelML.Gel2DProtocol.Gel2DApplicationType" abstract="false" substitutionGroup="fuge:ProtocolApplication" />
 <xsd:element name="FirstDimensionAction" type="gelml:GelML.Gel2DProtocol.FirstDimensionActionType" abstract="false" substitutionGroup="fuge:Action" />
 <xsd:element name="SecondDimensionAction" type="gelml:GelML.Gel2DProtocol.SecondDimensionActionType" abstract="false" substitutionGroup="fuge:Action" />
 <xsd:element name="Gel1D" type="gelml:GelML.Gel1DProtocol.Gel1DType" abstract="false" substitutionGroup="gelml:ElectrophoresedGel" />
 <xsd:element name="Gel1DApplication" type="gelml:GelML.Gel1DProtocol.Gel1DApplicationType" abstract="false" substitutionGroup="fuge:ProtocolApplication" />
 <xsd:element name="Gel1DProtocol" type="gelml:GelML.Gel1DProtocol.Gel1DProtocolType" abstract="false" substitutionGroup="fuge:Protocol" />
 <xsd:element name="DetectionApplication" type="gelml:GelML.Detection.DetectionApplicationType" abstract="true" substitutionGroup="fuge:ProtocolApplication" />
 <xsd:element name="DetectionMedium" type="gelml:GelML.Detection.DetectionMediumType" abstract="false" substitutionGroup="fuge:Material" />
 <xsd:element name="DetectionProtocol" type="gelml:GelML.Detection.DetectionProtocolType" abstract="false" substitutionGroup="fuge:Protocol" />
 <xsd:element name="DirectDetection" type="gelml:GelML.Detection.DirectDetectionType" abstract="false" substitutionGroup="gelml:DetectionApplication" />
 <xsd:element name="IndirectDetection" type="gelml:GelML.Detection.IndirectDetectionType" abstract="false" substitutionGroup="gelml:DetectionApplication" />
 <xsd:element name="TransferMedium" type="gelml:GelML.Detection.TransferMediumType" abstract="false" substitutionGroup="fuge:Material" />
 <xsd:element name="ElectrophoresisStep" type="gelml:GelML.Electrophoresis.ElectrophoresisStepType" abstract="false" substitutionGroup="fuge:Action" />
 <xsd:element name="ElectricalParameter" type="gelml:GelML.Electrophoresis.ElectricalParameterType" abstract="false" substitutionGroup="fuge:Parameter" />
 <xsd:element name="ElectrophoresisAction" type="gelml:GelML.Electrophoresis.ElectrophoresisActionType" abstract="false" substitutionGroup="fuge:Action" />
 <xsd:element name="ElectrophoresisApplication" type="gelml:GelML.Electrophoresis.ElectrophoresisApplicationType" abstract="false" substitutionGroup="fuge:ProtocolApplication" />
 <xsd:element name="ElectrophoresisProtocol" type="gelml:GelML.Electrophoresis.ElectrophoresisProtocolType" abstract="false" substitutionGroup="fuge:Protocol" />
 <xsd:element name="Temperature" type="gelml:GelML.Electrophoresis.TemperatureType" abstract="false" substitutionGroup="fuge:Parameter" />
 <xsd:element name="AddBufferAction" type="gelml:GelML.Electrophoresis.AddBufferActionType" abstract="false" substitutionGroup="fuge:Action" />
 <xsd:element name="BoundaryChain" type="gelml:GelML.Excision.BoundaryChainType" abstract="false" substitutionGroup="gelml:FeatureLocation" />
 <xsd:element name="Point" type="gelml:GelML.Excision.PointType" abstract="false" substitutionGroup="fuge:Describable" />
 <xsd:element name="Circle" type="gelml:GelML.Excision.CircleType" abstract="false" substitutionGroup="gelml:FeatureLocation" />
 <xsd:element name="ExcisedSample" type="gelml:GelML.Excision.ExcisedSampleType" abstract="false" substitutionGroup="fuge:Material" />
 <xsd:element name="ExcisionApplication" type="gelml:GelML.Excision.ExcisionApplicationType" abstract="false" substitutionGroup="fuge:ProtocolApplication" />
 <xsd:element name="FeatureLocation" type="gelml:GelML.Excision.FeatureLocationType" abstract="true" substitutionGroup="fuge:Describable" />
 <xsd:element name="GelLocation" type="gelml:GelML.Excision.GelLocationType" abstract="false" substitutionGroup="fuge:Identifiable" />
 <xsd:element name="LocationMeasure" type="gelml:GelML.Excision.LocationMeasureType" abstract="false" substitutionGroup="fuge:Describable" />
 <xsd:element name="LocationSet" type="gelml:GelML.Excision.LocationSetType" abstract="false" substitutionGroup="fuge:InternalData" />
 <xsd:element name="Rectangle" type="gelml:GelML.Excision.RectangleType" abstract="false" substitutionGroup="gelml:FeatureLocation" />
 <xsd:element name="BoundaryPointSet" type="gelml:GelML.Excision.BoundaryPointSetType" abstract="false" substitutionGroup="gelml:FeatureLocation" />
 <xsd:element name="ElectrophoresedGel" type="gelml:GelML.Gel.ElectrophoresedGelType" abstract="true" substitutionGroup="fuge:Material" />
 <xsd:element name="Gel" type="gelml:GelML.Gel.GelType" abstract="false" substitutionGroup="fuge:Material" />
 <xsd:element name="GelLane" type="gelml:GelML.Gel.GelLaneType" abstract="false" substitutionGroup="fuge:Material" />
 <xsd:element name="GelManufactureApplication" type="gelml:GelML.Gel.GelManufactureApplicationType" abstract="false" substitutionGroup="fuge:ProtocolApplication" />
 <xsd:element name="Dimensions" type="gelml:GelML.Gel.DimensionsType" abstract="false" substitutionGroup="fuge:Describable" />
 <xsd:element name="GelRange" type="gelml:GelML.Gel.GelRangeType" abstract="true" substitutionGroup="fuge:Describable" />
 <xsd:element name="PHRange" type="gelml:GelML.Gel.PHRangeType" abstract="false" substitutionGroup="gelml:GelRange" />
 <xsd:element name="MolWeightRange" type="gelml:GelML.Gel.MolWeightRangeType" abstract="false" substitutionGroup="gelml:GelRange" />
 <xsd:element name="OtherGelRange" type="gelml:GelML.Gel.OtherGelRangeType" abstract="false" substitutionGroup="gelml:GelRange" />
 <xsd:element name="AcrylBisAcrylamide" type="gelml:GelML.Gel.AcrylBisAcrylamideType" abstract="false" substitutionGroup="fuge:Describable" />
 <xsd:element name="SampleLoadingAction" type="gelml:GelML.SampleLoading.SampleLoadingActionType" abstract="false" substitutionGroup="fuge:Action" />
 <xsd:element name="SampleLoadingApplication" type="gelml:GelML.SampleLoading.SampleLoadingApplicationType" abstract="false" substitutionGroup="fuge:ProtocolApplication" />
 <xsd:element name="SampleLoadingProtocol" type="gelml:GelML.SampleLoading.SampleLoadingProtocolType" abstract="false" substitutionGroup="fuge:Protocol" />
 <xsd:element name="InterDimensionAction" type="gelml:GelML.OtherGelProtocol.InterDimensionActionType" abstract="false" substitutionGroup="fuge:Action" />
 <xsd:element name="OtherGel" type="gelml:GelML.OtherGelProtocol.OtherGelType" abstract="false" substitutionGroup="gelml:ElectrophoresedGel" />
 <xsd:element name="OtherGelApplication" type="gelml:GelML.OtherGelProtocol.OtherGelApplicationType" abstract="false" substitutionGroup="fuge:ProtocolApplication" />
 <xsd:element name="OtherGelProtocol" type="gelml:GelML.OtherGelProtocol.OtherGelProtocolType" abstract="false" substitutionGroup="fuge:Protocol" />
 <xsd:element name="DimensionAction" type="gelml:GelML.OtherGelProtocol.DimensionActionType" abstract="false" substitutionGroup="fuge:Action" />
 <xsd:element name="Image" type="gelml:GelML.ImageAcquisition.ImageType" abstract="false" substitutionGroup="fuge:ExternalData" />
 <xsd:element name="ImageAcquisitionApplication" type="gelml:GelML.ImageAcquisition.ImageAcquisitionApplicationType" abstract="false" substitutionGroup="fuge:ProtocolApplication" />
</xsd:schema>     
