The liveDocs for dealing with complex datatypes say to do this: Look at the WSDL complex type definition. Create a struct that matches the type and configuration of the requested datat as a struct, and pass it back into the webservice.
So for your situation, you should be able to get by like this: <find_business generic="2.0" maxRows="10"> <name>ABC Co.</name> </find_business> becomes <cfset name = structNew()> find_business["generic"] = "2.0"; find_business["maxRows"] = "10"; find_business ["ABC Co"] = ""; Is that getting you closer? Laterz, J On Thu, 10 Feb 2005 14:21:38 -0500, Matthew Small <[EMAIL PROTECTED]> wrote: > Are you saying that the webservice itself (non-CF I imagine, and it's not > something you wrote) needs a complex datatype as a parameter? > > Perhaps you could determine the exact XML structure it needs passed in (by > going to its WSDL page) and create that structure in CF to pass. > > - Matt Small > > -----Original Message----- > From: Doug James [mailto:[EMAIL PROTECTED] > Sent: Thursday, February 10, 2005 1:17 PM > To: CF-Talk > Subject: Re: xml to struct help > > Jared, > > Thanks for the help. > > What is actually happening is that I am trying to invoke a web service using > cfinvoke. It will not > accept an xml document because it throws an invalid argument exception. Boy > do I wish it was as > simple as parsing a string into an xml doc and passing that in. When using a > web service that > expects a complex element (made up of other elements) cfinvoke gets passed a > CFMX structure > <http://livedocs.macromedia.com/coldfusion/6.1/htmldocs/webser23.htm>. So I > *have* to convert the > xml to a struct. > > And yes, I am having trouble. Lots and lots of trouble! > > Maybe some MM experts could chime in here. <shrug /> > > Doug > > Jared Rypka-Hauer - CMG, LLC wrote: > > Sorry, mixing my examples up here... > > > > xmlRoot.xmlElement.xmlName=find_business > > xmlRoot.xmlElement.xmlChildren would then contain a collection of > > struct containers that hold your "name" children. > > > > Every element has a collection of attributes above and beyond the > > obvious ones in your document. xmlRoot, xmlAttributes, xmlName, > > xmlNSPrefix, xmlURI, etc. and if you're going to build a struct by > > hand to mirror an XML document... eh, dude... I think you're going to > > have some trouble. > > > > Why not create the string as a variable... just stick the text into a > > var... then pass it into xmlParse and use that? It's going to be way > > easier and much less frustrating than trying to cobble together a > > mock-XML document. > > > > Just my opine... > > > > Laterz! > > J > > > > On Thu, 10 Feb 2005 11:51:01 -0600, Jared Rypka-Hauer - CMG, LLC > > <[EMAIL PROTECTED]> wrote: > > > >>XML isn't just a straigh-up struct... if you're going to reproduce an > >>expected XML snippet into a well-formed XML document by hand, you need > >>to recreate the whole thing or it just... won't work. > >> > >>Check out this example... > >>http://w2ksrv1.neo.servequake.com/tmp/xmlexample.cfm > >> > >>If you click the title of the cfdump, it will rotate between simle, > >>extended, and collapsed views... check out the extend version of the > >>view in the bottom-left table cell. > >> > >>xmlRoot.xmlElement.xmlName=find_business > >>xmlRoot.xmlElement.xmlChildren contains a collection of structs that > >>represent url objects. > >> > >>XML isn't just a struct, or an array... if you're talking XML and it > >>needs to be validated, you're going to have to either be very VERY > >>careful about how you create your structured object OR you should just > >>write it out to a file, read it in via cffile, and xmlParse() it into > >>a native XML binary object. > >> > >>Just remember, though... xmlSearch and xmlTransform both have rules, > >>and those rules follow XML standards, and the format of the document > >>IN MEMORY is critical or they just won't work. > >> > >>Laterz, > >>J > >> > >> > >>On Thu, 10 Feb 2005 11:26:07 -0500, Doug James <[EMAIL PROTECTED]> wrote: > >> > >>>Thanks for the suggestion. > >>> > >>>Unfortunately, it did not work. This is for a web service and > <find_business> is a complex type > >>>which equates to a struct. > >>> > >>>Calling all web service experts: please offer suggestions. > >>> > >>>Doug > >>> > >>>Micha Schopman wrote: > >>> > >>>>If you see name as a childNode, you might do this > >>>> > >>>><cfset find_business = structNew()> > >>>><cfset find.business.attributes = arrayNew(1)> > >>>><cfset find.business.childs = arrayNew(1)> > >>>> > >>>>And then each array entry gets a new struct :) With the key as structkey > >>>>and value as strucktvalue. > >>>> > >>>>Micha Schopman > >>>>Software Engineer > >>>> > >>>>Modern Media, Databankweg 12 M, 3821 AL Amersfoort > >>>>Tel 033-4535377, Fax 033-4535388 > >>>>KvK Amersfoort 39081679, Rabo 39.48.05.380 > >>>> > >>>>------------------------------------------------------------------------ > >>>>------------------------------------------------------------------------ > >>>>----- > >>>>Modern Media, Making You Interact Smarter. Onze oplossingen verbeteren > >>>>de interactie met uw doelgroep. > >>>>Wilt u meer omzet, lagere kosten of een beter service niveau? Voor meer > >>>>informatie zie www.modernmedia.nl > >>>>------------------------------------------------------------------------ > >>>>------------------------------------------------------------------------ > >>>>----- > >>>> > >>>>-----Original Message----- > >>>>From: Doug James [mailto:[EMAIL PROTECTED] > >>>>Sent: donderdag 10 februari 2005 14:55 > >>>>To: CF-Talk > >>>>Subject: xml to struct help > >>>> > >>>>Please help, my forehead is very red and painful from banging against > >>>>the wall over this one. > >>>> > >>>>Given this XML snippet: > >>>><find_business generic="2.0" maxRows="10"> > >>>> <name>ABC Co.</name> > >>>></find_business> > >>>> > >>>>This struct accurately represents <find_business> with the "generic" and > >>>>"maxRows" attributes. > >>>>find_business = structNew(); > >>>>find_business.generic = "2.0"; > >>>>find_business.maxRows = "10"; > >>>> > >>>>What I can't figure out is how to get <name> into the structure. If I do > >>>>find_business.name = "ABC > >>>>Co."; that is making the name an attribute but I need it as an element. > >>>> > >>>>Any suggestions? > >>>> > >>>>Doug James > >>>>Hollings Cancer Center > >>>> > >>>> > >>>> > >>>> > >>> > >>> > > > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Find out how CFTicket can increase your company's customer support efficiency by 100% http://www.houseoffusion.com/banners/view.cfm?bannerid=49 Message: http://www.houseoffusion.com/lists.cfm/link=i:4:194116 Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4 Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4 Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4 Donations & Support: http://www.houseoffusion.com/tiny.cfm/54