Click to See Complete Forum and Search --> : Assign DTD to XML Document


NYWalker
November 3rd, 2002, 06:59 AM
Hi CodeGurus!

I'm a XML beginner. I try to save my program settings in XML file using Microsoft Visual C++ 6.0. Here is the sample from my code:

--------------------------------------------------------------
IXMLDOMDocumentPtr XmlDocPtr;
IXMLDOMNodePtr pNode;
IXMLDOMElementPtr XmlRootPtr;

b=XmlDocPtr->loadXML(_bstr_t("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\" ?><!DOCTYPE Settings SYSTEM \"d:\\system.dtd\"><Settings></Settings>"));
if (!b) return;

XmlDocPtr->get_documentElement(&XmlRootPtr);

if (XmlRootPtr)
{
VARIANT vtTemp2;
vtTemp2.vt=VT_I2;
vtTemp2.iVal = NODE_ELEMENT;
pNode = XmlDocPtr->createNode(vtTemp2, "Program", "");
pNode->put_dataType(L"NODE_TEXT");
pNode->put_text(L"MYCOOLER");
XmlRootPtr->appendChild(pNode);

pNode = XmlDocPtr->createNode(vtTemp2, "Distributor", "");
pNode->put_dataType(L"NODE_TEXT");
pNode->put_text(L"IBM Corp.");
XmlRootPtr->appendChild(pNode);

pNode = XmlDocPtr->createNode(vtTemp2, "Version", "");
pNode->put_dataType(L"NODE_TEXT");
pNode->put_text(L"6.0");
XmlRootPtr->appendChild(pNode);
};

variant_t vDest(L"d:\\settings.xml");
XmlDocPtr->save(vDest);
--------------------------------------------------------------


File d:\system.dtd contains:

--------------------------------------------------------------
<!ELEMENT Settings (Program?,
Distributor?,
Version?)>

<!ELEMENT Program (#PCDATA)>
<!ELEMENT Distributor (#PCDATA)>
<!ELEMENT Version (#PCDATA)>
--------------------------------------------------------------


But resulted file "settings.xml" is not formatted according system.dtd specification. What's wrong? Help me!