If opening the XML file in Excel 2003 and saving it as a DBF 4 file type works you what than may you should just emulate this process via a program. There are at least two approaches:
1) VBA running whithin Excel:
The other approach is using VBA which runs within Excel and automates the stuff you do manually. To get a feeling for it. You could run the Macro recorder and do the transformation once manually again. Afterwards you see the VBA code which emulates the things you are doing. With little tweaking you should be able to automate the whole process.
2) External Application: Basically you create an excel object in a separate Windows Application which encapsulates Excel and you do the stuff you would do manually via this object remotely.
Example code using VS 2008, C# and .NET:
....
using System;
using Microsoft.Office.Interop.Excel;
...
Microsoft.Office.Interop.Excel.Application oExcelApplication = new
Microsoft.Office.Interop.Excel.Application();
...
oExcelApplication.Workbooks.Open(....);
....
and save the file in DBF4 format.
I hope this helps.