Hi -
I have a webservice with WSDL specifying 'elementFormDefault' set to
'unqualified'. I find when I try to process the incoming XML the raw XML
either looks like this:
<s0:rootelement xmlns:s0="myns">
<ChildElement></ChildElement>
</s0:rootelement >
or like this:
<rootelement xmlns="http://tempuri.org/">
<ChildElement></ChildElement>
</rootelement >
So far the only way I can deal with it which works consistently is like this:
XmlNode node = nodeInput.SelectSingleNode("/element");
if (node == null) {
XmlNamespaceManager mgr = new XmlNamespaceManager(node
.OwnerDocument.NameTable);
mgr.AddNamespace("ns", "myns");
node = nodeInput.SelectSingleNode("/ns:element", mgr);
}
which seems wrong. Is there a way of reading the nodes from an XPath which
doesn't require the 'if'?
Thanks,
Simon
Dilip Krishnan - 02 Mar 2005 17:42 GMT
Hello Simon,
No there is not. Also, its probably not the right thing to do however
to have it set to unqualified... That seems to deviate from the design principle
that wsdl is a contract and clients need to adhere to it. What that essentially
means is you're letting clients send any xml that 'looks' like what the server
expects and the service is having to deal with the various clients.
HTH
Regards,
Dilip Krishnan
MCAD, MCSD.net
dkrishnan at geniant dot com
http://www.geniant.com
> Hi -
>
[quoted text clipped - 26 lines]
>
> Simon