Im encountering a strange issue where I am not adding an attribute to my XML tag but it is appearing anyway.
vb Code:
  1. Option Explicit
  2. ' This procedure creates XML document
  3. ' Requires msxml.dll (Go to Project --> References and
  4. ' and choose Microsoft XML version 2.0, or whatever the
  5. ' current version you have installed)
  6.  
  7.  
  8. Private Sub Create_XML()
  9.    
  10.    Dim objDom As DOMDocument
  11.    Dim objProcInst As IXMLDOMProcessingInstruction
  12.    Dim objRootElem As IXMLDOMElement
  13.    Dim objHeaderElem As IXMLDOMElement
  14.    Dim objTargetElem As IXMLDOMElement
  15.    Dim objTradePosElem As IXMLDOMElement
  16.    Dim objMemberElem As IXMLDOMElement
  17.    Dim objMemberRel As IXMLDOMAttribute
  18.    Dim objMemberName As IXMLDOMElement
  19.    Dim objAtt As IXMLDOMAttribute
  20.    Set objDom = New DOMDocument
  21.    
  22.  
  23.  
  24.     Set objProcInst = objDom.createProcessingInstruction("xml", "version='1.0' encoding='UTF-8' standalone='yes'")
  25.     objDom.appendChild objProcInst
  26.    
  27.    ' Creates root element
  28.    Set objRootElem = objDom.createElement("riskImport")
  29.    objDom.appendChild objRootElem
  30.    
  31.    ' Creates NameSpace Attributes etc on to the root Element
  32.    Set objAtt = objDom.createAttribute("xmlns")
  33.    objAtt.NodeValue = "http://www.test.com/xml"
  34.    objRootElem.setAttributeNode objAtt
  35.    
  36.    Set objAtt = objDom.createAttribute("schemaVersion")
  37.    objAtt.NodeValue = "1.0"
  38.    objRootElem.setAttributeNode objAtt
  39.    
  40.     Set objAtt = objDom.createAttribute("importDatetime")
  41.    objAtt.NodeValue = "2009-06-05T14:20:20.661Z"
  42.    objRootElem.setAttributeNode objAtt
  43.  
  44.    
  45.    ' Create riskDataHeader element
  46.    Set objHeaderElem = objDom.createElement("riskDataHeader")
  47.    objRootElem.appendChild objHeaderElem
  48.  
  49.  
  50.    Set objMemberName = objDom.createElement("portfolio")
  51.    objMemberName.Text = "myPortfolio"
  52.    objHeaderElem.appendChild objMemberName
  53.    
  54.    Debug.Print objDom.XML
  55.    
  56. End Sub
This outputs the following.
Why is the xmlns attribute appearing on the riskDataHeader element and how to I prevent it from happening?
Code:
<?xml version="1.0" standalone="yes"?>
<riskImport xmlns="http://www.test.com/xml" schemaVersion="1.0" importDatetime="2009-06-05T14:20:20.661Z">
	<riskDataHeader xmlns="">
		<portfolio>myPortfolio</portfolio>
	</riskDataHeader>
</riskImport>