Andreas Veithen created AXIOM-435:
-------------------------------------
Summary: Consistently implement support for entity references
Key: AXIOM-435
URL: https://issues.apache.org/jira/browse/AXIOM-435
Project: Axiom
Issue Type: Improvement
Components: API
Affects Versions: 1.2.13
Reporter: Andreas Veithen
Assignee: Andreas Veithen
Priority: Minor
Currently (unexpanded) entity references are represented as OMText instances
with type=ENTITY_REFERENCE_NODE. This is a bad choice:
* An entity reference doesn't necessarily represent character data: the
expansion can e.g. produce elements. Representing it as an OMText is therefore
conceptually wrong.
* There is lots of code that checks for OMText and then uses OMText#getText()
under the assumption that the return value represents character data. However,
for an entity reference, getText() would return the entity name.
It should also be noted that the test coverage for entity references is
currently almost nonexistent. As a result, the code that handles entity
references is inconsistent. E.g. OMStAXWrapper/SwitchingWrapper contains the
following code:
if ((currentEvent == START_ELEMENT)
|| (currentEvent == END_ELEMENT)
|| (currentEvent == ENTITY_REFERENCE)) {
return ((OMElement) lastNode).getLocalName();
} else {
throw new IllegalStateException();
}
This is obviously incorrect.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]