parent::parentalias/parentIdFieldcorrect just my description in the email that was wrong.
LOCAL oAdapter as XMLAdapter, oPOHT as XMLTable, oPOAC as XMLTable, oPON as XMLTable cFile = "Test.xml" oAdapter = CREATEOBJECT("XMLAdapter") oAdapter.LoadXML(cFile,.T.,.T.) oPOHT=oAdapter.Tables(STRCONV("PurchaseOrderHeaderText",5)) AddXmlField(oPOHT,"parent::PurchaseOrder/AgentPurchaseOrder",.F.,"POId","C",99,.T.) oPOL=oAdapter.Tables(STRCONV("PurchaseOrderLine",5)) AddXmlField(oPOL,"parent::PurchaseOrder/AgentPurchaseOrder",.F.,"POId","C",99,.T.) oPOAC=oAdapter.Tables(STRCONV("PurchaseOrderAdditionalCharge",5)) AddXmlField(oPOAC,"parent::PurchaseOrder/AgentPurchaseOrder",.F.,"POId","I",-1,.T.) oPON=oAdapter.Tables(STRCONV("PurchaseOrderNote",5)) ? AddXmlField(oPON,"parent::PurchaseOrder/AgentPurchaseOrder",.F.,"POId","I",-1,.T.) LOCAL OpenTables OpenTables="" FOR EACH oTable IN oAdapter.Tables oTable.ToCursor() LOCAL lcAlias lcAlias=ALIAS() SELECT * FROM (lcAlias) INTO TABLE ("Tables\"+lcAlias) ENDFOR FUNCTION AddXmlField(oXT,cXMLName,lAttribute,cAlias,cDataType,nMaxLength,lXPath) oXF=CREATEOBJECT("XMLField") IF VERSION(5)>=900 oXF.XMLNameIsXPath=lXPath ENDIF oXF.XMLName=STRCONV(cXMLName,5) oXF.IsAttribute= lAttribute oXF.Alias=cAlias oXF.DataType=cDataType oXF.MaxLength=nMaxLength oXF.IsNULL=.T. oXT.Fields.Add(oXF,oXF.XMLName) RETURN oXF ENDFUNC