[ 
http://issues.apache.org/jira/browse/WSCOMMONS-10?page=comments#action_12375191 
] 

Glen Daniels commented on WSCOMMONS-10:
---------------------------------------

+1 that this seems very useful.  Essentially this means being able to return an 
XMLStreamReader with a filled-in namespace map for all namespaces in scope.  We 
wouldn't get NAMESPACE StAX events, but the getNamespace*() methods would work.

In fact, this should be the default for getXMLStreamReader(), not a separate 
utility!  This will already work when we end up delegating to the "real" 
XMLStreamReader in a parsing context (right?), and I think it should also work 
when you ask for an XMLStreamReader on an OM structure that has been built up 
programatically.


> Request to have a utility method to get a copy of child OMElement whose 
> namespaces may be declared at parent OMElements
> -----------------------------------------------------------------------------------------------------------------------
>
>          Key: WSCOMMONS-10
>          URL: http://issues.apache.org/jira/browse/WSCOMMONS-10
>      Project: WS-Commons
>         Type: Improvement

>   Components: AXIOM
>     Reporter: Raymond Feng

>
> Here's the topic we discussed at Axis2 mailing list.
> Raymond Feng wrote:
> > Hi,
> >  
> > I have an OM containment hiearchy as "SOAPEnvelope --> SOAPBody -->
> > OMElement e1" and the namespace xmlns:ns1="http://ns1"; is declared at
> > the SOAPEnvelope level (I observe that It's the behavior when the
> > SOAPEnvelope is received from the Axis2 engine).
> >  
> > XMLStream reader = e1.getXMLStreamReader();
> >  
> > For the reader, I found "reader.getNamespaceCount()" returns 0. Is it by
> > design because the namespace "http://ns1"; is not declared at e1 level?
> > If so, it could be a problem if I pull events from the reader directly
> > since the "http://ns1"; won't be reported. What's the best way to
> > populate namespaces from the ancestor scopes into e1?
> According to StAX api
> (http://java.sun.com/webservices/docs/1.5/api/javax/xml/stream/XMLStreamReader.html#getNamespaceCount())
> "Returns the count of namespaces declared on this START_ELEMENT or
> END_ELEMENT....".
> So getNamespaceCount() should only return the namespace declared within
> e1 element.
> But if you call reader.getNamespaceURI() after START_ELEMENT of e1, you
> should get http://ns1.
> -- Chinthaka
> Raymond Feng wrote:
> > Hi, Eran.
> > 
> > Thanks for the reply. I understand your point. But it also means that
> > e1.getXMLStreamReader() returns a reader pointing to the XML fragment
> > which is only valid with the parent chain.
> > 
> > Another way to ask the question would be:
> > 
> > Is there any utility to detach/clone the child OMElement so that it can
> > be used as a standalone OMElement with all the required namespaces
> > declared/populated?
> The straight answer is no.
> Detach was implemented to ease some one from handling the pointers here
> and there, in the case of llom implementation or any other implementation.
> If this seems useful, please file a JIRA and I will implement this when
> I get a chance :).
> -- Chinthaka

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to