Darwin Information Typing Architecture (DITA) — приложение XML, предназначенное для автоматизации сборки документов из разрозненных фрагментов, оформленных согласно соответствующим DTD, и их публикации в различных форматах.
Цитата из статьи «Введение в архитектуру типизированной информации Darwin»:
Архитектура типизированной информации Darwin (Darwin Information Typing Architecture, DITA) — это основанная на XML технология, охватывающая весь цикл разработки, выпуска и доставки технической информации. Эта архитектура составлена из набора принципов, описывающих как создание модулей с «типизированной информацией» на уровне отдельных тем, так и использование этой информации, например в онлайн-справке или на веб-портале технической поддержки.
Основными элементами DITA — кирпичиками, из которых строится архитектура разбитой по темам информации, — являются определения типов XML-документа (DTD), а именно, «DTD-тем». Несмотря на это, основополагающим принципом в архитектуре DITA является её расширяемость; DTD-тем, как и любые схемы на их основе, — это лишь конкретные реализации принципов этой архитектуры.
DITA поддерживает принцип единого источника посредством: возможности многократно использовать контент; профилирования и фильтрации контента; публикации во множество форматов из одного источника.
Контент может многократно использоваться на следующих уровнях: Контент внутри топика. Топик в целом. Карта документа.
DITA позволяет профилировать контент с помощью атрибутов. Фильтрация контента осуществляется с помощью фильтров, определяемых в формате *.ditaval.
Контент может быть опубликован во множество форматов, включая XHTML, PDF, ODT, Eclipse Help, HTML Help, JavaHelp, RTF, Docbook, Troff.
Профилирование контента — разметка различных вариаций одного и того же контента и определение в каких случаях должна применяться каждая из вариаций. Например, один и тот же контент может иметь различные вариации для разных клиентов или для разных версий продуктов. Условный контент — различные вариации контента. При публикации остается одна или несколько вариаций, релевантных для данного случая, все остальные вариации отфильтровываются. Условный контент помечается с помощью атрибутов. Атрибуты могут быть определены у любого элемента. Основные атрибуты для профилирования контента: audience; platform; product; xml:lang.
Новые атрибуты могут быть добавлены через механизмы специализации DTD.
Фильтрация условного контента при публикации происходит с помощью фильтров, определяемых в формате *.ditaval. Файлы *.ditaval состоят из: Пар атрибут-значение. Действия (скрыть или показать) для каждой пары атрибут-значение, например:
При применении фильтра все элементы, в которых задан атрибут audience="p" будут исключены, а элементы, с атрибутом audience="a", будут включены.
Для получения различных результатов, в зависимости от того, какой контент должен быть отфильтрован, может поддерживаться несколько фильтров. Пример использования в dita-разметке:
<conbody> <p xml:lang="en-us">Some English text</p> <p xml:lang="ru-ru">Некоторый русский текст</p> </conbody>
Топик может быть включен или исключен в определенную карту документа. В каждой карте документа, один и тот же топик может быть помещен на разные уровни иерархии и занимать любое место в последовательности топиков. Если ряд топиков встречаются в одной и тойже последовательности и в одной и тойже иерархии, они могут быть объединены в мини-карту. Мини-карта может использоваться как единое целое в других картах. В разных картах мини-карта может находиться на разных уровнях иерархии и занимать любое место в последовательности топиков.
окумент представлен как организованная коллекция отдельных контекстно-независимых топиков. Топик описывает один единственный предмет. Каждый топик написан таким образом, который позволяет его использовать во множестве контекстов. В топике может использоваться условный текст. Все топики хранятся в отдельном месте. Для публикации топики собираются вместе в карту документа. Карта определяет порядок и иерархию документа. В зависимости от типа информации, которую описывает топик, топик имеет определенную внутреннюю структуру.
Concept — тип топика для описания общей информации. Task — тип топика для пошагового описания процедур. Reference — тип топика для документирования команд и настроек.
Информация о форматировании элементов топика хранится в отдельных файлах — шаблонах форматирования. Один и тот же контент может быть представлен множеством способов, путем наложения разных шаблонов. Форматирование накладывается на контент во время создания контента, а также во время публикации.
Под специализацией DITA понимается механизм адаптации DITA для конкретных нужд. Могут быть созданы: Новые информационные типы. Новые домены. Новые атрибуты.