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]