<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gtr="http://gtr.ukri.org/api"
  targetNamespace="http://gtr.ukri.org/api" elementFormDefault="qualified"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <xs:element name="searchResult" type="gtr:searchResult">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Root response element providing results related to a Search
        query. </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="projectOverview" type="gtr:projectOverview">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Root response element providing results related to a Project
        query. </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="personOverview" type="gtr:personOverview">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Root response element providing results related to a Person
        query. </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="organisationOverview" type="gtr:organisationOverview">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Root response element providing results related to a
        Organisation query. </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="publicationOverview" type="gtr:publicationOverview">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Root response element providing results related to a
        Publication query. </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="organisations" type="gtr:organisations">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Root response element providing all organisations.
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="projects" type="gtr:projects">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Root response element providing all projects.
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="people" type="gtr:people">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Root response element providing all projects.
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="publications" type="gtr:publications">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Root response element providing all publications.
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="failure" type="gtr:failure"/>

  <xs:complexType name="abstractSearchResult" abstract="true">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Response element providing results related to a Search query.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="resourceHitCounts" type="gtr:resourceHitCounts"/>
      <xs:element name="sortableFields" type="gtr:sortableFields"/>
      <xs:element name="searchableFields" type="gtr:searchableFields"/>
      <xs:element name="facetGroups" type="gtr:facetGroups" minOccurs="0"/>
      <xs:element name="suggestions" type="gtr:suggestions" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="searchResult">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Response element providing results related to a Search query.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="gtr:abstractSearchResult">
        <xs:sequence>
          <xs:element name="results" type="gtr:results"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="projectSearchResult">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Response element providing results related to a Search query.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="gtr:abstractSearchResult">
        <xs:sequence>
          <xs:element name="results">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="projectOverview" type="gtr:projectOverview" minOccurs="0"
                  maxOccurs="unbounded"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="failure">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Standard response when a failure is detected handling the
        request </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="message" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="suggestions">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Similar word suggestions based on the words provided in a
        Search query. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="didYouMean" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="facetGroups">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Grouping of facets related to search results.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="facetGroup" minOccurs="0" maxOccurs="unbounded" type="gtr:facetGroup"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="facetGroup">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Individual facet group of the search results.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="xs:string"/>
      <xs:element name="facets" minOccurs="0" maxOccurs="unbounded" type="gtr:facets"/>
      <xs:element name="sortOrder" minOccurs="0" type="xs:string" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="facets">
    <xs:annotation>
      <xs:documentation xml:lang="en"> The facets related to a specific facet group.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="facet" minOccurs="0" maxOccurs="unbounded" type="gtr:facetItem"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="facetItem">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Individual facet. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="id" type="xs:string"/>
      <xs:element name="name" type="xs:string"/>
      <xs:element name="applied" type="xs:boolean"/>
      <xs:element name="count" type="xs:int"/>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="resourceHitCounts">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Search 'Hit Counts' for each of the impacted resources.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="resourceHitCount" minOccurs="0" maxOccurs="unbounded"
        type="gtr:resourceHitCount"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="resourceHitCount">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Search 'Hit Count' for a specific resource.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="count" type="xs:int"/>
      <xs:element name="resource" type="xs:string"/>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="sortableFields">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Summary of the sortable fields that can to applied to a
        request. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="sortableField" minOccurs="0" maxOccurs="unbounded" type="gtr:sortableField"
      />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="sortableField">
    <xs:annotation>
      <xs:documentation xml:lang="en"> A sortable field as a 'fieldName' and a 'displayName'. The
        'fieldName' is used as part of a request when applying a sort. The 'displayName' is the
        human readable form of the sort field. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="fieldName" type="xs:string"/>
      <xs:element name="displayName" type="xs:string"/>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="searchableFields">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Summary of the searchable fields that can to applied to a
        request. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="searchableField" minOccurs="0" maxOccurs="unbounded"
        type="gtr:sortableField"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="searchableField">
    <xs:annotation>
      <xs:documentation xml:lang="en"> A searchable field as a 'fieldName' and a 'displayName'. The
        'fieldName' is used as part of a request when applying a search. The 'displayName' is the
        human readable form of the search field. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="fieldName" type="xs:string"/>
      <xs:element name="displayName" type="xs:string"/>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="results">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Container element for the potential return results from a
        Search request. </xs:documentation>
    </xs:annotation>
    <xs:choice>
      <xs:element name="projectOverview" type="gtr:projectOverview" minOccurs="0"
        maxOccurs="unbounded"/>
      <xs:element name="personOverview" type="gtr:personOverview" minOccurs="0"
        maxOccurs="unbounded"/>
      <xs:element name="organisationOverview" type="gtr:organisationOverview" minOccurs="0"
        maxOccurs="unbounded"/>
      <xs:element name="publicationOverview" type="gtr:publicationOverview" minOccurs="0"
        maxOccurs="unbounded"/>
       <xs:element name="outcomeTypeOverView" type="gtr:outcomeTypeOverView" minOccurs="0"
        maxOccurs="unbounded"/>
    </xs:choice>
  </xs:complexType>

  <xs:complexType name="projectOverview">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Response elements from a Project query. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="projectComposition" type="gtr:projectComposition"/>
      <xs:element name="abstractSnippet" type="xs:string" minOccurs="0"/>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="personOverview">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Response elements from a Person query. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="organisation" type="gtr:organisation" minOccurs="0"/>
      <xs:element name="person" type="gtr:person"/>
      <xs:element name="projectSearchResult" type="gtr:projectSearchResult" minOccurs="0"/>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="organisationOverview">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Response elements from a Organisation query.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="organisation" type="gtr:organisation"/>
      <xs:element name="projectSearchResult" type="gtr:projectSearchResult" minOccurs="0"/>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="publicationOverview">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Response elements from a Publication query.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="publication" type="gtr:publication"/>
      <xs:element name="projects" type="gtr:projects" minOccurs="0"/>
      <xs:element name="abstractSnippet" type="xs:string" minOccurs="0"/> 
    </xs:all>
  </xs:complexType>

  <xs:complexType name="projectCompositions">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Collection of gtr:projectComposition </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="projectComposition" type="gtr:projectComposition" minOccurs="0"
        maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="projectComposition">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Closely related components of a Project. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="leadResearchOrganisation" type="gtr:organisation"/>
      <xs:element name="project" type="gtr:project"/>
      <xs:element name="personRoles" type="gtr:personRoles"/>
      <xs:element name="collaborations" type="gtr:collaborations" minOccurs="0"/>
      <xs:element name="organisationRoles" type="gtr:organisationRoles" minOccurs="0"/>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="resource" abstract="true">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Abstract representation of a resource. Resources have a
        related endpoint and unique identifier. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="id" type="xs:string"/>
    </xs:sequence>
    <xs:attribute name="url" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="collaborations">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Collection of gtr:organisation that are classified as
        collaborators </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="collaborator" type="gtr:organisation" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="organisations">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Collection of gtr:organisation </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="organisation" type="gtr:organisation" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="organisation">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Research organisation. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="gtr:resource">
        <xs:sequence>
          <xs:element name="name" type="xs:string"/>
          <xs:element name="department" type="xs:string" minOccurs="0"/>
          <xs:element name="website" type="xs:string" minOccurs="0"/>
          <xs:element name="address" type="gtr:address" minOccurs="0"/>          
          <xs:element name="federatedIds" minOccurs="0">
            <xs:complexType>
                <xs:sequence>
                  <xs:element name="federatedId" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="typeInd" type="xs:string" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="people">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Collection of gtr:person </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="person" type="gtr:person" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="projects">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Collection of gtr:project </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="project" type="gtr:project" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="address">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Standard representation of a postal address.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="line1" type="xs:string" minOccurs="0"/>
      <xs:element name="line2" type="xs:string" minOccurs="0"/>
      <xs:element name="line3" type="xs:string" minOccurs="0"/>
      <xs:element name="line4" type="xs:string" minOccurs="0"/>
      <xs:element name="line5" type="xs:string" minOccurs="0"/>
      <xs:element name="city" type="xs:string" minOccurs="0"/>
      <xs:element name="county" type="xs:string" minOccurs="0"/>
      <xs:element name="postCode" type="xs:string" minOccurs="0"/>
      <xs:element name="region" type="xs:string" minOccurs="0"/>
      <xs:element name="country" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="project">
    <xs:annotation>
      <xs:documentation xml:lang="en"> A research project. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="gtr:resource">
        <xs:sequence>
          <xs:element name="title" type="xs:string"/>
          <xs:element name="status" type="xs:string" minOccurs="0"/>
          <xs:element name="grantCategory" type="xs:string" minOccurs="0"/>
          <xs:element name="grantReference" type="xs:string" minOccurs="0"/>
          <xs:element name="leadOrganisationDepartment" type="xs:string" minOccurs="0"/>
          <xs:element name="abstractText" type="xs:string" minOccurs="0"/>
          <xs:element name="technicalSummary" type="xs:string" minOccurs="0"/>
          <xs:element name="potentialImpactText" type="xs:string" minOccurs="0"/>
          <xs:element name="fund" type="gtr:fund"/>
          <xs:element name="output" type="gtr:output" minOccurs="0"/>
          <xs:element name="publications" type="gtr:publications" minOccurs="0"/>
          <xs:element name="identifiers" type="gtr:identifiers" minOccurs="0"/>
          <xs:element name="projectHierarchy" type="gtr:projectHierarchy" minOccurs="0"/>
          <xs:element name="healthCategories" type="gtr:healthCategories" minOccurs="0"/>
          <xs:element name="researchActivities" type="gtr:researchActivities" minOccurs="0"/>
          <xs:element name="researchSubjects" type="gtr:researchSubjects" minOccurs="0"/>
          <xs:element name="researchTopics" type="gtr:researchTopics" minOccurs="0"/>
          <xs:element name="rcukProgrammes" type="gtr:rcukProgrammes" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="projectHierarchy">
    <xs:all>
      <xs:element name="parents" minOccurs="1" maxOccurs="1">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="parent" type="gtr:projectHierarchyItem" minOccurs="1" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  
  <xs:complexType name="projectHierarchyItem">
    <xs:all>
      <xs:element name="id" type="xs:string"/>
      <xs:element name="grantRef" type="xs:string"/>
      <xs:element name="amount" type="xs:double"/>
      <xs:element name="start" type="xs:date"/>
      <xs:element name="end" type="xs:date"/>
      <xs:element name="children">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="child" type="gtr:projectHierarchyItem" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>        
      </xs:element>
    </xs:all>  
    <xs:attribute name="rel" type="xs:string" use="optional"/>    
  </xs:complexType>
  
  <xs:complexType name="identifiers">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Identifiers and reference numbers. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="identifier" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:string">
              <xs:attribute name="type" type="xs:string"/>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="output">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Container for the various types of research output.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="collaborationOutputs" type="gtr:collaborationOutputs" minOccurs="0"/>
      <xs:element name="intellectualPropertyOutputs" type="gtr:intellectualPropertyOutputs" minOccurs="0"/>
      <xs:element name="policyInfluenceOutputs" type="gtr:policyInfluenceOutputs" minOccurs="0"/>
      <xs:element name="productOutputs" type="gtr:productOutputs" minOccurs="0"/>
      <xs:element name="researchMaterialOutputs" type="gtr:researchMaterialOutputs" minOccurs="0"/>
      <xs:element name="artisticAndCreativeProductOutputs" type="gtr:artisticAndCreativeProductOutputs" minOccurs="0"/>
      <xs:element name="researchDatabaseAndModelOutputs" type="gtr:researchDatabaseAndModelOutputs" minOccurs="0"/>
      <xs:element name="softwareAndTechnicalProductOutputs" type="gtr:softwareAndTechnicalProductOutputs" minOccurs="0"/>
      <xs:element name="spinOutOutputs" type="gtr:spinOutOutputs" minOccurs="0"/>
      <xs:element name="otherResearchOutputs" type="gtr:otherResearchOutputs" minOccurs="0"/>
      <xs:element name="furtherFundingOutputs" type="gtr:furtherFundingOutputs" minOccurs="0"/>
      <xs:element name="impactSummaryOutputs" type="gtr:impactSummaryOutputs" minOccurs="0"/>
      <xs:element name="exploitationOutputs" type="gtr:exploitationOutputs" minOccurs="0"/>
      <xs:element name="disseminationOutputs" type="gtr:disseminationOutputs" minOccurs="0"/>
      <xs:element name="keyFindingsOutput" type="gtr:keyFindingsOutput" minOccurs="0"/>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="impactSummaryOutputs">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Collaboration research output. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="impactSummaryOutput" type="gtr:impactSummaryOutput" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="otherResearchOutputs">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Other research output. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="otherResearchOutput" type="gtr:otherResearchOutput" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="furtherFundingOutputs">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Further Funding output. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="furtherFundingOutput" type="gtr:furtherFundingOutput" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="collaborationOutputs">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Collaboration research output. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="collaborationOutput" type="gtr:collaborationOutput" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="intellectualPropertyOutputs">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Intellectual property research output. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="intellectualPropertyOutput" type="gtr:intellectualPropertyOutput" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="policyInfluenceOutputs">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Policy influence output from research. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="policyInfluenceOutput" type="gtr:policyInfluenceOutput" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="productOutputs">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Product output from research. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="productOutput" type="gtr:productOutput" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="researchMaterialOutputs">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Research tools and methods output. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="researchMaterialOutput" type="gtr:researchMaterialOutput" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <!-- Research Fish Feb 2015 -->
   <xs:complexType name="artisticAndCreativeProductOutputs">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Artistic and creativeProduct output. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="artisticAndCreativeProductOutput" type="gtr:artisticAndCreativeProductOutput" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
   <xs:complexType name="researchDatabaseAndModelOutputs">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Research database and model output. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="researchDatabaseAndModelOutput" type="gtr:researchDatabaseAndModelOutput" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
   <xs:complexType name="softwareAndTechnicalProductOutputs">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Software and technical product output. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="softwareAndTechnicalProductOutput" type="gtr:softwareAndTechnicalProductOutput" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <!-- End -->
  <xs:complexType name="spinOutOutputs">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Company spin-outs from research. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="spinOutOutput" type="gtr:spinOutOutput" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
   <xs:complexType name="exploitationOutputs">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Exploitation from research. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="exploitationOutput" type="gtr:exploitationOutput" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="disseminationOutputs">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Dissemination from research. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="disseminationOutput" type="gtr:disseminationOutput" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:complexType name="sectors">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Sectors output. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="sector" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="impactTypes">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Impact Types output. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="impactType" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="keyFindingsOutput">
    <xs:annotation>
      <xs:documentation xml:lang="en"> KeyFindings output. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="id" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="nonAcademicUses" type="xs:string" minOccurs="0"/>
      <xs:element name="url" type="xs:string" minOccurs="0"/>
      <xs:element name="exploitationPathways" type="xs:string" minOccurs="0"/>
      <xs:element name="sectors" type="gtr:sectors" minOccurs="0"/>
      <xs:element name="outcomeId" type="xs:string" minOccurs="0"/>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="impactSummaryOutput">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Impact summary output. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="id" type="xs:string" minOccurs="0"/>
      <xs:element name="title" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="beneficiaries" type="xs:string" minOccurs="0"/>
      <xs:element name="contributionMethod" type="xs:string" minOccurs="0"/>
      <xs:element name="firstYearOfImpact" type="xs:int" minOccurs="0"/>
      <xs:element name="sector" type="xs:string" minOccurs="0"/>
      <xs:element name="impactTypes" type="gtr:impactTypes" minOccurs="0"/>
      <xs:element name="outcomeId" type="xs:string" minOccurs="0"/>
    </xs:all>
  </xs:complexType>
<xs:complexType name="otherResearchOutput">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Other Research output. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="id" type="xs:string"/>
      <xs:element name="title" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="seriesNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="seriesTitle" type="xs:string" minOccurs="0"/>
      <xs:element name="url" type="xs:string" minOccurs="0"/>
      <xs:element name="type" type="xs:string" minOccurs="0"/>
      <xs:element name="otherInfo" type="xs:string" minOccurs="0"/>
      <xs:element name="edition" type="xs:string" minOccurs="0"/>
      <xs:element name="subtitle" type="xs:string" minOccurs="0"/>
      <xs:element name="outcomeId" type="xs:string" minOccurs="0"/>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="furtherFundingOutput">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Further funding output. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="id" type="xs:string"/>
      <xs:element name="title" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="narrative" type="xs:string" minOccurs="0"/>
      <xs:element name="amountPounds" type="xs:int" minOccurs="0"/>
      <xs:element name="department" type="xs:string" minOccurs="0"/>
      <xs:element name="fundingRef" type="xs:string" minOccurs="0"/>
      <xs:element name="country" type="xs:string" minOccurs="0"/>
      <xs:element name="currCode" type="xs:string" minOccurs="0"/>
      <xs:element name="currCountryCode" type="xs:string" minOccurs="0"/>
      <xs:element name="currLang" type="xs:string" minOccurs="0"/>
      <xs:element name="fundingOrg" type="xs:string" minOccurs="0"/>
      <xs:element name="sector" type="xs:string" minOccurs="0"/>
      <xs:element name="start" type="xs:date" minOccurs="0"/>
      <xs:element name="end" type="xs:date" minOccurs="0"/>
      <xs:element name="outcomeId" type="xs:string" minOccurs="0"/>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="collaborationOutput">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Collaboration output. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="id" type="xs:string"/>
      <xs:element name="title" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="collaboratingOrganisation" type="xs:string" minOccurs="0"/>
      <xs:element name="department" type="xs:string" minOccurs="0"/>
      <xs:element name="piContribution" type="xs:string" minOccurs="0"/>
      <xs:element name="partnerContribution" type="xs:string" minOccurs="0"/>
      <xs:element name="impact" type="xs:string" minOccurs="0"/>
      <xs:element name="country" type="xs:string" minOccurs="0"/>
      <xs:element name="sector" type="xs:string" minOccurs="0"/>
      <xs:element name="start" type="xs:date" minOccurs="0"/>
      <xs:element name="end" type="xs:date" minOccurs="0"/>
      <xs:element name="outcomeId" type="xs:string" minOccurs="0"/>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="intellectualPropertyOutput">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Intellectual property output. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="id" type="xs:string"/>
      <xs:element name="title" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="type" type="xs:string" minOccurs="0"/>
      <xs:element name="protection" type="xs:string" minOccurs="0"/>
      <xs:element name="patentId" type="xs:string" minOccurs="0"/>
      <xs:element name="impact" type="xs:string" minOccurs="0"/>
      <xs:element name="yearProtectionGranted" type="xs:int" minOccurs="0"/>
      <xs:element name="awarded" type="xs:date" minOccurs="0"/>
      <xs:element name="licensed" type="xs:string" minOccurs="0"/>
      <xs:element name="url" type="xs:string" minOccurs="0"/>
      <xs:element name="outcomeId" type="xs:string" minOccurs="0"/>
      <xs:element name="grantRef" type="xs:string" minOccurs="0"/>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="policyInfluenceOutput">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Policy influence output. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="id" type="xs:string"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="type" type="xs:string" minOccurs="0"/>
      <xs:element name="guidelineTitle" type="xs:string" minOccurs="0"/>
      <xs:element name="impact" type="xs:string" minOccurs="0"/>
      <xs:element name="methods" type="xs:string" minOccurs="0"/>
      <xs:element name="geographicReach" type="xs:string" minOccurs="0"/>
      <xs:element name="url" type="xs:string" minOccurs="0"/>
      <xs:element name="areas" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="area" minOccurs="0" maxOccurs="unbounded"/>            
          </xs:sequence>
        </xs:complexType>  
      </xs:element>
      <xs:element name="outcomeId" type="xs:string" minOccurs="0"/>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="productOutput">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Product output. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="id" type="xs:string"/>
      <xs:element name="title" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="type" type="xs:string" minOccurs="0"/>
      <xs:element name="stage" type="xs:string" minOccurs="0"/>
      <xs:element name="status" type="xs:string" minOccurs="0"/>
      <xs:element name="clinicalTrial" type="xs:boolean" minOccurs="0"/>
      <xs:element name="ukcrnIsctnId" type="xs:string" minOccurs="0"/>
      <xs:element name="yearDevCompleted" type="xs:int" minOccurs="0"/>
      <xs:element name="impact" type="xs:string" minOccurs="0"/>
      <xs:element name="url" type="xs:string" minOccurs="0"/>
      <xs:element name="outcomeId" type="xs:string" minOccurs="0"/>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="researchMaterialOutput">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Research tools and methods output. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="id" type="xs:string"/>
      <xs:element name="title" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="type" type="xs:string" minOccurs="0"/>
      <xs:element name="impact" type="xs:string" minOccurs="0"/>
      <xs:element name="softwareDeveloped" type="xs:boolean" minOccurs="0"/>
      <xs:element name="softwareOpenSourced" type="xs:boolean" minOccurs="0"/>
      <xs:element name="providedToOthers" type="xs:boolean" minOccurs="0"/>
      <xs:element name="yearFirstProvided" type="xs:int" minOccurs="0"/>
      <xs:element name="url" type="xs:string" minOccurs="0"/>
      <xs:element name="outcomeId" type="xs:string" minOccurs="0"/>
    </xs:all>
  </xs:complexType>

<!-- Research Fish 2015 -->

  <xs:complexType name="artisticAndCreativeProductOutput">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Artistic and Creative Product output. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="id" type="xs:string"/>
      <xs:element name="title" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="type" type="xs:string" minOccurs="0"/>
      <xs:element name="impact" type="xs:string" minOccurs="0"/>
      <xs:element name="yearFirstProvided" type="xs:int" minOccurs="0"/>
      <xs:element name="url" type="xs:string" minOccurs="0"/>
      <xs:element name="outcomeId" type="xs:string" minOccurs="0"/>
    </xs:all>
  </xs:complexType>
  
    <xs:complexType name="researchDatabaseAndModelOutput">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Research database and model output. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="id" type="xs:string"/>
      <xs:element name="title" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="type" type="xs:string" minOccurs="0"/>
      <xs:element name="impact" type="xs:string" minOccurs="0"/>
      <xs:element name="providedToOthers" type="xs:boolean" minOccurs="0"/>
      <xs:element name="yearFirstProvided" type="xs:int" minOccurs="0"/>
      <xs:element name="url" type="xs:string" minOccurs="0"/>
      <xs:element name="outcomeId" type="xs:string" minOccurs="0"/>
    </xs:all>
  </xs:complexType>
  
    <xs:complexType name="softwareAndTechnicalProductOutput">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Software and technical product output. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="id" type="xs:string"/>
      <xs:element name="title" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="type" type="xs:string" minOccurs="0"/>
      <xs:element name="impact" type="xs:string" minOccurs="0"/>
      <xs:element name="softwareOpenSourced" type="xs:boolean" minOccurs="0"/>
      <xs:element name="openSourceLicense" type="xs:boolean" minOccurs="0"/>
      <xs:element name="providedToOthers" type="xs:boolean" minOccurs="0"/>
      <xs:element name="yearFirstProvided" type="xs:int" minOccurs="0"/>
      <xs:element name="url" type="xs:string" minOccurs="0"/>
      <xs:element name="outcomeId" type="xs:string" minOccurs="0"/>
    </xs:all>
  </xs:complexType>
  
  <!--  // end -->


  <xs:complexType name="spinOutOutput">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Company spin-out from research. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="id" type="xs:string"/>
      <xs:element name="title" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="companyName" type="xs:string" minOccurs="0"/>
      <xs:element name="companyDescription" type="xs:string" minOccurs="0"/>
      <xs:element name="yearCompanyFormed" type="xs:int" minOccurs="0"/>
      <xs:element name="impact" type="xs:string" minOccurs="0"/>
      <xs:element name="registrationNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="ipExploited" type="xs:boolean" minOccurs="0"/>
      <xs:element name="jointVenture" type="xs:boolean" minOccurs="0"/>
      <xs:element name="url" type="xs:string" minOccurs="0"/>
      <xs:element name="outcomeId" type="xs:string" minOccurs="0"/>
    </xs:all>
  </xs:complexType>
  
  <xs:complexType name="exploitationOutput">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Exploitation from research. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="id" type="xs:string"/>
      <xs:element name="title" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="type" type="xs:string" minOccurs="0"/>
      <xs:element name="ipExploited" type="xs:boolean" minOccurs="0"/>
      <xs:element name="start" type="xs:date" minOccurs="0"/>
      <xs:element name="otherInvolvement" type="xs:string" minOccurs="0"/>
      <xs:element name="outcomeId" type="xs:string" minOccurs="0"/>
    </xs:all>
  </xs:complexType>
  
  <xs:complexType name="disseminationOutput">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Dissemination from research. </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="id" type="xs:string"/>
      <xs:element name="title" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="form" type="xs:string" minOccurs="0"/>
      <xs:element name="geographicReach" type="xs:string" minOccurs="0"/>
      <xs:element name="partOfOfficialScheme" type="xs:boolean" minOccurs="0"/>
      <xs:element name="primaryAudience" type="xs:string" minOccurs="0"/>
      <xs:element name="presentationType" type="xs:string" minOccurs="0"/>
      <xs:element name="year" type="xs:string" minOccurs="0"/>
      <xs:element name="results" type="xs:string" minOccurs="0"/>
      <xs:element name="impact" type="xs:string" minOccurs="0"/>
      <xs:element name="url" type="xs:string" minOccurs="0"/>
      <xs:element name="outcomeId" type="xs:string" minOccurs="0"/>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="person">
    <xs:annotation>
      <xs:documentation xml:lang="en"> A Person related to, in involved in research.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="gtr:resource">
        <xs:sequence>
          <xs:element name="firstName" type="xs:string" minOccurs="0"/>
          <xs:element name="otherNames" type="xs:string" minOccurs="0"/>
          <xs:element name="surname" type="xs:string" minOccurs="0"/>
          <xs:element name="email" type="xs:string" minOccurs="0"/>
          <xs:element name="orcidId" type="xs:string" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="publications">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Collection of gtr:publication </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="publication" type="gtr:publication" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="publication">
    <xs:annotation>
      <xs:documentation xml:lang="en"> A publication. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="gtr:resource">
        <xs:sequence>
          <xs:element name="title" type="xs:string" minOccurs="0"/>
          <xs:element name="parentPublicationTitle" type="xs:string" minOccurs="0"/>
          <xs:element name="authors" type="gtr:authors" minOccurs="0"/>
          <xs:element name="date" type="xs:date" minOccurs="0"/>
          <xs:element name="digitalPublicationUrl" type="xs:string" minOccurs="0"/>
          <xs:element name="pubMedId" type="xs:string" minOccurs="0"/>
          <xs:element name="pubMedUrl" type="xs:string" minOccurs="0"/>
          <xs:element name="isbn" type="xs:string" minOccurs="0"/>
          <xs:element name="issn" type="xs:string" minOccurs="0"/>
          <xs:element name="publicationUrl" type="xs:string" minOccurs="0"/>
          <xs:element name="abstractText" type="xs:string" minOccurs="0"/>
          <xs:element name="volume" type="xs:string" minOccurs="0"/>
          <xs:element name="issue" type="xs:string" minOccurs="0"/>
          <xs:element name="totalPages" type="xs:string" minOccurs="0"/>
          <xs:element name="edition" type="xs:string" minOccurs="0"/>
          <xs:element name="chapterNumber" type="xs:string" minOccurs="0"/>
          <xs:element name="chapterTitle" type="xs:string" minOccurs="0"/>
          <xs:element name="pageRef" type="xs:string" minOccurs="0"/>
          <xs:element name="series" type="xs:string" minOccurs="0"/>
          <xs:element name="type" type="xs:string" minOccurs="0"/>
          <xs:element name="outcomeId" type="xs:string" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="authors">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Collection of gtr:person </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="author" type="gtr:person" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="personRoles">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Collection of gtr:projectPeople. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="personRole" type="gtr:personRole" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="personRole">
    <xs:annotation>
      <xs:documentation xml:lang="en"> A person and their relation to a specific project.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="gtr:person">
        <xs:sequence>
          <xs:element name="roles" type="gtr:roles">
            <xs:annotation>
              <xs:documentation xml:lang="en"> The gtr:role defining the role a person has performed for
                a specific project. Role name examples are: PRINCIPAL_INVESTIGATOR, FELLOW or CO_INVESTIGATOR.
              </xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="organisationRoles">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Collection of gtr:projectPeople. </xs:documentation>
    </xs:annotation>    
    <xs:choice>
      <xs:element name="organisationRole" type="gtr:organisationRole" minOccurs="0"
        maxOccurs="unbounded"/>        
      <xs:element name="participantRole" type="gtr:organisationParticipantRole" minOccurs="0"
        maxOccurs="unbounded"/>
    </xs:choice>    
  </xs:complexType>
  
  <xs:complexType name="organisationRole">
    <xs:annotation>
      <xs:documentation xml:lang="en"> An organisation  and their relation to a specific project.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="gtr:organisation">
        <xs:sequence>
          <xs:element name="roles" type="gtr:roles">
            <xs:annotation>
              <xs:documentation xml:lang="en"> The gtr:role defining the role an organisation has performed for
                a specific project. Role name examples are: LEAD_RO, FELLOW, CO_FUNDER or PROJECT_PARTNER.
              </xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="organisationParticipantRole">
    <xs:annotation>
      <xs:documentation xml:lang="en"> An organisation  and their relation to a specific project.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="gtr:organisationRole">      
        <xs:sequence>
        	<xs:element name="offerGrant" type="xs:double"></xs:element>
        	<xs:element name="projectCost" type="xs:double"></xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="roles">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Collection of gtr:organisationRole </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="role" type="gtr:role" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="role">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Collection of gtr:projectRole </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation xml:lang="en"> The constant defining the role.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="start" type="xs:date" minOccurs="0">
        <xs:annotation>
          <xs:documentation xml:lang="en"> Date the role start.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="end" type="xs:date" minOccurs="0">
        <xs:annotation>
          <xs:documentation xml:lang="en"> Date the role end.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="fund">
    <xs:all>
      <xs:element name="funder" type="gtr:funder"/>
      <xs:element name="start" type="xs:date" minOccurs="0"/>
      <xs:element name="end" type="xs:date" minOccurs="0"/>
      <xs:element name="type" type="xs:string" minOccurs="0"/>
      <xs:element name="valuePounds" type="xs:int"/>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="funder">
    <xs:complexContent>
      <xs:extension base="gtr:resource">
        <xs:sequence>
          <xs:element name="name" type="xs:string"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="healthCategories">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Collection of Health Category gtr:classification </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="healthCategory" type="gtr:classification" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="researchActivities">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Collection of Research Activity gtr:classification </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="researchActivity" type="gtr:classification" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="researchSubjects">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Collection of Research Subject gtr:classification </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="researchSubject" type="gtr:classification" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="researchTopics">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Collection of Research Topic gtr:classification </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="researchTopic" type="gtr:classification" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="rcukProgrammes">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Collection of Research Topic gtr:classification </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="rcukProgramme" type="gtr:classification" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:complexType name="classification">
    <xs:all>
      <xs:element name="id" type="xs:string"/>
      <xs:element name="text" type="xs:string"/>
      <xs:element name="percentage" type="xs:int" minOccurs="0"/>
    </xs:all>
  </xs:complexType>
  
  <xs:element name="outcomeTypeOverView" type="gtr:outcomeTypeOverView">
    <xs:annotation>
      <xs:documentation xml:lang="en"> Root response element providing results related to a
        Outcome query. </xs:documentation>
    </xs:annotation>
  </xs:element>
  
  <!-- OutcomeType Related Definitions -->
  
  <xs:complexType name="outcomeTypeOverView">
  <xs:annotation>
		<xs:documentation xml:lang="en">Container fo </xs:documentation>
	</xs:annotation>
	 <xs:all>
      <xs:element name="outcomeType" type="gtr:outcomeType"/>      
    </xs:all>
  </xs:complexType>
  <!-- OutcomeType Bean -->
  <xs:complexType name="outcomeType">
	<xs:annotation>
		<xs:documentation xml:lang="en">Common attributes for displaying all the outcomes </xs:documentation>
	</xs:annotation>
	<xs:complexContent>
		<xs:extension base="gtr:resource">
			<xs:sequence>
				<xs:element name="title" type="xs:string" minOccurs="0" />
				<xs:element name="type" type="xs:string" minOccurs="0" />
				<xs:element name="description" type="xs:string"
					minOccurs="0" />
				<xs:element name="projectId" type="xs:string" minOccurs="0" />
				<xs:element name="typeDisplayString" type="xs:string"
					minOccurs="0" />
				<xs:element name="additionalDetails" type="xs:string"
					minOccurs="0" />
				<xs:element name="grantRefNumber" type="xs:string"
					minOccurs="0" />
				<xs:element name="outcomeId" type="xs:string" minOccurs="0"/>
			</xs:sequence>
		</xs:extension>
	</xs:complexContent>
</xs:complexType>
<!-- End of Outcome type related -->

</xs:schema>
