<?xml version="1.0" encoding="UTF-8"?>
<definitions name="GenomicWebService" 
             targetNamespace="http://www.biodas.org/names/wsdl" 
             xmlns:tns="http://www.biodas.org/names/wsdl" 
             xmlns="http://schemas.xmlsoap.org/wsdl/" 
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
             xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
             xmlns:ls="http://www.i3c.org/names/core"
             xmlns:das="http://www.biodas.org/names/annotation">

   <import namespace="http://www.biodas.org/names/annotation" location="../das/annotation.xsd"/>

   <types>
      <schema targetNamespace="http://www.biodas.org/names/wsdl" 
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
              xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" 
              xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
              xmlns="http://www.w3.org/2001/XMLSchema">
         <complexType name="ArrayOfLSID">
            <complexContent>
               <restriction base="soap-enc:Array">
                  <attribute ref="soap-enc:arrayType" wsdl:arrayType="ls:lsid[]"/>
               </restriction>
            </complexContent>
         </complexType>
         <complexType name="ArrayOfType">
            <complexContent>
               <restriction base="soap-enc:Array">
                  <attribute ref="soap-enc:arrayType" wsdl:arrayType="das:Type[]"/>
               </restriction>
            </complexContent>
         </complexType>
         <complexType name="ArrayOfDataSource">
            <complexContent>
               <restriction base="soap-enc:Array">
                  <attribute ref="soap-enc:arrayType" wsdl:arrayType="das:DataSource[]"/>
               </restriction>
            </complexContent>
         </complexType>
      </schema>
   </types>

   <message name="getDataSources"/>
   <message name="getDataSourcesResponse">
      <part name="result" type="tns:ArrayOfDataSource"/>
   </message>
   <message name="getAnnotatedResources">
      <part name="DataSource" type="das:DataSource"/>
   </message>
   <message name="getAnnotatedResourcesResponse">       
      <part name="result" type="tns:ArrayOfLSID"/>
   </message>
   <message name="getAnnotationTypes">
      <part name="lsid" type="ls:lsid"/>
   </message>
   <message name="getAnnotationTypesResponse">
      <part name="result" type="tns:ArrayOfType"/>
   </message>
   <message name="getAnnotations">
      <part name="types" type="tns:ArrayOfType"/>
      <part name="lsid" type="ls:lsid"/>
   </message>
   <message name="getAnnotationsResponse">
      <part name="result" type="das:Segment"/>
   </message>
   <message name="getAnnotationsByLocation">
      <part name="types" type="tns:ArrayOfType"/>
      <part name="lsid" type="ls:lsid"/>
      <part name="start" type="xsd:integer"/>
      <part name="end" type="xsd:integer"/>
   </message>
   <message name="getAnnotationsByLocationResponse">
      <part name="result" type="das:Segment"/>
   </message>

   <portType name="GenomicWebService">
      <operation name="getDataSources">
         <documentation>Get the list of data sources that are available from this service.</documentation>
         <input message="tns:getDataSources"/>
         <output message="tns:getDataSourcesResponse"/>
      </operation>
      <operation name="getAnnotatedResources">
         <documentation>Get the list of available annotated sequences and their sizes in base pairs.</documentation>
         <input message="tns:getAnnotatedResources"/>
         <output message="tns:getAnnotatedResourcesResponse"/>
      </operation>
      <operation name="getAnnotationTypes">
         <documentation>Get the annotation types available for a segment of sequence.</documentation>
         <input message="tns:getAnnotationTypes"/>
         <output message="tns:getAnnotationTypesResponse"/>
      </operation>
      <operation name="getAnnotations">
         <documentation>Get the annotations across one or more segments of sequence.</documentation>
         <input message="tns:getAnnotations"/>
         <output message="tns:getAnnotationsResponse"/>
      </operation>
      <operation name="getAnnotationsByLocation">
         <documentation></documentation>
         <input message="tns:getAnnotationsByLocation"/>
         <output message="tns:getAnnotationsByLocationResponse"/>
      </operation>

   </portType>
 
</definitions>
