Uploaded image for project: 'Axiom'
  1. Axiom
  2. AXIOM-96

StreamingOMSerializer expands OMSourcedElement nodes

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.2.9
    • None
    • None

    Description

      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.

      Attachments

        Activity

          People

            scheu@us.ibm.com Rich Scheuerle
            scheu@us.ibm.com Rich Scheuerle
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - 24h
                24h
                Remaining:
                Remaining Estimate - 24h
                24h
                Logged:
                Time Spent - Not Specified
                Not Specified