<?xml version="1.0" encoding="UTF-8"?>
<definitions name="ModelProcessorService" targetNamespace="http://services.copasiws.copasi.org/modelprocessorws.wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:copasi="http://copasi.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:sbml="http://www.sbml.org/sbml/level2/version1" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:mpwsdl="http://services.copasiws.copasi.org/modelprocessorws.wsdl" xmlns:mpws="http://modelprocessorws.services.copasiws.copasi.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <types>
    <xsd:schema targetNamespace="http://modelprocessorws.services.copasiws.copasi.org/types" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	
	<xsd:annotation>
		<xsd:documentation>
			* Filename   : modelprocessorws.wsdl
			* Description: wsdl for COPASI Model Processor Web Service 
			* Author(s)  : Joseph Olufemi Dada *  
		</xsd:documentation>
	</xsd:annotation>	

<!--============= Message types for ModelProcessor =================-->

<xsd:element name="copasiml" type="xsd:string"/>
<xsd:element name="sbml" type="xsd:string"/>

<xsd:element name="ValidateModel">
	<xsd:complexType>
	  <xsd:sequence>
		<xsd:element name="model" type="xsd:string"/>	    	
	  </xsd:sequence>
	</xsd:complexType>
</xsd:element>

<xsd:element name="ValidateModelResponse">
	<xsd:complexType>
	  <xsd:sequence>
		<xsd:element name="validateMessage" type="xsd:string"/>
	  </xsd:sequence>
	</xsd:complexType>
</xsd:element>

<xsd:element name="ConvertCopasiMLToSBML">
	<xsd:complexType>
	  <xsd:sequence>
	    <xsd:element ref="mpws:copasiml"/>
	  </xsd:sequence>
	</xsd:complexType>
</xsd:element>

<xsd:element name="ConvertCopasiMLToSBMLResponse">
	<xsd:complexType>
	  <xsd:sequence>
	    <xsd:element ref="mpws:sbml"/>
	  </xsd:sequence>
	</xsd:complexType>
</xsd:element>

<xsd:element name="ConvertSBMLToCopasiML">
	<xsd:complexType>
	  <xsd:sequence>
	    <xsd:element ref="mpws:sbml"/>
	  </xsd:sequence>
	</xsd:complexType>
</xsd:element>

<xsd:element name="ConvertSBMLToCopasiMLResponse">
	<xsd:complexType>
	  <xsd:sequence>
	    <xsd:element ref="mpws:copasiml"/>
	  </xsd:sequence>
	</xsd:complexType>
</xsd:element>

<xsd:element name="ServiceFault">
	<xsd:complexType>
	  <xsd:all>
	    <xsd:element name="errorMessage" type="xsd:string"/>
	</xsd:all>
	</xsd:complexType>
</xsd:element>


</xsd:schema>
  </types>
  <message name="ConvertCopasiMLToSBMLRequest">
    <part name="ConvertCopasiMLToSBMLRequest" element="mpws:ConvertCopasiMLToSBML">
    </part>
  </message>
  <message name="ConvertSBMLToCopasiMLRequest">
    <part name="ConvertSBMLToCopasiMLRequest" element="mpws:ConvertSBMLToCopasiML">
    </part>
  </message>
  <message name="ValidateModelRequest">
    <part name="ValidateModelRequest" element="mpws:ValidateModel">
    </part>
  </message>
  <message name="ServiceFaultMessage">
    <part name="ServiceFaultMessage" element="mpws:ServiceFault">
    </part>
  </message>
  <message name="ConvertSBMLToCopasiMLResponse">
    <part name="ConvertSBMLToCopasiMLResponse" element="mpws:ConvertSBMLToCopasiMLResponse">
    </part>
  </message>
  <message name="ConvertCopasiMLToSBMLResponse">
    <part name="ConvertCopasiMLToSBMLResponse" element="mpws:ConvertCopasiMLToSBMLResponse">
    </part>
  </message>
  <message name="ValidateModelResponse">
    <part name="ValidateModelResponse" element="mpws:ValidateModelResponse">
    </part>
  </message>
  <portType name="ModelProcessorPortType">
    <operation name="convertCopasiMLToSBML">
      <input message="mpwsdl:ConvertCopasiMLToSBMLRequest">
    </input>
      <output message="mpwsdl:ConvertCopasiMLToSBMLResponse">
    </output>
      <fault name="CopasimlToSBMLFault" message="mpwsdl:ServiceFaultMessage">
    </fault>
    </operation>
    <operation name="convertSBMLToCopasiML">
      <input message="mpwsdl:ConvertSBMLToCopasiMLRequest">
    </input>
      <output message="mpwsdl:ConvertSBMLToCopasiMLResponse">
    </output>
      <fault name="SBMLToCopasiFault" message="mpwsdl:ServiceFaultMessage">
    </fault>
    </operation>
    <operation name="validateModel">
      <input message="mpwsdl:ValidateModelRequest">
    </input>
      <output message="mpwsdl:ValidateModelResponse">
    </output>
      <fault name="ValidateFault" message="mpwsdl:ServiceFaultMessage">
    </fault>
    </operation>
  </portType>
  <binding name="binding" type="mpwsdl:ModelProcessorPortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="convertCopasiMLToSBML">
      <soap:operation soapAction="convertCopasiMLToSBML" style="document"/>
      <input>
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
      <fault name="CopasimlToSBMLFault">
        <soap:fault name="CopasimlToSBMLFault" use="literal"/>
      </fault>
    </operation>
    <operation name="convertSBMLToCopasiML">
      <soap:operation soapAction="convertSBMLToCopasiML" style="document"/>
      <input>
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
      <fault name="SBMLToCopasiFault">
        <soap:fault name="SBMLToCopasiFault" use="literal"/>
      </fault>
    </operation>
    <operation name="validateModel">
      <soap:operation soapAction="validateModel" style="document"/>
      <input>
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
      <fault name="ValidateFault">
        <soap:fault name="ValidateFault" use="literal"/>
      </fault>
    </operation>
  </binding>
  <service name="ModelProcessorService">
    <port name="ModelProcessorPort" binding="mpwsdl:binding">
      <soap:address location="http://130.88.150.78:80/CopasiWS/services/ModelProcessorService"/>
    </port>
  </service>
</definitions>
