Werner,
Not my choice. The service is provided by a rules engine and it wants
the XML it is to parse sent as a single value. The intent, I believe,
is to allow any arbitrary message to be sent as a "Create" or "Update"
request to the engine. In our case we want to pass XML as the message
content.
FYI, here is its WSDL (product/client information removed):
<?xml version="1.0" ?>
<definitions targetNamespace="urn:RulesEngine:Data-Interface-WS-"
xmlns:tns="urn:RulesEngine:Data-Interface-WS-"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<message name="Create">
<part name="Request" type="xsd:string"/>
</message>
<message name="CreateResponse">
<part name="Response" type="xsd:string"/>
</message>
<message name="Update">
<part name="Request" type="xsd:string"/>
</message>
<message name="UpdateResponse">
<part name="Response" type="xsd:string"/>
</message>
<portType name="Interface-WS-Type">
<operation name="Create">
<input message="tns:Create"/>
<output message="tns:CreateResponse"/>
</operation>
<operation name="Update">
<input message="tns:Update"/>
<output message="tns:UpdateResponse"/>
</operation>
</portType>
<binding name="Interface-WS-Binding" type="tns:Interface-WS-Type">
<soap:binding
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="Create">
<soap:operation style="rpc"
soapAction="urn:RulesEngine:Data-Interface-WS-#Create"/>
<input>
<soap:body use="encoded"
namespace="urn:RulesEngine:Data-Interface-WS-"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded"
namespace="urn:Rulesengine:Data-Interface-WS-"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="Update">
<soap:operation style="rpc"
soapAction="urn:RulesEngine:Data-Interface-WS-#Update"/>
<input>
<soap:body use="encoded"
namespace="urn:RulesEngine:Data-Interface-WS-"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded"
namespace="urn:RulesEngine:Data-Interface-WS-"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<service name="Data-Interface-WS-Service">
<port name="Data-Interface-WS-Port"
binding="tns:Data-Interface-WS-Binding">
<soap:address
location="http://servername:9080/ruleengine/SOAPProvider"/>
</port>
</service>
</definitions>
Thank you,
-Dave
-----Original Message-----
From: Werner Guttmann [mailto:[EMAIL PROTECTED]
Sent: Tuesday, June 10, 2008 4:48 AM
To: [email protected]
Subject: Re: [castor-user] XML: Mapping Elements Into a CDATA Section
David,
just out of curiosity, why *on earth* would you want to use CDATA
sections in the payload of a web service (when the payload of a web
service 'message' is XML by definition anyhow) ?
Werner
Read, David wrote:
> Hello all,
>
> I am trying to send data into a web service whose operations simply
> take a <Request> string. Inside of this element is supposed to be the
> XML payload to be processed. For example it expects something like:
>
> <operation>
> <Request>
> <![CDATA[
> <foo>
> <bar1>data1</bar1>
> <bar2>data2</bar2>
> </foo>
> ]]>
> </Request>
> </operation>
>
> The class instance to be marshalled contains fields for each <bar#>.
> For example:
>
> public class Foo {
> private String bar1, bar2, bar3;
> public String getBar1() { return bar1; }
> public String getBar2() { return bar2; }
> public String getBar3() { return bar3; } }
>
> I started with the mapping like:
>
> <class name="Foo">
> <map-to xml="operation"
> ns-uri="urn:RuleEngine:Data-Interface-WS-"
> ns-prefix="tns"/>
> <field name="bar1" type="string" required="false">
> <bind-xml name="tns:bar1" node="element"
location="Request/foo"/>
> </field>
> <field name="bar2" type="string" required="false">
> <bind-xml name="tns:bar2" node="element"
location="Request/foo"/>
> </field>
> <field name="bar3" type="string" required="false">
> <bind-xml name="tns:bar3" node="element"
location="Request/foo"/>
> </field>
> </class>
>
> Obviously this doesn't know to place <foo> within a CDATA section in
> <Request>. However, I don't see how to do it.
>
> Is there a way to setup the mapping so that the <foo> and <bar>
> elements are really just part of the data for <Request>?
>
> I appreciate any pointers you can provide for this.
>
> Thank you,
>
> -Dave
>
>
>
>
>
> This e-mail and any files transmitted with it are for the sole use of
> Blue Slate Solutions and the intended recipient(s) and may contain
> confidential and privileged information. If you are not the intended
> recipient, please contact the sender by reply e-mail and destroy all
> copies of the original message. Any unauthorized review, use,
> disclosure, dissemination, forwarding, printing or copying of this
> email or any action taken in reliance on this e-mail is strictly
> prohibited and may be unlawful.
>
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email
This e-mail and any files transmitted with it are for the sole use of
Blue Slate Solutions and the intended recipient(s) and may contain
confidential and privileged information. If you are not the intended
recipient, please contact the sender by reply e-mail and destroy all
copies of the original message. Any unauthorized review, use,
disclosure, dissemination, forwarding, printing or copying of this email
or any action taken in reliance on this e-mail is strictly prohibited
and may be unlawful.
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email