axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xinjun Chen" <xjchen...@gmail.com>
Subject Re: [Axis2] Namespace issue during conversion from DOM Element to OMElement
Date Wed, 10 Jan 2007 10:31:39 GMT
Hi Paul,

What do you mean by leading space?
There is no leading space.
The default namespace in the original DOM Element is defined as *xmlns="**
http://cis.com"*
But the OMElement returned after calling Axis2Util.toOM(Element) has no
namespace,
after adding the OMElement to the SOAPBody, every tag is included with *
xmlns=""*.

I believe somehow Axis2Util.toOM(Element) ignored the namespaces.


Regards,
Xinjun

On 1/10/07, Paul Fremantle <pzfreo@gmail.com> wrote:
>
> Xinjun
>
> Does the namespace really have a leading space as in your email? Maybe
> there is a bug in how that is parsed by StAX?
>
> Paul
>
> On 1/10/07, Xinjun Chen <xjchen001@gmail.com> wrote:
> > I believe conversion between DOM Element and OMElement is quite general.
> > Could anyone suggest a good way to do the conversions correctly?
> >
> >
> >
> > On 1/10/07, Xinjun Chen <xjchen001@gmail.com> wrote:
> > >
> > > Hi,
> > >
> > > I am trying to convert a DOM Element to OMElement using the following
> toOM
> > code in  org.apache.axis2.security.util.Axis2Util.
> > >
> > >  public static OMElement toOM(Element element) throws Exception {
> > >   try {
> > >    org.apache.xml.security.Init.init();
> > >    ByteArrayOutputStream os = new ByteArrayOutputStream();
> > >    XMLUtils.outputDOM (element, os, true);
> > >
> > >    ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray
> ());
> > >    XMLStreamReader reader =
> > XMLInputFactory.newInstance().createXMLStreamReader(is);
> > >
> > >    StAXOMBuilder builder = new StAXOMBuilder(reader);
> > >    builder.setCache(true);
> > >    return builder.getDocumentElement();
> > >   } catch (XMLStreamException e) {
> > >    log.fatal(e.getMessage(), e);
> > >    throw new Exception("Error when converting from DOM Element to
> OM.");
> > >   }
> > >
> > > There are two problems with the code:
> > > 1. I must add the bolded line in the toOM() method.
> > > 2. This method seems not deal with namespace correctly.
> > >
> > > My original DOM Element is as follows:
> > > <?xml version="1.0"
> > encoding="UTF-8"?><getHearingDetailsByCaseNoWSReturn
> > xmlns="
> > http://cis.com
> "><hearingDetailsVO><duration/><applicationNo>sAppNo0</applicationNo></hearingDetailsVO></getHearingDetailsByCaseNoWSReturn
> > >
> > >
> > > But when I use the method to convert the DOM Element into OMElement,
> it
> > reads:
> > >
> > <getHearingDetailsByCaseNoWSReturn><hearingDetailsVO><duration
> >
> /><applicationNo>sAppNo0</applicationNo></hearingDetailsVO></getHearingDetailsByCaseNoWSReturn>
> >
> > >
> > > It seems that the namespace is ignored by the Axis2Util.toOM().
> > >
> > > After I add the OMElement to a SOAPEnvelope using the following code,
> > every element is qualified with "" namespace which is unexpected.
> > >
> > > SOAPFactory fac = OMAbstractFactory.getSOAP11Factory();
> > > SOAPEnvelope envelope = fac.getDefaultEnvelope();
> > > OMElement om = Axis2Util.toOM((Element)retNode);
> > > envelope.getBody().addChild(om);
> > >
> > > /*******************************
> > > Result SOAPEnvelope
> > > *******************************/
> > > <?xml version='1.0' encoding='utf-8'?>
> > > <soapenv:Envelope
> > >  xmlns:soapenv="
> > http://schemas.xmlsoap.org/soap/envelope/">
> > >  <soapenv:Header />
> > >  <soapenv:Body>
> > >   <getHearingDetailsByCaseNoWSReturn xmlns="">
> > >    <hearingDetailsVO xmlns="">
> > >     <duration xmlns="" />
> > >     <applicationNo xmlns="">sAppNo0</applicationNo>
> > >    </hearingDetailsVO>
> > >   </getHearingDetailsByCaseNoWSReturn>
> > >  </soapenv:Body>
> > > </soapenv:Envelope>
> > >
> > >
> > > Could anyone tell me how can I solve the problems?
> > >
> > >
> > > Regards,
> > > Xinjun
> >
> >
>
>
> --
> Paul Fremantle
> VP/Technology, WSO2 and OASIS WS-RX TC Co-chair
>
> http://bloglines.com/blog/paulfremantle
> paul@wso2.com
>
> "Oxygenating the Web Service Platform", www.wso2.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>

Mime
View raw message