element name="row"to
element name="row1", the second accordance to
element name="row2", etc. Save the schema as Good_Receipt_PO_Modified.xsd.
CLEAR CLOSE TABLES ALL LOCAL oXA as XMLAdapter, oXT as XMLTable oXA=CREATEOBJECT("XMLAdapter") oXA.RespectNesting= .T. oXA.XMLSchemaLocation="Good_Receipt_PO_Modified.xsd" ?oXA.LoadXML("Good_Receipt_PO.xml",.T.) ?oXA.Tables.Count oXA.XMLNameIsXPath= .T. oXA.XMLName = STRCONV("parent::node()",5) FixXMLName(oXA,"row1") FixXMLName(oXA,"row2") FixXMLName(oXA,"row3") FixXMLName(oXA,"row4") FixXMLName(oXA,"row5") FixXMLName(oXA,"row6") FixXMLName(oXA,"row7") FOR each oXT IN oXA.Tables IF oXT.Fields.Count >0 oXT.ToCursor() SELECT (oXT.Alias ) IF RECCOUNT()=0 USE ENDIF ENDIF NEXT FUNCTION FixXMLName(oXA as XMLAdapter,cName) cName=STRCONV(cName,5) LOCAL oXT as XMLTable oXT=oXA.Tables(cName) oXT1 = oXT.NestedInto oXA.Tables.Remove(cName) cName=STRCONV("row",5) DO WHILE NOT ISNULL(oXT1) cName = oXT1.XMLName + STRCONV("/",5)+cName oXT1 = oXT1.NestedInto ENDDO oXT.XMLNameIsXPath = .T. oXT.XMLName = cName oXA.Tables.Add(oXT,oXT.XMLName) returnThanks,