[snichols] I'm working on a Tcl client to integrate to a web service. I have an example of how the SOAP envelope should look. It is using two complex data types (WebUser and Authentication). I'd prefer to use Tcl SOAP then have to code the XML using tDOM and HTTP, which I will do if necessary. Here's my Tcl code that generates a SOAP request envelope that's close to the working SOAP envelope, but not good enough for the web service (there are some extra XML attributes, etc that are needed): package require SOAP package require rpcvar namespace import -force rpcvar::typedef typedef { Username DATA Password DATA Nonce DATA Created DATA RemoteUser DATA RemoteClient DATA RemoteAddress DATA EnvironmentalData DATA SessionID DATA } authentication typedef { Authentication authentication ApplicationType DATA RequestID DATA WebUserID DATA WebUserName DATA PlanID DATA EmployerID DATA MemberID DATA EntityType MEMBER EntityReferenceNumber DATA Password DATA EncryptionMethod PLAINTEXT InputMethodEditor TELEPHONE } webUser SOAP::create Test -proxy "http://localhost/superSOAP/webcontrol.asmx" \ -action "http://www.atune.biz/web/services/WC/2006-01/isWebUserAuthenticated" \ -uri "http://www.atune.biz/web/services/WC/2006-01" \ -params {WebUser webUser} When the soap method, isWebUserAuthenticated, is called it generates this as the SOAP request : IVRUSER newPassword TESTER SomeCompany 127.0.0.1 MOL 11111 RS -1 -1 MEMBER 0 5555 PLAINTEXT TELEPHONE Its very close, but I need the SOAP above envelope to look like this working version (both are very close): IVRUSER newPassword 20060309T080101 TESTER SomeCompany 127.0.0.1 MOL 157014233 RS -1 -1 MEMBER 0 5555 PLAINTEXT TELEPHONE Any ideas what I need to change in my TclSOAP command calls to make the SOAP envelope look like the latter XML above? Its currently generating the first XML. I notice a couple of things different: The latter has an Enabled="1" attribute and the password tag has some more attributes too, and its not using the /ns: namespace like the first. The latter envelop works and returns a result the first request returns errors. The other thing thats differnt is the second version is using simpler looking tags like soap:Evelope and soap:Body. So, how do I add the XML attributes needed by the webservice, etc? Thanks in advance. snichols. ---- [lexfiend]: It doesn't directly answer your question, but since you already know exactly what the SOAP request must look like, you might want to consider the XML-template method I devised and documented in [WSDL]. I've found it to be more cost-effective (read: less time + hair-pulling) than trying to tweak my code to coax [TclSOAP] to satisfy different Web services (and possibly having to re-tweak it for newer releases of TclSOAP). ---- [snichols] Thanks. I saw your example in the WSDL page in the Wiki. It is a very quick fix, but I don't know if its the best way since you are not using an XML Tcl package to do your replacing. There's a potential for XML special characters in the values you are replacing in your XML template. I don't know how likely this is, and if it does fail what's the outcome: some user somewhere that has to use a different method for support. I may end up using what you did. Thanks again.