The example demonstrates usage Microsoft XML Core Services (MSXML) 4.0/3.0 for transformation(conversion) of the XML-data obtained from the dbf-file by use CursorToXML() function, into the HTML-table (as alternative to _GENHTML/genhtml.prg see also in MSDN KB 194204 [Q194204] "How To Extend the Web Publishing Wizard with Custom Layouts") and contains following files:

- getfields.xslt - allows from the XSD-file to receive XML, keeping list of fields of the table, and also their types, more exact transformations of the XSD-file, conveyed as input, on an output we have as XML data following:

<?xml version="1.0" encoding="Windows-1251" standalone="yes" ?>
<fields xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
   <fld_name type="xsd:type1">fieldName_1</fld_name>
   <fld_name type="xsd:type2">fieldName_2</fld_name>
   <!-- ... -->   
   <fld_name type="xsd:typeN">fieldName_N</fld_name>
</fields>

here: 
~ fieldName_i - name of fields
~ xsd:_type_i - type of the fields
(The list of fields is need for formation of headers of columns in the table, and types of fields [in particular for dates] can be used by you at a data conversion of fields into strings)

- xmltohtml.xslt - allows to convert the XML-data (obtained from the dbf-file by use CursorToXML() function) to the HTML-table, and has following parameters:
~ prmLang = ru/en < - current language of the data (will be used for string representation of dates)
~ prmRowForFields - number of "full row" (number of record) of input datas, i.e. not inclusive of "the skipped fields" (is required only if not exist XSD-file, otherwise 0)
~ prmDocFields - to this parameter should be assigned the XML-document, obtained from the conforming XSD-file, by apply to him getfields.xslt-transformation (if such XML-document exist, parameter prmRowForFields should be = 0)
In code "as is", usage MSXML 4.0 is meant, but you can use version 3.0 also (but not below!). In the file xmltohtml.xslt as an example some user's functions on javascript are determined (as I hope, it will allow you to write independently subfunctions, in a case if it is required), so there are determined:
~ get_Date(sLang, sDate) - will convert XML-string-date [sDate] in "perceived by the user" date for language [sLang = ru/en], if second parameter empty string, the function returns current date.
~ get_curYear() - returns a current year.
In case of usage MSXML 4.0 function calls get_Date(sLang, sDate) (generally speaking), are not demanded, since there there is a function msxsl:format-date(). However it not so, if you have the version MSXML 3.0... I specially have kept in a code of the xmltohtml.xslt-file of javascript-definition of the listed above functions to show: as it is possible to write code program your own javascript-functions by means XSLT.

<Attention!!! If yours language is not Russian, change attribute encoding="windows-1251" in element <xsl:output .../> according to specific of your language in files: xmltohtml.xslt, getfields.xslt and see also [CTRL+F3 Russian] in file xmltohtml.xslt /Attention!!!>

- testdbftohtm.prg - alone integrates all in one program and allows convert the dbf-file to the HTML-table. In the elementary case, you need to reassign constants:
- #DEFINE C_PATH - > on FULLPATH(CURDIR())  
- #DEFINE C_TABLE - > "orders" (or any of the tables in HOME(2)+"Tastrade\Data\")
- #DEFINE C_LANG -> "en" or "ru" (he language of viewing of datas)
- #DEFINE C_HTM - > outcome of transformations
- the variable lcMsxmlVersion determines number of used MSXML version

With the purposes of debugging is made following: if the constants C_XMLFLDS & C_XMLOUT are not empty strings, for example:
#DEFINE C_XMLOUT "curOut.xml"
#DEFINE C_XMLFLDS "curFields.xml"

That after successful run in the current directory should be the files:
- curOut.xml - data obtained by function CursorToXML() for your dbf-file
- curSchema.xsd - the XSD-file for your dbf-file (is determined by constant C_XSD)
- curFields.xml - data obtained by apply getfields.xslt of transformation for curSchema.xsd  

As addition, there is also file testhtminform.prg, demonstrating: as it is possible to view the HTML-file (in a code of a constant C_PATH and C_URL determine, which HTML-file should be used) in the VFP-form.

The example does not have for any commonality, and simplly demonstrates a way on which one it is possible to go, to receive the VFP-table data in HTML, which one could be published on your Web-server. More precisely to get HTML-presentation under your requirements, possession of programming is required in the field of usage XML/XSLT of technologies certainly...

Best regards. 
Michael Drozdov, ICS Soft, Perm, Russia 
My Page:  http://vfpdev.narod.ru/