<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions
	name="Blast"
	targetNamespace="http://www.bccs.uni.no/service/Blast/"
	xmlns="http://www.bccs.uni.no/service/Blast/"
	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<!--
	targetNamespace="http://TODO/Blast"
	xmlns="http://TODO/Blast"
-->

	<wsdl:types>
	
		<xsd:schema
			targetNamespace="http://www.bccs.uni.no/service/Blast/"
			xmlns="http://www.bccs.uni.no/service/Blast/"
			xmlns:bpar="http://esysbio.bccs.uni.no/schema/BlastParameterSchema"
			xmlns:bdb="http://esysbio.bccs.uni.no/schema/BlastDbSchema"
			xmlns:job="http://esysbio.bccs.uni.no/schema/JobSchema"
			xmlns:bout="http://www.bccs.uni.no/schema/BlastOutput"
			xmlns:bx="http://bioxsd.org/BioXSD-0.4"
		>
		<!--
			targetNamespace="http://TODO/Blast"
			xmlns="http://TODO/Blast"
			xmlns:bpar="http://TODO/BlastParameterSchema"
			xmlns:bdb="http://TODO/BlastDbSchema"
			xmlns:job="http://TODO/JobSchema"
			xmlns:bout="http://TODO/BlastOutput"
		-->
			
			<xsd:import schemaLocation="Blast_ParameterSchema_ws0.xsd" namespace="http://esysbio.bccs.uni.no/schema/BlastParameterSchema"/>
			<xsd:import schemaLocation="Blast_DbSchema_ws0.xsd" namespace="http://esysbio.bccs.uni.no/schema/BlastDbSchema"/>
			<xsd:import schemaLocation="Blast_JobSchema_ws0.xsd" namespace="http://esysbio.bccs.uni.no/schema/JobSchema"/>
			<xsd:import schemaLocation="Blast_Output_ws0.xsd" namespace="http://www.bccs.uni.no/schema/BlastOutput"/>
			<!--<xsd:import schemaLocation="http://TODO/BlastParameterSchema.xsd" namespace="http://TODO/BlastParameterSchema"/>
			<xsd:import schemaLocation="http://TODO/BlastDbSchema.xsd" namespace="http://TODO/BlastDbSchema"/>
			<xsd:import schemaLocation="http://TODO/JobSchema.xsd" namespace="http://TODO/JobSchema"/>
			<xsd:import schemaLocation="http://TODO/BlastOutput.xsd" namespace="http://TODO/BlastOutput"/>-->
			
			
			<!-- ========== Blast elements ========== -->
			
			<xsd:element name="RunBlastn" type="bpar:BlastnParametersType"/>
			<xsd:element name="RunBlastnResponse" type="job:JobIdType"/>
			<xsd:element name="RunBlastnFault">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="RunBlastnFault" type="xsd:string"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			
			<xsd:element name="RunBlastp" type="bpar:BlastpParametersType"/>
			<xsd:element name="RunBlastpResponse" type="job:JobIdType"/>
			<xsd:element name="RunBlastpFault">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="RunBlastpFault" type="xsd:string"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			
			<xsd:element name="RunBlastx" type="bpar:BlastxParametersType"/>
			<xsd:element name="RunBlastxResponse" type="job:JobIdType"/>
			<xsd:element name="RunBlastxFault">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="RunBlastxFault" type="xsd:string"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			
			<xsd:element name="RuntBlastn" type="bpar:tBlastnParametersType"/>
			<xsd:element name="RuntBlastnResponse" type="job:JobIdType"/>
			<xsd:element name="RuntBlastnFault">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="RuntBlastnFault" type="xsd:string"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			
			<xsd:element name="RuntBlastx" type="bpar:tBlastxParametersType"/>
			<xsd:element name="RuntBlastxResponse" type="job:JobIdType"/>
			<xsd:element name="RuntBlastxFault">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="RuntBlastxFault" type="xsd:string"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			
			
			<!-- ========== BlastDb elements ========== -->
			
			<xsd:element name="GetPublicDatabases" type="xsd:string">
			</xsd:element>
			<xsd:element name="GetPublicDatabasesResponse" type="bdb:DatabaseListType">
			</xsd:element>
			<xsd:element name="GetPublicDatabasesFault">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="GetPublicDatabasesFault" type="xsd:string"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			
			<xsd:element name="GetSequences">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="DatabaseURI" type="bpar:DatabaseURIType"/>
						<xsd:element name="SequenceIdentifier" type="bpar:SequenceIdentifierType" minOccurs="1" maxOccurs="unbounded"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="GetSequencesResponse">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="Sequence" type="bx:BiosequenceRecord" minOccurs="0" maxOccurs="unbounded"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="GetSequencesFault">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="GetSequencesFault" type="xsd:string"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			
			
			<!-- ========== BlastJob elements and types ========== -->
			
			<xsd:element name="GetStatus" type="job:JobIdType"/>
			<xsd:element name="GetStatusResponse">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="Status" type="xsd:string"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="GetStatusFault">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="GetStatusFault" type="xsd:string"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			
			<xsd:complexType name="GetResultResponseType">
				<xsd:sequence>
					<xsd:element name="BlastOutput" type="bout:BlastOutputType" minOccurs="0"/>
					<xsd:element name="DbStatus" type="xsd:string" minOccurs="0"/>
				</xsd:sequence>
			</xsd:complexType>
			
			<xsd:element name="GetResult" type="job:JobIdType"/>
			<xsd:element name="GetResultResponse" type="GetResultResponseType"/>
			<xsd:element name="GetResultFault">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="GetResultFault" type="xsd:string"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			
			<xsd:element name="GetCompressedResult" type="job:JobIdType"/>
			<xsd:element name="GetCompressedResultResponse">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="CompressedBlastOutput" type="xsd:string"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="GetCompressedResultFault">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="GetCompressedResultFault" type="xsd:string"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			
			
		</xsd:schema>
		
	</wsdl:types>
	
	<!--=============================================================================================-->
	
	<wsdl:message name="RunBlastnRequest">
		<wsdl:part name="parameters" element="RunBlastn"/>
	</wsdl:message>
	<wsdl:message name="RunBlastnResponse">
		<wsdl:part name="parameters" element="RunBlastnResponse"/>
	</wsdl:message>
	<wsdl:message name="RunBlastnFault">
		<wsdl:part name="fault" element="RunBlastnFault"/>
	</wsdl:message>
	
	<wsdl:message name="RunBlastpRequest">
		<wsdl:part name="parameters" element="RunBlastp"/>
	</wsdl:message>
	<wsdl:message name="RunBlastpResponse">
		<wsdl:part name="parameters" element="RunBlastpResponse"/>
	</wsdl:message>
	<wsdl:message name="RunBlastpFault">
		<wsdl:part name="fault" element="RunBlastpFault"/>
	</wsdl:message>
	
	<wsdl:message name="RunBlastxRequest">
		<wsdl:part name="parameters" element="RunBlastx"/>
	</wsdl:message>
	<wsdl:message name="RunBlastxResponse">
		<wsdl:part name="parameters" element="RunBlastxResponse"/>
	</wsdl:message>
	<wsdl:message name="RunBlastxFault">
		<wsdl:part name="fault" element="RunBlastxFault"/>
	</wsdl:message>
	
	<wsdl:message name="RuntBlastnRequest">
		<wsdl:part name="parameters" element="RuntBlastn"/>
	</wsdl:message>
	<wsdl:message name="RuntBlastnResponse">
		<wsdl:part name="parameters" element="RuntBlastnResponse"/>
	</wsdl:message>
	<wsdl:message name="RuntBlastnFault">
		<wsdl:part name="fault" element="RuntBlastnFault"/>
	</wsdl:message>
	
	<wsdl:message name="RuntBlastxRequest">
		<wsdl:part name="parameters" element="RuntBlastx"/>
	</wsdl:message>
	<wsdl:message name="RuntBlastxResponse">
		<wsdl:part name="parameters" element="RuntBlastxResponse"/>
	</wsdl:message>
	<wsdl:message name="RuntBlastxFault">
		<wsdl:part name="fault" element="RuntBlastxFault"/>
	</wsdl:message>
	
	<wsdl:message name="GetPublicDatabasesRequest">
		<wsdl:part name="parameters" element="GetPublicDatabases"/>
	</wsdl:message>
	<wsdl:message name="GetPublicDatabasesResponse">
		<wsdl:part name="parameters" element="GetPublicDatabasesResponse"/>
	</wsdl:message>
	<wsdl:message name="GetPublicDatabasesFault">
		<wsdl:part name="fault" element="GetPublicDatabasesFault"/>
	</wsdl:message>
	
	<wsdl:message name="GetSequencesRequest">
		<wsdl:part name="parameters" element="GetSequences"/>
	</wsdl:message>
	<wsdl:message name="GetSequencesResponse">
		<wsdl:part name="parameters" element="GetSequencesResponse"/>
	</wsdl:message>
	<wsdl:message name="GetSequencesFault">
		<wsdl:part name="fault" element="GetSequencesFault"/>
	</wsdl:message>
	
	<wsdl:message name="GetStatusRequest">
		<wsdl:part name="parameters" element="GetStatus"/>
	</wsdl:message>
	<wsdl:message name="GetStatusResponse">
		<wsdl:part name="parameters" element="GetStatusResponse"/>
	</wsdl:message>
	<wsdl:message name="GetStatusFault">
		<wsdl:part name="fault" element="GetStatusFault"/>
	</wsdl:message>
	
	<wsdl:message name="GetResultFault">
		<wsdl:part name="fault" element="GetResultFault"/>
	</wsdl:message>
	<wsdl:message name="GetResultRequest">
		<wsdl:part name="parameters" element="GetResult"/>
	</wsdl:message>
	<wsdl:message name="GetResultResponse">
		<wsdl:part name="parameters" element="GetResultResponse"/>
	</wsdl:message>
	
	<wsdl:message name="GetCompressedResultRequest">
		<wsdl:part name="parameters" element="GetCompressedResult"/>
	</wsdl:message>
	<wsdl:message name="GetCompressedResultResponse">
		<wsdl:part name="parameters" element="GetCompressedResultResponse"/>
	</wsdl:message>
	<wsdl:message name="GetCompressedResultFault">
		<wsdl:part name="fault" element="GetCompressedResultFault"/>
	</wsdl:message>
	
	<!--=============================================================================================-->
	
	<wsdl:portType name="Blast">	
		<wsdl:operation name="RunBlastn">
			<wsdl:documentation>Search a nucleotide database using a nucleotide	query</wsdl:documentation>
			<wsdl:input message="RunBlastnRequest"/>
			<wsdl:output message="RunBlastnResponse"/>
			<wsdl:fault name="fault" message="RunBlastnFault"/>
		</wsdl:operation>
		<wsdl:operation name="RunBlastp">
			<wsdl:documentation>Search protein database using a protein query
			</wsdl:documentation>
			<wsdl:input message="RunBlastpRequest"/>
			<wsdl:output message="RunBlastpResponse"/>
			<wsdl:fault name="fault" message="RunBlastpFault"/>
		</wsdl:operation>
		<wsdl:operation name="RunBlastx">
			<wsdl:documentation>Search protein database using a translated	nucleotide query</wsdl:documentation>
			<wsdl:input message="RunBlastxRequest"/>
			<wsdl:output message="RunBlastxResponse"/>
			<wsdl:fault name="fault" message="RunBlastxFault"/>
		</wsdl:operation>
		<wsdl:operation name="RuntBlastn">
			<wsdl:documentation>Search translated nucleotide database using a protein query</wsdl:documentation>
			<wsdl:input message="RuntBlastnRequest"/>
			<wsdl:output message="RuntBlastnResponse"/>
			<wsdl:fault name="fault" message="RuntBlastnFault"/>
		</wsdl:operation>
		<wsdl:operation name="RuntBlastx">
			<wsdl:documentation/>
			<wsdl:input message="RuntBlastxRequest"/>
			<wsdl:output message="RuntBlastxResponse"/>
			<wsdl:fault name="fault" message="RuntBlastxFault"/>
		</wsdl:operation>
	</wsdl:portType>
	
	<wsdl:portType name="BlastDb">
		<wsdl:operation name="GetPublicDatabases">
			<wsdl:input message="GetPublicDatabasesRequest"/>
			<wsdl:output message="GetPublicDatabasesResponse"/>
			<wsdl:fault name="fault" message="GetPublicDatabasesFault"/>
		</wsdl:operation>
		<wsdl:operation name="GetSequences">
			<wsdl:input message="GetSequencesRequest"/>
			<wsdl:output message="GetSequencesResponse"/>
			<wsdl:fault name="fault" message="GetSequencesFault"/>
		</wsdl:operation>
	</wsdl:portType>
	
	<wsdl:portType name="BlastJob">
		<wsdl:operation name="GetStatus">
			<wsdl:documentation>Get status of submitted job</wsdl:documentation>
			<wsdl:input message="GetStatusRequest"/>
			<wsdl:output message="GetStatusResponse"/>
			<wsdl:fault name="fault" message="GetStatusFault"/>
		</wsdl:operation>
		<wsdl:operation name="GetResult">
			<wsdl:documentation>Get result from completed Blast job</wsdl:documentation>
			<wsdl:input message="GetResultRequest"/>
			<wsdl:output message="GetResultResponse"/>
			<wsdl:fault name="fault" message="GetResultFault"/>
		</wsdl:operation>
		<wsdl:operation name="GetCompressedResult">
			<wsdl:documentation>Get compressed result from completed Blast job</wsdl:documentation>
			<wsdl:input message="GetCompressedResultRequest"/>
			<wsdl:output message="GetCompressedResultResponse"/>
			<wsdl:fault name="fault" message="GetCompressedResultFault"/>
		</wsdl:operation>
	</wsdl:portType>
	
	<!--=============================================================================================-->
	
	<wsdl:binding name="BlastSOAP" type="Blast">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<wsdl:operation name="RunBlastn">
			<soap:operation soapAction="http://www.bccs.uni.no/service/Blast/RunBlastn"/><!--http://TODO/Blast/...-->
			<wsdl:input><soap:body use="literal"/></wsdl:input>
			<wsdl:output><soap:body use="literal"/></wsdl:output>
			<wsdl:fault name="fault"><soap:fault name="fault" use="literal"/></wsdl:fault>
		</wsdl:operation>
		<wsdl:operation name="RunBlastp">
			<soap:operation soapAction="http://www.bccs.uni.no/service/Blast/RunBlastp"/><!--http://TODO/Blast/...-->
			<wsdl:input><soap:body use="literal"/></wsdl:input>
			<wsdl:output><soap:body use="literal"/></wsdl:output>
			<wsdl:fault name="fault"><soap:fault name="fault" use="literal"/></wsdl:fault>
		</wsdl:operation>
		<wsdl:operation name="RunBlastx">
			<soap:operation soapAction="http://www.bccs.uni.no/service/Blast/RunBlastx"/><!--http://TODO/Blast/...-->
			<wsdl:input><soap:body use="literal"/></wsdl:input>
			<wsdl:output><soap:body use="literal"/></wsdl:output>
			<wsdl:fault name="fault"><soap:fault name="fault" use="literal"/></wsdl:fault>
		</wsdl:operation>
		<wsdl:operation name="RuntBlastn">
			<soap:operation soapAction="http://www.bccs.uni.no/service/Blast/RuntBlastn"/><!--http://TODO/Blast/...-->
			<wsdl:input><soap:body use="literal"/></wsdl:input>
			<wsdl:output><soap:body use="literal"/></wsdl:output>
			<wsdl:fault name="fault"><soap:fault name="fault" use="literal"/></wsdl:fault>
		</wsdl:operation>
		<wsdl:operation name="RuntBlastx">
			<soap:operation soapAction="http://www.bccs.uni.no/service/Blast/RuntBlastx"/><!--http://TODO/Blast/...-->
			<wsdl:input><soap:body use="literal"/></wsdl:input>
			<wsdl:output><soap:body use="literal"/></wsdl:output>
			<wsdl:fault name="fault"><soap:fault name="fault" use="literal"/></wsdl:fault>
		</wsdl:operation>
	</wsdl:binding>
	
	<wsdl:binding name="BlastDbSOAP" type="BlastDb">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<wsdl:operation name="GetPublicDatabases">
			<soap:operation soapAction="http://www.bccs.uni.no/service/Blast/GetPublicDatabases"/><!--http://TODO/Blast/...-->
			<wsdl:input><soap:body use="literal"/></wsdl:input>
			<wsdl:output><soap:body use="literal"/></wsdl:output>
			<wsdl:fault name="fault"><soap:fault name="fault" use="literal"/></wsdl:fault>
		</wsdl:operation>
		<wsdl:operation name="GetSequences">
			<soap:operation soapAction="http://www.bccs.uni.no/service/Blast/GetSequences"/><!--http://TODO/Blast/...-->
			<wsdl:input><soap:body use="literal"/></wsdl:input>
			<wsdl:output><soap:body use="literal"/></wsdl:output>
			<wsdl:fault name="fault"><soap:fault name="fault" use="literal"/></wsdl:fault>
		</wsdl:operation>
	</wsdl:binding>
	
	<wsdl:binding name="BlastJobSOAP" type="BlastJob">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<wsdl:operation name="GetStatus">
			<soap:operation soapAction="http://www.bccs.uni.no/service/Blast/GetStatus"/><!--http://TODO/Blast/...-->
			<wsdl:input><soap:body use="literal"/></wsdl:input>
			<wsdl:output><soap:body use="literal"/></wsdl:output>
			<wsdl:fault name="fault"><soap:fault name="fault" use="literal"/></wsdl:fault>
		</wsdl:operation>
		<wsdl:operation name="GetResult">
			<soap:operation soapAction="http://www.bccs.uni.no/service/Blast/GetResult"/><!--http://TODO/Blast/...-->
			<wsdl:input><soap:body use="literal"/></wsdl:input>
			<wsdl:output><soap:body use="literal"/></wsdl:output>
			<wsdl:fault name="fault"><soap:fault name="fault" use="literal"/></wsdl:fault>
		</wsdl:operation>
		<wsdl:operation name="GetCompressedResult">
			<soap:operation soapAction="http://www.bccs.uni.no/service/Blast/GetCompressedResult"/><!--http://TODO/Blast/...-->
			<wsdl:input><soap:body use="literal"/></wsdl:input>
			<wsdl:output><soap:body use="literal"/></wsdl:output>
			<wsdl:fault name="fault"><soap:fault name="fault" use="literal"/></wsdl:fault>
		</wsdl:operation>
	</wsdl:binding>
	
	<!--=============================================================================================-->
	
	<wsdl:service name="BlastService">
		<wsdl:port name="BlastSOAP" binding="BlastSOAP">
			<soap:address location="http://klokkelyng.bccs.uib.no:8210/Blast"/>
		</wsdl:port>
	</wsdl:service>
	
	<wsdl:service name="BlastDbService">
		<wsdl:port name="BlastDbSOAP" binding="BlastDbSOAP">
			<soap:address location="http://klokkelyng.bccs.uib.no:8210/BlastDb"/>
		</wsdl:port>
	</wsdl:service>
	
	<wsdl:service name="BlastJobService">
		<wsdl:port name="BlastJobSOAP" binding="BlastJobSOAP">
			<soap:address location="http://klokkelyng.bccs.uib.no:8210/BlastJob"/>
		</wsdl:port>
	</wsdl:service>
	
	
</wsdl:definitions>

