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

developerWorks 中国  >  XML | Open source  >

技巧: 用 DITA Open Toolkit 实现简易命令行处理

不必了解 Ant,就能够将 DITA 文档转换为各种输出格式

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

讨论


级别: 初级

Bob DuCharme (bob@snee.com), 解决方案架构师, Innodata Isogen

2008 年 1 月 21 日

DITA Open Toolkit 可以将 DITA 文件转换为各种输出类型。在最初安装时,您很可能觉得必须掌握 Ant 才能使用它,但实际上可以利用它的可用选项建立简单的 Java™ 命令。

简介

Document Information Typing Architecture(DITA)是一套用于面向主题的写作的 XML 文档类型。如果您希望定制 DITA DTD 或模式来适应内容的结构,也可以使用 DITA 提供的机制创建这些文档类型的特殊版本。与许多标准一样,必须符合 DITA,才能使用围绕这个标准构建的商业软件和免费软件。

最流行的免费 DITA 软件是 DITA Open Toolkit(或称为 “DITA OT”),这是一种用来处理 DITA 文件的基于 Java 的环境。安装它之后,它可以接受 DITA XML 文档(甚至是符合您定制的 DITA 模式的文档)并创建 HTML、PDF、RTF、troff 、Eclipse Help 和其他格式的版本。

在初次安装它时,我运行了 “Verifying the installation” 下面的安装说明所描述的构建演示(参见 参考资料)。我看到了它能够从 DITA 示例源文件创建的所有输出格式,感到印象深刻。但是不得不承认,我随后觉得有点儿灰心 — 构建演示是由一个 Ant 脚本驱动的,这个脚本的长度超过 800 行并包含另一个 Ant 构建文件,那个文件又包含十几个文件。我的 Ant 技能实在有限,所以根本不知道如何编写脚本来将我的 DITA 文档转换为 XHTML 或 PDF。

最后,我发现只需使用一行命令指示 DITA OT 将特定的 DITA 文档转换为它的任何输出格式,甚至不需要查看 Ant 脚本。





回页首


DITA Open Toolkit 自动执行的操作

如果让 XSLT 处理程序(比如 Xalan 或 Saxon)“在 DITA 文档 mydoc.xml 上运行 DITA OT 样式表 whatever.xsl”,不一定会有效果。必须设置几个环境变量并指定其他关系,这样 DITA OT 的各个部分才能正确地配合工作。在使用定制的模式时,这尤其重要。假设您的 recipe 文档类型中的 ingredient 元素是 DITA prereq 元素的定制版本,希望让 DITA OT 创建 recipe 文档的 HTML 版本。如果 DITA OT 无法找到专门针对 ingredients 元素的任何处理,就需要查询是否应该在 ingredients 元素上使用 prereq 处理。

在构建演示所用的 Ant 脚本中,有许多代码用来完成这个设置,需要使用 Ant 脚本将 DITA OT 转换自动化。对于没有时间提高 Ant 技能的 Ant 新手来说,好消息是也可以自动创建 Ant 构建文件。如果把要转换的 DITA 源文件和所需的输出格式告诉 DITA OT 的 dost.jar 文件,它就会完成余下的工作。





回页首


使用 dost.jar 文件

与大多数良好的 jar 文件一样,如果用 -jar 选项和 jar 文件名启动 Java 环境,不带其他参数,就会看到 dost.jar 可用的参数列表。它有大约 30 个参数,据说其中只有两个是必需的,但是我发现可以只使用一个参数:输入文件的名称。当在 DITA OT 的主目录中执行以下命令行时,工具包会在默认的 out 子目录中创建 currywurst.xml 的 XHTML 版本:

java -jar lib/dost.jar /i:C:/temp/currywurst.xml

因为软件文档指出 /i 输入文件参数和 /transtype 转换类型参数都是必需的,所以 XHTML 不一定总是后一个参数的默认值。

如果为这个参数提供其他值,就会出现真正有意思的现象,比如:

java -jar lib/dost.jar /i:C:/temp/currywurst.xml /transtype:pdf

这会根据 DITA 输入文件创建一个 XSL-FO 文件。如果安装了 Apache FOP 并按照 DITA Open Toolkit 安装文档的描述正确地设置了变量,它就会创建 PDF 文件 — 这些操作都只需要一个相当简短的命令行。

我不想重复文档中关于每个命令行选项的信息,但是要告诉您对于全面理解选项非常重要的一些情况:尽管没有哪个 DITA Open Toolkit 文档页面全面解释了所有 DITA OT 命令行选项,但是有两个页面提供的信息加在一起就比较完整了。“Processing from the Java command line” (参见 参考资料)列出了 /i/transtype 等命令行参数和等效的 Ant 脚本参数,“Ant processing parameters”(参见 参考资料)描述了脚本参数的作用及其默认值。

没有 /transtype 有效值的完整列表。但是,如果为 /transtype 提供无效的值,dost.jar 就会显示有效值的列表:

参数创建
xhtml 符合 W3C XHTML 标准的 HTML。
eclipsehelp XHTML 和附属文件,可以为 Eclipse IDE 中的插件提供帮助。
eclipsecontent 可以作为 Eclipse 插件安装的文件,这让 Eclipse 可以动态地显示信息。
javahelp Java 帮助处理程序的输入。
htmlhelp Windows HTML 帮助编译器的输入。
pdf XSL-FO,然后使用 Apache FOP 创建 PDF 输出。这个选项已经废弃,由 pdf2 选项替代。
pdf2 XSL-FO,然后使用 RenderX 的 XEP FO 引擎和 Idiom 插件创建 PDF 输出。只有在安装 FO 插件之后,才能使用这个选项。可以重新配置它,从而使用 XEP 之外的其他处理程序。
troff troff 格式,这是最初为早期 AT&T UNIX® 系统开发的一组格式编码。
docbook 符合 DocBook DTD 的 XML,这是一种流行的技术文档标准。
wordrtf Rich Text Format(来自 Microsoft®),一种基于文本的格式,用于在 Microsoft Word 自处理程序中交换文档。
分享这篇文章……

digg 提交到 Digg
del.icio.us 发布到 del.icio.us
Slashdot Slashdot 一下!

如果设置一个使用 DITA Open Toolkit 的复杂的大型生产环境,那么使用 Ant 提供的所有功能管理复杂性是有意义的。在使用 DITA OT 时必须安装它,所以对于大型项目,有必要学习 Ant 并根据 DITA OT 包含的 Ant 脚本构建一些脚本。但是,如果只是想试试 DITA OT,那么 dost.jar 提供了一种体验所有 DITA OT 特性的好方法。只需在命令行上输入简单的命令,就会看到每个参数的效果。这很有趣!



参考资料

学习

获得产品和技术
  • DITA Open Toolkit sourceforge 主页:这是 OASIS DITA Technical Committee 的 DITA DTD 和模式规范的一种基于 Java 的实现(可在 Windows、Linux/UNIX 和 Mac OS 操作系统中使用),可以使用它将 DITA 内容(映射和主题)转换为各种格式。

  • 使用 IBM 试用版软件 构建您的下一个开发项目,这些软件可以从 developerWorks 直接下载。


讨论


关于作者

Photo of Bob DuCharme

Bob DuCharme(www.snee.com/bob)是以下书籍的作者:Manning Publications 即将出版的 XSLT Quickly 、Prentice Hall 的 XML: The Annotated SpecificationSGML CD,以及 McGraw Hill 的 Operating Systems Handbook。他为 XML.com 撰写 “Transforming XML” 专栏并为 XML Magazine、XML Journal、IBM developerWorks 和 Prentice Hall 的 XML Handbook 撰稿。Bob 经常在行业会议和用户组发表演讲。他是 UDICo(www.udico.com)中负责企业文档的副总裁,这家公司开发了一种高性能、低内存占用的中间件引擎和开发工具包。他拥有 Columbia University 的宗教学学士学位和 New York University 的计算机科学硕士学位。目前与妻子 Jennifer 以及女儿 Madeline 和 Alice 住在 Brooklyn 的 Park Slope。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

将您的建议发给我们或者通过参加讨论与其他人分享您的想法.




回页首


Java 和所有基于 Java 的商标是 Sun Microsystems 公司在美国和/或其他国家的商标。 Microsoft、Windows 和 Windows 徽标是 Microsoft 公司在美国和/或其他国家的商标。 UNIX 是 The Open Group 在美国和其他国家的注册商标。 其他公司、产品或服务名称可能是其他公司的商标或服务标志。 其他公司、产品或服务的名称可能是其他公司的商标或服务标志。

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