CREATE CURSOR Test (Field1 I, Field2 C(30), Field3 DATE, Field4 L) INSERT INTO Test VALUES (1, "Fabio Vazquez", {^2002-02-16}, .F.) * ? CURSORTOXML("test", "c:\test.xml", 1, 512, 0, "c:\test.xsd") lcXML = "" CURSORTOXML("test", "lcXML",1, 32,0,"1") Showxml(lcXML) * Create the DOMDocument to keep the XML in test.xml that will be validated LOCAL loXML as "MSXML2.DOMDocument.4.0" loXML = CREATEOBJECT("MSXML2.DOMDocument.4.0") loXML.loadxml(lcXML) IF loXML.parseError.errorCode = 0 loNodes = loXML.selectNodes("VFPData/test/field1") ?loNodes.item(0).nodeTypedValue && returns integer 1 ?VARTYPE(loNodes.item(0).nodeTypedValue) && returns integer 1 loNodes = loXML.selectNodes("VFPData/test/field2") ?loNodes.item(0).nodeTypedValue && returns string "Fabio Vazquez" loNodes = loXML.selectNodes("VFPData/test/field3") ?loNodes.item(0).nodeTypedValue && returns date 2002-02-16 loNodes = loXML.selectNodes("VFPData/test/field4") ?loNodes.item(0).nodeTypedValue && returns boolean false ELSE ?loXML.parseError.reason ENDIF loXMLSchema = null loXML = null+++ Rick ---
>CREATE CURSOR Test (Field1 I, Field2 C(30), Field3 DATE, Field4 L) >INSERT INTO Test VALUES (1, "Fabio Vazquez", {^2002-02-16}, .F.) > >?CURSORTOXML("test", "c:\test.xml", 1, 512, 0, "c:\test.xsd") > >* Create a schema cache object to keep the schema in test.xsd >LOCAL loXMLSchema as "MSXML2.XMLSchemaCache.4.0" >loXMLSchema = CREATEOBJECT("MSXML2.XMLSchemaCache.4.0") >loXMLSchema.add("","c:\test.xsd") > >* Create the DOMDocument to keep the XML in test.xml that will be validated >LOCAL loXML as "MSXML2.DOMDocument.4.0" >loXML = CREATEOBJECT("MSXML2.DOMDocument.4.0") >loXML.schemas = loXMLSchema >loXML.load("c:\test.xml") > >IF loXML.parseError.errorCode = 0 > loNodes = loXML.selectNodes("VFPData/test/field1") > ?loNodes.item(0).nodeTypedValue && returns integer 1 > > loNodes = loXML.selectNodes("VFPData/test/field2") > ?loNodes.item(0).nodeTypedValue && returns string "Fabio Vazquez" > > loNodes = loXML.selectNodes("VFPData/test/field3") > ?loNodes.item(0).nodeTypedValue && returns date 2002-02-16 > > loNodes = loXML.selectNodes("VFPData/test/field4") > ?loNodes.item(0).nodeTypedValue && returns boolean false >ELSE > ?loXML.parseError.reason >ENDIF > >loXMLSchema = null >loXML = null >>