В. А. Капустин Содержание Формальные структуры текстовых документов 1 Курс лекций

Вид материалаКурс лекций
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   17

Логические составляющие DocBook


Основными структурными составляющими DocBook являются:
  • Комплекты (set)
  • Книги (book)
  • Компоненты, которые подразделяют книгу на части
  • Компоненты, которые подразделяют книгу или её разделы (части и т.п.) на главы («главоподобные» элементы)
  • Компоненты, которые подразделяют главоподобные элементы на более мелкие составляющие (разделы, пункты и т.д.) – секции
  • Метаинформация
  • Блочные элементы
  • Потоковые элементы

Остановимся на каждой категории составляющих DocBook.

Комплект


Элемент set используется на верхнем уровне иерархии документов DocBook. Этот эле­мент представляет комплект книг, будь то собрание сочинений, продолжающееся из­да­ние, комплект до­ку­ментации на космический корабль или на программный продукт.

Книга


Чаще всего для корневого элемента DocBook используется элемент book. Определение «книги», используемое DocBook, является очень общим и достаточно свободным. Не­воз­можно строго навязать последовательность элементов, составляющих книгу – обеспече­ние поддержки всего разно­обра­зия публикаций, для которых используется DocBook, и разнообразия национальных тра­диций организации материала в публикации при стро­гой последовательности элементов сделало бы модель содержания XML-документа DocBook крайне сложной. Вместо строгости DocBook дает вам достаточную свободу. Если вы хотите ре­ализовать более строгий подход, вам придется написать свой настроечный слой DTD.

Книги DocBook состоят из смеси следующих компонентов:
  • Посвящение (dedication).

Посвящение, как правило, расположено в начале книги.
  • Навигационные компоненты.

Навигационных компонентов немного: toc (Tables of Contents – Содержание), lot (Lists of Titles – списки иллюстраций, таблиц, примеров и т.д.) и index – для указателей.
  • Разделы

Раздел – верхний уровень иерархии книги. Разделы могут представлять собой либо части (part), либо т.н. справочные разделы (происходящие от формата руководств – man pages – Unix) – reference. Части содержат компоненты, а справочные разделы – элементы справки (refentry).
  • Компоненты.

Компоненты представляют собой «главоподобные» составляющие книги или части книги (book или part). В основном, это предисловие (preface), глава (chapter), приложение (appendix), словарь (glossary), указатель (index), и список литературы (bibliography). В состав компонентов может входить статья (article) и некоторые другие элементы (навигационные компоненты). Компоненты обычно содержат бло­ч­ные элементы и/или секции, а также могут содержать навигационные компо­ненты и элемен­ты справки.

Секции


Секции подразделяют главоподобные элементы на более мелкие составляющие (разделы, пункты и т.д.). В DocBook есть несколько видов секционирующих элементов.
  • sect1 ... sect5

Эти элементы используются чаще всего. Они должны быть правильно вложены: sect2 может встречаться только внутри sect1, sect3 – внутри sect2 и т.д. Разре­шено использовать только пять уровней вложенности. Преимущество использова­ния секций с явным указанием уровня вложенности в возможности независимой ав­томатической нумерации секций при их визуализации (например, section1 нуме­руется с использованием римских цифр, section2 – с использованием арабских цифр, а section3 – с использованием букв). Реализация подобных решений для элемента section, допускающего произвольный уровень вложенности, гораздо сложнее.
  • section

Это альтернатива секциям с нумерованным уровнем. Элементы section могут иметь любой уровень вложенности.
  • simplesect

Это «финальная» секция. Она может появляться на любом уровне вложенности, но сама не может содержать никакой секционирующий элемент.
  • bridgehead

«Предмостное укрепление» – служит для размещения заголовка секции без соз­да­ния собственно секции (заголовок без содержимого).
  • refsect1 ... refsect3

Эти секционирующие элементы могут появляться только в элементе справки – refentry. В справке допускается только три уровня вложенности секций.
  • glossdiv, bibliodiv и indexdiv

Словари, списки литературы и индексы могут содержать только один уровень сек­ци­онирования. Эти элементы не допускают вложенности.

Метаинформация


Большинство элементов на уровне секций и выше могут содержать «обёртку» для метаин­формации. Как правило, имя элемента такой обёртки образуется как конкатенация имени соответствующего элемента (set, book, ... sect5) и слова info: setinfo, bookinfo, sect5info. Метаинформация включает библиографическую информацию (ав­тор, заглавие, издатель и т.д.), а также и другие метаданные, например, историю измене­ний, ключевые слова, термины для индексирования и пр.

Блочные элементы


Компоненты и секции непосредственно содержат блочные элементы. Грубо говоря, блоч­ные элементы – это элементы уровня абзаца. Блочные элементы подразделяются на нес­колько категорий:
  • списки
  • замечания
  • строко-ориентированные элементы
  • разного рода аннотации
  • таблицы
  • иллюстрации
  • примеры
  • разные (около дюжины элементов)

На уровне абзаца принято выделять два класса элементов: блочные и потоковые. Со струк­турной точки зрения, различие базируется, в основном, на величине элемента, но про­ще описывать эти классы элементов с точки зрения их визуализации. Блочные эле­мен­ты обычно визуализируются в виде абзаца (или более крупного визуального ком­по­нен­та) с отбивками перед и после него. Многие блочные элементы могут содержать дру­гие блочные элементы. Многие блочные элементы также могут содержать символь­ные данные и потоковые элементы. Наиболее часто встречающиеся примеры блочных эле­мен­тов (в скобках приведены не имена соответствующих элементов DocBook, а анг­лий­с­кие названия блочных элементов): абзац (paragraph), заметка на полях (sidebar), таблица, блочная цитата (block quotation). Потоковые элементы обычно не содержат от­би­вок. Для визуализации поточных элементов наиболее характерно изменение шрифта, но поточный элемент может совершенно не выделяться при визуализации. Потоковые элементы содержат символьные данные и, возможно, другие потоковые элементы, но ни­когда не содержат блочные элементы. Поточные элементы используются для разметки таких данных, как перекрёстные ссылки, имена файлов, код, опции, индексы (верхние и нижние), словарные термины и т.п.

Списки


DocBook содержит несколько видов списков:
  • calloutlist

Список выносок (к графическим и другим вынесенным из контекста элементам).
  • glosslist

Список словарных терминов и их определений. Используется тогда, когда важна семантика словаря (например, в документе присутствует словарь – glossary, – и из него есть ссылки на помещенную в список информацию). Если семантика списка терминов и определений не связана со словарём, то следует использовать variablelist.
  • itemizedlist

Неупорядоченный (маркированный) список. Элемент имеет атрибуты, позволяю­щие управлять маркерами.
  • orderedlist

Нумерованный список. Элемент имеет атрибуты, позволяю­щие управлять способом нумерации.
  • segmentedlist

Повторяющийся набор именованных сущностей (не XML-сущностей). Пример: субъекты Российской Федерации и их столицы.
  • simplelist

Список «без украшений». Такие списки могут быть потоковыми или визуализиро­ваться в несколько столбцов.
  • variablelist

Список терминов и их определений и описаний. Используется вне связи со слова­рем (элемент glossary). Все использованные списки могли бы быть описаны как variablelist.

Замечания (Admonitions)


DocBook содержит 5 видов замечаний: «обратите снимание» (caution), «важно» (important), «замечание» (note), «совет» (tip), и «предупреждение» (warning). Семантика замечаний не связана с их названиями. Все эти элементы имеют одну и ту же структуру: необязательный заголовок (title), за которым следуют элементы уровня абзаца.

Строко-ориентированные элементы


Строко-ориентированные элементы предназначены для передачи пробельного мате­риа­ла (включая переводы строк), содержащегося в символьных данных. DocBook не имеет ана­лога
(из HTML), так что DocBook не позволяет произвольно вставить разрыв стро­ки в поток текста.
  • address

Предназначен для почтовых адресов (с учетом разбивки на строки для печати на конверте). Содержит дополнительные элементы для разметки имён и элементов адреса.
  • literallayout

Строко-ориентированный элемент без определенной семантики.
  • programlisting

Используется для исходного текста программ, фрагментов кода и подобных листингов. Обычно выводится моноширинным шрифтом.
  • screen

Используется для передачи моноширинного вывода. Часто применяется как универсальный строко-ориентированный элемент.
  • screenshot

Обёртка для элемента graphic, предназначенная для описания изображений (части) экрана.
  • synopsis

Предназначен для описаний функций (языков программирования) и команд (оболочек операционных систем и других приложений).

Примеры, иллюстрации и таблицы

  • Примеры, иллюстрации и таблицы – часто используемые блочные элементы: example, informalexample, figure, informalfigure, table и informaltable.

Различие между «формальными» и «неформальными» элементами заключается в том, что формальные элементы имеют заглавия, а неформальные – нет.

Абзацы

  • para, simpara и formalpara

Существует три вида абзацев. Простой абзац (simpara) не может содержать другие блочные элементы. Формальный абзац имеет заглавие.

Уравнения

  • equation и informalequation

Уравнения. Для поточных уравнений (формул) используется inlineequation.

Графические элементы

  • graphic, figure, mediaobject

Для поточных иллюстраций используются inlinegraphic и inlinemediaobject. В DocBook 5.0 graphic отсутствует.

FAQ

  • qandaset

Список вопросов и ответов и аналогичные списки.

Потоковые элементы


DocBook предоставляет много различных потоковых элементов. На практике авторы ис­пользуют не все, а только необходимые потоковые элементы, поскольку использование большого числа разнообразных потоковых элементов требует значительных затрат вре­ме­ни. При этом обычно размечаются не все отрезки текста, которые можно было разме­тить, а только те, разметка которых абсолютно необходима. В приводимом ниже списке по­то­ко­вых элементов я сохраню их классификацию, приведенную в 7, при этом некото­рые эле­менты попадают в несколько категорий. Приводимый мной список не является исчер­пывающим, полный список потоковых элементов приведен в книге Н.Уолша 7.

Традиционные типографские потоковые элементы


Эти элементы предназначены для выделений, встречающихся в большинстве публикаций.
  • abbrev

Аббревиатура, как правило, оканчивающаяся точкой.
  • acronym

Сокращение, образованное из заглавных (или некоторых) букв фразы (или слова), например РФ
 – Российская Федерация.
  • emphasis

Выделение.
  • footnote

Сноска. Положение сноски в визуализованном документе (в нижней части стра­ни­цы, в конце документа или другое) определяется стилевым файлом (например, XSLT).

На ту же сноску возможны ссылки из других мест документа. Для этого исполь­зует­ся элемент footnoteref.
  • phrase

Сегмент текста. Аналог span из HT ML.
  • quote

Потоковая цитата.
  • trademark

Упоминание торговой марки.

Перекрестные ссылки


Перекрестные ссылки позволяют разметить как явные (link), так неявные (glossterm) пе­рекрестные ссылки. Неявные перекрестные ссылки могут быть сделаны явными в резуль­та­те визуализации, если у соответствующих элементов присутствует атрибут linkend.
  • anchor

Место в документе. Аналог в HTML.
  • citerefentry

Ссылка на страницу справочного руководства.
  • firstterm

Первое появление термина в документе.
  • glossterm

Упоминание словарного термина.
  • link

Внутренняя ссылка в документе.
  • ulink

Внешняя ссылка (с использованием URL).
  • xref

Ссылка на часть документа

Разметка


Потоковые элементы этой группы используются для особой обработки при выводе.
  • foreignphrase

Слово или фраза на языке, отличном от основного языка документа.
  • wordasword

Слово дословно.
  • computeroutput

Данные, выводимые компьютером.
  • markup

Разметка, которую нужно трактовать не как разметку, а как выводимый текст.
  • prompt

Приглашение ввода данных.
  • replaceable

То, что должно быть заменено пользователем, «местозаместитель» (например, в шаблоне).
  • userinput

Текст, вводимый пользователем.

Математика


DocBook не предоставляет достаточно полного набора элементов для разметки произ­воль­ных математических выражений. Если необходимо, можно воспользоваться прост­ран­ством имён MathML (приложение XML, позволяющее размечать математические тек­сты).
  • inlineequation

Формула.
  • subscript

Нижний индекс, как в H2O.
  • superscript

Верхний индекс, как в x2 или U235.

Интерфейс пользователя

  • accel

Горячая клавиша.
  • guibutton

Текст на кнопке.
  • guilabel

Подпись к элементу управления.
  • guimenu

Название меню.
  • guimenuitem

Текст позиции меню.
  • keycap

Название клавиши, написанное на клавише.
  • keycode

Код (как правило, числовой), генерируемый при нажатии клавиши.
  • keysym

Символическое обозначение клавиши.
  • menuchoice

Последовательность выборов из меню.
  • mousebutton

Название кнопки мыши.
  • shortcut

Комбинация горячих клавиш.

Языки программирования


Многие элементы разметки этой категории соответствуют английским названиям со­от­вет­ствующих конструкций распространенных языков программирования.
  • classname

Имя класса в объектно-ориентированном языке программирования.
  • constant

Константа.
  • errorcode

Код ошибки.
  • errorname

Название ошибки.
  • errortype

Тип ошибки.
  • function

Имя функции или процедуры.
  • interface

Элемент графического интерфейса пользователя.
  • literal

Литерал.
  • msgtext

Текст сообщения.
  • parameter

Значение или символическая ссылка на значение (передаваемое куда-то).
  • property

Единица данных, связанная с какой-либо частью компьютерной системы.
  • replaceable

То, что должно быть заменено пользователем, «местозаместитель» (например, в шаблоне).
  • returnvalue

Значение, возвращаемое функцией.
  • structfield

Поле структуры (член, свойство объекта).
  • symbol

Имя, которое будет заменено на значение перед обработкой, идентификатор.
  • token

Единица обрабатываемой информации, лексема.
  • type

Тип данных.
  • varname

Имя переменной.

Операционные системы


Эти потоковые элементы предназначены для идентификации компонентов операцион­ной системы или среды.
  • application

Название программы или комплекта программ.
  • command

Команда операционной системы или оболочки.
  • envar

Имя переменной среды окружения.
  • filename

Имя файла.
  • medialabel

Надпись на физическом носителе данных.
  • msgtext

Текст сообщения.
  • option

Опция, выбираемый параметр (например, в конфигурационном файле или в интерфейсе настройки).
  • prompt

Приглашение ввода данных.
  • systemitem

Фраза или термин, относящиеся к системе.

Потоковые элементы универсального технического применения

  • application

Название программы или комплекта программ.
  • database

База данных или её часть.
  • email

Адрес электронной почты.
  • filename

Имя файла.
  • hardware

Текст, относящийся к физическому компоненту компьютерной системы.
  • inlinegraphic

Ссылка на потоковое изображение.
  • optional

Необязательная информация.