DEFINE CLASS MyCollection AS Custom oCollection=null FUNCTION INIT THIS.oCollection=CREATEOBJECT("Collection") ENDFUNC FUNCTION ToString LOCAL lcResult, loNumber lcResult="" FOR EACH loNumber IN THIS.oCollection lcResult=lcResult+loNumber.ToString()+";" ENDFOR ENDFUNC ENDDEFINE DEFINE CLASS MyNumber AS Custom nNumber=0 FUNCTION INIT LPARAMETERS nNumber THIS.nNumber=nNumber ENDFUNC FUNCTION ToString RETURN ALLTRIM(STR(THIS.nNumber)) ENDFUNC ENDDEFINEThe calling code :
SET PROCEDURE TO wwUtils.prg, basic_objects.prg SET CLASSLIB TO ../classlib/wwxml.vcx LOCAL loXml, loColl, loColl2, loNumber, loNumber2, lcXml loXml=CREATEOBJECT("wwxml") loXml.lRecurseObjects=.T. loColl=CREATEOBJECT("MyCollection") loColl2=CREATEOBJECT("MyCollection") loNumber=CREATEOBJECT("MyNumber",1) loNumber2=CREATEOBJECT("MyNumber",2) loColl.oCollection.Add(loNumber) loColl2.oCollection.Add(loNumber2) lcXml=loXml.ObjectToXml(loColl) loColl2=loXml.XmlToObject(lcXml,loColl2) ? loColl2.ToString()Regards,