Cannot find required parameters, atributes from wsdl service
I am trying to send an xml message to a wsdl service which there is no documentation for it.
The web page of the service is:
I found that in webpage
there are three required attributes
When I try to send the message it gives me an error
<explanation>SubmittingTraderIdentification ([SubmittingTraderIdentification: null] must be the same as the trader ID (040540011)</explanation>
I cannot find anywhere the SubmittingTraderIdentification
Have you tried loading in the .wsdl via creating a new project? This will auto generate your payload based on the content of .wsdl which might help your understand the requirements.
In regards to your issue you state the required tags within your payload are as follows:
"traderID", "wsUserID", "wsPass" ane after submitting your request you get a response with error response reading "[SubmittingTraderIdentification: null] must be the same as the trader ID (040540011)"
I'm assuming your traderId tag within your payload included the tag value of 040540011. Is that correct?
Have you verified there are no other tags in your payload that corresponds to "SubmittingTraderIdentification"?
You only list 3 mandatory tags ("traderID", "wsUserID", "wsPass") and without knowing anything related to your payload (nor the physical representation of your underlying database) other than 3 mandatory tags listed above i'd guess that the table you are updating via your SOAP request's POST includes a TraderInformation column that is empty.
In summary youre going to need to ensure the content of your payload referentially corresponds to the data in the database.
Yes I load it as new project and it still gives me the same three attributes.
The value 040540011 is something I give it as parameter.
I tried to give some parameters like submittingTraderID ot submittingTraderIdentification but nothing changes.
I have no access on the database and the technical support from the service is... lets say it politly "ignorants".
Is there any way to check if it returns something as request from the server?
someOtherParameter: Not ok
Ok. The more i look at this, the more confused i get...no wonder youve got problems!
I'll list out why i'm confused so you can see my thought process.
Your .wsdl includes 3 mandatory tags which you complete fine. I looked through the imported schemas and couldnt find anything that equated to "submittedTraderInfo" or equivalent, but even if the xsd's did include that "submittedTraderInfo" tag, theyre not included in the .wsdl's payload so shouldnt be included in your payload anyway.
The error reported is a cross field validation error. I.e. "traderId" needs to be the same value as "submittedTraderInfo". Cross field validation is not handled by schema validation....to include cross field validation there has to be an extra layer of business validation code to handle this, so they'red by no indication of this required validation within the .wsdl or .xsd's
Can you confirm whats the purpose of the request? Is it a CREATE or UPDATE or both CREATE and UPDATE request? Reason i ask is that the ONLY attributes needed in your request is username, password and traderId......thats not much to be updating or creating. Id suggest that its more likely that this is a CREATE request rather than an UPDATE request, cos there's only one attribute (the traderId) to be updated. To be honest, it doesnt really make much sense to me to even create a record with so few attributes, never mind update them, but i have tested systems where thr initial create had minimal data and then the update operatiom filled out the content.
Ok. Thats the end of my list of confusing issues. Id suggest trying to get those points clarified to help you proceed with your work.
If you havent got jdbc access to the webservices underlying database, then to query the data youd need the SOAP endpoint to include an operation like a GET request to query the data. SOAP is a bit weird inasmuch that GET is technically supported, but you dont typically see a GET SOAP request.
If you can obtain any interface design/api documentation relating to the SOAP endpoint this should answer all the questions i listed above giving you a way forward.
The submittingTraderIdentification exists in xsd, but it is either doesnt recognise it correctly or doesnt pass it in the correct position.
I have attached the xsd (I renamed it as xml because I couldnt upload it) where you can check the schema.
This transaction is made to Greek customs and it is to send an xml so it can return as a number that everything is correct to proceed with the import or export of goods.I am already sending other messages like im15,ie515 and it works fine.
The specificic problem is only in EF15 message.
The only documentation is in Greek language which doesnt show much. It doesnt requires anything but traderId,wsUsername,wsPassword.
I am hoping that is something wrong with the xsd and passes the submitingTrader in the wrong place.
I'll need to dig into the schema a little which will take abit of time, so i will respond but it'll be once i finish work.
So im guessing the xsd you attached the schema on the webservice and isnt referenced in the .wsdl at all. The 3 schemas mentioned in the wsdl are completely different.
When ive worked on projects like this before i loaded in the separate xsd to xmlspynor equivalent and generated a sample payload from this xsd.
However that schema is a complete mess and there are numerous errors in the schema and you cant generate a sample xml until all the problems in the schema are fixed. Im assuming this is a 3rd party schema and youve little support. When ive been in this situation before, ive had to fix the schema to enable me to generate a sample xml. This means obtaining all the imported schema references etc. from the 3rd party.
I think youve got a choice. Either request a sample xml from the 3rd party (easiest option) or fix the schema yourself which will take time....as i said before....youd need to get hold of all the referenced schemas etc. and once youve done that start fixing the schema. I cant see any other way around it.
By far the easiest option is getting a sample xml instead from the 3rd party.
Im sorry thats all i got im afraid. If you do get all the referenced schemas you need im happy to help try and fix the thing so it'll become valid and at that point youll be able to generate a valid xml, but those are your only choices as far as i can tell.
They cannot send me xml because they don't have technical knowledge. The y don't know anything how webservices work. I have the external xsd(I renamed them again in .xml) files but I think I tried once and the program said that the xsd was valitated correctly.
I am not an expert in xsd and xml and I don't have xmlspy to test it. I download the demo version but I don't know how to import external xsd and test or create a valid xml from that.
I try out the altovaspy and after I managed to import the external xsd files it shows me (as you said) many errors.
One is at the submittingOperatorIdentification which gives me an error
'emcs:FallbackDocumentReferenceType' must refer to an existing simple or complex type.
So I guess it doesnt find that value in xs:emcs which is located at http://www.icisnet.gr/emcs/v1.03/types
If I open the types.xsd the value indeed doesnt exist.
As solution altovaspy gives the optins to choose another branch but I don't know what to choose.
The same problem is with many more values. Is there a way to find which value exists in which xsd?
Those problems occured because I change the "online" xsd with local ones or because the schema is wrong?
Also I think the tcl file is older version I upload a newer version