Complete 1.3 Dictionary Web Service implementation.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@3208 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
David Caruana
2006-06-23 09:44:35 +00:00
parent 15fcefc154
commit e2d9cf8b35
6 changed files with 343 additions and 60 deletions

View File

@@ -13,4 +13,20 @@ public interface DictionaryServiceSoapPort extends java.rmi.Remote {
* Retrieves the class definitions of types and aspects.
*/
public org.alfresco.repo.webservice.types.ClassDefinition[] getClasses(org.alfresco.repo.webservice.dictionary.ClassPredicate types, org.alfresco.repo.webservice.dictionary.ClassPredicate aspects) throws java.rmi.RemoteException, org.alfresco.repo.webservice.dictionary.DictionaryFault;
/**
* Retrieves property definitions.
*/
public org.alfresco.repo.webservice.types.PropertyDefinition[] getProperties(java.lang.String[] propertyNames) throws java.rmi.RemoteException, org.alfresco.repo.webservice.dictionary.DictionaryFault;
/**
* Retrieves association definitions.
*/
public org.alfresco.repo.webservice.types.AssociationDefinition[] getAssociations(java.lang.String[] associationNames) throws java.rmi.RemoteException, org.alfresco.repo.webservice.dictionary.DictionaryFault;
/**
* Determines whether a type (or aspect) is a sub class of another
* type (or aspect).
*/
public boolean isSubClass(java.lang.String className, java.lang.String isSubClassOfName) throws java.rmi.RemoteException, org.alfresco.repo.webservice.dictionary.DictionaryFault;
}

View File

@@ -25,7 +25,20 @@
<parameter qname="pns:aspects" xmlns:pns="http://www.alfresco.org/ws/service/dictionary/1.0" type="tns:ClassPredicate" xmlns:tns="http://www.alfresco.org/ws/service/dictionary/1.0"/>
<fault name="DictionaryFault" qname="fns:DictionaryFault" xmlns:fns="http://www.alfresco.org/ws/service/dictionary/1.0" class="org.alfresco.repo.webservice.dictionary.DictionaryFault" type="tns:DictionaryFault" xmlns:tns="http://www.alfresco.org/ws/service/dictionary/1.0"/>
</operation>
<parameter name="allowedMethods" value="getClasses"/>
<operation name="getProperties" qname="operNS:getProperties" xmlns:operNS="http://www.alfresco.org/ws/service/dictionary/1.0" returnQName="retNS:getPropertiesReturn" xmlns:retNS="http://www.alfresco.org/ws/service/dictionary/1.0" returnType="rtns:PropertyDefinition" xmlns:rtns="http://www.alfresco.org/ws/model/content/1.0" soapAction="http://www.alfresco.org/ws/service/dictionary/1.0/getProperties" >
<parameter qname="pns:propertyNames" xmlns:pns="http://www.alfresco.org/ws/service/dictionary/1.0" type="tns:string" xmlns:tns="http://www.w3.org/2001/XMLSchema"/>
<fault name="DictionaryFault" qname="fns:DictionaryFault" xmlns:fns="http://www.alfresco.org/ws/service/dictionary/1.0" class="org.alfresco.repo.webservice.dictionary.DictionaryFault" type="tns:DictionaryFault" xmlns:tns="http://www.alfresco.org/ws/service/dictionary/1.0"/>
</operation>
<operation name="getAssociations" qname="operNS:getAssociations" xmlns:operNS="http://www.alfresco.org/ws/service/dictionary/1.0" returnQName="retNS:getAssociationsReturn" xmlns:retNS="http://www.alfresco.org/ws/service/dictionary/1.0" returnType="rtns:AssociationDefinition" xmlns:rtns="http://www.alfresco.org/ws/model/content/1.0" soapAction="http://www.alfresco.org/ws/service/dictionary/1.0/getAssociations" >
<parameter qname="pns:associationNames" xmlns:pns="http://www.alfresco.org/ws/service/dictionary/1.0" type="tns:string" xmlns:tns="http://www.w3.org/2001/XMLSchema"/>
<fault name="DictionaryFault" qname="fns:DictionaryFault" xmlns:fns="http://www.alfresco.org/ws/service/dictionary/1.0" class="org.alfresco.repo.webservice.dictionary.DictionaryFault" type="tns:DictionaryFault" xmlns:tns="http://www.alfresco.org/ws/service/dictionary/1.0"/>
</operation>
<operation name="isSubClass" qname="operNS:isSubClass" xmlns:operNS="http://www.alfresco.org/ws/service/dictionary/1.0" returnQName="retNS:isSubClassReturn" xmlns:retNS="http://www.alfresco.org/ws/service/dictionary/1.0" returnType="rtns:boolean" xmlns:rtns="http://www.w3.org/2001/XMLSchema" soapAction="http://www.alfresco.org/ws/service/dictionary/1.0/isSubClass" >
<parameter qname="pns:className" xmlns:pns="http://www.alfresco.org/ws/service/dictionary/1.0" type="tns:string" xmlns:tns="http://www.w3.org/2001/XMLSchema"/>
<parameter qname="pns:isSubClassOfName" xmlns:pns="http://www.alfresco.org/ws/service/dictionary/1.0" type="tns:string" xmlns:tns="http://www.w3.org/2001/XMLSchema"/>
<fault name="DictionaryFault" qname="fns:DictionaryFault" xmlns:fns="http://www.alfresco.org/ws/service/dictionary/1.0" class="org.alfresco.repo.webservice.dictionary.DictionaryFault" type="tns:DictionaryFault" xmlns:tns="http://www.alfresco.org/ws/service/dictionary/1.0"/>
</operation>
<parameter name="allowedMethods" value="getClasses getAssociations getProperties isSubClass"/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
@@ -77,16 +90,16 @@
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:Node"
type="java:org.alfresco.repo.webservice.types.Node"
qname="ns:Predicate"
type="java:org.alfresco.repo.webservice.types.Predicate"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"
qname="ns:Predicate"
type="java:org.alfresco.repo.webservice.types.Predicate"
qname="ns:Node"
type="java:org.alfresco.repo.webservice.types.Node"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""

View File

@@ -615,25 +615,7 @@ public class Utils
int pos = 0;
for (org.alfresco.service.cmr.dictionary.PropertyDefinition ddPropDef : props.values())
{
PropertyDefinition propDef = new PropertyDefinition();
propDef.setName(ddPropDef.getName().toString());
propDef.setDataType(ddPropDef.getDataType().getName().toString());
propDef.setMandatory(ddPropDef.isMandatory());
propDef.setReadOnly(ddPropDef.isProtected());
if (ddPropDef.getDefaultValue() != null)
{
propDef.setDefaultValue(ddPropDef.getDefaultValue());
}
if (ddPropDef.getTitle() != null)
{
propDef.setTitle(ddPropDef.getTitle());
}
if (ddPropDef.getDescription() != null)
{
propDef.setDescription(ddPropDef.getDescription());
}
// add it to the array
PropertyDefinition propDef = setupPropertyDefObject(ddPropDef);
propDefs[pos] = propDef;
pos++;
}
@@ -642,8 +624,6 @@ public class Utils
classDef.setProperties(propDefs);
}
// TODO need to get the child associations as well !!
// represent the associations
Map<QName, org.alfresco.service.cmr.dictionary.AssociationDefinition> assocs = ddClassDef.getAssociations();
if (assocs != null)
@@ -652,35 +632,7 @@ public class Utils
int pos = 0;
for (org.alfresco.service.cmr.dictionary.AssociationDefinition ddAssocDef : assocs.values())
{
AssociationDefinition assocDef = new AssociationDefinition();
assocDef.setName(ddAssocDef.getName().toString());
assocDef.setIsChild(ddAssocDef.isChild());
if (ddAssocDef.getTitle() != null)
{
assocDef.setTitle(ddAssocDef.getTitle());
}
if (ddAssocDef.getDescription() != null)
{
assocDef.setDescription(ddAssocDef.getDescription());
}
RoleDefinition sourceRole = new RoleDefinition();
if (ddAssocDef.getSourceRoleName() != null)
{
sourceRole.setName(ddAssocDef.getSourceRoleName().toString());
}
sourceRole.setCardinality(setupSourceCardinalityObject(ddAssocDef));
assocDef.setSourceRole(sourceRole);
RoleDefinition targetRole = new RoleDefinition();
if (ddAssocDef.getTargetRoleName() != null)
{
targetRole.setName(ddAssocDef.getTargetRoleName().toString());
}
targetRole.setCardinality(setupTargetCardinalityObject(ddAssocDef));;
assocDef.setTargetRole(targetRole);
assocDef.setTargetClass(ddAssocDef.getTargetClass().getName().toString());
AssociationDefinition assocDef = setupAssociationDefObject(ddAssocDef);
assocDefs[pos] = assocDef;
pos++;
}
@@ -691,6 +643,76 @@ public class Utils
return classDef;
}
/**
* Creates a PropertyDefinition web service type object for the given
* repository PropertyDefinition
*
* @param ddPropertyDef The repository PropertyDefinition to generate
* @return The web service PropertyDefinition representation
*/
public static PropertyDefinition setupPropertyDefObject(org.alfresco.service.cmr.dictionary.PropertyDefinition ddPropDef)
{
PropertyDefinition propDef = new PropertyDefinition();
propDef.setName(ddPropDef.getName().toString());
propDef.setDataType(ddPropDef.getDataType().getName().toString());
propDef.setMandatory(ddPropDef.isMandatory());
propDef.setReadOnly(ddPropDef.isProtected());
if (ddPropDef.getDefaultValue() != null)
{
propDef.setDefaultValue(ddPropDef.getDefaultValue());
}
if (ddPropDef.getTitle() != null)
{
propDef.setTitle(ddPropDef.getTitle());
}
if (ddPropDef.getDescription() != null)
{
propDef.setDescription(ddPropDef.getDescription());
}
return propDef;
}
/**
* Creates an AssociationDefinition web service type object for the given
* repository AssociationDefinition
*
* @param ddAssociationDef The repository AssociationDefinition to generate
* @return The web service AssociationDefinition representation
*/
public static AssociationDefinition setupAssociationDefObject(org.alfresco.service.cmr.dictionary.AssociationDefinition ddAssocDef)
{
AssociationDefinition assocDef = new AssociationDefinition();
assocDef.setName(ddAssocDef.getName().toString());
assocDef.setIsChild(ddAssocDef.isChild());
if (ddAssocDef.getTitle() != null)
{
assocDef.setTitle(ddAssocDef.getTitle());
}
if (ddAssocDef.getDescription() != null)
{
assocDef.setDescription(ddAssocDef.getDescription());
}
RoleDefinition sourceRole = new RoleDefinition();
if (ddAssocDef.getSourceRoleName() != null)
{
sourceRole.setName(ddAssocDef.getSourceRoleName().toString());
}
sourceRole.setCardinality(setupSourceCardinalityObject(ddAssocDef));
assocDef.setSourceRole(sourceRole);
RoleDefinition targetRole = new RoleDefinition();
if (ddAssocDef.getTargetRoleName() != null)
{
targetRole.setName(ddAssocDef.getTargetRoleName().toString());
}
targetRole.setCardinality(setupTargetCardinalityObject(ddAssocDef));;
assocDef.setTargetRole(targetRole);
assocDef.setTargetClass(ddAssocDef.getTargetClass().getName().toString());
return assocDef;
}
/**
* Creates a web service Cardinality type for the source from the given repository AssociationDefinition
*

View File

@@ -23,12 +23,16 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.repo.webservice.AbstractWebService;
import org.alfresco.repo.webservice.Utils;
import org.alfresco.repo.webservice.dictionary.ClassPredicate;
import org.alfresco.repo.webservice.dictionary.DictionaryFault;
import org.alfresco.repo.webservice.dictionary.DictionaryServiceSoapPort;
import org.alfresco.repo.webservice.types.AssociationDefinition;
import org.alfresco.repo.webservice.types.ClassDefinition;
import org.alfresco.repo.webservice.types.PropertyDefinition;
import org.alfresco.service.cmr.dictionary.DictionaryException;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.dictionary.InvalidClassException;
import org.alfresco.service.namespace.NamespaceService;
@@ -102,6 +106,99 @@ public class DictionaryWebService extends AbstractWebService implements Dictiona
}
/*
* (non-Javadoc)
* @see org.alfresco.repo.webservice.dictionary.DictionaryServiceSoapPort#getProperties(java.lang.String[])
*/
public PropertyDefinition[] getProperties(String[] propertyNames) throws RemoteException, DictionaryFault
{
try
{
PropertyDefinition[] propDefs = new PropertyDefinition[propertyNames.length];
int i = 0;
for (String propertyName : propertyNames)
{
QName propertyQName = QName.createQName(propertyName, namespaceService);
org.alfresco.service.cmr.dictionary.PropertyDefinition ddPropDef = dictionaryService.getProperty(propertyQName);
if (ddPropDef == null)
{
throw new AlfrescoRuntimeException("Property propertyName does not exist.");
}
propDefs[i++] = Utils.setupPropertyDefObject(ddPropDef);
}
return propDefs;
}
catch (Throwable e)
{
if (logger.isDebugEnabled())
{
logger.error("Unexpected error occurred", e);
}
throw new DictionaryFault(0, e.getMessage());
}
}
/*
* (non-Javadoc)
* @see org.alfresco.repo.webservice.dictionary.DictionaryServiceSoapPort#getAssociations(java.lang.String[])
*/
public AssociationDefinition[] getAssociations(String[] associationNames) throws RemoteException, DictionaryFault
{
try
{
AssociationDefinition[] assocDefs = new AssociationDefinition[associationNames.length];
int i = 0;
for (String associationName : associationNames)
{
QName associationQName = QName.createQName(associationName, namespaceService);
org.alfresco.service.cmr.dictionary.AssociationDefinition ddAssocDef = dictionaryService.getAssociation(associationQName);
if (ddAssocDef == null)
{
throw new AlfrescoRuntimeException("Property propertyName does not exist.");
}
assocDefs[i++] = Utils.setupAssociationDefObject(ddAssocDef);
}
return assocDefs;
}
catch (Throwable e)
{
if (logger.isDebugEnabled())
{
logger.error("Unexpected error occurred", e);
}
throw new DictionaryFault(0, e.getMessage());
}
}
/*
* (non-Javadoc)
* @see org.alfresco.repo.webservice.dictionary.DictionaryServiceSoapPort#isSubClass(java.lang.String, java.lang.String)
*/
public boolean isSubClass(String className, String isSubClassOfName) throws RemoteException, DictionaryFault
{
try
{
QName classQName = QName.createQName(className, namespaceService);
QName isSubClassOfQName = QName.createQName(isSubClassOfName, namespaceService);
return dictionaryService.isSubClass(classQName, isSubClassOfQName);
}
catch (Throwable e)
{
if (logger.isDebugEnabled())
{
logger.error("Unexpected error occurred", e);
}
throw new DictionaryFault(0, e.getMessage());
}
}
/**
* Retrieve class definitions that match the provided class predicate
*
@@ -211,5 +308,5 @@ public class DictionaryWebService extends AbstractWebService implements Dictiona
}
}
}
}

View File

@@ -3051,12 +3051,20 @@
<parameter name="className" value="org.alfresco.repo.webservice.dictionary.DictionaryServiceSoapBindingImpl"/>
<parameter name="wsdlPortType" value="DictionaryServiceSoapPort"/>
<parameter name="typeMappingVersion" value="1.2"/>
<operation name="getClasses" qname="operNS:getClasses" xmlns:operNS="http://www.alfresco.org/ws/service/dictionary/1.0" returnQName="retNS:getClassesReturn" xmlns:retNS="http://www.alfresco.org/ws/service/dictionary/1.0" returnType="rtns:ClassDefinition" xmlns:rtns="http://www.alfresco.org/ws/model/content/1.0" soapAction="http://www.alfresco.org/ws/service/dictionary/1.0/getClasses" >
<parameter qname="pns:types" xmlns:pns="http://www.alfresco.org/ws/service/dictionary/1.0" type="tns:ClassPredicate" xmlns:tns="http://www.alfresco.org/ws/service/dictionary/1.0"/>
<parameter qname="pns:aspects" xmlns:pns="http://www.alfresco.org/ws/service/dictionary/1.0" type="tns:ClassPredicate" xmlns:tns="http://www.alfresco.org/ws/service/dictionary/1.0"/>
<operation name="getProperties" qname="operNS:getProperties" xmlns:operNS="http://www.alfresco.org/ws/service/dictionary/1.0" returnQName="retNS:getPropertiesReturn" xmlns:retNS="http://www.alfresco.org/ws/service/dictionary/1.0" returnType="rtns:PropertyDefinition" xmlns:rtns="http://www.alfresco.org/ws/model/content/1.0" soapAction="http://www.alfresco.org/ws/service/dictionary/1.0/getProperties" >
<parameter qname="pns:propertyNames" xmlns:pns="http://www.alfresco.org/ws/service/dictionary/1.0" type="tns:string" xmlns:tns="http://www.w3.org/2001/XMLSchema"/>
<fault name="DictionaryFault" qname="fns:DictionaryFault" xmlns:fns="http://www.alfresco.org/ws/service/dictionary/1.0" class="org.alfresco.repo.webservice.dictionary.DictionaryFault" type="tns:DictionaryFault" xmlns:tns="http://www.alfresco.org/ws/service/dictionary/1.0"/>
</operation>
<parameter name="allowedMethods" value="getClasses"/>
<operation name="getAssociations" qname="operNS:getAssociations" xmlns:operNS="http://www.alfresco.org/ws/service/dictionary/1.0" returnQName="retNS:getAssociationsReturn" xmlns:retNS="http://www.alfresco.org/ws/service/dictionary/1.0" returnType="rtns:AssociationDefinition" xmlns:rtns="http://www.alfresco.org/ws/model/content/1.0" soapAction="http://www.alfresco.org/ws/service/dictionary/1.0/getAssociations" >
<parameter qname="pns:associationNames" xmlns:pns="http://www.alfresco.org/ws/service/dictionary/1.0" type="tns:string" xmlns:tns="http://www.w3.org/2001/XMLSchema"/>
<fault name="DictionaryFault" qname="fns:DictionaryFault" xmlns:fns="http://www.alfresco.org/ws/service/dictionary/1.0" class="org.alfresco.repo.webservice.dictionary.DictionaryFault" type="tns:DictionaryFault" xmlns:tns="http://www.alfresco.org/ws/service/dictionary/1.0"/>
</operation>
<operation name="isSubClass" qname="operNS:isSubClass" xmlns:operNS="http://www.alfresco.org/ws/service/dictionary/1.0" returnQName="retNS:isSubClassReturn" xmlns:retNS="http://www.alfresco.org/ws/service/dictionary/1.0" returnType="rtns:boolean" xmlns:rtns="http://www.w3.org/2001/XMLSchema" soapAction="http://www.alfresco.org/ws/service/dictionary/1.0/isSubClass" >
<parameter qname="pns:className" xmlns:pns="http://www.alfresco.org/ws/service/dictionary/1.0" type="tns:string" xmlns:tns="http://www.w3.org/2001/XMLSchema"/>
<parameter qname="pns:isSubClassOfName" xmlns:pns="http://www.alfresco.org/ws/service/dictionary/1.0" type="tns:string" xmlns:tns="http://www.w3.org/2001/XMLSchema"/>
<fault name="DictionaryFault" qname="fns:DictionaryFault" xmlns:fns="http://www.alfresco.org/ws/service/dictionary/1.0" class="org.alfresco.repo.webservice.dictionary.DictionaryFault" type="tns:DictionaryFault" xmlns:tns="http://www.alfresco.org/ws/service/dictionary/1.0"/>
</operation>
<parameter name="allowedMethods" value="getClasses getAssociations getProperties isSubClass"/>
<typeMapping
xmlns:ns="http://www.alfresco.org/ws/model/content/1.0"

View File

@@ -51,6 +51,55 @@
</complexType>
</element>
<element name="getProperties">
<complexType>
<sequence>
<element name="propertyNames" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
<element name="getPropertiesResponse">
<complexType>
<sequence>
<element name="getPropertiesReturn" type="cms:PropertyDefinition" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
<element name="getAssociations">
<complexType>
<sequence>
<element name="associationNames" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
<element name="getAssociationsResponse">
<complexType>
<sequence>
<element name="getAssociationsReturn" type="cms:AssociationDefinition" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
<element name="isSubClass">
<complexType>
<sequence>
<element name="className" type="xsd:string"/>
<element name="isSubClassOfName" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="isSubClassResponse">
<complexType>
<sequence>
<element name="isSubClassReturn" type="xsd:boolean"/>
</sequence>
</complexType>
</element>
</schema>
</wsdl:types>
@@ -62,6 +111,30 @@
<wsdl:part element="dict:getClassesResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="getPropertiesRequest">
<wsdl:part element="dict:getProperties" name="parameters"/>
</wsdl:message>
<wsdl:message name="getPropertiesResponse">
<wsdl:part element="dict:getPropertiesResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="getAssociationsRequest">
<wsdl:part element="dict:getAssociations" name="parameters"/>
</wsdl:message>
<wsdl:message name="getAssociationsResponse">
<wsdl:part element="dict:getAssociationsResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="isSubClassRequest">
<wsdl:part element="dict:isSubClass" name="parameters"/>
</wsdl:message>
<wsdl:message name="isSubClassResponse">
<wsdl:part element="dict:isSubClassResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="DictionaryFault">
<wsdl:part element="dict:DictionaryFault" name="fault"/>
</wsdl:message>
@@ -73,6 +146,24 @@
<wsdl:output message="dict:getClassesResponse" name="getClassesResponse"/>
<wsdl:fault message="dict:DictionaryFault" name="DictionaryFault"/>
</wsdl:operation>
<wsdl:operation name="getProperties">
<wsdl:documentation>Retrieves property definitions.</wsdl:documentation>
<wsdl:input message="dict:getPropertiesRequest" name="getPropertiesRequest"/>
<wsdl:output message="dict:getPropertiesResponse" name="getPropertiesResponse"/>
<wsdl:fault message="dict:DictionaryFault" name="DictionaryFault"/>
</wsdl:operation>
<wsdl:operation name="getAssociations">
<wsdl:documentation>Retrieves association definitions.</wsdl:documentation>
<wsdl:input message="dict:getAssociationsRequest" name="getAssociationsRequest"/>
<wsdl:output message="dict:getAssociationsResponse" name="getAssociationsResponse"/>
<wsdl:fault message="dict:DictionaryFault" name="DictionaryFault"/>
</wsdl:operation>
<wsdl:operation name="isSubClass">
<wsdl:documentation>Determines whether a type (or aspect) is a sub class of another type (or aspect).</wsdl:documentation>
<wsdl:input message="dict:isSubClassRequest" name="isSubClassRequest"/>
<wsdl:output message="dict:isSubClassResponse" name="isSubClassResponse"/>
<wsdl:fault message="dict:DictionaryFault" name="DictionaryFault"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="DictionaryServiceSoapBinding" type="dict:DictionaryServiceSoapPort">
@@ -89,6 +180,42 @@
<wsdlsoap:fault namespace="http://www.alfresco.org/ws/service/dictionary/1.0" use="literal" name="DictionaryFault"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="getProperties">
<wsdlsoap:operation soapAction="http://www.alfresco.org/ws/service/dictionary/1.0/getProperties"/>
<wsdl:input name="getPropertiesRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getPropertiesResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="DictionaryFault">
<wsdlsoap:fault namespace="http://www.alfresco.org/ws/service/dictionary/1.0" use="literal" name="DictionaryFault"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="getAssociations">
<wsdlsoap:operation soapAction="http://www.alfresco.org/ws/service/dictionary/1.0/getAssociations"/>
<wsdl:input name="getAssociationsRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getAssociationsResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="DictionaryFault">
<wsdlsoap:fault namespace="http://www.alfresco.org/ws/service/dictionary/1.0" use="literal" name="DictionaryFault"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="isSubClass">
<wsdlsoap:operation soapAction="http://www.alfresco.org/ws/service/dictionary/1.0/isSubClass"/>
<wsdl:input name="isSubClassRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="isSubClassResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="DictionaryFault">
<wsdlsoap:fault namespace="http://www.alfresco.org/ws/service/dictionary/1.0" use="literal" name="DictionaryFault"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="DictionaryService">