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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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
[EMAIL PROTECTED]

"Oxygenating the Web Service Platform", www.wso2.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to