Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

PRPC63SP1[Int]Connector Wizard create incorrect Parse namespace

SA-15572

Summary


Using the Connector and Metadata Wizard to create a SOAP Connector and reference rules, the generated Parse XML rule contains incorrect Node NameSpace. The Parse rule can not parse the response XML correctly.


Error Messages



None
 

Steps to Reproduce



1) Use the below WSDL as input into the Connector and Metadat Wizard:

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

<wsdl:definitions targetNamespace="http://qulix.com/schemas" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://qulix.com/schemas" xmlns:intf="http://qulix.com/schemas" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <!--WSDL created by Apache Axis version: 1.2.1

Built on Jun 14, 2005 (09:15:57 EDT)-->

  <wsdl:types>

  <schema elementFormDefault="qualified" targetNamespace="http://qulix.com/schemas" xmlns="http://www.w3.org/2001/XMLSchema">

  <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>

  <complexType name="error">

  <sequence>

  <element name="ErrorCode" nillable="true" type="xsd:string"/>

  <element name="ErrorMessage" nillable="true" type="xsd:string"/>

  </sequence>

  </complexType>

  <complexType name="ListOfError">

  <sequence>

  <element name="Error" nillable="true" type="impl:error"/>

  </sequence>

  </complexType>

  </schema>

  </wsdl:types>

  <wsdl:message name="finalizeDocResponse">

  <wsdl:part name="ListOfError" type="impl:ListOfError"/>

  </wsdl:message>

  <wsdl:message name="getAuthenticationTokenResponse">

  <wsdl:part name="authentificationTokenReturn" type="xsd:string"/>

  <wsdl:part name="ListOfError" type="impl:ListOfError"/>

  </wsdl:message>

  <wsdl:message name="deleteWorkItemResponse">

  <wsdl:part name="ListOfError" type="impl:ListOfError"/>

  </wsdl:message>

  <wsdl:message name="deleteWorkItemRequest">

  <wsdl:part name="AuthentificationToken" type="xsd:string"/>

  <wsdl:part name="ProfileID" type="xsd:string"/>

  <wsdl:part name="WorkItemId" type="xsd:string"/>

  </wsdl:message>

  <wsdl:message name="finalizeDocRequest">

  <wsdl:part name="AuthentificationToken" type="xsd:string"/>

  <wsdl:part name="ProfileID" type="xsd:string"/>

  <wsdl:part name="WorkItemId" type="xsd:string"/>

  <wsdl:part name="ECMPath" type="xsd:string"/>

  <wsdl:part name="UserName" type="xsd:string"/>

  <wsdl:part name="ECMDocTypeID" type="xsd:string"/>

  </wsdl:message>

  <wsdl:message name="getAuthenticationTokenRequest">

  <wsdl:part name="requestContext" type="xsd:string"/>

  <wsdl:part name="timeout" type="xsd:long"/>

  </wsdl:message>

  <wsdl:portType name="QuestionnaireRequest4">

  <wsdl:operation name="getAuthenticationToken" parameterOrder="requestContext timeout authentificationTokenReturn ListOfError">

  <wsdl:input message="impl:getAuthenticationTokenRequest" name="getAuthenticationTokenRequest"/>

  <wsdl:output message="impl:getAuthenticationTokenResponse" name="getAuthenticationTokenResponse"/>

  </wsdl:operation>

  <wsdl:operation name="deleteWorkItem" parameterOrder="AuthentificationToken ProfileID WorkItemId">

  <wsdl:input message="impl:deleteWorkItemRequest" name="deleteWorkItemRequest"/>

  <wsdl:output message="impl:deleteWorkItemResponse" name="deleteWorkItemResponse"/>

  </wsdl:operation>

  <wsdl:operation name="finalizeDoc" parameterOrder="AuthentificationToken ProfileID WorkItemId ECMPath UserName ECMDocTypeID">

  <wsdl:input message="impl:finalizeDocRequest" name="finalizeDocRequest"/>

  <wsdl:output message="impl:finalizeDocResponse" name="finalizeDocResponse"/>

  </wsdl:operation>

  </wsdl:portType>

  <wsdl:binding name="QuestionnaireRequest4SoapBinding" type="impl:QuestionnaireRequest4">

  <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

  <wsdl:operation name="getAuthenticationToken">

  <wsdlsoap:operation soapAction=""/>

  <wsdl:input name="getAuthenticationTokenRequest">

  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://qulix.com/schemas" use="encoded"/>

  </wsdl:input>

  <wsdl:output name="getAuthenticationTokenResponse">

  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://qulix.com/schemas" use="encoded"/>

  </wsdl:output>

  </wsdl:operation>

  <wsdl:operation name="deleteWorkItem">

  <wsdlsoap:operation soapAction=""/>

  <wsdl:input name="deleteWorkItemRequest">

  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://qulix.com/schemas" use="encoded"/>

  </wsdl:input>

  <wsdl:output name="deleteWorkItemResponse">

  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://qulix.com/schemas" use="encoded"/>

  </wsdl:output>

  </wsdl:operation>

  <wsdl:operation name="finalizeDoc">

  <wsdlsoap:operation soapAction=""/>

  <wsdl:input name="finalizeDocRequest">

  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://qulix.com/schemas" use="encoded"/>

  </wsdl:input>

  <wsdl:output name="finalizeDocResponse">

  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://qulix.com/schemas" use="encoded"/>

  </wsdl:output>

  </wsdl:operation>

  </wsdl:binding>

  <wsdl:service name="QuestionnaireRequestService">

  <wsdl:port binding="impl:QuestionnaireRequest4SoapBinding" name="QuestionnaireRequest4">

  <wsdlsoap:address location="http://host:port/qf/services/QuestionnaireRequest4"/>

  </wsdl:port>

  </wsdl:service>

</wsdl:definitions>

Response tab of generated Connect Soap rule


The Generated Parse XML rule

2) Node *ListOfError* appears OK with no Node Namespace


3) Node *Error* contains a Node Namespace which is unexpected.

4) Node *ErrorCode* also contains an unexpected Node Namespace

5) The generated connector rule failed to parse the below Response.xml:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body> 
<ns1:getAuthenticationTokenResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://qulix.com/schemas">
<authentificationTokenReturn xsi:type="xsd:string" xsi:nil="true"/>
<ns1:ListOfError href="#id0"/> 
</ns1:getAuthenticationTokenResponse>
<multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<Error href="#id1"/> 
</multiRef>
<multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:error" xmlns:ns2="http://qulix.com/schemas" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<ErrorCode xsi:type="xsd:string">1</ErrorCode>
<ErrorMessage xsi:type="xsd:string">abcdefg</ErrorMessage>
</multiRef>
</soapenv:Body>
</soapenv:Envelope>


Root Cause


The reason of the parsing failure is because the response xml is not valid. When the WSDL contains elementFormDefault=qualified then all elements should be prefixed.

Resolution



By modifying the Response XML including nsl prefix as following, the parsing will be successful:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="http://qulix.com/schemas">
<soapenv:Body> 
<ns1:getAuthenticationTokenResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 
<ns1:authentificationTokenReturn xsi:type="xsd:string" xsi:nil="true"/> 
<ns1:ListOfError href="#id0"/>
</ns1:getAuthenticationTokenResponse> 
<ns1:multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<ns1:Error href="#id1"/>
</ns1:multiRef>
<ns1:multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:error" xmlns:ns2="http://qulix.com/schemas" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<ns1:ErrorCode xsi:type="xsd:string">1</ns1:ErrorCode>
<ns1:ErrorMessage xsi:type="xsd:string">abcdefg</ns1:ErrorMessage
</ns1:multiRef>
</soapenv:Body>
</soapenv:Envelope>

 

Suggest Edit

Published January 31, 2016 - Updated October 8, 2020

Did you find this content helpful? Yes No

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us