DEFINE CLASS MyWrapper AS Custom oMyCollection=null FUNCTION INIT THIS.oMyCollection=CREATEOBJECT("MyCollection") ENDFUNC FUNCTION ToString RETURN THIS.oMyCollection.ToString() ENDFUNC ENDDEFINE DEFINE CLASS MyCollection AS Custom oCollection=null nOtherMember=1 FUNCTION INIT THIS.oCollection=CREATEOBJECT("Collection") ENDFUNC FUNCTION ToString LOCAL lcResult, loNumber lcResult="" FOR EACH loNumber IN THIS.oCollection lcResult=lcResult+loNumber.ToString()+";" ENDFOR RETURN lcResult 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 ENDDEFINE
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. loW1=CREATEOBJECT("MyWrapper") loW2=CREATEOBJECT("MyWrapper") loNumber=CREATEOBJECT("MyNumber",1) loNumber2=CREATEOBJECT("MyNumber",2) loW1.oMyCollection.oCollection.Add(loNumber) loW2.oMyCollection.oCollection.Add(loNumber2) lcXml=loXml.ObjectToXml(loW1) loXml.XmlToObject(lcXml,loW2) ? loW2.ToString()Greetings,