Ls.doc и непонятная ошибка

  • Автор темы Klido
  • Дата начала
K

Klido

#1
Иногда пользую LotusScript.doc (www.lsdoc.org) - то начальство порадовать, то самому поглядеть. И вот неожиданно на одной из баз (и шаблоне) это добро стало вылетать с ошибкой "XSLT Transformer error" и не желает работать... В код смотреть особо не сильно хочется - вроде работало, дебаггер показывает, что вылетает в момент реализации экспортера и подробности ошибки

"<?xml version='1.0'?><XSLTransformerLog><error line='99328' column='65'>Element 'par' is not valid for content model: '(tablecell)*'</error><error line='102662' column='68'>Element 'par' is not valid for content model: '(tablecell)*'</error></XSL...

страшные цифры - столько кода в базе точно нет (элемента "par" - тоже и близко нет) ;) и как-то неприятно чувствую - база на вид целая (проверил как и шаблон), а простая вещь работать перестала - есть у кого идеи ГДЕ копнуть?
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#2
столько кода в базе точно нет (элемента "par" - тоже и близко нет)
это инфа из XML документа, который Transformer пытается обработать, вероятно импорт происходит

эээ... не знаю, что за вещь юзаешь, но похоже, что ты пытаешься в 6-ке с помощью этой вещи импортнуть документ из 7-ки (или выше), в котором есть таблица (предположительно в РТ-поле)

подумал... хотя, не обязательно это связано с таблицами... par может быть связан и с другой сущностью, например параграфом - это надо смотреть DTD определения Notes
 
13.03.2009
625
1
#3
страшные цифры - столько кода в базе точно нет (элемента "par" - тоже и близко нет) :) и как-то неприятно чувствую - база на вид целая (проверил как и шаблон), а простая вещь работать перестала - есть у кого идеи ГДЕ копнуть?
элемент par - это из лотусовой DTD. используется при экспорте вашего дизайна для последующего разбора.
про копнуть: проще всего заставить копать автора :) lekkimworld.com
а если интересно самому - то замените output у exporter.process на стрим( там пайп на xsltransformer ) и поковыряйте полученный xml на предмет соответсвия схеме. ссылка на схему - в заголовке xml. сама схема обычно в lotus\xmlschemas
P.S. Летом вышла beta LotusScript.doc v2 - может оно поможет?
 
K

Klido

#4
но похоже, что ты пытаешься в 6-ке с помощью этой вещи импортнуть документ из 7-ки (или выше)
8.5 у меня всё и документы новые... а вот рт-поля там есть, хоть и без таблиц...

P.S. Летом вышла beta LotusScript.doc v2 - может оно поможет?
о. как-то пропустил - ща поищу попробую...

спсб за мысли по поводу структуры, буду искать.. лишь бы с базой всё было ОК :)
а то вон сегодня вылезло нечто - пошел посмотреть и умилился от текста на ibm :)
http://www-01.ibm.com/support/docview.wss?...;rss=ct463lotus
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#5
дааа... что-то они забыли дописать в разделе "Resolving the problem" )))

а вот рт-поля там есть, хоть и без таблиц
тогда таблицы на формах. а что хоть преобразовывалось?..
потому как следуя логу трансформера (гы)
<XSLTransformerLog>
<error line='99328' column='65'>Element 'par' is not valid for content model: '(tablecell)*'</error>
<error line='102662' column='68'>Element 'par' is not valid for content model: '(tablecell)*'</error>
полученный XML поток нифигово не маленький, и ошибка именно с элементом par в ячейке таблицы tablecell. вернее, он там есть, но следуя DTD его там быть не должно. хотя, могу ошибаться.
а может эта утилита некорректно подставляет DTD?..
 
K

Klido

#6
lsdoc v2.0 beta 4 не помог, хоть и отработал тихо-мирно, с записью в лог:

[ROOT ][SEVERE ]: Exception trying to parse database
Exception: java.lang.StringIndexOutOfBoundsException

поэтому что-то там не так...
полученный XML поток нифигово не маленький, и ошибка именно с элементом par в ячейке таблицы tablecell.
это и смущает... пока нарыл, что какой-то нехороший коллега в одной из внедренных подформ создал таблицу 4-го уровня вложенности... может это оно и есть... теперь надо подумать как поправить, чтоб не поломать :)
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#7
а вот же ж turumbay писал
а если интересно самому - то замените output у exporter.process на стрим( там пайп на xsltransformer ) и поковыряйте полученный xml на предмет соответсвия схеме. ссылка на схему - в заголовке xml. сама схема обычно в lotus\xmlschemas
очень полезный совет, получишь сам XML и разберешь ошибку! может проблема не в том, что таблица так сделана, а в самой программе lsdoc!