Re[4]: VisualStudio .Net и MS Visio
От: bebabo Россия http://sites.google.com/site/ownmake/Home
Дата: 28.09.07 10:03
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Ну дак я про то же и говорю. Это и есть "данные модели". Под "Данными модели" я имел в виду все практически все, что не отображается явно на диаграмме, но существует (для UML). Visio UML addon эти данные хранит в бинарном виде в собственном (проприетарном, недокументированном) формате. Физически они хранятся в DocumentStencil-е — заводится отдельный скрытый "мастер" (который называется "UML"), в который все эти данные как BLOB все и сливаются. Где-то попадался даже анализ данных этого BOLB-а, но в общем это дело весьма хлопотное и достаточно бесперспективное, если вы не любитель дизассемлирования.


bnk>В принципе существует несколько "выходов" из данной ситуации (с классами, методами, параметрам вполне прокатывает, но насчет StateChart я не уверен):


bnk>- Использовать Visio UML To XMI Export, для экспорта данных UML модели из Visio стандартный XMI формат, который уже можно обрабатывать (или передавать в другие программы).


bnk>- Использовать команду создания отчетов "Report" для UML (есть в Visio EA который идет с Visual Studio), потом из отчетов выколупывать нужные вам данные.


Большое спасибо! Буду пробовать )
И еще один вопрос. Если данные модели явно отображаются на диаграмме (можно прописать "внутри" фигуры различные действия, сделать их видимыми, и они будут следовать под названием фигуры, отделенные горизонтальной чертой) — как получить эти данные? Если не ошибаюсь, подобная фигура (с видимыми действиями) — на самом деле группа фигур. Пробовал разгруппировать ее Shape-методом, но ничего не получилось. Пока нашел только один — зверский — способ: пересохранить документ в vdx и прочитать его как xml (кстати, таким образом можно извлечь некоторые скрытые данные фигуры), но этот способ плох тем, что в xml-формате все фигуры изначально раздельны и сложно установить между ними связь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.