Хранить метаданные в атрибутах RTF-файлов
Используя Двери 9.6, я хочу добиться следующего:
- Сохранять форматированный текст в атрибуте Doors, используя DXL (
o."Object Text" = richText("<RTF-STRING>")
) где<RTF-STRING>
содержит метаданные, не показанные пользователю - (Пользователь изменяет атрибут расширенного текста в Doors, например, простое изменение текста / формата, добавление и удаление объектов OLE и т. Д.)
- Извлеките содержимое атрибута Doors с помощью DXL и обработайте неизмененные метаданные, которые были сохранены в атрибуте на шаге 1
Что я пробовал: когда простая строка RTF
{\rtf1\ansi\ansicpg936\deff0\nouicompat{\fonttbl{\f0\fnil\fcharset0 Tahoma;}}
{\*\generator Riched20 10.0.14393}
{\*\userprops {\propname MYPROP}\proptype30{\staticval MYPROPVAL}}\viewkind4\uc1
\pard\sa8\f0\fs20\lang1031 Hi \b there\b0 !\par
}
хранится в атрибуте форматированного текста и не изменяется в Doors, его можно получить (richTextWithOle(o."Object Text")
) включая метаданные (userprops
). Но если это изменилось в Двери, userprops
удалены.
Кроме того userprops
Я тоже пробовал comment
, doccomm
(комментарий к документу) и objname
(потому что метаданные об объектах OLE). Они все удалены.
Интересно, что если исходная строка RTF содержит объект OLE, метаданные удаляются даже до изменения атрибута в Doors. Кроме того, метаданные не содержатся, если exportAttributeToFile(o."Object Text", "<PATH>")
используется для извлечения содержимого атрибута Doors (также до изменения атрибута в Doors).
Есть ли способ повлиять на действия Doors, когда пользователь Doors изменяет атрибуты расширенного текста? Например, можно ли изменить поведение "генератора Riched20"? Или есть совершенно другой подход?
Заранее спасибо!