DITA
Darwin Information Typing Architecture (DITA) — приложение XML, предназначенное для автоматизации сборки документов из разрозненных фрагментов, оформленных согласно соответствующим DTD, и их публикации в различных форматах. Определяет набор типов документов для создания и организации тематической информации, а также набор механизмов для комбинирования, расширения и ограничения типов документов[1]. Это открытый стандарт[2], который определён и поддерживается Техническим комитетом OASIS DITA[3].
Архитектура типизированной информации Darwin (Darwin Information Typing Architecture, DITA) — это основанная на XML технология, охватывающая весь цикл разработки, выпуска и доставки технической информации. Эта архитектура составлена из набора принципов, описывающих как создание модулей с «типизированной информацией» на уровне отдельных тем, так и использование этой информации, например в онлайн-справке или на веб-портале технической поддержки.
Основными элементами DITA — кирпичиками, из которых строится архитектура разбитой по темам информации, — являются определения типов XML-документа (DTD), а именно, «DTD-тем». Несмотря на это, основополагающим принципом в архитектуре DITA является её расширяемость; DTD-тем, как и любые схемы на их основе, — это лишь конкретные реализации принципов этой архитектуры.
Принципы DITA
Принцип единого источника в DITA
DITA поддерживает принцип единого источника посредством:
- возможности многократно использовать контент;
- профилирования и фильтрации контента;
- публикации во множество форматов из одного источника.
Контент может многократно использоваться на следующих уровнях:
- Контент внутри топика.
- Топик в целом.
- Карта документа.
DITA позволяет профилировать контент с помощью атрибутов. Фильтрация контента осуществляется с помощью фильтров, определяемых в формате *.ditaval.
Контент может быть опубликован во множество форматов, включая XHTML, PDF, ODT, Eclipse Help, HTML Help, JavaHelp, RTF, DocBook, Troff.
Многократное использование контента на уровне топика
Профилирование контента — разметка различных вариаций одного и того же контента и определение в каких случаях должна применяться каждая из вариаций. Например, один и тот же контент может иметь различные вариации для разных клиентов или для разных версий продуктов. Условный контент — различные вариации контента. При публикации остаётся одна или несколько вариаций, релевантных для данного случая, все остальные вариации отфильтровываются. Условный контент помечается с помощью атрибутов. Атрибуты могут быть определены у любого элемента. Основные атрибуты для профилирования контента:
- audience;
- platform;
- product;
- xml: lang.
Новые атрибуты могут быть добавлены через механизмы специализации DTD.
Фильтрация условного контента при публикации происходит с помощью фильтров, определяемых в формате *.ditaval. Файлы *.ditaval состоят из:
- Пар атрибут-значение.
- Действия (скрыть или показать) для каждой пары атрибут-значение, например:
<?xml version="1.0" encoding="UTF-8"?>
<val>
<prop att="audience" val="p" action="exclude"/>
<prop att="audience" val="a" action="include"/>
<prop att="xml:lang" val="ru-ru" action="include"/>
<prop att="xml:lang" val="en-us" action="exclude"/>
</val>
При применении фильтра все элементы, в которых задан атрибут audience="p" будут исключены, а элементы, с атрибутом audience="a", будут включены.
Для получения различных результатов, в зависимости от того, какой контент должен быть отфильтрован, может поддерживаться несколько фильтров. Пример использования в dita-разметке:
<?xml version="1.0" encoding="UTF-8"?>
<conbody>
<p xml:lang="en-us">Some English text</p>
<p xml:lang="ru-ru">Некоторый русский текст</p>
</conbody>
Многократное использование контента на уровне карты
Топик может быть включён или исключён из определённой карты документа. В каждой карте документа, один и тот же топик может быть помещён на разные уровни иерархии и занимать любое место в последовательности топиков. Если ряд топиков встречаются в одной и той же последовательности и в одной и той же иерархии, они могут быть объединены в мини-карту. Мини-карта может использоваться как единое целое в других картах. В разных картах мини-карта может находиться на разных уровнях иерархии и занимать любое место в последовательности топиков.
Топик-ориентированный подход
- Документ представлен как организованная коллекция отдельных контекстно-независимых топиков.
- Топик описывает один единственный предмет.
- Каждый топик написан таким образом, который позволяет его использовать во множестве контекстов.
- В топике может использоваться условный текст.
- Все топики хранятся в отдельном месте.
- Для публикации топики собираются вместе в карту документа. Карта определяет порядок и иерархию документа.
- В зависимости от типа информации, которую описывает топик, топик имеет определённую внутреннюю структуру.
Типизация информации
- Concept — тип топика для описания общей информации.
- Task — тип топика для пошагового описания процедур.
- Reference — тип топика для документирования команд и настроек.
Отделение контента от форматирования
- Топик содержит только контент.
- Информация о форматировании элементов топика хранится в отдельных файлах — шаблонах форматирования.
- Один и тот же контент может быть представлен множеством способов, путём наложения разных шаблонов.
- Форматирование накладывается на контент во время создания контента, а также во время публикации.
Специализация
Под специализацией DITA понимается механизм адаптации DITA для конкретных нужд. Могут быть созданы:
- Новые информационные типы.
- Новые домены.
- Новые атрибуты.
Примечания
- Darwin Information Typing Architecture (DITA) Version 1.3 . Дата обращения: 1 ноября 2020.
- Darwin Information Typing Architecture (DITA) Version 1.2 . Дата обращения: 10 октября 2012.
- OASIS Darwin Information Typing Architecture (DITA) TC . OASIS. Дата обращения: 5 октября 2012.