|
Posted by jims on January 11, 2006, 10:45 am
Please log in for more thread options
Hi. I've been pulling my hair out here.
I'm interacting with a web service that has two methods. One takes a
simple string arg and returns an XML payload. I've got that working,
having worked through the SOAP::Lite -> .NET gotchas.
Now I'm trying to get the next method to work. In this one, the .NET
provided sample request would look like:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body>
<PutSatelliteInsolationData xmlns="http://www.myserver.com"> <insolationData>
<xsd:schema>
SCHEMA
</xsd:schema>
XML
</insolationData>
</PutSatelliteInsolationData>
</soap:Body>
</soap:Envelope>
When I use the same code that worked for the first method but
substitute a schema for SCHEMA and an xml block (that conforms to
SCHEMA) for XML, I get all sorts of trouble.
If I use SOAP::Lite (+trace => debug) I see that all my xml has its '<'
characters escaped to < I've seen posts that say this is no problem
and the proper way to do things but I'm not sure. In any event I don't
know how to turn on or off this behavior. The server responds that
"Object reference not set to an instance of an object."
I've also tried SOAP::Lite::Simple::DotNet but that does strange things
to my SCHEMA namespaces no matter what the value of strip_default_xmlns
is. For example the schema line:
<xs:schema xmlns:xs="blah">
gets translated into
<xs:schema xs="blah">
and I get a namespace error on "xs".
Can somebody shed some light on this or point me to a page that
discusses uploading XML to .Net servers from SOAP::Lite? I've found a
paucity of examples of SOAP::Lite that involve a client sending xml as
a method argument.
Thanks,
Jim
|