Re: [soapbuilders] question about handling by a soap client
- On 8/17/06, tkogan2002 <tkogan@...> wrote:
> I have a question to SOAP client/server builders.Of course; that is exactly what xsd:any implies.
> A server published the WSDL schema with a complex type described
> like this:
> For example:
> <xsd:complexType name="myRequest">
> The server expects to have instead the <any> some XML complex type
> which is not part of this schema and is not defined in imported
> Does your client allow adding any XML document to a SOAP message
> which was not describe by the WSDL schema types?
There's some complexity related to namespaces, specificially whether
you allow content the ##other and ##local namespaces. the .NET XML
engine has a different opinon on whether local xml (that is,
non-namespaced) content, is in the ##other namespace, compared to all
the other XML parsers. As long as your xsd:any attributes dont try and
mandate which namespaces are allowed, you can avoid this problem.
>"Marshal the nodes" implies some mapping to and from native objects.
> How your client handle these elements in a server reply if the
> elements are not described by the WSDL? Do you return the XML as it
> was in the reply or raise an error complaining that the client can
> not marshal the nodes?
For SOAP stacks that live in the XML space, it is just XML content to
be sent over the wire.
Legacy SOAP stacks, those that do try and map to and from an arbitrary
object graph, do have problems if they are handed an object graph that
they don't know the O/X mapping for. They normally have some DOM-like
mechanism for describing xsd:any content at both ends of the
communication, a mechanism that is normally neglected on the grounds
that wanting to work with the raw XML is viewed as something aberrant
that should be discouraged.