[jira] [Updated] (AXIOM-28) OMElement.declareDefaultNamespace() declares empty namespace for child element.
[ https://issues.apache.org/jira/browse/AXIOM-28?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andreas Veithen updated AXIOM-28: - Fix Version/s: (was: 1.2.13) 1.2.14 OMElement.declareDefaultNamespace() declares empty namespace for child element. --- Key: AXIOM-28 URL: https://issues.apache.org/jira/browse/AXIOM-28 Project: Axiom Issue Type: Bug Components: LLOM Affects Versions: 1.2.8 Environment: Microsoft Windows 2003 Server, Java 1.5.0_11. Axis2 version 1.3 (uses AXIOM version 1.2.5). Reporter: Yechiel Mondrowitz Assignee: Andreas Veithen Fix For: 1.2.14 When calling declareDefaultNamespace() on a parent node, AXIOM assignes a blank namespace on the first level's child element. So if XML is passed to AXIOM that looks like this: outerTag innerTag node1Hello/node1 node2Hello/node2 /innerTag /outerTag And then declareDefaultNamespace() of http://someNamespace; is called on the outerTag, the resulting XML will be this: outerTag xmlns=http://someNamespace; innerTag xmlns= node1Hello/node1 node2Hello/node2 /innerTag /outerTag Notice the xmlns= declared in the innerTag. According to my understanding of XML namespaces, the innerTag and its child nodes will no longer belong to the parent namespace of http://someNamespace;, since it explicitly overrides it with an empty namespace. So innerTag and its child nodes will in fact not belong to any namespace! Here is a small program to illustrate: import org.apache.axiom.om.*; import org.apache.axiom.om.impl.llom.util.*; public class Test2 { public static void main(String [] args) { try { String xmlString = outerTag + innerTag + node1Hello/node1 + node2Hello/node2 + /innerTag + /outerTag; OMElement elem = AXIOMUtil.stringToOM(xmlString); elem.declareDefaultNamespace(http://someNamespace;); System.out.println(elem.toString()); } catch(Exception e) { e.printStackTrace(); } } } The output of this program is this (I added line breaks in the XML for easier readability): outerTag xmlns=http://someNamespace; innerTag xmlns= node1Hello/node1 node2Hello/node2 /innerTag /outerTag As you can see, the innerTag was assigned xmlns= by AXIOM. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira - To unsubscribe, e-mail: dev-unsubscr...@ws.apache.org For additional commands, e-mail: dev-h...@ws.apache.org
[jira] [Updated] (AXIOM-28) OMElement.declareDefaultNamespace() declares empty namespace for child element.
[ https://issues.apache.org/jira/browse/AXIOM-28?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andreas Veithen updated AXIOM-28: - Fix Version/s: (was: 1.2.12) 1.2.13 OMElement.declareDefaultNamespace() declares empty namespace for child element. --- Key: AXIOM-28 URL: https://issues.apache.org/jira/browse/AXIOM-28 Project: Axiom Issue Type: Bug Components: LLOM Affects Versions: 1.2.8 Environment: Microsoft Windows 2003 Server, Java 1.5.0_11. Axis2 version 1.3 (uses AXIOM version 1.2.5). Reporter: Yechiel Mondrowitz Assignee: Andreas Veithen Fix For: 1.2.13 When calling declareDefaultNamespace() on a parent node, AXIOM assignes a blank namespace on the first level's child element. So if XML is passed to AXIOM that looks like this: outerTag innerTag node1Hello/node1 node2Hello/node2 /innerTag /outerTag And then declareDefaultNamespace() of http://someNamespace; is called on the outerTag, the resulting XML will be this: outerTag xmlns=http://someNamespace; innerTag xmlns= node1Hello/node1 node2Hello/node2 /innerTag /outerTag Notice the xmlns= declared in the innerTag. According to my understanding of XML namespaces, the innerTag and its child nodes will no longer belong to the parent namespace of http://someNamespace;, since it explicitly overrides it with an empty namespace. So innerTag and its child nodes will in fact not belong to any namespace! Here is a small program to illustrate: import org.apache.axiom.om.*; import org.apache.axiom.om.impl.llom.util.*; public class Test2 { public static void main(String [] args) { try { String xmlString = outerTag + innerTag + node1Hello/node1 + node2Hello/node2 + /innerTag + /outerTag; OMElement elem = AXIOMUtil.stringToOM(xmlString); elem.declareDefaultNamespace(http://someNamespace;); System.out.println(elem.toString()); } catch(Exception e) { e.printStackTrace(); } } } The output of this program is this (I added line breaks in the XML for easier readability): outerTag xmlns=http://someNamespace; innerTag xmlns= node1Hello/node1 node2Hello/node2 /innerTag /outerTag As you can see, the innerTag was assigned xmlns= by AXIOM. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira - To unsubscribe, e-mail: dev-unsubscr...@ws.apache.org For additional commands, e-mail: dev-h...@ws.apache.org
[jira] Updated: (AXIOM-28) OMElement.declareDefaultNamespace() declares empty namespace for child element.
[ https://issues.apache.org/jira/browse/AXIOM-28?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andreas Veithen updated AXIOM-28: - Component/s: LLOM Fix Version/s: (was: 1.2.11) 1.2.12 OMElement.declareDefaultNamespace() declares empty namespace for child element. --- Key: AXIOM-28 URL: https://issues.apache.org/jira/browse/AXIOM-28 Project: Axiom Issue Type: Bug Components: LLOM Affects Versions: 1.2.8 Environment: Microsoft Windows 2003 Server, Java 1.5.0_11. Axis2 version 1.3 (uses AXIOM version 1.2.5). Reporter: Yechiel Mondrowitz Assignee: Andreas Veithen Fix For: 1.2.12 When calling declareDefaultNamespace() on a parent node, AXIOM assignes a blank namespace on the first level's child element. So if XML is passed to AXIOM that looks like this: outerTag innerTag node1Hello/node1 node2Hello/node2 /innerTag /outerTag And then declareDefaultNamespace() of http://someNamespace; is called on the outerTag, the resulting XML will be this: outerTag xmlns=http://someNamespace; innerTag xmlns= node1Hello/node1 node2Hello/node2 /innerTag /outerTag Notice the xmlns= declared in the innerTag. According to my understanding of XML namespaces, the innerTag and its child nodes will no longer belong to the parent namespace of http://someNamespace;, since it explicitly overrides it with an empty namespace. So innerTag and its child nodes will in fact not belong to any namespace! Here is a small program to illustrate: import org.apache.axiom.om.*; import org.apache.axiom.om.impl.llom.util.*; public class Test2 { public static void main(String [] args) { try { String xmlString = outerTag + innerTag + node1Hello/node1 + node2Hello/node2 + /innerTag + /outerTag; OMElement elem = AXIOMUtil.stringToOM(xmlString); elem.declareDefaultNamespace(http://someNamespace;); System.out.println(elem.toString()); } catch(Exception e) { e.printStackTrace(); } } } The output of this program is this (I added line breaks in the XML for easier readability): outerTag xmlns=http://someNamespace; innerTag xmlns= node1Hello/node1 node2Hello/node2 /innerTag /outerTag As you can see, the innerTag was assigned xmlns= by AXIOM. -- This message is automatically generated by JIRA. - For more information on JIRA, see: http://www.atlassian.com/software/jira - To unsubscribe, e-mail: dev-unsubscr...@ws.apache.org For additional commands, e-mail: dev-h...@ws.apache.org