C# открыть экспортированный DXL как NotesDocument
Кто-нибудь знает, возможно ли открыть DXL (Domino XML) как объект NotesDocument?
Когда клиент Notes установлен, вы можете добавить ссылку на "Interop.Domino" и использовать объекты Domino с C#. На самом деле я пробовал некоторые вещи DXLImporter, но безуспешно... Кажется, что DXLImporter может импортировать только в NotesDatabase.
Есть ли способ открыть экспортированный файл DXL (NotesStream) в качестве NotesDocument для доступа к содержимому в качестве объектов Notes? (особенно Рихтекст)
Любая идея? Большое спасибо.
// SiL
1 ответ
NotesDocument- объект никогда не может стоять один. Ему всегда нужна родительская база данных. Это верно независимо от того, как вы получаете объект NotesDocument. В вашем особом случае вам нужен "тупой" контейнер nsf, который вы используете для импорта XML. После импорта вы можете получить доступ к NotesDocument.
Вам нужно найти документ, используя его universalid. Этот универсал можно найти в XML как "unid"- свойство nodeinfo-узла:
<document xmlns='http://www.lotus.com/dxl' version='9.0' maintenanceversion='1.4'
replicaid='C1257C270049C111' form='Offer'>
<noteinfo noteid='188a6' unid='FE4CB54C2D7C9ABCC1257E620027FCE4' sequence='3'>
Как заявил Стэн в комментариях, это может или не может работать. Импортированный документ может получить другой Universalid, если документ с таким UNID уже существует и / или параметры импорта установлены соответствующим образом. Лучший пользователь NotesDXLExporter.GetFirstImportedNoteID для получения документа.
Вы даже можете импортировать всю базу данных из xml-структуры, но это может быть слишком затратно для такой простой задачи, но, конечно, это зависит от ваших потребностей.
в качестве "хака" или "обходного пути" вы можете импортировать этот документ в базу данных, которая всегда есть в любом клиенте Lotus Notes, например, bookmark.nsf или names.nsf, но я бы не рекомендовал это делать.