Логические уровни узлов в документе

В этой документации иногда упоминается группа классов узлов, относящихся к “уровню” в документе, например, узлы “уровня блоков”, “встроенного уровня” (также известные как “встроенные”) или “уровня строк”. Эти уровни в документе различаются чисто логически и не выражаются явно с помощью наследования или других средств Aspose.Words DOM. Уровень узла используется для описания места в дереве документа, где обычно находится узел.

В предыдущей статье мы уже говорили о взаимосвязи между узлами и о том, что не всем узлам разрешено быть дочерними по отношению к каким-либо узлам. Например, ячейка может быть дочерней только по отношению к строке, а строка может быть дочерней только по отношению к таблице и так далее. Эти взаимосвязи также применимы для логического разделения узлов на уровни в документе.

В следующих разделах описываются логические уровни узлов в Aspose.Words и классы, принадлежащие каждому уровню.

Логический уровень документа и раздела

Документ Word состоит из одного или нескольких разделов, представленных классом Section и разделенных разделительными полосами. Раздел может сам определять размер страницы, поля, ориентацию, количество текстовых столбцов, а также верхние и нижние колонтитулы.

Document и Раздел узлы уровня имеют структуру, показанную на следующей диаграмме.

document-and-section-level-aspose-words-cpp

Раздел содержит основной текст, а также верхние и нижние колонтитулы для первой, четной и нечетной страниц. Эти различные “потоки” текста называются stories.

В Aspose.Words узел Section содержит узлы истории Body и HeaderFooter. Объект Body хранит основной текст. Объекты HeaderFooter хранят текст для каждого верхнего и нижнего колонтитула. Текст любой статьи состоит из абзацев и таблиц, соответственно представленных объектами Paragraph и Table уровня блоков.

Кроме того, каждый документ Word может содержать глоссарий, который представлен узлом GlossaryDocument в Aspose.Words. Документ-глоссарий содержит BuildingBlocks, AutoText и AutoCorrect записей.

Глоссарий документов

Логический уровень блока

Узлы блочного уровня представляют собой контейнеры для содержимого и элементов управления содержимым и могут встречаться в дочерних узлах дерева документов в следующих узлах:

  • Тело
  • Заголовок
  • Нижний колонтитул
  • Сноска
  • Комментарий
  • Форма
  • GroupShape
  • Клетка
  • Структурированный тег документа

Узлы блочного уровня представлены следующими классами:

  • Tables и Paragraphs, которые являются наиболее важными узлами блочного уровня
  • Закладки, которые выполняются как на уровне блоков, так и на встроенном уровне
  • StructuredDocumentTag, которые представляют собой пользовательскую разметку и могут содержать как содержимое, так и элементы управления содержимым

На следующей диаграмме показаны элементы блочного уровня.

block-level-aspose-words-cpp

Встроенный логический уровень

Узлы встроенного уровня представляют фактическое содержимое документа и могут содержаться в следующих контейнерах:

  • Абзац – самый распространенный контейнер
  • SmartTag
  • Структурированный тег документа

Элементы встроенного уровня представлены следующими классами:

  • Run – фрагменты текста, отформатированные по-разному
  • BookmarkStart и BookmarkEnd представляют собой закладки
  • CommentRangeStart, CommentRangeEnd, Comment и Footnote представляют собой аннотации
  • FieldStart, FieldChar, FieldSeparator и FieldEnd, которые представляют символы полей, и FormField, которые представляют поля Word
  • SpecialChar представляет специальные символы в документе
  • Shape и GroupShape представляют собой формы, рисунки, изображения и т.д.
  • SmartTag и StructuredDocumentTag представляют собой пользовательскую разметку

На следующей диаграмме показана структура узлов встроенного уровня.

inline-level-aspose-words-cpp

Уровень узлов таблиц, строк и ячеек

Таблица состоит из узлов строк и ячеек. Элементы таблицы представлены следующими классами:

  • Row представляет строку таблицы
  • Cell представляет собой ячейку таблицы
  • StructuredDocumentTag представляет собой пользовательскую разметку

На следующей диаграмме показаны структуры узлов на уровне таблицы, строки и ячейки.

table-row-cell-aspose-words-cpp