getFirstChildWithName should not read the next element.
-------------------------------------------------------
Key: WSCOMMONS-346
URL: https://issues.apache.org/jira/browse/WSCOMMONS-346
Project: WS-Commons
Issue Type: Improvement
Components: AXIOM
Reporter: Jose Antonio
Priority: Minor
When calling getFirstChildWithName operation over an element, it reads not only
the first element, but the next also. I think that could be improved since the
operation name semantics specifies that the caller is only interested in the
first element and not the rest of them, so a iterator (the reason to read the
next element) is useless here. Suppose the following scenario.
<root-element>
<chlid-element att="value">
<sub-child-element>
-- very big content --
</sub-child-element>
</child-element>
</root-element>
I want to read the sub-child-element only in some cases depending on the
'value' attribute. If I call to getFirstElement I get the behaviour I want,
since only the header is readed and I can skip and discard the message if it
doesn't match. I get the behaviour that I would expect from a StaX parser and a
getFirst* method, so I can discard the message quickly. Instead,
getFirstElementWithName seems to call internally to getElementsWithName and
returns the first occurence, which forces the parser to read the next element
and (in this case) the complete big message.
I think that the efficiency of that method could be improved since, for a StaX
model, one expects that the parser only reads the minimal information needed to
serve the request. Instead of calling to getElementsWithName, it would be
better an implementation based on getFirstElement and then going through
getNextOMSibling.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.