Добавить в избранное | Сделать стартовой страницей

Большая Linux библиотека для пользователей OS Linux и ПО для нее
Есть что сказать? Нужен совет? Посети наш форум.




Написание документации, часть III: DocBook/XML.

Автор : Кристоф Шпиль [Christoph Spiel]
Перевод : С. Скороходов

Цитирую"Всеобемлющее руководство по DocBook" (подробности -- в разделе Дополнительные материалы): DocBook представляет собой систему для написания структурированных документов с использованием SGML или XML. В дальнейшем я сосредоточусь на XML-варианте DocBook, поскольку вариант, использующий SGML, постепенно выходит из употребления.

По сравнению с системами, которые обсуждались раньше (статьи про POD и LaTeX/latex2html), развитие DocBook происходило на базе несколько иной идеологии:

  • В документах DocBook "текст" означает скорее "текстовые данные". В этом смысле, о документе DocBook лучше думать, как о базе данных, сохраняющей "читабельность" [human-readable].
  • Как стандарт, DocBook предписывает и то, какую внутреннюю структуру должны иметь документы с верной структурой [valid documents], и то, как они должны "выглядеть". Я написал "выглядеть" в кавычках потому, что применение документов DocBook не ограничено просмотром на экране. Такие документы могут быть трансформированны и в поток речи, например, в навигационной системе автомабиля (Представьте, как Ваша SUV спрашивает: "Желаете установить KDE3 прямо сейчас?").
  • В ходе преобразования в какой-либо выходной формат документы DocBook тщательно проверяются на соответствие определенной структуре. Эта структура определена в так называемом описании типа документа, сокращенно -- DTD (document type description).
    Изменяя DTD, на документ в формате DocBook можно наложить практически любые ограничения. Например, организационный комитет какой-либо научной встречи может принять такую DocBook DTD, что все статьи в протоколах конференции будут выглядеть одинаково и содержать необходимую информацию об авторах.

Эти специфические черты DocBook намекают на такое применение, которое если и не невозможно, то крайне затруднительно реализовать в документах POD или LaTeX.

  • Благодаря своей структуре, документы формата DocBook можно легко созавать и модифицировать программными средствами, а также по ним удобно проводить автоматизированный поиск.

    Для доступа к соответствующим XML документам мы, например, можем загрузить модуль XML::DOM в программу на Perl или служащий тем же целям модуль xml.dom в Python.

    Для преобразования XML World Wide Web Consortium (W3C, http://www.w3c.org) даже определил специальный язык, названный XSLT (посмотрите, например, http://www.w3.org/TR/xslt and http://www.oasis-open.org/cover/xsl.html). XSLT сам определен в рамках SGML, что делает XML и XSL очень похожими: сплошные угловые скобки:).

  • Для преобразования DocBook в HTML, TeX, GNU Texinfo и многие другие -- включая аудио -- форматы существует множество инструментов. Это тоже непохоже на рассмотренные ранее форматы, для обработки которых имелось лишь одно приложение.

  • Популярные средства преобразования (трансляторы):

    • OpenJade (http://openjade.sourceforge.net/) использует для преобразования DSSSL -- Lisp'одобный язык, описывающий преобразование XML-DocBook в HTML, TeX и т.д. Дополнительная информация по адресам: http://www.jclark.com/dsssl/ и http://www.oasis-open.org/cover/dsssl.html и
    • Saxon (http://saxon.sourceforge.net/), делающий то же самое с помощью XSL.

    Установка обеих программ, включая необходимые стилевые таблицы DSSSL и стилевые таблицы XSL -- дело достаточно непростое, так что начинающим я бы советовал попробовать пакеты .deb или .rpm.

Оба набора программ являюстя многоцелевыми трансляторами и, таким образом, не ограничены преобразованиями документов DocBook. При наличии правильных стилевых таблиц можно делать и другие трансформации.

Синтаксис

Синтаксис DocBook/XML напоминает HTML. Фундаментальное отличие между ними -- строгость, с которой требуется выполнение синтаксических правил. Многие HTML-браузеры в высшей степени терпимы к "незакрытым" [unterminated] элементам и обычно безмолвно игнорируют неизвестные элементы и атрибуты. Трансляторы DocBook/XML отвергают не соответствующие DTD входные данные отказываясь в этом случае выдавать какие-либо выходные данные. Отказ сопровождается подробным отчетом об обнаруженных ошибках.

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

Специальные символы записываются с помощью привычных соглашений об амперсанде & и точки с запятой ;, как и в HTML. Наиболее часто употребимые специальные символы:

  • Амперсанд, "&"
  • Меньше чем, "<" и
  • Больше чем, ">".

Комментарии заключаются между "спецскобками"