Пример показывает использование Microsoft XML Core Services (MSXML) 4.0/3.0 для преобразования XML-данных, полученных из dbf-файла с помощью функции CursorToXML(), в HTML-таблицу (как альтернатива к _GENHTML/genhtml.prg см. также в MSDN KB 194204[Q194204] "How To Extend the Web Publishing Wizard with Custom Layouts") и содержит следующие файлы:

- getfields.xslt - позволяет из XSD-файла получить XML, содержащий список полей таблицы, а также их типов, точнее после преобразования поданного на вход XSD-файла, на выходе мы имеем следующую структуру возвращаемых данных:

<?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>
здесь: 
~ fieldName_i - названия полей
~ xsd:_type_i - типы соответствующих полей
(список полей необходим для формирования заголовков столбцов в таблице, а типы полей [в частности даты] могут быть использованы вами при преобразовании данных полей в строки) 
 
- xmltohtml.xslt - позволяет преобразовать XML-данные (полученных из dbf-файла с помощью функции CursorToXML()) в HTML-таблицу. Он имеет следующие параметры:
~ prmLang = ru/en <- текущий язык отображения данных (используется при строковом представлении дат) 
~ prmRowForFields - номер "полной строки" (записи) исходных данных, т.е. не содержащей "пропущенных полей" (требуется только в том случае, если нет соотвесвующего XSD-файла, в противном случае 0)
~ prmDocFields - этому параметру должен быть присвоен XML-документ, полученный из соответствующего XSD-файла, путём применения к нему getfields.xslt - преобразования (при этом параметр prmRowForFields должен быть = 0)
В том виде "как есть", подразумевается использование MSXML 4.0, однако возможно и использование версии 3.0 (но не ниже!).  В файле xmltohtml.xslt в качестве примера определено несколько пользовательских функций на javascript (как надеюсь, это позволит вам по образу и подобию писать самостоятельно дополнительные функции, в случае если потребуется), так там определены:
~ get_Date(sLang, sDate) - преобразует XML-сроку-дату [sDate] в "понимаемую пользователем" дату для языка [sLang = ru/en], если второй параметр пустая строка, то функция возвращает текущую дату.
~ get_curYear() - возвращает текущий год.   
В случае использования MSXML 4.0 вызовы функции get_Date(sLang, sDate) вообще говоря, не требуются, т.к. там имеется функция msxsl:format-date(). Однако это не так, если вы имеете версию MSXML 3.0... Я специально оставил в коде xmltohtml.xslt-файла javascript-определения перечисленных выше функций, чтобы показать: как можно программировать ваши собственные дополнительные javascript-функции средствами XSLT 

- testdbftohtm.prg - собственно объединяет всё в одну программу и позволяет преобразовать dbf-файл в HTML-таблицу. В простейшем случае вам требуется переопределить константы:
- #DEFINE C_PATH -> на FULLPATH(CURDIR())  
- #DEFINE C_TABLE -> на "orders" (или любую из таблиц в HOME(2) + "Tastrade\Data\")
- #DEFINE C_LANG -> на "ru" или "en" (язык отображения данных)
- #DEFINE C_HTM -> собственно результат преобразований
- переменная lcMsxmlVersion определяет номер используемей версии MSXML

В целях отладки сделано следующее: если константы C_XMLFLDS & C_XMLOUT не являются пустыми строками (а в рабочем варианте они  должны быть пустыми строками), например:
#DEFINE C_XMLOUT  "curOut.xml"
#DEFINE C_XMLFLDS "curFields.xml"
то после успешного завершения в текущем каталоге должны остаться соответствующие файлы, если это будет как в данном случае, то вы должны получить следующее:
- в curOut.xml - данные, полученные функцией CursorToXML() для вашего dbf-файла
- в curSchema.xsd (определяется константой C_XSD) XSD-файл для вашего dbf-файла
- в curFields.xml - данные, полученные применением getfields.xslt преобразования над curSchema.xsd  

Как дополнительный, имеется также файл testhtminform.prg, показывающий: как можно отобразить HTML-файл (в коде константы C_PATH & C_URL определяют, какой именно HTML-файл следует использовать) в VFP-форме.

Пример ни в коей мере не претендует на какую-нибудь общность, а просто показывает путь по которому можно идти, чтобы получить табличные данные в HTML, которые можно было бы опубликовать на вашем Web-сервере. Чтобы более точно подстроить HTML-представление под ваши требования, конечно требуется владение программированием в области использования XML/XSLT технологий...

Михаил Дроздов, ИВС Софт, Пермь, Россия 
My Page:  http://vfpdev.narod.ru/