axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jongjin Choi (JIRA)" <axis-...@ws.apache.org>
Subject [jira] Commented: (AXIS-1817) MessageElement.getValue doesn't do XML decoding
Date Fri, 18 Feb 2005 12:30:48 GMT
     [ 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


Mime
View raw message