Hello:
I am running into some name space issues in my jax-ws client using the
code below.
When I try to consume a service that was created with CXF, I get the
correct request. However, when I use the same code the consume a service
that was creating using a different tool kit, but the same wsdl, my
request has different name space qualifiers. Any thoughts on why that
may be the case.
Service service =
Service.create(QName.valueOf(connector.getServiceUrl()));
service.addPort(new
QName(connector.getServiceNameSpace(),
connector.getServicePort()),
SOAPBinding.SOAP11HTTP_BINDING,
connector.getServiceUrl());
ConnectorService port =
service.getPort(new QName(connector.getServiceNameSpace(),
connector.getServicePort()),
ConnectorService.class);
AddRequestType addReqType = new
AddRequestType();
PSOIdentifierType idType = new
PSOIdentifierType(lg.getId().getLogin(),null, "target");
addReqType.setPsoID(idType);
addReqType.setRequestID("R4589");
addReqType.setTargetID(lg.getId().getManagedSysId());
ExtensibleUser extUser = new
ExtensibleUser();
extUser.setName(user.getFirstName() + "
" + user.getLastName());
extUser.getAttributes().add(new
ExtensibleAttribute("cn",user.getFirstName() + " " +
user.getLastName()));
addReqType.getData().getAny().add(extUser);
port.add(addReqType);
Correct Request:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
<http://schemas.xmlsoap.org/soap/envelope/>">
<soap:Body>
<ns2:add xmlns:ns2="http://www.openiam.org/service/connector
<http://www.openiam.org/service/connector>"
xmlns:ns3="http://www.openiam.org/service/types
<http://www.openiam.org/service/types>">
<reqType targetID="102" requestID="R4589">
<ns2:psoID targetID="target" ID="test01.user05g"/>
<ns2:data>
<ns3:extensibleUser>
<ns3:name>Test User03</ns3:name>
<ns3:operation>0</ns3:
operation>
<ns3:attributes>
<ns3:name>cn</ns3:name>
<ns3:value>Test User03</ns3:value>
<ns3:operation>1</ns3:operation>
</ns3:attributes>
</ns3:extensibleUser>
</ns2:data>
</reqType>
</ns2:add>
</soap:Body>
</soap:Envelope>
Incorrect Request:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
<http://schemas.xmlsoap.org/soap/envelope/>">
<soap:Body>
<ns1:add
xmlns:ns1="http://www.openiam.org/service/connector
<http://www.openiam.org/service/connector>">
<reqType
xmlns="http://www.openiam.org/service/connector
<http://www.openiam.org/service/connector>"
targetID="1000"
requestID="R4589">
<psoID targetID="target"
ID="test01.user04g"/>
<data>
<extensibleUser>
<name>TestTemp User03</name>
<operation>0</operation>
<attributes>
<name>cn</name>
<value>TestTemp
User03</value>
<operation>1</operation>
</attributes>
</extensibleUser>
</data>
</reqType>
</ns1:add>
</soap:Body>
</soap:Envelope>
WSDL:
<?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 elementFormDefault="qualified"
targetNamespace="http://www.openiam.org/service/types" version="1.0"
xmlns:tns="http://www.openiam.org/service/types"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="extensibleUser" type="tns:ExtensibleUser" />
<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:schema>
<xs:schema elementFormDefault="unqualified"
targetNamespace="http://www.openiam.org/service/connector" version="1.0"
xmlns:tns="http://www.openiam.org/service/connector"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="add" type="tns:add" />
<xs:element name="addRequest" type="tns:AddRequestType" />
<xs:element name="addResponse" nillable="true" type="xs:anyType" />
<xs:element name="delete" type="tns:delete" />
<xs:element name="deleteRequest" type="tns:DeleteRequestType" />
<xs:element name="deleteResponse" nillable="true" type="xs:anyType" />
<xs:element name="expirePassword" type="tns:expirePassword" />
<xs:element name="expirePasswordRequest"
type="tns:ExpirePasswordRequestType" />
<xs:element name="expirePasswordResponse" nillable="true"
type="xs:anyType" />
<xs:element name="listTargetsRequest" type="tns:ListTargetsRequestType" />
<xs:element name="listTargetsResponse" type="tns:ListTargetsResponseType" />
<xs:element name="lookup" type="tns:lookup" />
<xs:element name="lookupRequest" type="tns:LookupRequestType" />
<xs:element name="lookupResponse" nillable="true" type="xs:anyType" />
<xs:element name="modify" type="tns:modify" />
<xs:element name="modifyRequest" type="tns:ModifyRequestType" />
<xs:element name="modifyResponse" nillable="true" type="xs:anyType" />
<xs:element name="resetPassword" type="tns:resetPassword" />
<xs:element name="resetPasswordRequest"
type="tns:ResetPasswordRequestType" />
<xs:element name="resetPasswordResponse" nillable="true"
type="xs:anyType" />
<xs:element name="select" type="tns:SelectionType" />
<xs:element name="setPassword" type="tns:setPassword" />
<xs:element name="setPasswordRequest" type="tns:SetPasswordRequestType" />
<xs:element name="setPasswordResponse" nillable="true" type="xs:anyType" />
<xs:element name="testConnection" type="tns:testConnection" />
<xs:element name="testConnectionResponse"
type="tns:testConnectionResponse" />
<xs:element name="validatePassword" type="tns:validatePassword" />
<xs:element name="validatePasswordRequest"
type="tns:ValidatePasswordRequestType" />
<xs:element name="validatePasswordResponse" nillable="true"
type="xs:anyType" />
<xs:complexType name="add">
<xs:sequence>
<xs:element minOccurs="0" name="reqType" type="tns:AddRequestType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="AddRequestType">
<xs:complexContent>
<xs:extension base="tns:RequestType">
<xs:sequence>
<xs:element form="qualified" minOccurs="0" name="psoID"
type="tns:PSOIdentifierType" />
<xs:element form="qualified" minOccurs="0" name="containerID"
type="tns:PSOIdentifierType" />
<xs:element form="qualified" name="data" type="tns:ExtensibleType" />
<xs:element form="qualified" 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="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="PSOIdentifierType">
<xs:complexContent>
<xs:extension base="tns:IdentifierType">
<xs:sequence>
<xs:element form="qualified" 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="SelectionType">
<xs:complexContent>
<xs:extension base="tns:QueryClauseType">
<xs:sequence>
<xs:element form="qualified" 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="CapabilityType">
<xs:complexContent>
<xs:extension base="tns:ExtensibleType">
<xs:sequence>
<xs:element form="qualified" 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="ModificationType">
<xs:complexContent>
<xs:extension base="tns:ExtensibleType">
<xs:sequence>
<xs:element form="qualified" minOccurs="0" name="component"
type="tns:SelectionType" />
<xs:element form="qualified" minOccurs="0" name="data"
type="tns:ExtensibleType" />
<xs:element form="qualified" 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="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="ModifyResponseType">
<xs:complexContent>
<xs:extension base="tns:ResponseType">
<xs:sequence>
<xs:element form="qualified" 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 form="qualified" 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 form="qualified" name="psoID" type="tns:PSOIdentifierType" />
<xs:element form="qualified" minOccurs="0" name="data"
type="tns:ExtensibleType" />
<xs:element form="qualified" 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 form="qualified" 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 form="qualified" 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 form="qualified" maxOccurs="unbounded" name="schema"
type="tns:SchemaType" />
<xs:element form="qualified" 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 form="qualified" 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 form="qualified" 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 form="qualified" minOccurs="0" name="pso" type="tns:PSOType" />
</xs:sequence>
<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="LookupRequestType">
<xs:complexContent>
<xs:extension base="tns:RequestType">
<xs:sequence>
<xs:element form="qualified" 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="DeleteRequestType">
<xs:complexContent>
<xs:extension base="tns:RequestType">
<xs:sequence>
<xs:element form="qualified" 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 form="qualified" name="psoID" type="tns:PSOIdentifierType" />
<xs:element form="qualified" 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="addResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:AddResponseType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="testConnection">
<xs:sequence>
<xs:element minOccurs="0" name="targetID" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="testConnectionResponse">
<xs:sequence>
<xs:element name="return" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="expirePassword">
<xs:sequence>
<xs:element minOccurs="0" name="request"
type="tns:ExpirePasswordRequestType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ExpirePasswordRequestType">
<xs:complexContent>
<xs:extension base="tns:RequestType">
<xs:sequence>
<xs:element form="qualified" 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="expirePasswordResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ResponseType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="lookup">
<xs:sequence>
<xs:element minOccurs="0" name="reqType" type="tns:LookupRequestType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="lookupResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:LookupResponseType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="delete">
<xs:sequence>
<xs:element minOccurs="0" name="reqType" type="tns:DeleteRequestType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="deleteResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ResponseType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="validatePassword">
<xs:sequence>
<xs:element minOccurs="0" name="request"
type="tns:ValidatePasswordRequestType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ValidatePasswordRequestType">
<xs:complexContent>
<xs:extension base="tns:RequestType">
<xs:sequence>
<xs:element form="qualified" name="psoID" type="tns:PSOIdentifierType" />
<xs:element form="qualified" name="password" type="xs:string" />
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="validatePasswordResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return"
type="tns:ValidatePasswordResponseType" />
</xs:sequence>
</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="modify">
<xs:sequence>
<xs:element minOccurs="0" name="reqType" type="tns:ModifyRequestType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="modifyResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ModifyResponseType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="setPassword">
<xs:sequence>
<xs:element minOccurs="0" name="request"
type="tns:SetPasswordRequestType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="SetPasswordRequestType">
<xs:complexContent>
<xs:extension base="tns:RequestType">
<xs:sequence>
<xs:element form="qualified" name="psoID" type="tns:PSOIdentifierType" />
<xs:element form="qualified" name="password" type="xs:string" />
<xs:element form="qualified" minOccurs="0" name="currentPassword"
type="xs:string" />
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="setPasswordResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ResponseType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="resetPassword">
<xs:sequence>
<xs:element minOccurs="0" name="request"
type="tns:ResetPasswordRequestType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ResetPasswordRequestType">
<xs:complexContent>
<xs:extension base="tns:RequestType">
<xs:sequence>
<xs:element form="qualified" name="psoID" type="tns:PSOIdentifierType" />
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="resetPasswordResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return"
type="tns:ResetPasswordResponseType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ResetPasswordResponseType">
<xs:complexContent>
<xs:extension base="tns:ResponseType">
<xs:sequence>
<xs:element form="qualified" minOccurs="0" name="password"
type="xs:string" />
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<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:simpleType name="ExecutionModeType">
<xs:restriction base="xs:string">
<xs:enumeration value="synchronous" />
<xs:enumeration value="asynchronous" />
</xs:restriction>
</xs:simpleType>
<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: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>