title: Java DOM XML is skipping xmlns properties
body: <p>I need to generate an xml file in Java, so I chose to use DOM (until there everything is ok), here is the root tag of what i need to create</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;KeyContainer Version="1.0" xmlns="urn:ietf:params:xml:ns:keyprov:pskc:1.0" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:xml="http://www.w3.org/XML/1998/namespace"&gt;
  </code></pre>
  
  <p>Here is my source code</p>
  
  <pre><code>PrintWriter out = new PrintWriter(path);
  Document xmldoc = null;
  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
          DocumentBuilder builder = factory.newDocumentBuilder();
          DOMImplementation impl = builder.getDOMImplementation();
          Element e = null;
          Node n = null;
          xmldoc = impl.createDocument(null, "KeyContainer", null);
          /* Noeuds non bouclés */
          Element keycontainer = xmldoc.getDocumentElement();
              keycontainer.setAttributeNS(null, "Version", "1.0");
              keycontainer.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:ds","http://www.w3.org/2000/09/xmldsig#");
              keycontainer.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xenc", "http://www.w3.org/2001/04/xmlenc#");
              keycontainer.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xml", "http://www.w3.org/XML/1998/namespace");
              keycontainer.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns", "urn:ietf:params:xml:ns:keyprov:pskc:1.0");
  /* Non relevant Info*/
  DOMSource domSource = new DOMSource(xmldoc);
          StreamResult streamResult = new StreamResult(out);
          TransformerFactory tf = TransformerFactory.newInstance();
          Transformer serializer = tf.newTransformer();
          serializer.setOutputProperty(OutputKeys.ENCODING,"utf-8");
          serializer.setOutputProperty(OutputKeys.VERSION,"1.0");
          serializer.setOutputProperty(OutputKeys.INDENT,"yes");
          serializer.setOutputProperty(OutputKeys.STANDALONE,"yes");
          serializer.transform(domSource, streamResult); 
  </code></pre>
  
  <p>And here is what I get </p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8" standalone="no"?&gt;
  &lt;KeyContainer xmlns="" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" Version="1.0"&gt;
  </code></pre>
  
  <p>Problem is the xmlns property is empty, and xmlns:xml is missing, what can I do to get all information ?</p>
  
  <p>Thanks a lot stackoverflow</p>
  
  <p>(PS : Got NAMESPACE_ERR if anything else than "<a href="http://www.w3.org/2000/xmlns/" rel="nofollow noreferrer">http://www.w3.org/2000/xmlns/</a>" in NamespaceURI field)</p>