Hi, I started to build my web service using the document/literal wrapped pattern but I realised that this was not a good choice for me after I tried to add an overloaded method (I found this excellent page that explains the different wsdl styles Which style of WSDL should I use?).
I was thinking to use the document/literal non-wrapped style but wsimport is not happy because it seems to encourage the use of WS-I Basic profile wich disallows the use of miltiple children in the body element. When trying to execute wsimport I recieve the following output: "[WARNING] Ingoring operation "myOperation": more than one part bound to body".
Does someone knows how to deal with overloaded operations while being WS-I Basic profile compliant ?
Originally posted by Esteban Puertas: Does someone knows how to deal with overloaded operations while being WS-I Basic profile compliant ?
As the article you reference points out WSDL 2.0 disallows overloaded operations completely - so forget about overloading your web operations. If you do Java-to-WSDL on overloaded methods the code generation will have to create mangled names for the operations (RPC/literal) or document type (document/literal) in the WSDL.
According to XML schema each type (and ultimately document) can only have one definition - so overloading makes no sense for document/literal - wrapped or not - and if you are thinking of using the XML schema union element - don't; it will just create grief for your clients.
Based on my own experience (and others), I recommend that you have a basic set of fundamental types that you can compose to other types (structures, records) and sequences (arrays). Be careful with enumerations (an anachronism from the time when each byte did count - use strings instead), inheritance and polymorphism (even when XML supports it).