Спецификация архитектуры типизации информации Darwin ( DITA ) определяет набор типов документов для создания и организации тематически-ориентированной информации, а также набор механизмов для объединения, расширения и ограничения типов документов. [1] Это открытый стандарт [2] , который определяется и поддерживается техническим комитетом OASIS DITA. [3]
Название происходит от следующих компонентов:
Темы являются основой для повторного использования контента, [5] и могут быть повторно использованы в нескольких публикациях. Фрагменты контента в темах могут быть повторно использованы с помощью ссылок на контент ( conref или conkeyref ), механизма включения . [6]
Последняя версия DITA (DITA 1.3) включает пять специализированных типов тем: Task , Concept , Reference , Glossary Entry и Troubleshooting . Каждый из этих пяти типов тем является специализацией общего типа Topic , который содержит элемент title, элемент prolog для метаданных и элемент body. Элемент body содержит элементы paragraph, table и list, аналогичные HTML .
Карта DITA — это контейнер для тем, используемый для преобразования коллекции контента в публикацию. Она задает последовательность и структуру тем. Карта может включать таблицы отношений (reltables), которые определяют гиперссылки между темами. [7] Карты могут быть вложенными: они могут ссылаться на темы или другие карты и могут содержать различные типы контента и метаданные.
DITA включает обширные элементы метаданных и атрибуты, как на уровне темы, так и внутри элементов. [8] Условный текст позволяет фильтровать или стилизовать контент на основе атрибутов для аудитории, платформы, продукта и других свойств. Профиль условной обработки ( файл .ditaval ) используется для определения того, какие значения следует использовать для условной обработки. [9]
DITA позволяет добавлять новые элементы и атрибуты посредством специализации базовых элементов и атрибутов DITA. Благодаря специализации DITA может включать новые типы тем, типы элементов и атрибуты по мере необходимости для конкретных отраслей или компаний. Специализации DITA для конкретных отраслей, таких как полупроводниковая промышленность, стандартизированы техническими комитетами или подкомитетами OASIS . Многие организации, использующие DITA, также разрабатывают свои собственные специализации.
Расширяемость DITA позволяет организациям специализировать DITA, определяя конкретные информационные структуры и по-прежнему использовать стандартные инструменты для работы с ними. Возможность определять специфичные для компании информационные архитектуры позволяет компаниям использовать DITA для обогащения контента метаданными, которые имеют для них значение, и для обеспечения соблюдения специфичных для компании правил в отношении структуры документа. [6]
Контент DITA создается как темы, каждая из которых является отдельным XML-файлом. Обычно каждая тема охватывает определенную тему с единственной целью, например, концептуальная тема, которая дает обзор, или процедурная тема, которая объясняет, как выполнить задачу. [10] Контент должен быть структурирован так, чтобы напоминать структуру файла, в котором он содержится. [11] [12] [13]
Документы карт и тем DITA представляют собой файлы XML . Как и в случае с HTML , любые изображения, видеофайлы или другие файлы, которые должны отображаться в выходных данных, вставляются по ссылке. Для написания контента DITA можно использовать любой редактор XML или даже текстовый редактор в зависимости от уровня поддержки, необходимой при разработке. Вспомогательные средства для разработки, представленные в специализированных редакторах, включают предварительный просмотр WYSIWYG , проверку и интеграцию с процессором DITA, таким как DITA-OT или ditac.
DITA разработана как сквозная архитектура. Помимо указания того, какие элементы, атрибуты и правила являются частью языка DITA, спецификация DITA включает правила публикации контента DITA в HTML, онлайн-справке, печати, платформе доставки контента и других форматах.
Например, спецификация DITA указывает, что если атрибут conref элемента A содержит путь к элементу B , содержимое элемента B будет отображаться в месте расположения элемента A . DITA-совместимые издательские решения, известные как процессоры DITA, должны обрабатывать атрибут conref в соответствии с указанным поведением. Существуют также правила для обработки других расширенных функций, таких как условный текст , маркеры индексов и ссылки между темами. Приложения, которые преобразуют содержимое DITA в другие форматы и соответствуют требованиям спецификации DITA для интерпретации разметки DITA , известны как процессоры DITA .
DITA обеспечивает поддержку перевода через группу атрибутов локализации. Атрибуты элемента могут быть установлены для указания того, следует ли переводить содержимое элемента. Можно указать язык содержимого элемента, а также направление письма , фильтрацию индекса и некоторые термины, которые вставляются при публикации в конечный формат. [14] Проект DITA можно преобразовать в файл XLIFF и обратно в его исходные карты и темы, используя инструмент DITA-XLIFF Roundtrip Tool для DITA-OT [15] [16] и инструменты автоматизированного перевода (CAT), такие как Swordfish Translation Editor или Fluenta DITA Translation Manager, инструмент, разработанный для реализации рабочего процесса перевода, предложенного в статье «Использование XLIFF для перевода проектов DITA», опубликованной Техническим комитетом по принятию DITA в OASIS. [17]
Стандарт DITA поддерживается OASIS. Последняя (текущая) версия — 1.3, утвержденная в декабре 2015 года. Документ об ошибках для DITA 1.3 был утвержден в июне 2018 года. [18]
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE map PUBLIC "-//OASIS//DTD DITA Map//EN" "map.dtd"> <map id= "map" xml :lang= "en" > <topicref format= "dita" href= "sample.dita" navtitle= "Sample" type= "topic" /> </map>
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd"> <topic xml:lang= "en" id= "sample" > <title> Пример </title> <body> <p> Привет, мир! </p> </body> </topic>
<?xml version="1.0"coding="utf-8"?> <val> <prop att= "audience" val= "novice" action= "include" /> <prop att= "audience" val= "expert " action= "исключить" /> </val>
Пример условного текста:
<p> Это информация , полезная для всех аудиторий. </p> <p auditor= "novice" > Это информация , полезная для новичков . </p> <p auditor = " expert " > Это информация , полезная для экспертов . </p>