[ https://issues.apache.org/jira/browse/AXIOM-478?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15106391#comment-15106391 ]
LU Jie commented on AXIOM-478: ------------------------------ Hi Andreas, I have another problem need you help. After I got the large content this getTextAsStream(), I continued to loop the child elements to get other field. But I got OMException like this: Exception in thread "main" org.apache.axiom.om.OMException: The builder has already been closed at org.apache.axiom.core.CoreParentNodeSupport.ajc$interMethod$org_apache_axiom_core_CoreParentNodeSupport$org_apache_axiom_core_CoreParentNode$buildNext(CoreParentNodeSupport.aj:94) at org.apache.axiom.om.impl.llom.OMElementImpl.buildNext(OMElementImpl.java:1) at org.apache.axiom.core.CoreParentNodeSupport.ajc$interMethodDispatch1$org_apache_axiom_core_CoreParentNodeSupport$org_apache_axiom_core_CoreParentNode$buildNext(CoreParentNodeSupport.aj) at org.apache.axiom.core.CoreChildNodeSupport.ajc$interMethod$org_apache_axiom_core_CoreChildNodeSupport$org_apache_axiom_core_CoreChildNode$coreGetNextSibling(CoreChildNodeSupport.aj:115) at org.apache.axiom.om.impl.llom.OMNodeImpl.coreGetNextSibling(OMNodeImpl.java:1) at org.apache.axiom.om.impl.common.AxiomChildNodeSupport.ajc$interMethod$org_apache_axiom_om_impl_common_AxiomChildNodeSupport$org_apache_axiom_om_impl_intf_AxiomChildNode$getNextOMSibling(AxiomChildNodeSupport.aj:35) at org.apache.axiom.om.impl.llom.OMNodeImpl.getNextOMSibling(OMNodeImpl.java:1) at org.apache.axiom.om.impl.traverse.OMChildrenIterator.getNextNode(OMChildrenIterator.java:36) at org.apache.axiom.om.impl.traverse.OMAbstractIterator.hasNext(OMAbstractIterator.java:69) at org.apache.axiom.om.impl.traverse.OMFilterIterator.hasNext(OMFilterIterator.java:54) ...... Seems the builder was closed after getTextAsStream(). Is there a way to continue getting the remainder elements? > Solution for parsing large XML > ------------------------------ > > Key: AXIOM-478 > URL: https://issues.apache.org/jira/browse/AXIOM-478 > Project: Axiom > Issue Type: Question > Reporter: LU Jie > > This is LU Jie from IBM. We use axiom to parse Atom in our project. > One of our CMIS API will attach file content to the XML. If the file size is > large, we will get a large atom. > If we use Entry.getExtension(QName) to parse the content, it will allocate a > large memory(around 5-6 times of the file size). > We need you help to clarify if we can use DOM-like API of axiom to get the > text of a certain element as stream. That is without allocating a large > object in memory. > Or is there an alternative solution for this use case? > We DO know that we can use pull-parser to parse the XML as stream. But we > need help to investigate if axiom has already provided an API or solution to > avoid writing parser by ourselves. > Here's the sample XML. We need to parse the text of cmisra:base64 element: > {noformat} > <atom:entry > xmlns:atom="http://www.w3.org/2005/Atom" > xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/" > xmlns:chemistry="http://chemistry.apache.org/" > xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"> > <atom:id > > xmlns:atom="http://www.w3.org/2005/Atom">urn:uuid:00000000-0000-0000-0000-00000000000 > </atom:id> > <atom:title > xmlns:atom="http://www.w3.org/2005/Atom" > type="text">doucment1446016556658.txt > </atom:title> > <atom:updated > xmlns:atom="http://www.w3.org/2005/Atom">2015-10-28T07:15:57.594Z > </atom:updated> > <cmisra:content > xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/"> > <cmisra:mediatype > > xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/">text/plain > </cmisra:mediatype> > <chemistry:filename > > xmlns:chemistry="http://chemistry.apache.org/">doucment1446016556658.txt > </chemistry:filename> > <cmisra:base64 > > xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/">Base64 > encoded content of large file > </cmisra:base64> > </cmisra:content> > <cmisra:object > xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/"> > <cmis:properties > xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"> > <cmis:propertyId > xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/" > propertyDefinitionId="cmis:objectTypeId"> > <cmis:value > > xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/">snx:file > </cmis:value> > </cmis:propertyId> > <cmis:propertyString > xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/" > propertyDefinitionId="cmis:name"> > <cmis:value > > xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/">doucment1446016556658.txt > </cmis:value> > </cmis:propertyString> > </cmis:properties> > </cmisra:object> > </atom:entry> > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@ws.apache.org For additional commands, e-mail: dev-h...@ws.apache.org