Example 2
The marshal_Node function
void marshal_Node(XMLDoc* pDoc, XMLElement* pDocElem, const ElementDesc* pet, void* pdata, void* pother, int aspect) { for(Node* pNode=*(Node**)pdata; pNode!=0; pNode=pNode->next) { if(0 == pDocElem) pDocElem = pDoc->getDocumentElement(); XMLElement* pElem = pDocElem->appendElement("Node", 4); pNode->Marshal(pDoc, pElem, pother, aspect); delete pElem; } }