<?xml version="1.0" encoding="UTF-8"?>
<definitions name="medraWS" targetNamespace="http://www.medra.org"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:tns="http://www.medra.org" 
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">

<message name="uploadRequest">
    	<part name="contentID" type="xsd:base64Binary"/> 
</message>

<message name="uploadResponse">
    	<part name="returnCode" type="xsd:string"/>   	
</message>


<message name="registerRequest">
    	<part name="contentID" type="xsd:base64Binary"/> 
</message>

<message name="registerResponse">
    	<part name="registrationCode" type="xsd:string"/>   	
</message>

<message name="viewMetadataRequest">
    	<part name="doi" type="xsd:string"/> 
</message>

<message name="viewMetadataResponse">
    	<part name="contentID" type="xsd:base64Binary"/>
</message>


<portType name="MedraWSType">
    <operation name="upload" >
      <input name="inputUpload" message="tns:uploadRequest"/>
      <output name="outputUpload" message="tns:uploadResponse"/>
    </operation>
     <operation name="register" >
      <input name="inputRegister" message="tns:registerRequest"/>
      <output name="outputRegister" message="tns:registerResponse"/>
    </operation>
    <operation name="viewMetadata" >
      <input name="inputViewMetadata" message="tns:viewMetadataRequest"/>
      <output name="outputViewMetadata" message="tns:viewMetadataResponse"/>
    
      
      
    </operation>
</portType>

<binding name="medraWSSoapBinding" type="tns:MedraWSType" >
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="upload">
      <soap:operation soapAction="upload" style="rpc"/>
      <input name="inputUpload">  
        <soap:body use="literal"/>
        <mime:multipartRelated>
          <mime:part name="bodyPart">
             <soap:body use="literal"/>
          </mime:part>
          <mime:part name="attachment">
            <mime:content part="contentID" type="text/xml" />
          </mime:part>
        </mime:multipartRelated>
      </input>
      <output name="outputUpload">
      	 <soap:body parts="returnCode" use="literal" />
      </output>
    </operation>
    
     
    
    <operation name="register">
      <soap:operation soapAction="register" style="rpc"/>
      <input name="inputRegister"> 
        <soap:body use="literal"/>
        <mime:multipartRelated>
          <mime:part name="bodyPart">
             <soap:body use="literal"/>
          </mime:part>
          <mime:part name="attachment">
            <mime:content part="contentID" type="text/xml" />
          </mime:part>
        </mime:multipartRelated>
      </input>
      <output name="outputRegister">
      	 <soap:body parts="registrationCode" use="literal" />
      </output>
    </operation>
    
    <operation name="viewMetadata">
      <soap:operation soapAction="viewMetadata" style="rpc"/>
      <input name="inputViewMetadata">  
        <soap:body parts="doi" use="literal"/>
      </input>
    
      <output name="outputViewMetadata">
      	<soap:body  use="literal"/>
      	 <mime:multipartRelated>
          <mime:part name="bodyPart">
             <soap:body  use="literal"/>
          </mime:part>
          <mime:part name="attachment">
            <mime:content part="contentID" type="text/xml" />
          </mime:part>
        </mime:multipartRelated>
      </output>
   
    </operation>
  </binding>

  <service name="MedraWSService">
      <port binding="tns:medraWSSoapBinding" name="medraWS">
         <soap:address location="https://www.medra.org/servlet/ws/medraWS"/>
      </port>
  </service>

</definitions>



