[
http://issues.apache.org/jira/browse/AXIS2-565?page=comments#action_12374250 ]
Srinath Perera commented on AXIS2-565:
--------------------------------------
Hi Ruchith;
I thinnk my check in to STAXOMBuilder fix this. see line if(namespace == null
|| namespace.getPrefix() != prefix){. If it does not I think we can fix it .
Please check it and let me know if there is trouble
Srinath
protected void processNamespaceData(OMElement node) {
..............................
if (namespaceURI != null && namespaceURI.length() > 0) {
OMNamespace namespace = node.findNamespace(namespaceURI, prefix);
if(namespace == null || namespace.getPrefix() != prefix){
if (prefix == null || "".equals(prefix)) {
namespace = node.declareDefaultNamespace(namespaceURI);
} else {
namespace = node.declareNamespace(namespaceURI, prefix);
}
}
node.setNamespaceWithNoFindInCurrentScope(namespace);
}
}
> Namespace vanishes using StAXOMBuilder
> --------------------------------------
>
> Key: AXIS2-565
> URL: http://issues.apache.org/jira/browse/AXIS2-565
> Project: Apache Axis 2.0 (Axis2)
> Type: Bug
> Versions: 0.95
> Environment: Windows XP, Java 1.5
> Reporter: Ant Grinyer
>
> Below is the simple Junit test code which demonstrates the bug comments:
> package com.mytest;
> import org.apache.ws.commons.om.impl.builder.StAXOMBuilder;
> import org.apache.ws.commons.om.impl.llom.factory.OMXMLBuilderFactory;
> import org.apache.ws.commons.om.OMAbstractFactory;
> import org.jdom.Document;
> import org.jdom.output.XMLOutputter;
> import org.jdom.input.SAXBuilder;
> import javax.xml.stream.XMLStreamReader;
> import javax.xml.stream.XMLInputFactory;
> import java.io.StringReader;
> import junit.framework.TestCase;
> /**
> * Test class to demonstrate namespace problem.
> *
> * Date: 11-Apr-2006
> */
> public class Axis2Test extends TestCase {
> public Axis2Test(String string) { super(string); }
> protected void setUp() throws Exception { super.setUp(); }
> protected void tearDown() throws Exception { super.tearDown(); }
> public void testNameSpaces() {
> StringBuffer sb = new StringBuffer();
> sb.append("<root>");
> sb.append(" <node>Some text</node>");
> sb.append(" <node>More test</node>");
> sb.append(" <items>");
> sb.append(" <item shape=\"rectangle\"
> xmlns:col=\"urn:mycolor\"><col:color rgb=\"#FF0000\">red</col:color><name>My
> fine <b>item</b></name></item>");
> sb.append(" <item shape=\"circle\"
> xmlns:col=\"urn:mycolor\"><col:color
> rgb=\"#0000FF\">blue</col:color><name>Something else</name></item>");
> sb.append(" </items>");
> sb.append(" <shapes>");
> sb.append(" <shape>rectangle</shape>");
> sb.append(" <shape>circle</shape>");
> sb.append(" <shape basedOn=\"rectangle\">square</shape>");
> sb.append(" </shapes>");
> sb.append("</root>");
> try {
> // TRY WITH AXIS2 (loses xmlns:col="urn:mycolor" namespace on
> // the <item shape="circle" xmlns:col="urn:mycolor"> element
> XMLStreamReader parser =
> XMLInputFactory.newInstance().createXMLStreamReader(new
> StringReader(sb.toString()));
> StAXOMBuilder builder =
> OMXMLBuilderFactory.createStAXOMBuilder(OMAbstractFactory.getOMFactory(),parser);
> System.out.println(builder.getDocumentElement().toString());
> // TRY JDOM (works fine)
> Document d = new SAXBuilder().build(new
> StringReader(sb.toString()));
> new XMLOutputter().output(d, System.out);
> } catch (Exception e) {
> e.printStackTrace(System.out);
> }
> }
> }
--
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