Текст в docx (сгенерированный OpenXML SDK) не редактируется

Я создал документ 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 отобразит ошибку «это изменение не разрешено, потому что выделение заблокировано».

Я что-то делаю здесь не так или как я могу убедиться, что текст в абзацах доступен для редактирования?

Заранее спасибо. Рубен.


person Ruben    schedule 21.03.2012    source источник


Ответы (1)


На случай, если это понадобится кому-то еще в будущем, я выяснил, в чем была причина. Отсутствие группы w: в свойствах sdt (sdtPr) решает эту проблему. Из документации: «Этот элемент указывает, что родительский тег структурированного документа должен быть ограниченной группой при отображении в документе». Так что это действительно имеет смысл, но было трудно понять. Надеюсь, это сэкономит кому-то драгоценное время в будущем.

Рубен.

person Ruben    schedule 22.03.2012