StreamingOMSerializer expands OMSourcedElement nodes
----------------------------------------------------

                 Key: WSCOMMONS-512
                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-512
             Project: WS-Commons
          Issue Type: Bug
          Components: AXIOM
            Reporter: Rich Scheuerle
            Assignee: Rich Scheuerle


Background:
An OM tree may have one or more OMSourcedElement nodes in the tree.  An 
OMSourcedElement represents an OMElement but contains its content in an 
alternative form (String, bytes, JAXB object etc.)
The OMSourcedElement nodes allow OM to represent a message with a much flatter 
tree. 

Problem:
If an OM tree containing OMSourcedElements is serialized with the 
StreamingOMSerializer, the OMSourcedElements are inadvertently expanded.  This 
extra processing is slow and unnecessary.   


Solution:
The StreamingOMSerializer uses an OMNavigator to walk the incoming 
XMLStreamReader events.   When the OMNavigator encounters a OMSourcedElement, 
it expands the OMSourcedElement so that it can generated the XMLStreamReader 
events for the content.

The solution is to add a property to the OMNavigator to allow it to tree 
OMSourcedElements as leaf objects.   In such cases, the StreamingOMSerializer 
can gain access to the OMDataSource and write it out directly.   This increases 
performance because it eliminates the expansion of the tree.


I am working on a series of validation tests and a code solution.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to