Я создал документ docx с помощью OpenXML SDK. Он содержит элементы управления содержимым группы, чтобы иметь возможность иметь вложенную структуру документа. Элементы управления содержимым группы могут содержать другие элементы управления содержимым группы или обычные текстовые абзацы или и то, и другое. Структура итогового файла document.xml выглядит примерно так:
<?xml version="1.0" encoding="UTF-8"?>
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:body>
<w:sectPr>
<w:pgSz w:w="12240" w:h="15840"/><w:pgMar w:gutter="0" w:footer="720" w:header="720" w:left="1440" w:bottom="1440" w:right="1440" w:top="1440"/>
<w:cols w:space="720"/><w:docGrid w:linePitch="360"/>
</w:sectPr>
<w:sdt>
<w:sdtPr>
<w:alias w:val="deel"/>
<w:tag w:val="deel"/>
<w:lock w:val="unlocked"/>
<w:group/>
</w:sdtPr>
<w:sdtContent>
<w:p>
<w:pPr>
<w:pStyle w:val="DeelTitel"/>
<w:tabs>
<w:tab w:val="clear" w:pos="360"/>
<w:tab w:val="num" w:pos="1987"/>
</w:tabs>
</w:pPr>
<w:r>
<w:t>Some paragraph text here</w:t>
</w:r>
</w:p>
<w:sdt>
<w:sdtPr>
<w:alias w:val="hoofdstuk"/>
<w:tag w:val="hoofdstuk"/>
<w:lock w:val="unlocked"/>
<w:group/>
</w:sdtPr>
<w:sdtContent>
<w:p>
<w:pPr>
<w:pStyle w:val="HoofdstukTitel"/>
<w:tabs>
<w:tab w:val="clear" w:pos="360"/>
<w:tab w:val="num" w:pos="1987"/>
</w:tabs>
</w:pPr>
<w:r>
<w:t>Another title here one level deeper</w:t>
</w:r>
</w:p>
etc. etc.
Результат выглядит неплохо в Word, но проблема в том, что кажется, что весь текст заблокирован. Как вы можете видеть в XML выше, я попытался установить для свойства блокировки SdtBlocks значение «unlocked». Я также попытался оставить все свойство блокировки, но все с тем же результатом: если я попытаюсь отредактировать один из заголовков в абзацах, Word отобразит ошибку «это изменение не разрешено, потому что выделение заблокировано».
Я что-то делаю здесь не так или как я могу убедиться, что текст в абзацах доступен для редактирования?
Заранее спасибо. Рубен.