[ 
http://issues.apache.org/jira/browse/WSCOMMONS-74?page=comments#action_12430082 
] 
            
Eran Chinthaka commented on WSCOMMONS-74:
-----------------------------------------

First appologies for bit of misleading/wrong comment above 
(http://issues.apache.org/jira/browse/WSCOMMONS-74#action_12429456).

Anyway, having looked at the code Rich had pasted, now I also lean towards 
Glen's comment. If an element is defined with null as the namespace, then the 
element should not have an explicit namespace. In other words it should be in 
default *default* namespace. Which means the following code fragment is 
correct. 

 if (writer.getNamespaceContext().getNamespaceURI("") != null) {
             writer.writeDefaultNamespace("");
 }

BTW, I can not understand why the comment there was obscure. IIRC, I put that 
comment and appologies if some of you can not understand that. Its my bad but I 
tried my level best to explain it from the little bit of English I know. 



> 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: Rich Scheuerle
>            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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to