Ack! Maybe this shouldn't bug me since the whole point of Axis is you're not supposed to care what's on the wire--but the notion of XML-encoding an entire XML document so it can be passed as a string via RPC, when instead you could just insert the literal document as the SOAP Body, makes no sense to me.
You could have this: <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <my_xml_document><blah/><blah/></my_xml_document> </SOAP-ENV:Body> </SOAP-ENV:Envelope> or you could have this: <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns1:someParameter xmlns:ns1 = "urn:some_namespace" xsi:type="xsd:string"><my_xml_document><blah/><blah/></my_xml_document></someParameter> </SOAP-ENV:Body> </SOAP-ENV:Envelope> The longer your XML document, and the more entities that need to be escaped, the more convoluted the second version gets. Like I say, maybe I just shouldn't care--but what is doc style for if not situations like this? Sorry if I've overlooked something obvious here. I'm new to all this, and maybe I've misunderstood the problem or the proposed solution. Anyway, if you want an example messaging service, check out the message/ directory in the samples that came with Axis. You can see it creating SOAPBodyElements from DOM Elements, which is what you want to do. Your messaging client would need to grab the document element from your DOM (with the Document.getDocumentElement() call) and pass that to the SOAPBodyElement constructor. Pass this single SOAPBodyElement to your service, and what the service will get is a SOAP Envelope with your XML document for the body. Andrew At 08:29 AM 5/31/2002 -0500, you wrote: >You should be able to put the XML doc in a simple string and pass that >string back and forth. > >Jim Stickley >Birch Telecom >(816) 300-6743 >[EMAIL PROTECTED] > > >-----Original Message----- >From: Robert Evans [mailto:[EMAIL PROTECTED]] >Sent: Friday, May 31, 2002 6:41 AM >To: [EMAIL PROTECTED] >Subject: Re: AW: How do you pass an XML document between Axis and .Net >Client? > >The issue isn't about passing a simple number, what I'd like to figure >out how to do is to pass a large XML document from/to axis to/from the >client. If anybody has a straightforward way to do this (RPC or >Messaging) I would really appreciate the example being shown. I'm sure >this isn't difficult, I just haven't been able to figure out how to do it. > >Bob Evans > >Andrew Vardeman wrote: > > > But I guess what I'm confused about is why you don't just write a > > messaging client that manually adds this element to the request: > > > > <someNumber xsi:type="xsd:int">8</someNumber> > > > > and then sucks the returned XML out of the SOAP Body? Seems so much > > more straightforward... > > > > Andrew > > > > At 05:25 PM 5/30/2002 +0200, you wrote: > > > >> Hi, > >> > >> I have some methods which need an in-parameter (in most cases a > >> primitive > >> type like int) and return a XML document. > >> > >> Sadly, I haven´t found a way to tell Axis to use RPC mode for the > >> request > >> and don´t apply any deserializers on the response, so that I can > >> extract the > >> XML document from the response. > >> > >> So, I have to return the XML document as a string. > >> > >> -----Ursprüngliche Nachricht----- > >> Von: Andrew Vardeman [mailto:[EMAIL PROTECTED]] > >> Gesendet am: Donnerstag, 30. Mai 2002 17:17 > >> An: [EMAIL PROTECTED] > >> Betreff: RE: How do you pass an XML document between Axis and .Net > >> Client? > >> > >> I have limited programming experience, and I don't know what sorts of > >> things people are using SOAP for out there. One thing I wonder > >> (possibly > >> because I just haven't needed to do it yet) is why so many people > >> want to > >> write an RPC client that passes an XML document as a parameter. What is > >> the advantage of this over document-style messaging? Are you passing > >> other > >> objects along with the document that you don't want to manually > >> deserialize, or is it just to avoid making a couple DOM calls to extract > >> the document from the SOAP Body? > >> > >> Just curious, > >> > >> Andrew > >> > >> At 05:01 PM 5/30/2002 +0200, you wrote: > >> >Bob, > >> > > >> > - use the system.xml.xmldocument to create a XMLDocument (DOM) object > >> > - use the loadxml method to load a string into it > >> > > >> >the precise syntax depends on which .net dialect you use > >> > > >> >greetings, > >> >Gertjan > >> > > >> > > >> >-----Original Message----- > >> >From: Robert Evans [mailto:[EMAIL PROTECTED]] > >> >Sent: donderdag 30 mei 2002 15:06 > >> >To: [EMAIL PROTECTED] > >> >Subject: How do you pass an XML document between Axis and .Net Client? > >> > > >> > > >> >Greetings, > >> > > >> >I have been trying to figure out how to pass an XML document to/from an > >> >axis web server from/to a .Net client. > >> > > >> >As near as I can tell, on the Java side I need to convert the XML > >> >document to/from a string (no problem). The part I can't figure out is > >> >how to convert the Xml String to a .Net XML document. > >> > > >> >I realize this isn't exactly an Axis issue, but I figured this mailing > >> >list would have somebody who has done something like this already. > >> > > >> >Any hints would be appreciated. > >> > > >> >Bob Evans > > > > > > > > > > > >