[ 
http://issues.apache.org/jira/browse/AXIS-1817?page=comments#action_59392 ]
     
Jongjin Choi commented on AXIS-1817:
------------------------------------

Hi, all.

The getValue()'s murk comes from rev.1.188 of MessageElement.
I think that rev.1.188 was right direction for performance
because it reduces unnecessary SAAJ -> DOM conversion and DOM serialization 
should be avoided as much as possible 
because SAAJ 1.2 is also a DOM.

As you pointed, I think the TextSerializationContext should not be used, too.

Besides this issue, also according to SAAJ, the value returned from 
Node.getValue() should be following in these cases:
  (from test.message.TestMessageElement#testGetNodeValue())

 1. <anElement 
xmlns:ns1=\"aNamespace\"><bElement>FooBar</bElement>Mixed</anElement>
   --> Mixed  (currently the test case checks if it is 'null', this is invalid 
test)

 2. <anElement 
xmlns:ns1=\"aNamespace\">Foo<bElement>FooBar</bElement>Mixed</anElement>
   --> Foo

For #1, we should find the first text node among the childrens. (not just the 
first node).
For #2, We should append text child when a child element starts.

Fixing getValueDOM() could solve #1, but I don't think DOM approach is 
desirable.

Thanks.


> MessageElement.getValue doesn't do XML decoding
> -----------------------------------------------
>
>          Key: AXIS-1817
>          URL: http://issues.apache.org/jira/browse/AXIS-1817
>      Project: Axis
>         Type: Bug
>   Components: Serialization/Deserialization
>     Versions: 1.2RC2
>  Environment: XP / JDK 1.4.x / 
>     Reporter: Simon Fell
>     Assignee: Venkat Reddy
>  Attachments: diff.txt
>
> This actually with the 1.2 RC3
> If the WSDL contains a <any> element, this is mapped to a MessageElement [], 
> in Axis 1.1 calling getValue on one of these MessageElement's would return 
> the contents of the element post XML processing, in Axis 1.2 RC3 it seems to 
> be returning the raw data, e.g. if the response element is
> <elem>A&gt;B</elem>
> In Axis 1.1, getValue() returns "A>B" but Axis 1.2 returns "A&gt;B"
> There's a test service at http://soap.4s4c.com/dotnet/any.wsdl
> here's some client code to call it.
>               AnyServiceLocator loc = new AnyServiceLocator();
>               Soap svc = loc.getSoap();
>                               
>               QueryResult qr = svc.query("blah");
>               
>               for (int i =0; i < qr.getRecords().length; i++ ) {
>                       SObject s = qr.getRecords(i);
>                       MessageElement [] e= s.get_any();
>                       System.out.println("MessageElement array size is " + 
> e.length);
>                       for (int j = 0; j < e.length; j++ ){
>                               System.out.print(" " + e[j].getValue());
>                       }
>                       System.out.println("");
>               }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira

Reply via email to