Dear Thomas,

For the second part of the test, this is probably something in the order
in which the serializer handled things. Your code has a bug I think,

>     attr = doc.createAttributeNS("http://www.w3.org/2000/xmlns/";,
"xmlns");
>     tag.setAttributeNodeNS(attr);

You do not actually set your namespace on the attribute as the value, so
I would put
        attr.setValue(namespaceURI);
between the two lines.

(Why the first test without explicitly setting the attribute does not
work I do not know)

Kind regards,

--Sander.



> -----Original Message-----
> From: Thomas B�rkel [mailto:[EMAIL PROTECTED]
> Sent: 26 May, 2003 3:32 PM
> To: Xerces Mailinglist
> Subject: createElementNS() does not work as expected in new 
> versions of
> Xerces (> 2.0.1)
> 
> 
> HI!
> 
> We used createElementNS() in 2.0.1 successfully. Since we 
> switched to newer versions (now 2.4.0), it stopped working as 
> expected. We have reviewed our code and changed it as 
> suggested in 
> http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7687 with 
> no positive effect.
> 
> Using 2.0.1, the test code below produces:
> <root><testNode xmlns="http://schemas.p2plus.com/test/"/></root>
> <root><testNode xmlns="http://schemas.p2plus.com/test/"/></root>
> 
> Using 2.4.0, the test code below produces:
> <root><testNode/></root>
> <root><testNode xmlns=""/></root>
> 
> Any help would be greatly appreciated. Thanks!
> 
> Regards,
> Thomas
> 
> 
> Test code:
> ----------
> 
> import java.io.*;
> import javax.xml.parsers.*;
> import org.apache.xml.serialize.*;
> import org.w3c.dom.*;
> import org.xml.sax.*;
> 
> public class NamespaceTest {
>   
>   public static void main(String[] args) throws Exception {
>     Document doc;
>     Element root, tag;
>     Attr attr;
>     String namespaceURI = "http://schemas.p2plus.com/test/";;
>     String tagName = "testNode";
>     
>     doc = getDocument("<root />");
>     root = doc.getDocumentElement();
>     tag = doc.createElementNS(namespaceURI, tagName);  
>     root.appendChild(tag);
>     System.out.println(docToString(doc));
>     
>     doc = getDocument("<root />");
>     root = doc.getDocumentElement();
>     tag = doc.createElementNS(namespaceURI, tagName);  
>     attr = 
> doc.createAttributeNS("http://www.w3.org/2000/xmlns/";, "xmlns");
>     tag.setAttributeNodeNS(attr);
>     root.appendChild(tag);
>     System.out.println(docToString(doc));
>   }
>   
>   public static Document getDocument(String xml) throws Exception {
>     DocumentBuilderFactory dbf;
>     DocumentBuilder db;
>     Document doc;
>     
>     dbf = DocumentBuilderFactory.newInstance();
>     dbf.setNamespaceAware(true);
>     dbf.setValidating(true); 
>     
> dbf.setAttribute("http://apache.org/xml/features/validation/dynamic";,
>                     new Boolean(true));
>     
> dbf.setAttribute("http://apache.org/xml/features/validation/schema";, 
>                      new Boolean(true));
>     db = dbf.newDocumentBuilder();
>     doc = db.parse(new InputSource(new StringReader(xml)));
>     return(doc);
>   }
>   
>   public static String docToString(Document doc) throws Exception {
>     OutputFormat outputFormat;
>     XMLSerializer xmlSerializer;
>     StringWriter sw;
>     
>     try {
>       sw = new StringWriter();
>       outputFormat = new OutputFormat();
>       outputFormat.setOmitXMLDeclaration(true);
>       outputFormat.setEncoding("utf-16");
>       outputFormat.setPreserveSpace(true);
>       xmlSerializer = new XMLSerializer(sw, outputFormat);
>       xmlSerializer = new XMLSerializer(sw, outputFormat);
>       xmlSerializer.serialize(doc);
>       return(sw.toString());
>     } catch (IOException ioe) {
>       return(ioe.getMessage());
>     }
>   }
> }
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to