Hello:
I get the exception below when I call the add() operation on my service
with schema validation turned on. Its goes through fine, if the schema
validation is set to false. I suspect that something is wrong in my wsdl
that is causing this error to come up. However, I am at a loss as to
where the problem may be. I have attached the wsdl and my client code.
Thanks for your help.
ClientProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(ConnectorService.class);
factory.setAddress("http://localhost:8080/idm-connector-ws/ExampleConnectorService");
javax.xml.namespace.QName qname =
javax.xml.namespace.QName.valueOf("http://www.openiam.org/service/connector");
factory.setEndpointName(qname);
ConnectorService client = (ConnectorService) factory.create();
AddRequestType addReqType = new AddRequestType();
PSOIdentifierType idType = new
PSOIdentifierType("test.user",null, "target");
addReqType.setPsoID(idType);
addReqType.setRequestID("R4589");
addReqType.setTargetID("100");
ExtensibleUser extUser = new ExtensibleUser();
extUser.setName("Test User");
extUser.getAttributes().add(new ExtensibleAttribute("cn","Test
User"));
extUser.getAttributes().add(new
ExtensibleAttribute("givenname","Test"));
extUser.getAttributes().add(new ExtensibleAttribute("sn","User"));
extUser.getAttributes().add(new
ExtensibleAttribute("description","Test User"));
extUser.getAttributes().add(new
ExtensibleAttribute("mail","test.u...@openiam.com"));
addReqType.getData().getAny().add(extUser);
client.add(addReqType);
ResponseType resp = client.add(addReqType);
javax.xml.ws.soap.SOAPFaultException: Unmarshalling Error: cvc-elt.1:
Cannot find the declaration of element 'arg0'.
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:141)
at $Proxy56.add(Unknown Source)
at org.openiam.srvc.UserMgrTest.testAdd(UserMgrTest.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:164)
at junit.framework.TestCase.runBare(TestCase.java:130)
at
org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:76)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:120)
at junit.framework.TestSuite.runTest(TestSuite.java:228)
at junit.framework.TestSuite.run(TestSuite.java:223)
at
org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.java:35)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: org.apache.cxf.binding.soap.SoapFault: Unmarshalling Error:
cvc-elt.1: Cannot find the declaration of element 'arg0'.
at
org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:75)
at
org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:46)
at
org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:35)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
at
org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:96)
at
org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69)
at
org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:641)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2134)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2013)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1938)
at
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:626)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:469)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:299)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:251)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:120)
<?xml version='1.0' encoding='UTF-8'?><wsdl:definitions name="ExampleConnectorService" targetNamespace="http://www.openiam.org/service/connector" xmlns:ns1="http://cxf.apache.org/bindings/xformat" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.openiam.org/service/connector" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.openiam.org/service/connector" xmlns:tns="http://www.openiam.org/service/connector" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="addRequest" nillable="true" type="tns:AddRequestType" />
<xs:element name="addResponse" nillable="true" type="tns:AddResponseType" />
<xs:element name="deleteRequest" nillable="true" type="tns:DeleteRequestType" />
<xs:element name="deleteResponse" nillable="true" type="tns:ResponseType" />
<xs:element name="expirePasswordRequest" nillable="true" type="tns:ExpirePasswordRequestType" />
<xs:element name="expirePasswordResponse" nillable="true" type="tns:ResponseType" />
<xs:element name="extensibleUser" type="tns:ExtensibleUser" />
<xs:element name="listTargetsRequest" nillable="true" type="tns:ListTargetsRequestType" />
<xs:element name="listTargetsResponse" nillable="true" type="tns:ListTargetsResponseType" />
<xs:element name="lookupRequest" nillable="true" type="tns:LookupRequestType" />
<xs:element name="lookupResponse" nillable="true" type="tns:LookupResponseType" />
<xs:element name="modifyRequest" nillable="true" type="tns:ModifyRequestType" />
<xs:element name="modifyResponse" nillable="true" type="tns:ModifyResponseType" />
<xs:element name="resetPasswordRequest" nillable="true" type="tns:ResetPasswordRequestType" />
<xs:element name="resetPasswordResponse" nillable="true" type="tns:ResetPasswordResponseType" />
<xs:element name="select" nillable="true" type="tns:SelectionType" />
<xs:element name="setPasswordRequest" nillable="true" type="tns:SetPasswordRequestType" />
<xs:element name="setPasswordResponse" nillable="true" type="tns:ResponseType" />
<xs:element name="validatePasswordRequest" nillable="true" type="tns:ValidatePasswordRequestType" />
<xs:element name="validatePasswordResponse" nillable="true" type="tns:ValidatePasswordResponseType" />
<xs:complexType name="ExtensibleType">
<xs:sequence>
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax" />
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="SelectionType">
<xs:complexContent>
<xs:extension base="tns:QueryClauseType">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="namespacePrefixMap" nillable="true" type="tns:NamespacePrefixMappingType" />
</xs:sequence>
<xs:attribute name="path" type="xs:string" use="required" />
<xs:attribute name="namespaceURI" type="xs:string" use="required" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="QueryClauseType">
<xs:complexContent>
<xs:extension base="tns:ExtensibleType">
<xs:sequence />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="NamespacePrefixMappingType">
<xs:complexContent>
<xs:extension base="tns:ExtensibleType">
<xs:sequence />
<xs:attribute name="prefix" type="xs:string" use="required" />
<xs:attribute name="namespace" type="xs:string" use="required" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="AddRequestType">
<xs:complexContent>
<xs:extension base="tns:RequestType">
<xs:sequence>
<xs:element minOccurs="0" name="psoID" type="tns:PSOIdentifierType" />
<xs:element minOccurs="0" name="containerID" type="tns:PSOIdentifierType" />
<xs:element name="data" type="tns:ExtensibleType" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="capabilityData" nillable="true" type="tns:CapabilityDataType" />
</xs:sequence>
<xs:attribute name="targetID" type="xs:string" />
<xs:attribute name="returnData" type="tns:ReturnDataType" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RequestType">
<xs:complexContent>
<xs:extension base="tns:ExtensibleType">
<xs:sequence />
<xs:attribute name="requestID" type="xs:ID" />
<xs:attribute name="executionMode" type="tns:ExecutionModeType" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PSOIdentifierType">
<xs:complexContent>
<xs:extension base="tns:IdentifierType">
<xs:sequence>
<xs:element minOccurs="0" name="containerID" type="tns:PSOIdentifierType" />
</xs:sequence>
<xs:attribute name="targetID" type="xs:string" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="IdentifierType">
<xs:complexContent>
<xs:extension base="tns:ExtensibleType">
<xs:sequence />
<xs:attribute name="ID" type="xs:string" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CapabilityDataType">
<xs:complexContent>
<xs:extension base="tns:ExtensibleType">
<xs:sequence />
<xs:attribute name="mustUnderstand" type="xs:boolean" />
<xs:attribute name="capabilityURI" type="xs:anyURI" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="LookupRequestType">
<xs:complexContent>
<xs:extension base="tns:RequestType">
<xs:sequence>
<xs:element name="psoID" type="tns:PSOIdentifierType" />
</xs:sequence>
<xs:attribute name="returnData" type="tns:ReturnDataType" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ListTargetsRequestType">
<xs:complexContent>
<xs:extension base="tns:RequestType">
<xs:sequence />
<xs:attribute name="profile" type="xs:anyURI" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DeleteRequestType">
<xs:complexContent>
<xs:extension base="tns:RequestType">
<xs:sequence>
<xs:element name="psoID" type="tns:PSOIdentifierType" />
</xs:sequence>
<xs:attribute name="recursive" type="xs:boolean" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ModifyRequestType">
<xs:complexContent>
<xs:extension base="tns:RequestType">
<xs:sequence>
<xs:element name="psoID" type="tns:PSOIdentifierType" />
<xs:element maxOccurs="unbounded" name="modification" type="tns:ModificationType" />
</xs:sequence>
<xs:attribute name="returnData" type="tns:ReturnDataType" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ModificationType">
<xs:complexContent>
<xs:extension base="tns:ExtensibleType">
<xs:sequence>
<xs:element minOccurs="0" name="component" type="tns:SelectionType" />
<xs:element minOccurs="0" name="data" type="tns:ExtensibleType" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="capabilityData" nillable="true" type="tns:CapabilityDataType" />
</xs:sequence>
<xs:attribute name="modificationMode" type="tns:ModificationModeType" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CapabilityType">
<xs:complexContent>
<xs:extension base="tns:ExtensibleType">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="appliesTo" nillable="true" type="tns:SchemaEntityRefType" />
</xs:sequence>
<xs:attribute name="namespaceURI" type="xs:anyURI" />
<xs:attribute name="location" type="xs:anyURI" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SchemaEntityRefType">
<xs:complexContent>
<xs:extension base="tns:ExtensibleType">
<xs:sequence />
<xs:attribute name="targetID" type="xs:string" />
<xs:attribute name="entityName" type="xs:string" />
<xs:attribute name="isContainer" type="xs:boolean" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ModifyResponseType">
<xs:complexContent>
<xs:extension base="tns:ResponseType">
<xs:sequence>
<xs:element minOccurs="0" name="pso" type="tns:PSOType" />
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ResponseType">
<xs:complexContent>
<xs:extension base="tns:ExtensibleType">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="errorMessage" nillable="true" type="xs:string" />
</xs:sequence>
<xs:attribute name="status" type="tns:StatusCodeType" use="required" />
<xs:attribute name="requestID" type="xs:ID" />
<xs:attribute name="error" type="tns:ErrorCode" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PSOType">
<xs:complexContent>
<xs:extension base="tns:ExtensibleType">
<xs:sequence>
<xs:element name="psoID" type="tns:PSOIdentifierType" />
<xs:element minOccurs="0" name="data" type="tns:ExtensibleType" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="capabilityData" nillable="true" type="tns:CapabilityDataType" />
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="AddResponseType">
<xs:complexContent>
<xs:extension base="tns:ResponseType">
<xs:sequence>
<xs:element minOccurs="0" name="pso" type="tns:PSOType" />
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ListTargetsResponseType">
<xs:complexContent>
<xs:extension base="tns:ResponseType">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="target" nillable="true" type="tns:TargetType" />
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TargetType">
<xs:complexContent>
<xs:extension base="tns:ExtensibleType">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="schema" type="tns:SchemaType" />
<xs:element minOccurs="0" name="capabilities" type="tns:CapabilitiesListType" />
</xs:sequence>
<xs:attribute name="targetID" type="xs:string" />
<xs:attribute name="profile" type="xs:anyURI" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SchemaType">
<xs:complexContent>
<xs:extension base="tns:ExtensibleType">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="supportedSchemaEntity" nillable="true" type="tns:SchemaEntityRefType" />
</xs:sequence>
<xs:attribute name="ref" type="xs:anyURI" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CapabilitiesListType">
<xs:complexContent>
<xs:extension base="tns:ExtensibleType">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="capability" nillable="true" type="tns:CapabilityType" />
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="LookupResponseType">
<xs:complexContent>
<xs:extension base="tns:ResponseType">
<xs:sequence>
<xs:element minOccurs="0" name="pso" type="tns:PSOType" />
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ExtensibleUser">
<xs:complexContent>
<xs:extension base="tns:ExtensibleObject">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="address" nillable="true" type="tns:ExtensibleObject" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="phone" nillable="true" type="tns:ExtensibleObject" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="email" nillable="true" type="tns:ExtensibleObject" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="group" nillable="true" type="tns:ExtensibleGroup" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="role" nillable="true" type="tns:ExtensibleRole" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ExtensibleObject">
<xs:sequence>
<xs:element minOccurs="0" name="objectId" type="xs:string" />
<xs:element minOccurs="0" name="name" type="xs:string" />
<xs:element name="operation" type="xs:int" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="attributes" nillable="true" type="tns:ExtensibleAttribute" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ExtensibleAttribute">
<xs:sequence>
<xs:element minOccurs="0" name="name" type="xs:string" />
<xs:element minOccurs="0" name="value" type="xs:string" />
<xs:element name="operation" type="xs:int" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ExtensibleGroup">
<xs:complexContent>
<xs:extension base="tns:ExtensibleObject">
<xs:sequence />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ExtensibleRole">
<xs:complexContent>
<xs:extension base="tns:ExtensibleObject">
<xs:sequence />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ExpirePasswordRequestType">
<xs:complexContent>
<xs:extension base="tns:RequestType">
<xs:sequence>
<xs:element name="psoID" type="tns:PSOIdentifierType" />
</xs:sequence>
<xs:attribute name="remainingLogins" type="xs:int" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ValidatePasswordRequestType">
<xs:complexContent>
<xs:extension base="tns:RequestType">
<xs:sequence>
<xs:element name="psoID" type="tns:PSOIdentifierType" />
<xs:element name="password" type="xs:string" />
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ValidatePasswordResponseType">
<xs:complexContent>
<xs:extension base="tns:ResponseType">
<xs:sequence />
<xs:attribute name="valid" type="xs:boolean" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SetPasswordRequestType">
<xs:complexContent>
<xs:extension base="tns:RequestType">
<xs:sequence>
<xs:element name="psoID" type="tns:PSOIdentifierType" />
<xs:element name="password" type="xs:string" />
<xs:element minOccurs="0" name="currentPassword" type="xs:string" />
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ResetPasswordRequestType">
<xs:complexContent>
<xs:extension base="tns:RequestType">
<xs:sequence>
<xs:element name="psoID" type="tns:PSOIdentifierType" />
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ResetPasswordResponseType">
<xs:complexContent>
<xs:extension base="tns:ResponseType">
<xs:sequence>
<xs:element minOccurs="0" name="password" type="xs:string" />
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="ReturnDataType">
<xs:restriction base="xs:string">
<xs:enumeration value="identifier" />
<xs:enumeration value="data" />
<xs:enumeration value="everything" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ExecutionModeType">
<xs:restriction base="xs:string">
<xs:enumeration value="synchronous" />
<xs:enumeration value="asynchronous" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ModificationModeType">
<xs:restriction base="xs:string">
<xs:enumeration value="add" />
<xs:enumeration value="replace" />
<xs:enumeration value="delete" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="StatusCodeType">
<xs:restriction base="xs:string">
<xs:enumeration value="success" />
<xs:enumeration value="failure" />
<xs:enumeration value="pending" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ErrorCode">
<xs:restriction base="xs:string">
<xs:enumeration value="malformedRequest" />
<xs:enumeration value="unsupportedOperation" />
<xs:enumeration value="unsupportedIdentifierType" />
<xs:enumeration value="noSuchIdentifier" />
<xs:enumeration value="customError" />
<xs:enumeration value="unsupportedExecutionMode" />
<xs:enumeration value="invalidContainment" />
<xs:enumeration value="noSuchRequest" />
<xs:enumeration value="unsupportedSelectionType" />
<xs:enumeration value="resultSetToLarge" />
<xs:enumeration value="unsupportedProfile" />
<xs:enumeration value="invalidIdentifier" />
<xs:enumeration value="alreadyExists" />
<xs:enumeration value="containerNotEmpty" />
</xs:restriction>
</xs:simpleType>
<xs:element name="add" type="tns:add" />
<xs:complexType name="add">
<xs:sequence>
<xs:element minOccurs="0" name="reqType" type="tns:AddRequestType" />
</xs:sequence>
</xs:complexType>
<xs:element name="testConnection" type="tns:testConnection" />
<xs:complexType name="testConnection">
<xs:sequence>
<xs:element minOccurs="0" name="targetID" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="testConnectionResponse" type="tns:testConnectionResponse" />
<xs:complexType name="testConnectionResponse">
<xs:sequence>
<xs:element name="return" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
<xs:element name="expirePassword" type="tns:expirePassword" />
<xs:complexType name="expirePassword">
<xs:sequence>
<xs:element minOccurs="0" name="request" type="tns:ExpirePasswordRequestType" />
</xs:sequence>
</xs:complexType>
<xs:element name="lookup" type="tns:lookup" />
<xs:complexType name="lookup">
<xs:sequence>
<xs:element minOccurs="0" name="reqType" type="tns:LookupRequestType" />
</xs:sequence>
</xs:complexType>
<xs:element name="delete" type="tns:delete" />
<xs:complexType name="delete">
<xs:sequence>
<xs:element minOccurs="0" name="reqType" type="tns:DeleteRequestType" />
</xs:sequence>
</xs:complexType>
<xs:element name="validatePassword" type="tns:validatePassword" />
<xs:complexType name="validatePassword">
<xs:sequence>
<xs:element minOccurs="0" name="request" type="tns:ValidatePasswordRequestType" />
</xs:sequence>
</xs:complexType>
<xs:element name="modify" type="tns:modify" />
<xs:complexType name="modify">
<xs:sequence>
<xs:element minOccurs="0" name="reqType" type="tns:ModifyRequestType" />
</xs:sequence>
</xs:complexType>
<xs:element name="setPassword" type="tns:setPassword" />
<xs:complexType name="setPassword">
<xs:sequence>
<xs:element minOccurs="0" name="request" type="tns:SetPasswordRequestType" />
</xs:sequence>
</xs:complexType>
<xs:element name="resetPassword" type="tns:resetPassword" />
<xs:complexType name="resetPassword">
<xs:sequence>
<xs:element minOccurs="0" name="request" type="tns:ResetPasswordRequestType" />
</xs:sequence>
</xs:complexType>
</xs:schema>
</wsdl:types>
<wsdl:message name="resetPasswordResponse">
<wsdl:part element="tns:resetPasswordResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="modifyResponse">
<wsdl:part element="tns:modifyResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="delete">
<wsdl:part element="tns:delete" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="setPassword">
<wsdl:part element="tns:setPassword" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="deleteResponse">
<wsdl:part element="tns:deleteResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="setPasswordResponse">
<wsdl:part element="tns:setPasswordResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="validatePasswordResponse">
<wsdl:part element="tns:validatePasswordResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="lookupResponse">
<wsdl:part element="tns:lookupResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="testConnection">
<wsdl:part element="tns:testConnection" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="modify">
<wsdl:part element="tns:modify" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="testConnectionResponse">
<wsdl:part element="tns:testConnectionResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="add">
<wsdl:part element="tns:add" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="expirePasswordResponse">
<wsdl:part element="tns:expirePasswordResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="lookup">
<wsdl:part element="tns:lookup" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="addResponse">
<wsdl:part element="tns:addResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="expirePassword">
<wsdl:part element="tns:expirePassword" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="validatePassword">
<wsdl:part element="tns:validatePassword" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="resetPassword">
<wsdl:part element="tns:resetPassword" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="ConnectorService">
<wsdl:operation name="add">
<wsdl:input message="tns:add" name="add">
</wsdl:input>
<wsdl:output message="tns:addResponse" name="addResponse">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="testConnection">
<wsdl:input message="tns:testConnection" name="testConnection">
</wsdl:input>
<wsdl:output message="tns:testConnectionResponse" name="testConnectionResponse">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="expirePassword">
<wsdl:input message="tns:expirePassword" name="expirePassword">
</wsdl:input>
<wsdl:output message="tns:expirePasswordResponse" name="expirePasswordResponse">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="lookup">
<wsdl:input message="tns:lookup" name="lookup">
</wsdl:input>
<wsdl:output message="tns:lookupResponse" name="lookupResponse">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="delete">
<wsdl:input message="tns:delete" name="delete">
</wsdl:input>
<wsdl:output message="tns:deleteResponse" name="deleteResponse">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="validatePassword">
<wsdl:input message="tns:validatePassword" name="validatePassword">
</wsdl:input>
<wsdl:output message="tns:validatePasswordResponse" name="validatePasswordResponse">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="modify">
<wsdl:input message="tns:modify" name="modify">
</wsdl:input>
<wsdl:output message="tns:modifyResponse" name="modifyResponse">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="setPassword">
<wsdl:input message="tns:setPassword" name="setPassword">
</wsdl:input>
<wsdl:output message="tns:setPasswordResponse" name="setPasswordResponse">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="resetPassword">
<wsdl:input message="tns:resetPassword" name="resetPassword">
</wsdl:input>
<wsdl:output message="tns:resetPasswordResponse" name="resetPasswordResponse">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ExampleConnectorServiceSoapBinding" type="tns:ConnectorService">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="add">
<soap:operation soapAction="" style="document" />
<wsdl:input name="add">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="addResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="testConnection">
<soap:operation soapAction="" style="document" />
<wsdl:input name="testConnection">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="testConnectionResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="expirePassword">
<soap:operation soapAction="" style="document" />
<wsdl:input name="expirePassword">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="expirePasswordResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="lookup">
<soap:operation soapAction="" style="document" />
<wsdl:input name="lookup">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="lookupResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="delete">
<soap:operation soapAction="" style="document" />
<wsdl:input name="delete">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="deleteResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="validatePassword">
<soap:operation soapAction="" style="document" />
<wsdl:input name="validatePassword">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="validatePasswordResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="modify">
<soap:operation soapAction="" style="document" />
<wsdl:input name="modify">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="modifyResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="setPassword">
<soap:operation soapAction="" style="document" />
<wsdl:input name="setPassword">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="setPasswordResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="resetPassword">
<soap:operation soapAction="" style="document" />
<wsdl:input name="resetPassword">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="resetPasswordResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ExampleConnectorService">
<wsdl:port binding="tns:ExampleConnectorServiceSoapBinding" name="ExampleConnectorServicePort">
<soap:address location="http://localhost:8080/idm-connector-ws/ExampleConnectorService" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>