什么是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. 主题包括什么

一个主题包括两部分

  1. 内容

    文字、图形、视频等

  2. 元数据(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搜索“大龙谈智能内容”联系我们。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/161410.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Canvas 实现进度条展示统计数据示例

canvas可以画柱状图&#xff0c;如下就是一个例子&#xff0c;主要用到了lineWidth&#xff0c;beginPath&#xff0c;lineCap等知识点。 效果图 源代码 <!DOCTYPE Html> <html> <head><title>Line Chart Demo</title><meta http-equiv&quo…

腾讯云服务器CVM详细介绍_优缺点亲自整理

腾讯云服务器CVM提供安全可靠的弹性计算服务&#xff0c;腾讯云明星级云服务器&#xff0c;弹性计算实时扩展或缩减计算资源&#xff0c;支持包年包月、按量计费和竞价实例计费模式&#xff0c;CVM提供多种CPU、内存、硬盘和带宽可以灵活调整的实例规格&#xff0c;提供9个9的数…

腾讯云CVM服务器操作系统镜像大全

腾讯云CVM服务器的公共镜像是由腾讯云官方提供的镜像&#xff0c;公共镜像包含基础操作系统和腾讯云提供的初始化组件&#xff0c;公共镜像分为Windows和Linux两大类操作系统&#xff0c;如TencentOS Server、Windows Server、OpenCloudOS、CentOS Stream、CentOS、Ubuntu、Deb…

【Java】类和对象

类和对象 类&#xff1a;类是描述一个对象的&#xff1b; 对象&#xff1a;对象是类产生的实体&#xff1b; 类 一般一个文件中只定义一个类&#xff1b; 类的组成&#xff1a; 成员变量&#xff08;也叫做属性、字段&#xff09;&#xff1a;定义在方法的外部&#xff0c;类…

【算法练习Day39】单词拆分多重背包的介绍

​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;练题 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 单词拆分多重背包总结&…

【iOS】知乎日报前三周总结

这几天一直在进行知乎日报的仿写&#xff0c;仿写过程中积累了许多实用的开发经验&#xff0c;并对MVC有了更深的了解&#xff0c;特撰此篇作以总结 目录 第一周将网络请求封装在一个单例类Manager中SDWebImage库的简单使用运用时间戳处理当前时间自定义NavigationBar 第二周在…

轻量封装WebGPU渲染系统示例<12>- 基础3D对象实体(源码)

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/main/src/voxgpu/sample/PrimitiveEntityTest.ts 此示例渲染系统实现的特性: 1. 用户态与系统态隔离。 细节请见&#xff1a;引擎系统设计思路 - 用户态与系统态隔离-CSDN博客 2. 高频调用与低频调用隔…

基于STM32设计的室内环境监测系统(华为云IOT)_2023

一、设计需求 基于STM32+华为云物联网平台设计一个室内环境监测系统,以STM32系列单片机为主控器件,采集室内温湿度、空气质量、光照强度等环境参数,将采集的数据结果在本地通过LCD屏幕显示,同时上传到华为云平台并将上传的数据在Android移动端能够实时显示、查看。 【1…

小程序制作(超详解!!!)第十二节 循环求和计算器

1.index.wxml <view class"box"><view class"title">利用循环语句求和</view><view><input placeholder"请输入起点数值" type"number" bindblur"starNum"></input><!--一旦失去交…

个人服务器到期,项目下线,新的开始

告别旧服务器 2023.11.06服务器到期&#xff0c;所有项目正式下线 时间真的过的很快&#xff0c;从开始踏入编程的大门&#xff0c;到现在不知不觉已经陆续经手了两台服务器了&#xff0c;目前这台服务器是一年前的阿里云活动白嫖的嘿嘿嘿&#xff0c;该服务器上目前运行的项…

C++初阶-类和对象(中)2

类和对象&#xff08;中&#xff09;2 一、赋值运算符重载运算符重载赋值运算符重载前置和后置重载 二、日期类的实现三、const成员四、取地址及const取地址操作符重载 一、赋值运算符重载 运算符重载 C为了增强代码的可读性引入了运算符重载&#xff0c;运算符重载是具有特殊…

python 机器学习 常用函数

一 np.random.randint "randint" 是 "random integer" 的缩写&#xff0c;表示生成随机整数。 np.random.randint 是 NumPy 库中的一个函数&#xff0c;用于生成随机整数。以下是该函数的一般语法&#xff1a; np.random.randint(low, high, size)其中…