Спасибо за vsdx, это полезно.
Как вы отметили, строка данных формы штыря в форме 'Pin1' не отображается в форме экземпляра xml (PageContents), поскольку она является унаследованным значениемот своего хозяина.Две другие фигуры, имеющие локальные значения, отражаются в экземпляре xml.
Я думаю, что проблема, с которой вы столкнулись, заключается в том, что вы смотрите на неправильный мастер и не находите нужные данные.
Способ отследить это можно, если вы посмотрите на страницу xml (page1.xml) и увидите, что форма Pin основана на основном идентификаторе '6':
[ Примечание - я вырезал довольно много xml в следующих фрагментах, чтобы дать более четкое представление о структуре файла. ]
<PageContents>
<Shapes>
<Shape ID='17' Type='Group' LineStyle='7' FillStyle='7' TextStyle='7'>
<Shapes>
<Shape ID='5' NameU='Pin' Name='Pin' Type='Group' Master='6'>
Теперь вы можете посмотреть вколлекцию мастеров (masters.xml) и увидит, что мастер с атрибутом ID 6 (мастер 'Pin') имеет идентификатор Rel 'rId2':
<Masters>
<Master ID='2' NameU='Dynamic connector' IsCustomNameU='1' Name='Dynamic connector' IsCustomName='1'>
<Rel r:id='rId1'/>
</Master>
<Master ID='6' NameU='Pin' IsCustomNameU='1' Name='Pin' IsCustomName='1'>
<Rel r:id='rId2'/>
</Master>
Теперь у вас естьисправьте rel id вас и найдите правильное объявление master в master.xml.rels, где вы увидите, что rel id 'rId2' указывает на master2.xml:
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Id="rId3" Type="http://schemas.microsoft.com/visio/2010/relationships/master" Target="master3.xml"/>
<Relationship Id="rId2" Type="http://schemas.microsoft.com/visio/2010/relationships/master" Target="master2.xml"/>
<Relationship Id="rId1" Type="http://schemas.microsoft.com/visio/2010/relationships/master" Target="master1.xml"/>
<Relationship Id="rId5" Type="http://schemas.microsoft.com/visio/2010/relationships/master" Target="master5.xml"/>
<Relationship Id="rId4" Type="http://schemas.microsoft.com/visio/2010/relationships/master" Target="master4.xml"/>
</Relationships>
Таким образом, ваш последний останов - уйтив master2.xml, где вы должны обнаружить, что фигура верхнего уровня (id 5) имеет строку данных формы с именем 'Pin 'и значение' 1 ':
<MasterContents>
<Shapes>
<Shape ID='5' NameU='Pin.473' IsCustomNameU='1' Name='Pin.473' IsCustomName='1' Type='Group'>
<Section N='Property'>
<Row N='Pin'>
<Cell N='Value' V='1' U='STR'/>
<Cell N='Prompt' V='' F='No Formula'/>
<Cell N='Label' V='Pin'/>
<Cell N='Format' V='' F='No Formula'/>
<Cell N='SortKey' V='' F='No Formula'/>
<Cell N='Type' V='0'/>
<Cell N='Invisible' V='0' F='No Formula'/>
<Cell N='Verify' V='0' F='No Formula'/>
<Cell N='DataLinked' V='0' F='No Formula'/>
<Cell N='LangID' V='sv-SE'/>
<Cell N='Calendar' V='0' F='No Formula'/>
</Row>
</Section>
Я предполагаю, что вы рассматриваете vsdx как почтовый индекс и что вы упускаете пространство имен System.IO.Packaging, которое будетпомочь вам с навигацией по пакетным отношениям.Я добавлю эту ссылку на всякий случай: