StoreHouse и экспорт в XML

Раньше уже было об экспорте отчетов в UCS StoreHouse. Теперь уточнения. Писал:

Странный Excel XML работает и без M$ Office, но открывается только им.

Оказывается был не прав. Странный Excel XML Excel'ем не открывается и ничем другим не откроется.

По порядку.

В процессе экспорта StoreHouse с помощью FastReport создает файл с расширением xls. В файле - xml текст в кодировке utf8 с таким заголовком:

<?xml version="1.0"?><?mso-application
progid="Excel.Sheet"?><?fr-application
created="FastReport"?><?fr-application
homesite="http://www.fast-report.com"?><Workbook
xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40"><DocumentProperties
xmlns="urn:schemas-microsoft-com:office:office"><Title></Title><Author></Author><Created>
08.04.2010T19:48:09Z</Created><Version>...</Version></DocumentProperties>
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
<ProtectStructure>False</ProtectStructure><ProtectWindows>False</ProtectWindows></ExcelWorkbook>

Заголовок правильный, но ни Excel ни OOo файл открыть не могут. Пробуем открыть браузером и получаем: В ссылке объекта обнаружен недопустимый знак. Внимательно читаем xml и видим: (&amp#49&amp#50лет) на месте, где ожидается текст (12лет) В HTML такой фокус пройдет, хотя это и не по стандарту, а парсер XML такие вольности не позволяет. Очевидно, должно быть (&amp#49;&amp#50;лет) раз уж решили вполне безобидные символы оформлять с помощью entity. Хорошо, пишем простую программу для коррекции entities - добавляем им в конец точку с запятой. Этого оказалось недостаточно. Опять читаем недоделанный xml и натыкаемся на <Data ss:Type="String">Специи 1 <89-299></Data> Вот так-то. Угловые скобки не заменили на соответствующие entities. Более того, оказалось, все символы, которые _положено_ заменять на entity проходят в так называемый xml в голом виде.

Может, это косяк в FastReport'е, может быть в StoreHous'е, но это грубый косяк в продукте, продающемся за 42000р (+9000р доп.клиент). В результате появился маленький костыль, который результат экспорта отчетов StoreHouse превращает в валидный xml и открывает в табличном редакторе OOo. И без всяких m$-офисов.