ОБСУЖДЕНИЕ

Notesdxlimporter

13 ответов 6,5 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
Всем привет!
Вот что случилось... есть импорт таблички при помощи NotesDXLImporter.
Под версией 8.5 работает.
Под 7.хх вываливается в ошибку DXL IMPORTER OPERATION FAILED
Как победить?

вот фрагмент кода
Код:
		Call Me.importer.SetInput( Me.stream )
Call Me.importer.SetOutput (db )

Me.importer.ReplicaRequiredForReplaceOrUpdate = False
Me.importer.DocumentImportOption = DXLIMPORTOPTION_CREATE
Call Me.importer.Process
Call Me.stream.Close
ошибка на предпоследней строке
 
смотрим ДХЛ - есть ли в ходе версия DTD
 
NickProstoNick
проинсталь нотес клиент, просто нужных DXML схем в клиенте нету, а если их нету то и вывернуть в XML не удастся
 
NickProstoNick
свезло то как ;)
у меня дизайнер 8.5 вообще отлетает намертво, ждем 8.5.1
 
можно рискнуть и отрезать ДТД...
потом попробовать импортнуть
 
NickProstoNick
свезло то как ;)
у меня дизайнер 8.5 вообще отлетает намертво, ждем 8.5.1
это в смысле с сообщением типа "Platform... чего-то там" ?

можно рискнуть и отрезать ДТД...
потом попробовать импортнуть
Прошу прощения! С этого места по подробней можно?
Я с ДХЛ не работал до недавно
 
вот так вот указ версия:
<!DOCTYPE database SYSTEM 'xmlschemas/domino_7_0_3.dtd'>
<database xmlns='http://www.lotus.com/dxl' version='7.0' maintenanceversion='3.0'

никто не мешает заменить 8.5 на указ.
потому отличия м.б. незначительные (в DTD) в случ. с 8.5
но лучше - при экспорте, использовать DTD от 7-ки (он указ. в экспортере), понятно - что данный ДТД должен присут. в каталогах Нотеса (обычно - он там есть, от предыдущ. версий)
 
а если не проверять валидность?.. не катит?

Read-write. Indicates that if a DTD is specified in the XML declaration statement, it should be used to validate the input XML.
Defined in NotesDXLImporter
Data type Integer
Syntax
To get: option% = notesDXLImporter.InputValidationOption
To set: notesDXLImporter.InputValidationOption = option%

Legal values
VALIDATE_NEVER (0) Do not try to validate.
VALIDATE_ALWAYS (1) Validate the input.
VALIDATE_AUTO (2) (Default) If the DTD is specified, validate the input; otherwise, do not validate.
 
Akupaka
Не думал об этом. попробую - отпишусь. Только вопрос... а какой DTD будет использоваться?
 
Akupaka
Не думал об этом. попробую - отпишусь. Только вопрос... а какой DTD будет использоваться?
гы :) если VALIDATE_NEVER, то никакой. вот только, возможно, будет ошибка импорта, если импортер наткнется на сложную неизвестную структуру...
грубо говоря, качество результата я не гарантирую ;)
ошибку, к стати, можно отловить в другом свойстве - .Log
и еще глянь .ExitOnFirstFatalError

к стати! еще камешек в огород lmike :)
если заменить документ определений ДТД, то (скорее всего) ХМЛ документ не пройдет по нему валидацию, особенно, если в нем содержатся те элементы, которые изменились между версиями документов определений.

я помню, мы на младших версиях когда импортили в 6-ку док из семерки, то просто брали ДТД семерки и ложили к 6-ке, она нормально хавала описания. но! некоторые вещи ИБМовцы меняли более жестко (у себя в коде), и подкладыванием ДТД оно просто не решалось. пришлось шерстить ДТД искать разницу (благо они упомянули об этом в самих ДТД словом deprecated ?) и приводить документ к оптимальному виду (либо парсером, либо XSLT).
например, между 6 и 7 была разница в записи таблиц в РТ-полях. потом еще на что-то натыкались, но я уже не помню...
 
к стати! еще камешек в огород lmike wink.gif
если заменить документ определений ДТД, то (скорее всего) ХМЛ документ не пройдет по нему валидацию, особенно, если в нем содержатся те элементы, которые изменились между версиями документов определений.
Ну с этим ничего страшного не произошло :)
У меня простой импор. пока все работает ;)
 

Статистика тем

Создано
NickProstoNick,
Последний ответ от
lmike,
Ответы
13
Просмотры
6 475