You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by "Eran Chinthaka (JIRA)" <ji...@apache.org> on 2006/09/06 08:38:23 UTC
[jira] Resolved: (WSCOMMONS-74) Incorrect namespace serialization
[ http://issues.apache.org/jira/browse/WSCOMMONS-74?page=all ]
Eran Chinthaka resolved WSCOMMONS-74.
-------------------------------------
Resolution: Fixed
Assignee: Eran Chinthaka (was: Rich Scheuerle)
Fixed in current in svn. Added Ruchith's initial tests and they are successful as well.
> 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
> Assigned To: Eran Chinthaka
> Priority: Blocker
> Attachments: axiom_api_patch.txt, axiom_impl_patch.txt, axiom_test_patch.txt, jaxsw_test_patch.txt, 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: commons-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: commons-dev-help@ws.apache.org