Hi all,
I've been looking at the work that occurs for OMElement.getText()
which is currently used by the Axis2 addressing handlers to extract
the (text) values of certain headers (wsa:To, wsa:Action,
wsa:MessageID).

I've noticed that this delegates to OMTextImpl.getText() which then
does some fancy processing to identify QNames and expand
prefix:localname to namespace:localname

The values in these headers are generally http or urn URIs, hence
getText() finds the ":" and looks for an associated namespace.

This leads to a couple of concerns
1. The value returned may not be what we're looking for if an
xmlns:http="" or xmlns:urn="" is in scope. This is a very real
problem.
2. In the 99% case where not such declarations are in scope, the
string is being indexOf()'d and a lookup done when there is probably
nothing to find.

It appears that I could access the value directly by calling
OMText.getTextCharacters()? However, I'd then have to replicate the
code in OMElement to find the OMText node which I'd prefer not to do.
Would the Axiom team consider adding a char[] getTextCharacters() or
String getActualText() to OMElement?

Cheers,
David

--
David Illsley - IBM Web Services Development

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to