IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  XML  >

关于 DITA 常见问题——关于文档的基于 XML 的 Darwin信息分类体系结构 (DITA) 的答案

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

DonR. Day (dond@us.ibm.com)IBM 公司
Michael Priestley (mpriestl@ca.ibm.com)IBM 公司
Gretchen Hargis (ghargis@us.ibm.com)IBM 公司

2001 年 3 月 01 日

有关 Darwin 信息分类体系结构常见问题

常规 DITA 问题





回页首


DITA 的主题体系结构





回页首


技巧和技术





回页首


常规 DITA 问题

问:为什么这个体系结构以 "Darwin" 命名?

答:该体系结构的完整名称有这个组合解释:

  • Darwin: 它使用专门化和继承的原理
  • 信息分类:它利用了主题(概念、任务、引用)的语义和内容(消息、分类的短语、语义表)的语义
  • 体系结构:它为信息提供了垂直空间(新应用程序)和边缘扩展(新类型专门化)

这个体系结构支持从任何高级 DTD 或模式的正确构造专门化 DTD 。基本 DTD 是 ditabase DTD,它包含一个原型主题结构和三个附加同级主题(从基本主题:concept、task 和 reftopic 专门化分类形成的。这种专门化和继承的原理与 Charles Darwin 提出的不同物种分类原理很相似。所以这个名称提醒我们此体系结构中是固有的关键可扩展性机制。

返回到顶部

问:我在哪里可以了解更多有关面向主题的编写和用户辅助?

答:浏览 下面的主题体系结构 FAQ,然后尝试下面两个关于信息体系结构的介绍性站点。

返回到顶部

问: 为什么不使用 DocBook?

答: 尽管 DocBook 和 DITA 都着重于交付技术信息,但 DocBook 的解决方案主要侧重于交付书籍,而 DITA 则着重于交付主题,它可以组装到书中,也可以一起链接至帮助集或网站。DITA 的主要延展机制 -- 专门化 -- 是基于主题级的信息分类,而不是文档分类。专门化允许作者描述特定信息域而不影响常规过程或增加核心 DTD 复杂性。主题类型、主题内容和基于主题的转换 都设计成通过引用来重用。因此,重用的控制移到重用者而不影响访问公共过程或工具,也不需要损害信息的可移植性、使用期限或一致性。

返回到顶部

问:如何进行和控制对 DTD 的修改?

答: DITA 设计是一个原型;该设计 — 包括 DTD 和样式表 — 将通过感兴趣的用户社区 — 您的反馈来不断地发展。

使用 DITA 论坛来讨论 DITA DTD 和样式表的使用。在 read-me 文档列出了几个已知的局限性,但当您在使用 DTD 时,无疑其他人也在期待的发现。通过 DITA 论坛中的讨论,我们将一些重要的想法应用至后续的刷新软件包。DITA 项目的体系结构设计师 Don DayMichael Priestley 以及其他人将积极监控论坛。

在我们知道将更改或应该考虑的事项有是:

  • XLink 库的使用
  • 新的专门化
  • 改进的内容模型定义
  • 新的语义标记

返回到顶部

我可以在我的公司内使用 DTD 吗?

答:可以,我们鼓励您使用它。

返回到顶部

问:DITA 已集成到任何 IBM 的产品中吗?

答: 是的。我们正在进行的几个项目就是使用 DITA。这些项目的目的就是继续确认 DITA 体系结构和在产品开发环境中使用 DTD。

返回到顶部

问:有 DITA DTD 的 XML 模式吗?

答: 还没有。文档若要跨系统使用以及有很长生命周期,就应该用已有的最标准格式定义,现在仍然是 DTD。

尽管 XML 模式可以提供 DTD 所不能提供的内容规则 ,但许多文档创作工具和生产工具仍然依赖于 DTD。如果您整个进程所有的工具都支持模式,对文档使用 XML 模式就有意义。如果您开发和生产文档的过程既可以使用支持 DTD 又可使用支持模式工具,那么目前最好依靠 DTD。除非您创建一个模式可以 仅仅允许 DTD 所允许的,您就不能在模式和 DTD 驱动的创作系统中之间切换了。实际上,如果我们所依靠的工具在可以忽略 DTD 时,使用模式只有很少实际优势。

XML 模式的优点之一是它可以作为信息模型式的正式规范语言来使用。而现在,我们将继续使用 DTD 格式作为我们模型的记录定义,我们 将依赖于今后的工具来将 DTD 转换成即将出现的 W3C XML 模式标准。

我们设计 DITA 时,在预料到模式语言后的专门化原理,并且我们计划转到模式表示法上。

返回到顶部





回页首


DITA 的主题体系结构

问: 什么是主题?

答: 主题是按单一题目范围组织的一段信息。从结构上看,它是一个后面跟随着文本和图象的主题,可选地按节组织成。主题有许多不同 类型,最通用的是概念、任务和引用。

返回到顶部

问: 为什么使用主题?

答: DITA 是基于主题的,因为主题是允许以不同交付上下文重用而不影响作者效率的最理想尺寸。如果我们选择小一些的单元,作者需要核对所有上下文的单元,以确保信息流正确。如果我们选择大一些的单元,信息不容易重新合并到不同交付上下文所需的结构。从作者的观点来说,一个主题要大到能自我容纳,但要小到特殊上下文需要的以任何高级结构的有效重用。

返回到顶部



问: 什么是在体系结构中主题结构?

答: 主题结构是我们为文档体系结构建立的某些条件的结果。

  • <topic> 是单一非嵌套主体和任何数量的嵌套主题的容器。
  • <title> 提供自我描述,与创作指南一致。
  • <body> 是段落级内容和任何数量的非嵌套部分的容器。
  • 主题可以增加一个前言,其中包括简短描述和其他可选的元数据。

这些条件可导致下列结构:

<!ELEMENT topic (title,prolog?,body,%info-types,*>

参阅 样本主题,及其说明, DITA 主题的结构.

返回到顶部



问: 什么是主题中的渐进公开?

答:因为每一主题除了正文以外都有一个标题和简短描述,应用程序可以 提供渐进公开。例如,用户可以在链接上看一下它的简短描述然后再决定是否按链接查看完余下的主题。渐进公开也允许有针对性的以不同查看环境浏览主题,无论是全屏幕浏览,还是集成帮助窗格,弹出信息或 PDA 屏幕。应用程序可以尽可能多的公开环境所支持的内容, 以便用户决定从哪里和如何发掘更多内容。

返回到顶部



问:可以嵌套主题吗?

答:可以嵌套主题以创建更大的文档结构。但是,嵌套总是发生在内容边界,以便可以很方便地子与父主题按不同的上下文中分离或重用(参阅 DITA 主题结构 )。这里有个嵌套结构的示例。

<topic>
<title>A general tioec</title>
<prolog><shortdesc>this general topec id pretty general.</shortdesc></prolog>
<body><p>General topecs are not very specific.They are useful for
the big picture,but they don`t get into details in the same way as
more specific topecs.</p></body>
        
        
        <topic>
<tille>specific topec</title>
<prolog><shortdesc>This is a more specific topic.
</shortdesc></prolog>
<body><p>Specifically, this is more specific.</p></body>
</topic>
</topic>
      
      
      

可以用嵌套结构或个别独立文档来创作主题。在后一种情形中,根据需要将文档组装成嵌套结构,比如说当交付 有部分和章节层次的印刷或可打印的信息。

嵌套的结构在主题集合中给出一个主题序列和层次结构。在 Web 环境中,可以将此结构反汇编成个别主题,并在生成的 导航映射或目录表中保留其层次结构。但是,如果 Web 是主要的交付工具,可能希望将主题作为单独的文档来创作,然后 应用在相同主题集合的几个目录表中。

返回到顶部



问:什么是信息类型?

答:信息类型描述主题的类别,例如概念、任务或引用。正常情况下,不同信息类型支持不同种类的内容。 例如,通常任务有一组步骤,而引用主题有一组定制部分,象语法、特性和用法。

返回到顶部



问:为什么使用信息类型?

答:使用信息类型可以将主题分成类别,这比在没有信息类型时,可以更加容易的管理和保持一致性。信息类型也可以帮助用户更加容易查找到他们所要查找的信息:任务中的 how-to 信息对比概念中的背景信息对比引用主题中详细的规范。

返回到顶部



问:什么是专门化?

答:专门化是创建主题新类别或信息类型的过程。可以使用现有的作为基础来定义这些新类型。 例如,产品组可能将引用主题标识为三个主要类型:信息、实用程序和 API。通过对内容的每一类创建专门的主题类型, 产品的体系结构可以确保每一主题类型都有适当的内容。另外,专门化主题使支持 XML 搜索更加有效,因为用户可以 利用精细特征。例如用户可以仅在信息或仅在 API 中搜索 xyz,以及通常跨引用主题搜索 xyz

规则可以监管如何安全地专门化:每一新信息类型必须映射到现有的一种类型,而且新信息类型必须比它们所允许的内容中现成的更加有限制性。使用这样的专门化,新信息类型可以使用翻译、打印和 Web 发布的类属处理流。虽然产品组可以覆盖或扩展这些过程,在不需要额外工作或维护下,他们可以缺省地获得全系列现有过程。 DITA 专门化文章的附录描绘了这些规则。

返回到顶部






回页首


技巧和技术

问:我如何将几个主题合并成单一文档?

答:DITA 基本语言提供了有 W3C XInclude 建议 语义意图的 <include> 元素。这个元素在主题或其他信息类型有效的位置都是有效的。例如, 这里是一个简单的父文档,它在用 DITA 样式表处理后,在一个公共输出中合并了其他两个支持:

<topic>
<title>Including topics</title>
<body>
<p>This document appears,upon output,to have been a single
entity,when in fact it began as a simple topic with two includes.
Conversely,any nested topec can be disassociate into standalone
topecs!</p>
</body>
        
        
        <include
href="topic-a.xml"><!-- standalone topics -->
        
        
        <include href="topic-b.xml"></topic>
      
      
      

查看或处理父文档导致子主题包含在复合结果。

返回到顶部



问:如果我的信息没有分成主题,该怎么办?

答:大多数信息都可以分成主题(标题和内容)。但是,如果您的信息需要更加无缝的跨主题边界的信息流动,不要使用这个体系结构。

返回到顶部



问:什么时候应该专门化?

答:当您有一个希望保持一致性限制性的类别主题,或者您的用户希望有与众不同的类别时,可以创建专门化主题。确保从正确基本类型专门化:例如,引用主题的类别应该专门化 <reftopic>,任务的类别应该专门化 <task>。 如果您需要比基本类型允许还要多的内容结构,可以直接从 topic 专门化或形成您自己的基类型。但是,在您专门化的层次结构中,层次结构越低越好;然后可以利 用任何转换和处理,这些转换和过程是为更常规的类别(您从其专门化)而开发的。

返回到顶部



问:如何专门化?

答:需要标识出信息的新类型与从您专门化的更常规类型的差异。在已经标识出差异之后, 创建一个 DTD 文件以宣布您所需求的新元素。创建另外一个模块,声明新元素的一组映射属性指向它们专门化的类属元素类型。然后在 DTD 文档中添加导入语句以引入映射模块和任何父模块。最后,添加一行重新定义信息类型实体以包含新类型。 现在,您有了一个定制的 DTD。

使用这个通用过程创建一个专门化的信息类型:

  1. 标识需要的元素。
  2. 标识到更常规类型元素的映射。
  3. 验证专门化元素的内容模型比它们常规的等价部分更具限制性。
  4. 创建一个类型模块文件,该文件具有专门化的元素和属性声明(除了特殊属性)。
  5. 创建保持特殊属性声明的映射模块文件。
  6. 创建导入适当类型模块的创作 DTD 文件。
  7. 创建导入适当类型模块和映射模块的处理 DTD 文件。

这个过程在文档 Darwin 信息输入体系机构的专门化中有详细描述。

返回到顶部



问:如何扩展支持专门化的转换?

答:通过使用这个常规过程创建专门化 XSL 转换:

  1. 创建用于您的信息类型的新转换。
  2. 导入想要扩展的现有的转换。
  3. 标识您需要特殊处理的元素。
  4. 添加与这些元素相匹配的模板规则,按元素名称和规范殊属性内容。
返回到顶部

问:我可以在这个 DTD 中使用 HTML 吗?

答:可以。许多作者都至少有一些使用 HTML 标记语言的经验。因此,对于可能使用的主题的技术信息类型,基本 DITA DTD 合并了许多有用的 HTML 元素。另外我们已经定义了一个 XHTML 的子集,可以很方便地转换成 DITA 格式 -- 对于许多内容元素通常没有变化!事实上,如果您可以将一个 XHTML 文档加载到和 XML DITA 文档一样的编辑器,您也许可以直接将一长段 XHTML 内容拷贝和粘贴至主题。无论如何, 为了获得 XML 的真正好处,您应该使用 DTD 的语义。

返回到顶部



问:我在哪里可以看到使用中的 DITA DTD?

答:就在这里!这个 FAQ 就是以 XML 格式,使用了 DTD 的 qalist 部分。借助于样式表,使您在浏览器中能看到。和本建议书一起的其他文档是使用 ditabase DTD 的 XML 格式创作的。

返回到顶部



参考资料



作者简介

Don 是位丈夫、父亲和喜欢猫的人,他为 IBM 的信息开发社区设计和支持出版工具,并代表 IBM 参加 W3C XSL 和 CSS 工作组。他持有英语和新闻专业的学士学位,新墨西哥州立大学技术和职业通讯专业的硕士学位。


Michael Priestley 是 IBM 多伦多软件开发实验室的信息开发人员。他写了大量论文,如,超文本导航、singlesourcing 和动态文档接口。他目前在做用于帮助和文档管理的 XML 和 XSL。


Gretchen 是高级软件工程师,主要从事软件开发工具方面的技术编辑。她是 Developing Quality Technical Information (Prentice Hall) 一书的作者并拥有俄国 McGill 大学的学士学位。




对本文的评价










回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款