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:documentationComment 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