<?xml version="1.0" encoding="UTF-8"?>

<wsdl:definitions name="content-service"
   targetNamespace="http://www.alfresco.org/ws/service/content/1.0" 
   xmlns:apachesoap="http://xml.apache.org/xml-soap" 
   xmlns:content="http://www.alfresco.org/ws/service/content/1.0" 
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
   xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" 
   xmlns:cms="http://www.alfresco.org/ws/model/content/1.0"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <!-- ************************************** -->
   <!-- Copyright Alfresco Software, Inc. 2005 -->
   <!-- ************************************** -->
   <wsdl:types>
      <schema elementFormDefault="qualified" targetNamespace="http://www.alfresco.org/ws/service/content/1.0" xmlns="http://www.w3.org/2001/XMLSchema">         
 		 
	     <xsd:import namespace="http://www.alfresco.org/ws/model/content/1.0" schemaLocation="../wsdl/types.xsd"/>      
	     
         <element name="read">
            <complexType>
               <sequence>
                  <element name="items" type="cms:Predicate"/>
                  <element name="property" type="xsd:string"/>
               </sequence>
            </complexType>
         </element>
         
         <element name="readResponse">
            <complexType>
               <sequence>
                  <element name="content" type="content:Content" maxOccurs="unbounded" minOccurs="0"/>
               </sequence>
            </complexType>
         </element>
         
         <element name="write">
            <complexType>
               <sequence>
                  <element name="node" type="cms:Reference"/>
                  <element name="property" type="xsd:string"/>
                  <element name="content" type="xsd:base64Binary"/>
                  <element name="format" type="cms:ContentFormat"/>
               </sequence>
            </complexType>
         </element>
         
         <element name="writeResponse">
            <complexType>
               <sequence>
                  <element name="content" type="content:Content"/>
               </sequence>
            </complexType>
         </element>
         
         
         <element name="writeWithAttachment">
            <complexType>
               <sequence>
                  <element name="node" type="cms:Reference"/>
                  <element name="property" type="xsd:string"/>
                  <element name="format" type="cms:ContentFormat"/>
               </sequence>
            </complexType>
         </element>
         
         <element name="writeWithAttachmentResponse">
            <complexType>
               <sequence>
                  <element name="content" type="content:Content"/>
               </sequence>
            </complexType>
         </element>
         
         <element name="clear">
            <complexType>
               <sequence>
                  <element name="items" type="cms:Predicate"/>
                  <element name="property" type="xsd:string"/>
               </sequence>
            </complexType>
         </element>
         
         <element name="clearResponse">
            <complexType>
               <sequence>
                  <element name="content" type="content:Content" maxOccurs="unbounded" minOccurs="0"/>
               </sequence>
            </complexType>
         </element>         
         
         <element name="transform">
            <complexType>
               <sequence>
                  <element name="source" type="cms:Reference" />
                  <element name="property" type="xsd:string" />
                  <element name="destinationReference" type="cms:Reference"/>
                  <element name="destinationProperty" type="xsd:string"/>
                  <element name="destinationFormat" type="cms:ContentFormat"/>
               </sequence>
            </complexType>
         </element>
         
         <element name="transformResponse">
            <complexType>
               <sequence>
                  <element name="content" type="content:Content"/>
               </sequence>
            </complexType>
         </element>
         
         <complexType name="ContentSegment">
            <sequence>
               <element name="offset" type="xsd:long"/>
               <element name="length" type="xsd:long"/>
            </sequence>
         </complexType>
         <element name="ContentSegment" type="content:ContentSegment"/>
         
	    <complexType name="Content">
			<sequence>
			    <element name="node" type="cms:Reference"></element>
			    <element name="property" type="xsd:string"></element>
				<element name="length" type="xsd:long"></element>
				<element name="format" type="cms:ContentFormat" nillable="true"></element>
				<element name="url" type="xsd:string" nillable="true"></element>    				
			</sequence>
	    </complexType>
	    <element name="Content" type="content:Content"/>
         
         <complexType name="ContentFault">
            <sequence>
               <element name="errorCode" type="xsd:int"/>
               <element name="message" type="xsd:string"/>
            </sequence>
         </complexType>
         <element name="ContentFault" type="content:ContentFault"/>
      </schema>
   </wsdl:types>
   
   <wsdl:message name="readRequest">
      <wsdl:part element="content:read" name="parameters"/>
   </wsdl:message>
   
   <wsdl:message name="readResponse">
      <wsdl:part element="content:readResponse" name="parameters"/>
   </wsdl:message>
   
   <wsdl:message name="writeRequest">
      <wsdl:part element="content:write" name="parameters"/>
   </wsdl:message>
   
   <wsdl:message name="writeResponse">
      <wsdl:part element="content:writeResponse" name="parameters"/>
   </wsdl:message>
   
   <wsdl:message name="writeWithAttachmentRequest">
      <wsdl:part element="content:writeWithAttachment" name="parameters"/>
   </wsdl:message>
   
   <wsdl:message name="writeWithAttachmentResponse">
      <wsdl:part element="content:writeWithAttachmentResponse" name="parameters"/>
   </wsdl:message>
   
   <wsdl:message name="clearRequest">
      <wsdl:part element="content:clear" name="parameters"/>
   </wsdl:message>
   
   <wsdl:message name="clearResponse">
      <wsdl:part element="content:clearResponse" name="parameters"/>
   </wsdl:message>
   
   <wsdl:message name="transformRequest">
      <wsdl:part element="content:transform" name="parameters"/>
   </wsdl:message>
   
   <wsdl:message name="transformResponse">
      <wsdl:part element="content:transformResponse" name="parameters"/>
   </wsdl:message>
   
   <wsdl:message name="ContentFault">
      <wsdl:part element="content:ContentFault" name="fault"/>
   </wsdl:message>
   
   <wsdl:portType name="ContentServiceSoapPort">
      <wsdl:operation name="read">
         <wsdl:documentation>Retrieves content from the repository.</wsdl:documentation>
         <wsdl:input message="content:readRequest" name="readRequest"/>
         <wsdl:output message="content:readResponse" name="readResponse"/>
         <wsdl:fault message="content:ContentFault" name="ContentFault"/>
      </wsdl:operation>
      <wsdl:operation name="write">
         <wsdl:documentation>Writes content to the repository.</wsdl:documentation>
         <wsdl:input message="content:writeRequest"/>
         <wsdl:output message="content:writeResponse"/>
         <wsdl:fault message="content:ContentFault" name="ContentFault"/>
      </wsdl:operation>
      <wsdl:operation name="writeWithAttachment">
         <wsdl:documentation>Writes the attached content into the repository.</wsdl:documentation>
         <wsdl:input message="content:writeWithAttachmentRequest"/>
         <wsdl:output message="content:writeWithAttachmentResponse"/>
         <wsdl:fault message="content:ContentFault" name="ContentFault"/>
      </wsdl:operation>
      <wsdl:operation name="clear">
         <wsdl:documentation>Clears content from the repository.</wsdl:documentation>
         <wsdl:input message="content:clearRequest"/>
         <wsdl:output message="content:clearResponse"/>
         <wsdl:fault message="content:ContentFault" name="ContentFault"/>
      </wsdl:operation>
      <wsdl:operation name="transform">
         <wsdl:documentation>Transforms content from one mimetype to another.</wsdl:documentation>
         <wsdl:input message="content:transformRequest"/>
         <wsdl:output message="content:transformResponse"/>
         <wsdl:fault message="content:ContentFault" name="ContentFault"/>
      </wsdl:operation>
   </wsdl:portType>
   
   <wsdl:binding name="ContentServiceSoapBinding" type="content:ContentServiceSoapPort">
      <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
      <wsdl:operation name="read">
         <wsdl:documentation>Retrieves content from the repository.</wsdl:documentation>
         <wsdlsoap:operation soapAction="http://www.alfresco.org/ws/service/content/1.0/read"/>
         <wsdl:input>
            <wsdlsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output>
            <wsdlsoap:body use="literal"/>
         </wsdl:output>
         <wsdl:fault name="ContentFault">
            <wsdlsoap:fault namespace="http://www.alfresco.org/ws/service/content/1.0" use="literal" name="ContentFault"/>
         </wsdl:fault>
      </wsdl:operation>
      <wsdl:operation name="write">
         <wsdl:documentation>Writes content to the repository.</wsdl:documentation>
         <wsdlsoap:operation soapAction="http://www.alfresco.org/ws/service/content/1.0/write"/>
         <wsdl:input>
            <wsdlsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output>
            <wsdlsoap:body use="literal"/>
         </wsdl:output>
         <wsdl:fault name="ContentFault">
            <wsdlsoap:fault namespace="http://www.alfresco.org/ws/service/content/1.0" use="literal" name="ContentFault"/>
         </wsdl:fault>
      </wsdl:operation>
      <wsdl:operation name="writeWithAttachment">
         <wsdl:documentation>Writes attached content to the repository.</wsdl:documentation>
         <wsdlsoap:operation soapAction="http://www.alfresco.org/ws/service/content/1.0/writeWithAttachment"/>
         <wsdl:input>
            <wsdlsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output>
            <wsdlsoap:body use="literal"/>
         </wsdl:output>
         <wsdl:fault name="ContentFault">
            <wsdlsoap:fault namespace="http://www.alfresco.org/ws/service/content/1.0" use="literal" name="ContentFault"/>
         </wsdl:fault>
      </wsdl:operation>
      <wsdl:operation name="clear">
         <wsdl:documentation>Clears content from the repository.</wsdl:documentation>
         <wsdlsoap:operation soapAction="http://www.alfresco.org/ws/service/content/1.0/clear"/>
         <wsdl:input>
            <wsdlsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output>
            <wsdlsoap:body use="literal"/>
         </wsdl:output>
         <wsdl:fault name="ContentFault">
            <wsdlsoap:fault namespace="http://www.alfresco.org/ws/service/content/1.0" use="literal" name="ContentFault"/>
         </wsdl:fault>
      </wsdl:operation>  
      <wsdl:operation name="transform">
         <wsdl:documentation>Transforms content from one mimetype to another.</wsdl:documentation>
         <wsdlsoap:operation soapAction="http://www.alfresco.org/ws/service/content/1.0/transform"/>
         <wsdl:input>
            <wsdlsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output>
            <wsdlsoap:body use="literal"/>
         </wsdl:output>
         <wsdl:fault name="ContentFault">
            <wsdlsoap:fault namespace="http://www.alfresco.org/ws/service/content/1.0" use="literal" name="ContentFault"/>
         </wsdl:fault>
      </wsdl:operation>     
    </wsdl:binding>

   <wsdl:service name="ContentService">
      <wsdl:documentation>Provides read and write access to content streams.</wsdl:documentation>
      <wsdl:port binding="content:ContentServiceSoapBinding" name="ContentService">
         <wsdlsoap:address location="http://localhost:8080/alfresco/api/ContentService"/>
      </wsdl:port>
   </wsdl:service>
   
</wsdl:definitions>
