Incorrect namespace serialization --------------------------------- Key: WSCOMMONS-74 URL: http://issues.apache.org/jira/browse/WSCOMMONS-74 Project: WS-Commons Issue Type: Bug Components: AXIOM Reporter: Ruchith Udayanga Fernando Priority: Blocker Attachments: SerializationTest.java
Hi All, I noticed that axiom doesn't serialize namespaces correctly. 1.) Namespaces in qualified elements For example we should be able to produce the following xml with the code that follows: <person1 xmlns="http://ws.apache.org/axis2/apacheconasia/06"> <name>John</name> <name>John12</name> <age>34</age> </person1> OMFactory fac = OMAbstractFactory.getOMFactory(); OMNamespace ns = fac.createOMNamespace("http://ws.apache.org/axis2/apacheconasia/06", ""); OMElement personElem = fac.createOMElement("person", ns); OMElement nameElem = fac.createOMElement("name", ns); nameElem.setText("John"); OMElement ageElem = fac.createOMElement("age", ns); ageElem.setText("34"); OMElement weightElem = fac.createOMElement("weight", ns); weightElem.setText("50"); //Add children to the person element personElem.addChild(nameElem); personElem.addChild(ageElem); personElem.addChild(weightElem); String xml = personElem.toString(); But right now this produces the following : <person xmlns="http://ws.apache.org/axis2/apacheconasia/06"><name xmlns="http://ws.apache.org/axis2/apacheconasia/06">John</name><age xmlns="http://ws.apache.org/axis2/apacheconasia/06">34</age><weight xmlns="http://ws.apache.org/axis2/apacheconasia/06">50</weight></person> The repetition of the default namespace should be avoided. This is the same even if we used a prefixed namespace. 2.) Unqualified elements among qualified elements OMFactory fac = OMAbstractFactory.getOMFactory(); OMNamespace ns = fac.createOMNamespace("http://ws.apache.org/axis2/apacheconasia/06", ""); OMElement personElem = fac.createOMElement("person", ns); //Create and add an unqualified element OMElement nameElem = fac.createOMElement("name", null); nameElem.setText("John"); personElem.addChild(nameElem); OMElement ageElem = fac.createOMElement("age", ns); ageElem.setText("34"); OMElement weightElem = fac.createOMElement("weight", ns); weightElem.setText("50"); personElem.addChild(ageElem); personElem.addChild(weightElem); System.out.println(personElem); The above should produce the following : <person xmlns="http://ws.apache.org/axis2/apacheconasia/06"><name xmlns="">John</name><age>34</age><weight>50</weight></person> But AXIOM right now produces : <person xmlns="http://ws.apache.org/axis2/apacheconasia/06"><name>John</name><age xmlns="http://ws.apache.org/axis2/apacheconasia/06">34</age><weight xmlns="http://ws.apache.org/axis2/apacheconasia/06">50</weight></person> What do u folks think? Thanks, Ruchith p.s. Added a test case -- 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 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]