什么是DITA?从百度的回答说起
▲ 搜索“大龙谈智能内容”关注GongZongHao▲
什么是DITA?
把这个问题输入百度,获得以下回答:
DITA 是“Darwin Information Typing Architecture”(达尔文信息类型化体系结构)的缩写,它是IBM 公司为OASIS 所支持的团体贡献的发明。OASIS 的全称为“Organization for the Advancement of Structured Information Standards”(结构信息标准化促进组织)。
DITA 是基于XML的体系结构,用于编写、制作、交付面向主题的信息类型的内容。DITA的单源内容可以通过不同的方法进行重用,生成不同的交付内容。由于DITA过去用于大型技术手册的编写、管理和交付,它能够满足所有可能呈现给读者的信息发布类型的要求。DITA可用于技术手册、交互培训,教材、标准、报告、商业文档、贸易书籍、旅游和自然指南等书籍的编写。
它有这些特点:
-
主题化
-
定制化
-
重用和过滤
-
协作和共享
见:
https://baike.baidu.com/item/DITA/7862681
这个回答看起来并没有错,但是到底什么是DITA呢?它和其他文档方法有什么区别,有什么优势呢?
今天就在百度回答的基础上聊聊什么是DITA。
- 1 -
概览
1. OASIS组织
OASIS是一个非盈利组织,它为包括开源项目在内的项目提供了一条标准化和法律批准的途径,供国际政策和采购参考。说白了,OASIS就是一个制定标准的组织。
DITA 1.3是被批准的OASIS标准,来看看DITA技术委员会的成员:

简而言之,是由科技公司的技术专家和之前在科技公司工作现在是自由职业的技术专家组成。
2. DITA用来做什么?
一句话,DITA用于编写、制作、交付内容。
可用于技术手册、交互培训,教材、标准、报告、商业文档、贸易书籍、旅游和自然指南等书籍的编写。
下边就来聊聊DITA与其他写文档的方法(比如:使用MS Word)有什么不同。
- 2 -
主题化
关于主体化,百度这样说:
DITA 定义主题DTD,它支持主题化的信息创建方法。主题是信息的组成部分,而不是完整的文档。主题根据信息类型的不同,可以分为concept(概念)、task(任务)、reference(参考),和troubleshooting(故障处理)等基本类型,这些主题通过Map文件组织起来形成文档。Map可被认为是文档目录结构,根据文档不同类型,有不同的章节划分方式。具体可以参见Darwin Information Typing Architecture (DITA) v1.3中对topic、Map、以及topic中的元素和属性的详细描述。
1. DITA总体思路
用MS Word来写文档,用户手册就是用户手册这个Word文件,白皮书是另外一个Word文件,培训教程是一个Word文件。

乐高积木的最基本的单元是砖块、板子、柱子。用这些基本单元可以组合成零件,比如:铰链、滑轨、齿轮。用若干基本单元和若干零件可以组合成汽车、机器人、房子等等。
DITA借鉴了乐高积木的思路。
DITA最基本的单元叫做Topic(主题);将若干个Topic使用Map组合起来,形成一个信息模块;将若干个Topic和若干个Map组合成一个文档(也是一个Map),如:白皮书、用户手册、新闻稿、培训教程等。

2. 信息类型
在文档中,不同的部分描述不同类型的内容,比如:定义、功能说明、操作步骤、原理、故障分析等等。
在我们的风格指南(Style Guide)中,通常说明了内容编写的规则,大家编写内容时应该遵守。
在DITA中,定义了3种类型的Topic,分别是:Concept、Task、Reference。信息类型中定义了不同类型的Topic的规则(包含的内容、顺序、哪些是必须的、哪些是可选的等),比如:
-
必须有一个标题
-
每个Topic必须有ID属性
-
Task类型的Topic中必须有Steps (步骤)
-
Steps必须有一个或者多个步骤
DITA将这些规则数字化到一个叫做DTD(文档类型定义)的文件中。在编辑时,软件通过DTD的定义提供指引,并且能够验证内容是否符合规则。
如果DITA中定义的默认类型不能满足要求,DITA提供了一种机制来让我们自己定义类型。比如:如果我们要写一个故障分析的文档,但DITA默认不提供这个类型,我们可以定义一个叫做故障分析类型的Topic。
这种机制叫做Specialization(专有化)。
3. 主题包括什么
一个主题包括两部分:
-
内容
文字、图形、视频等
-
元数据(MetaData),也就是内容的属性
比如:作者、发布时间、读者类型、所属产品系列、所属区域等等

通过提供元数据,能够促进主体的查找和使用。
比如:可以搜索跟安全相关的主题。 这就像我们期待在手机里能找与日出相关的照片一样。
- 3 -
定制化
关于定制化,百度这样说:
不同的主题都由DTD来定义的。只需掌握简单的DTD语法规则,就可以快速简单地定义适合本组织文档需求的主题。
DITA 规范提供了一个开源工具DITA Open Toolkit,该工具可方便地发布DITA格式内容,生成各种格式的输出。同时,可以很容易地定制该工具的发布过程,根据需要对输出样式进行定制化。
1. 什么是DTD
DTD是Document Type Definition(文档类型定义)的缩写。 如上所述,DTD定义了信息类型的规则。 即:包含的内容、顺序、哪些是必须的、哪些是可选的等。
2. 什么是定制DTD
DITA默认只提供Topic, Concept, Task和Reference四种主题类型。如果需要定义自己企业的主题类型,就要定制DTD。比如:定义一种主题类型叫做非正常程序。
3. 什么是DITA Open Toolkit,为什么要定制输出样式?
DITA使用内容与样式分离的方法。
内容以文字、图和视频等形式为载体;样式就是字体大小、对齐方式、颜色等格式信息。
DITA内容以XML格式进行存储,是不能直接使用的。下边是一个DITA内容的示例:

需要将内容和一个样式结合,生成我们需要的输出文件,这个过程叫做发布。

DITA Open Toolkit就是一个将DITA内容发布成目标输出的一个工具。
每个企业都有自己风格,比如:主体颜色、字体、图标、名称等。它具有标识性,人们看到这些会跟企业联系在一起。
比如:阿里巴巴的主体颜色是黄色:

比如:OPPO的主体颜色是绿色:

每个企业的文档样式也是自己企业品牌的一部分,具有辨识度。 这就需要定制文档的输出样式,以提供符合企业品牌的文档。
- 4 -
重用和过滤
关于重用和过滤,百度这样说:
DITA提供了各种机制,包括conref和keyref等内容引用,对内容进行重用。同时通过DITAVAL文件,对不同的读者对象、平台、产品、版本等进行内容过滤。
1. 内容重用解决什么问题
使用Word编写文档,相同的内容散布在各个文档中。 这造成同样的内容需要修改多次,校对多次,翻译多次。如果某处的内容被遗漏了还会造成不一致。
DITA中设计了内容重用机制来解决这个问题。
相同的内容只需要保存一份,然后各处只是引用这一份内容。 这样,只需要做一次修改、校对、翻译工作,所有引用此内容的地方都修改了。
2. 过滤又解决什么问题
设想公司生产一个系列的两个产品。这两个产品大部分的内容一样,但是有些许的差别(外观、参数等)。
那么我们为这两个产品提供文档有两种方法:1)分别为每个产品编写文档。2)写一个文档,用属性标识不同的内容,然后在发布的时候使用过滤功能生成分别针对两个产品的文档。
第一种方法就是我们使用MS Word写文档的方法。它的问题是重复的内容太多,导致重复的工作。
第二种方法MS Word不支持, DITA支持。 减少重复内容的同时, 它可根据内容属性动态过滤内容,从而生成针对A产品的文档和针对B产品的文档。

- 5 -
协作和共享
关于协作和共享,百度这样说:
将内容主题化,将格式统一到样式表,通过Map组织内容章节目录。这些方法使得文档的开发任务可以很方便地分解到各个文档编写人员手中,生成格式统一,内容规范的文档。
由于DITA文件是基于XML的文本文件,又可以很方便地进行存储和传输,实现文档的异地共享,协同作业。
1. 生成格式统一,内容规范的文档
在使用Word写文档的时候,每个人根据自己的喜好来格式化文档。
使用DITA编写内容后:
1)大家遵循统一的规则,并且由计算机来校验和保证。
2)大家不再需要调整格式,在发布文档的时候套用样式表,不同人写出来的内容出来的风格是统一的。
- 6 -
还有什么百度没说?
百度的总结不错,不过不能覆盖细节。
如果你想了解DITA的细节,以及你们公司可以怎样使用DITA来优化文档,来参加摩拿科技提供的DITA培训吧。
通过GongZongHao搜索“大龙谈智能内容”联系我们。
相关文章:
什么是DITA?从百度的回答说起
▲ 搜索“大龙谈智能内容”关注GongZongHao▲ 什么是DITA? 把这个问题输入百度,获得以下回答: DITA 是“Darwin Information Typing Architecture”(达尔文信息类型化体系结构)的缩写,它是IBM 公司为OASIS 所支持…...
线扫相机DALSA软件开发套件有哪些
Win10和Win7系统完整SDK目录截图: Sapera Configuration 缓存与内存管理,以及通信端口配置工具,部分功能等效于Detection(查找相机)内的Settings。 Sapera Log Viewer 打开Log Viewer后会显示之前发生过的所有与Sapera LT软件有关的运行信息…...
Scala集合操作
1 集合简介 Scala 中拥有多种集合类型,主要分为可变的和不可变的集合两大类: 可变集合: 可以被修改。即可以更改,添加,删除集合中的元素; 不可变集合类:不能被修改。对集合执行更改,…...
SQL备忘--特殊状态“未知“以及“空值NULL“的判断
一、新逻辑状态:未知 对于大多数其他语言的逻辑判断,一般只有两种结果:真(TURE)或假(FALSE)但在SQL中,还会有第三种判断结果:未知(UNKNOWN),表示无法判断出真或者假。 未知状态会影响传统逻辑运算&#x…...
《Pytorch新手入门》第一节-认识Tensor
《Pytorch新手入门》第一节-认识Tensor 一、认识Tensor1.1 Tensor定义1.2 Tensor运算操作1.3 Tensor与numpy转换 参考《深度学习框架PyTorch:入门与实践_陈云(著)》 一、认识Tensor 1.1 Tensor定义 Tensor 是 PyTorch 中重要的数据结构,可认为是一个高…...
【JAVA学习笔记】55 - 集合-Map接口、HashMap类、HashTable类、Properties类、TreeMap类(难点)
项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter14/src/com/yinhai/map_ Map接口 一、Map接口的特点(难点) 难点在于对Node和Entry和EntrySet的关系 注意:这里讲的是JDK8的Map接口特点 Map java 1) Map与Collect…...
Pytorch图像模型转ONNX后出现色偏问题
本篇记录一次从Pytorch图像处理模型转换成ONNX模型之后,在推理过程中出现了明显色偏问题的解决过程。 问题描述:原始pytorch模型推理正常,通过torch.onnx.export()函数转换成onnx之后,推理时出现了比较明显的颜色偏差。 原始模型…...
插值表达式 {{}}
前言 持续学习总结输出中,今天分享的是插值表达式 {{}} Vue插值表达式是一种Vue的模板语法,我们可以在模板中动态地用插值表达式渲染出Vue提供的数据绑定到视图中。插值表达式使用双大括号{{ }}将表达式包裹起来。 1.作用: 利用表达式进行…...
白雪公主
前言 #define 皇后 王后 在很久很久以前,有一个国王,由于王后难产致死,导致生下的孩子没母,由于缺爱,变的非常的刻薄 由于公主过于刻薄,以至于见到她的人都面色煞白感到空中飘雪 37C 的嘴怎能说出如此刻薄的话语。为了…...
宏观角度认识递归之合并两个有序链表
21. 合并两个有序链表 - 力扣(LeetCode) 依旧是利用宏观角度来看待问题,其中最主要的就是要找到重复的子问题; 题目中要求把两个有序链表进行合并,同时不能够创建新的节点,并返回链表的起始点:因…...
Leetcode-509 斐波那契数列
使用循环 class Solution {public int fib(int n) {if(n 0){return 0;}if(n 1){return 1;}int res 0;int pre1 1;int pre2 0;for(int i 2; i < n; i){res pre1 pre2;pre2 pre1;pre1 res;}return res;} }使用HashMap class Solution {private Map<Integer,Int…...
解密 docker 容器内 DNS 解析原理
背景 这几天在使用 docker 中,碰到了在容器中 DNS 解析的一些问题。故花些时间弄清了原理,写此文章分享。 1. docker run 命令启动的容器 以启动一个 busybox 容器为例: rootubuntu20:~# docker run -itd --name u1 busybox 63b59ca8aeac…...
故障诊断模型 | Maltab实现SVM支持向量机的故障诊断
效果一览 文章概述 故障诊断模型 | Maltab实现SVM支持向量机的故障诊断 模型描述 Chinese: Options:可用的选项即表示的涵义如下 -s svm类型:SVM设置类型(默认0) 0 – C-SVC 1 --v-SVC 2 – 一类SVM 3 – e -SVR 4 – v-SVR -t 核函数类型:核函…...
开源的网站数据分析统计平台——Matomo
Matomo 文章目录 Matomo前言一、环境准备1. 整体安装流程2.安装PHP 7.3.303.nginx配置4.安装matomo4.1 访问安装页面 http://192.168.10.45:8088/index.php4.2 连接数据库4.3 设置管理员账号4.4 生成js跟踪代码4.5 安装完成4.6 警告修改4.7 刷新页面,就可以看到登陆…...
linux入门到地狱
linux—001入门 IT圈必备(前端工作者用的比较少) 老旧电脑跑linux不容易卡 我代码没保存windows闪退,僵停(vs2019卡掉线),重启更新,占用cpu内存服务报错pip各种bug 出来生态环境友好其他的全是bug(bug时间成本超过了windows快捷友好生态) 那就说明wind…...
架构”4+1“视图
1995年Kruchten提出了著名的“41”视图,用来描述软件系统的架构。在“41”视图中,(物理视图 )用来描述系统软硬件之间的映射关系,这个视图往往(系统工程人员)最为关注;(逻…...
『精』Vue 组件如何模块化抽离Props
『精』Vue 组件如何模块化抽离Props 文章目录 『精』Vue 组件如何模块化抽离Props一、为什么要抽离Props二、选项式API方式抽离三、组合式API方式抽离3.1 TypeScript类型方式3.2 文件分离方式3.3 对文件分离方式优化 参考资料💘推荐博文🍗 一、为什么要抽…...
JavaScript字符串字面量详细解析与代码实例
JavaScript字符串字面量是一种表示字符串值的语法结构,通常用双引号或单引号括起来。 var str1 "Hello World!"; var str2 Hello World!;另外,如果需要在字符串中包含双引号或单引号,可以使用转义字符\来实现。 var str3 &quo…...
Android java Handler sendMessage使用Parcelable传递实例化对象,我这里传递Bitmap 图片数据
一、Bundle给我们提供了一个putParcelable(key,value)的方法。专门用于传递实例化对象。 二、我这里传递Bitmap 图片数据,实际使用可以成功传统图像数据。 发送:Bundle bundle new Bundle();bundle.putParcelable("bitmap",bitmap);msg.setD…...
CTF工具PDF隐写神器wbStego4open安装和详细使用方法
wbStego4open安装和详细使用方法 1.wbStego4open介绍:2.wbStego4open下载:3.wbStego4open原理图:4.wbStego4open使用教程:第一步:第二步:第三步:第四步:第五步: 5.wbSteg…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
Spring Security 认证流程——补充
一、认证流程概述 Spring Security 的认证流程基于 过滤器链(Filter Chain),核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤: 用户提交登录请求拦…...
Python 高效图像帧提取与视频编码:实战指南
Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...
