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

<wsdl:definitions name="classification-service"
   targetNamespace="http://www.alfresco.org/ws/service/classification/1.0" 
   xmlns:apachesoap="http://xml.apache.org/xml-soap" 
   xmlns:cls="http://www.alfresco.org/ws/service/classification/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/classification/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="getClassifications">
            <complexType>
               <sequence>
                  <element name="store" type="cms:Store"/>
               </sequence>
            </complexType>
         </element>
         
         <element name="getClassificationsResponse">
            <complexType>
               <sequence>
                  <element name="getClassificationsReturn" type="cms:Classification" maxOccurs="unbounded" minOccurs="0"/>
               </sequence>
            </complexType>
         </element>
         
         <element name="getChildCategories">
            <complexType>
               <sequence>
                  <element name="parentCategory" type="cms:Reference"/>
               </sequence>
            </complexType>
         </element>
         
         <element name="getChildCategoriesResponse">
            <complexType>
               <sequence>
                  <element name="getChildCategoriesReturn" type="cms:Category" maxOccurs="unbounded" minOccurs="0"/>
               </sequence>
            </complexType>
         </element>
         
         <element name="getCategories">
            <complexType>
               <sequence>
                  <element name="items" type="cms:Predicate"/>
               </sequence>
            </complexType>
         </element>
         
         <element name="getCategoriesResponse">
            <complexType>
               <sequence>
                  <element name="getCategoriesReturn" type="cls:CategoriesResult" maxOccurs="unbounded" minOccurs="0"/>
               </sequence>
            </complexType>
         </element>
         
         <element name="setCategories">
            <complexType>
               <sequence>
                  <element name="items" type="cms:Predicate"/>
                  <element name="categories" type="cls:AppliedCategory" maxOccurs="unbounded" minOccurs="0"/>
               </sequence>
            </complexType>
         </element>
         
         <element name="setCategoriesResponse">
            <complexType>
               <sequence>
                  <element name="setCategoriesReturn" type="cls:CategoriesResult" maxOccurs="unbounded" minOccurs="0"/>
               </sequence>
            </complexType>
         </element>
         
         <element name="describeClassification">
            <complexType>
               <sequence>
                  <element name="classification" type="cms:Name"/>
               </sequence>
            </complexType>
         </element>
         
         <element name="describeClassificationResponse">
            <complexType>
               <sequence>
                  <element name="describeClassificationReturn" type="cms:ClassDefinition"/>
               </sequence>
            </complexType>
         </element>
         
         <complexType name="CategoriesResult">
            <sequence>
               <element name="node" type="cms:Reference"/>
               <element name="categories" type="cls:AppliedCategory" maxOccurs="unbounded" minOccurs="0"/>
            </sequence>
         </complexType>
         <element name="CategoriesResult" type="cls:CategoriesResult"/>
         
         <complexType name="AppliedCategory">
            <sequence>
               <element name="classification" type="cms:Name"/>
               <element name="categories" type="cms:Reference" maxOccurs="unbounded" minOccurs="0"/>
            </sequence>
         </complexType>
         <element name="AppliedCategory" type="cls:AppliedCategory"/>
         
         <complexType name="ClassificationFault">
            <sequence>
               <element name="errorCode" type="xsd:int"/>
               <element name="message" type="xsd:string"/>
            </sequence>
         </complexType>
         <element name="ClassificationFault" type="cls:ClassificationFault"/> 
      </schema>
   </wsdl:types>
   
   <wsdl:message name="getClassificationsRequest">
      <wsdl:part element="cls:getClassifications" name="parameters"/>
   </wsdl:message>
   
   <wsdl:message name="getClassificationsResponse">
      <wsdl:part element="cls:getClassificationsResponse" name="parameters"/>
   </wsdl:message>
   
   <wsdl:message name="getChildCategoriesRequest">
      <wsdl:part element="cls:getChildCategories" name="parameters"/>
   </wsdl:message>
   
   <wsdl:message name="getChildCategoriesResponse">
      <wsdl:part element="cls:getChildCategoriesResponse" name="parameters"/>
   </wsdl:message>
   
   <wsdl:message name="getCategoriesRequest">
      <wsdl:part element="cls:getCategories" name="parameters"/>
   </wsdl:message>
   
   <wsdl:message name="getCategoriesResponse">
      <wsdl:part element="cls:getCategoriesResponse" name="parameters"/>
   </wsdl:message>
   
   <wsdl:message name="setCategoriesRequest">
      <wsdl:part element="cls:setCategories" name="parameters"/>
   </wsdl:message>
   
   <wsdl:message name="setCategoriesResponse">
      <wsdl:part element="cls:setCategoriesResponse" name="parameters"/>
   </wsdl:message>
   
   <wsdl:message name="describeClassificationRequest">
      <wsdl:part element="cls:describeClassification" name="parameters"/>
   </wsdl:message>
   
   <wsdl:message name="describeClassificationResponse">
      <wsdl:part element="cls:describeClassificationResponse" name="parameters"/>
   </wsdl:message>
   
   <wsdl:message name="ClassificationFault">
      <wsdl:part element="cls:ClassificationFault" name="fault"/>
   </wsdl:message>
   
   <wsdl:portType name="ClassificationServiceSoapPort">
      <wsdl:operation name="getClassifications">
         <wsdl:documentation>Gets available classifications.</wsdl:documentation>
         <wsdl:input message="cls:getClassificationsRequest" name="getClassificationsRequest"/>
         <wsdl:output message="cls:getClassificationsResponse" name="getClassificationsResponse"/>
         <wsdl:fault message="cls:ClassificationFault" name="ClassificationFault"/>
      </wsdl:operation>
      <wsdl:operation name="getChildCategories">
         <wsdl:documentation>Gets child categories for the specified parent category.</wsdl:documentation>
         <wsdl:input message="cls:getChildCategoriesRequest" name="getChildCategoriesRequest"/>
         <wsdl:output message="cls:getChildCategoriesResponse" name="getChildCategoriesResponse"/>
         <wsdl:fault message="cls:ClassificationFault" name="ClassificationFault"/>
      </wsdl:operation>
      <wsdl:operation name="getCategories">
         <wsdl:documentation>Gets the categories applied to the specified content resource.</wsdl:documentation>
         <wsdl:input message="cls:getCategoriesRequest" name="getCategoriesRequest"/>
         <wsdl:output message="cls:getCategoriesResponse" name="getCategoriesResponse"/>
         <wsdl:fault message="cls:ClassificationFault" name="ClassificationFault"/>
      </wsdl:operation>
      <wsdl:operation name="setCategories">
         <wsdl:documentation>Modifies the categories applied to the specified content resource.</wsdl:documentation>
         <wsdl:input message="cls:setCategoriesRequest" name="setCategoriesRequest"/>
         <wsdl:output message="cls:setCategoriesResponse" name="setCategoriesResponse"/>
         <wsdl:fault message="cls:ClassificationFault" name="ClassificationFault"/>
      </wsdl:operation>
      <wsdl:operation name="describeClassification">
         <wsdl:documentation>Describe a classification in terms of how it is represented in the meta model i.e. is it an aspect, which property holds the applied category.</wsdl:documentation>
         <wsdl:input message="cls:describeClassificationRequest" name="describeClassificationRequest"/>
         <wsdl:output message="cls:describeClassificationResponse" name="describeClassificationResponse"/>
         <wsdl:fault message="cls:ClassificationFault" name="ClassificationFault"/>
      </wsdl:operation>
   </wsdl:portType>
   
   <wsdl:binding name="ClassificationServiceSoapBinding" type="cls:ClassificationServiceSoapPort">
      <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
      <wsdl:operation name="getClassifications">
         <wsdl:documentation>Gets available classifications.</wsdl:documentation>
         <wsdlsoap:operation soapAction="http://www.alfresco.org/ws/service/classification/1.0/getClassifications"/>
         <wsdl:input name="getClassificationsRequest">
            <wsdlsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="getClassificationsResponse">
            <wsdlsoap:body use="literal"/>
         </wsdl:output>
         <wsdl:fault name="ClassificationFault">
            <wsdlsoap:fault namespace="http://www.alfresco.org/ws/service/classification/1.0" use="literal" name="ClassificationFault"/>
         </wsdl:fault>
      </wsdl:operation>
      <wsdl:operation name="getChildCategories">
         <wsdl:documentation>Gets child categories for the specified parent category.</wsdl:documentation>
         <wsdlsoap:operation soapAction="http://www.alfresco.org/ws/service/classification/1.0/getChildCategories"/>
         <wsdl:input name="getChildCategoriesRequest">
            <wsdlsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="getChildCategoriesResponse">
            <wsdlsoap:body use="literal"/>
         </wsdl:output>
         <wsdl:fault name="ClassificationFault">
            <wsdlsoap:fault namespace="http://www.alfresco.org/ws/service/classification/1.0" use="literal" name="ClassificationFault"/>
         </wsdl:fault>
      </wsdl:operation>
      <wsdl:operation name="getCategories">
         <wsdl:documentation>Gets the categories applied to the specified content resource.</wsdl:documentation>
         <wsdlsoap:operation soapAction="http://www.alfresco.org/ws/service/classification/1.0/getCategories"/>
         <wsdl:input name="getCategoriesRequest">
            <wsdlsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="getCategoriesResponse">
            <wsdlsoap:body use="literal"/>
         </wsdl:output>
         <wsdl:fault name="ClassificationFault">
            <wsdlsoap:fault namespace="http://www.alfresco.org/ws/service/classification/1.0" use="literal" name="ClassificationFault"/>
         </wsdl:fault>
      </wsdl:operation>
      <wsdl:operation name="setCategories">
         <wsdl:documentation>Modifies the categories applied to the specified content resource.</wsdl:documentation>
         <wsdlsoap:operation soapAction="http://www.alfresco.org/ws/service/classification/1.0/setCategories"/>
         <wsdl:input name="setCategoriesRequest">
            <wsdlsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="setCategoriesResponse">
            <wsdlsoap:body use="literal"/>
         </wsdl:output>
         <wsdl:fault name="ClassificationFault">
            <wsdlsoap:fault namespace="http://www.alfresco.org/ws/service/classification/1.0" use="literal" name="ClassificationFault"/>
         </wsdl:fault>
      </wsdl:operation>
      <wsdl:operation name="describeClassification">
         <wsdl:documentation>Describe a classification in terms of how it is represented in the meta model i.e. is it an aspect, which property holds the applied category.</wsdl:documentation>
         <wsdlsoap:operation soapAction="http://www.alfresco.org/ws/service/classification/1.0/describeClassification"/>
         <wsdl:input name="describeClassificationRequest">
            <wsdlsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="describeClassificationResponse">
            <wsdlsoap:body use="literal"/>
         </wsdl:output>
         <wsdl:fault name="ClassificationFault">
            <wsdlsoap:fault namespace="http://www.alfresco.org/ws/service/classification/1.0" use="literal" name="ClassificationFault"/>
         </wsdl:fault>
      </wsdl:operation>
    </wsdl:binding>

   <wsdl:service name="ClassificationService">
      <wsdl:documentation>Provides support for classifying content resources.</wsdl:documentation>
      <wsdl:port binding="cls:ClassificationServiceSoapBinding" name="ClassificationService">
         <wsdlsoap:address location="http://localhost:8080/alfresco/api/ClassificationService"/>
      </wsdl:port>
   </wsdl:service>
   
</wsdl:definitions>
