Option Explicit
' This procedure creates XML document
' Requires msxml.dll (Go to Project --> References and
' and choose Microsoft XML version 2.0, or whatever the
' current version you have installed)
Private Sub Create_XML()
Dim objDom As DOMDocument
Dim objProcInst As IXMLDOMProcessingInstruction
Dim objRootElem As IXMLDOMElement
Dim objHeaderElem As IXMLDOMElement
Dim objTargetElem As IXMLDOMElement
Dim objTradePosElem As IXMLDOMElement
Dim objMemberElem As IXMLDOMElement
Dim objMemberRel As IXMLDOMAttribute
Dim objMemberName As IXMLDOMElement
Dim objAtt As IXMLDOMAttribute
Set objDom = New DOMDocument
Set objProcInst = objDom.createProcessingInstruction("xml", "version='1.0' encoding='UTF-8' standalone='yes'")
objDom.appendChild objProcInst
' Creates root element
Set objRootElem = objDom.createElement("riskImport")
objDom.appendChild objRootElem
' Creates NameSpace Attributes etc on to the root Element
Set objAtt = objDom.createAttribute("xmlns")
objAtt.NodeValue = "http://www.test.com/xml"
objRootElem.setAttributeNode objAtt
Set objAtt = objDom.createAttribute("schemaVersion")
objAtt.NodeValue = "1.0"
objRootElem.setAttributeNode objAtt
Set objAtt = objDom.createAttribute("importDatetime")
objAtt.NodeValue = "2009-06-05T14:20:20.661Z"
objRootElem.setAttributeNode objAtt
' Create riskDataHeader element
Set objHeaderElem = objDom.createElement("riskDataHeader")
objRootElem.appendChild objHeaderElem
Set objMemberName = objDom.createElement("portfolio")
objMemberName.Text = "myPortfolio"
objHeaderElem.appendChild objMemberName
Debug.Print objDom.XML
End Sub