Friends,
I am getting the following error, while invoking “AccountCheckOut” web service as
response = client_eap.service.AccountCheckOut(userId, accountNumber, requestSource)
suds.WebFault: Server raised fault: 'Validation: XML schema validation of SOAPBody failed
(OPERATION=AccountCheckOut, DETAILS=XML Document has Error:cvc-complex-type.2.4.a:
Invalid content was found starting with element 'UserID'. One of '{"urn:bearstearns.com:bsc.ais.Account:1.0":UserID}' is expected.)'
On printing my wsdl client, I see that the target service is defined as:
AccountCheckOut(xs:token UserID, xs:token AccountNumber, ns2:RequestSourceType RequestSource, )
The AccountCheckOut.xsd defines the UserId as a ref=acct:UserId and the namespace is defined as
xmlns:acct="urn:bearstearns.com:bsc.ais.Account:1.0" inside AccountCheckOut.xsd
So the correct suds service request should have gone out with the following:
<ns1:Body>
<ns0:AccountCheckOut>
<UserID xmlns="urn:bearstearns.com:bsc.ais.Account:1.0">XXXXXX</UserID>
<AccountNumber xmlns="urn:bearstearns.com:bsc.ais.Account:1.0">55750172</AccountNumber>
<RequestSource xmlns="urn:bearstearns.com:bsc.ais.Account:1.0">XXX</RequestSource>
</ns0:AccountCheckOut>
</ns1:Body>
But it went out with the incorrect xmlns as shown below:
<ns1:Body>
<ns0:AccountCheckOut>
<UserID xmlns="urn:bearstearns.com:bsc.eap.AccountCheckOut:1.0">XXXXXX</UserID>
<AccountNumber xmlns="urn:bearstearns.com:bsc.eap.AccountCheckOut:1.0">55750172</AccountNumber>
<RequestSource xmlns="urn:bearstearns.com:bsc.eap.AccountCheckOut:1.0">XXX</RequestSource>
</ns0:AccountCheckOut>
</ns1:Body>
Please see the content of the AccountCheckOut.xsd below:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:bearstearns.com:bsc.eap.AccountCheckOut:1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:pend="urn:bearstearns.com:bsc.ais.PendingAccount:1.0" xmlns:acct="urn:bearstearns.com:bsc.ais.Account:1.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="urn:bearstearns.com:bsc.ais.Account:1.0" schemaLocation="./ais/Account.xsd"/>
<xs:import namespace="urn:bearstearns.com:bsc.ais.PendingAccount:1.0" schemaLocation="./ais/PendingAccount.xsd"/>
<xs:element name="AccountCheckOut">
<xs:annotation>
<xs:documentation>Comment describing your root element</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="acct:UserID"/>
<xs:element ref="acct:AccountNumber"/>
<xs:element ref="acct:RequestSource"/>
</xs:sequence>
</xs:complexType>
</xs:element>
….
…
</xs:schema>
I want to know how can I correct this and make the xmlns = urn:bearstearns.com:bsc.ais.Account:1.0 instead instead of urn:bearstearns.com:bsc.eap.AccountCheckOut:1.0 in my service request
Thanks.
Sanku