Creation of XML documents

Richard Anderson RJA at
Fri Nov 13 15:02:00 GMT 1998

> I would like to have a 'library' to which the application developer
> could say 'using this DTD please
> instantiate a XML document and help me to fill it in'.

I've got a C++ toolkit that is under development that sort of mets these
requirements. It has a SAX+DOM interface.   ( The COM variant will follow
very shortly for use in VB etc )

Using the SAX interface you can build a 'template' DOM and then fill in the
missing bits.

The toolkit has *no* dependancies on MSIE etc.

Heres some sample code for creating an XML EMAIL:

************ CODE SECTION START ****************

pDoc = pDOMAPI->createDocument();
 pRootElement = pDoc->createElement( L"EMAIL" );
pFrom = pDoc->createElement( L"From" );
 pRootElement->appendChild( pFrom );
pFrom->setAttribute( L"Priority", L"High" );
 pFrom->setAttribute( L"DeliveryReceipt", L"Yes" );
 pFrom->setAttribute( L"ReturnReceipt", L"Yes" );

pText = pDoc->createTextNode( L"RJA at" );
pFrom->appendChild( pText );

pTo = pDoc->createElement( L"To" );
pRootElement->appendChild( pTo );
pText = pDoc->createTextNode( L"enquires at" );
pTo->appendChild( pText );

pSubject = pDoc->createElement( L"Subject" );
pRootElement->appendChild( pSubject );
pText = pDoc->createTextNode( L"XML/DOM/SAX C++ Toolkit" );
pSubject->appendChild( pText );

pComment = pDoc->createComment(L"Main body of Email follows");
pRootElement->appendChild( pComment );
pBody = pDoc->createElement( L"Body" );
pRootElement->appendChild( pBody );

pText = pDoc->createTextNode( L"Seems OK so far." );
pBody->appendChild( pText );

pText = pDoc->createTextNode( L"I'll have to try harder to break it." );
pBody->appendChild( pText );

pPI = pDoc->createProcessingInstruction(L"PI",
                                          L"That's all folks!" );

pCC = pDoc->createElement( L"CC" );
pText = pDoc->createTextNode( L"xml_toolkit at" );
pCC->insertBefore( pText, NULL );
pRootElement->insertBefore( pCC,pTo );

CStdioWideStream stream;
pDOMAPI->writeXML( pRootElement, &stream );

*********** CODE SECTION END ***************

If your interested I can send you the C++ alpha toolkit.



* E-Mail  mailto:RJA at *
* WEB *

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as:
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list