编辑工具在对 XML(特别是 DocBook)的支持方面已经取得了长足的进步。本节概述了两种类型的编辑器:文本编辑器(emacs、vim 等)和文字处理器(OpenOffice、AbiWord 等)。不熟悉标记语言的新作者可能应该选择可以输出 DocBook 文件的文字处理器。因此,文字处理器首先列出。
尽管许多编辑器也可以验证您的 DocBook 文件,但此信息已分隔到B.3 节。
![]() | 更多信息 |
---|---|
查看资源部分以获取更多信息。 |
即使您不熟悉在文本编辑器中使用 DocBook 的标签集,您仍然可以使用文字处理器生成有效的 DocBook 文档。目前的支持非常有限,但以下程序中确实存在。当然,好处是拼写检查等功能已内置到程序中。除此之外,对 DocBook(和 XML)的支持也在不断改进。
![]() | 转换 Microsoft Word 文档 |
---|---|
即使您想使用 MS Word 编写文档,您也可能会发现 w2XML 非常有用。请注意,这不是免费软件——费用约为 130 美元。但是,有该软件的试用版。 |
![]() | 专注于内容! |
---|---|
请记住,当您的文档由 LDP 发布时,您对文档所做的所有格式更改都将被忽略。与其关注文档的外观,不如关注内容。 |
从 OpenOffice.org (OOo) 1.1RC 开始,已经支持将文件导出为 DocBook 格式。
尽管 OOo 使用完整的 DocBook 文档类型声明,但它实际上并未导出 DocBook 元素的完整列表。它使用“简化”的 DocBook 标签集,该标签集旨在用于即时渲染。(尽管它不是 B.5 节中描述的官方简化 DocBook。)OpenOffice 简化(或“特殊” docbook)可从 http://xml.openoffice.org/xmerge/docbook/supported_tag_table.html 获取。
LDP 志愿者已经测试了 OOo,结果大多是积极的。感谢 Charles Curley (charlescurley.com) 提供的以下关于使用 OOo 1.0.x 版本的说明
![]() | 检查您的 OpenOffice 版本 |
---|---|
这些说明可能不适用于您正在使用的 OOo 版本。 |
为了能够导出为 DocBook,您必须安装 Java 运行时环境 (JRE) 并在 OOo 中注册——建议至少使用 4.2.x 版本。配置说明将取决于您安装 JRE 的方式。访问 OOo 网站以获取有关设置的帮助。
与 OOo 文档相反,Linux OOo 没有附带 JRE。我从 Sun 获得了一个。
导出的文件有很多空行。我导出的 54 行文件有 5 行实际的 XML 代码。
没有进行任何美化打印的努力。
标头是<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
文件格式的“DocBook(简化)。”没有对“简化”表示什么进行解释。OOo 是否导出了 DocBook 的子集?如果是这样,哪些元素被忽略了?是否有任何方法可以手动输入其中任何一个?
-> 对话框中的下拉菜单指示导出格式为没有关于 DocBook 导出过滤器或 OOo 是否会再次导入它的文档。
结论:如果您想要一个文字处理器来准备 DocBook 文档,则值得考虑 OOo 1.1RC。
但是,我希望他们能治愈文档的缺乏。首先,最好知道哪些原生 OOo 样式映射到哪些 DocBook 元素。最好也知道如何将自己的 OOo 样式映射到 DocBook 元素。
Tabatha Marshall 为 OOo 1.1 提供了以下附加信息。
第一个问题是我尝试在 1.0.1 版本上完成所有操作时。这显然是一个问题。我有 RH8,它是通过 rpm 包安装的,所以我将其删除并全新安装了 OpenOffice 1.1。花了一段时间才发现 1.1 是 XML 工作的要求。
在安装过程中,我相信我被提供了安装 XML 功能的选择。我倾向于完整安装我的办公程序,所以我选择了所有内容。
我无法为那些试图更新其当前 OO 1.1 的人提供任何建议。他们的“3 种方法”在网站 (xml.openoffice.org) 上没有很好的文档记录,而且在撰写本文时,我什至无法在其网站上找到 THAT。我认为那里需要更当前的文档来引导人们完成该过程。大部分内容都不清楚,我不得不进行大量的实验才能使事情正常运行。
好吧,在我安装完所有内容后,我进行了一些配置。我打开应用程序,然后通过打开一个新文件,选择模板,然后选择 DocBook 模板开始。一个漂亮的
菜单为我弹出,我注意到这些都是标签的名称(你可以看到我不经常使用 WYSIWYG)。在我面前有一个空白文档(除非打开某种类型的文档,否则无法进入
菜单),我进入 -> ,并编辑了 DocBook 文件的条目。我将我的配置如下
文档类型 -//OASIS//DTD DocBook XML V4.2//EN
DTD http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd
用于导出的 XSLT /usr/local/OpenOffice.org1.1.0/share/xslt/docbook/ldp-html.xsl
用于导入的 XSLT /usr/local/OpenOffice.org1.1.0/share/xslt/docbook/docbooktosoffheadings.xsl(这是默认设置)
用于导入的模板 /home/tabatha/OpenOffice/user/template/DocBook File/DocBookTemplate.stw
起初,如果我打开一个甚至有一个解析错误的 XML 文件,它仍然会打开该文件并以 OO 显示标记。我有很多 XML 文件使用 © 和其他类型的实体,这些实体显示为解析错误(取决于编码),即使它们可以被处理。但是今天我无法打开任何这些文件。相反,我得到了输入/输出错误。仍在调查那一个。
但是,当您成功打开文档(一个没有错误的解析)时,它会根据标记自动将其放入 WYSIWYG 中,然后您可以像任何其他此类编辑器一样从段落样式菜单中工作。
要验证文档,我使用了
-> ,然后单击了 按钮。在我的屏幕上,我将用于导出的 XSLT 设置为ldp-html.xsl。如果测试并且存在错误,则会弹出一个新窗口,底部显示错误消息,顶部显示需要更改的行。您可以在那里更改它们并逐步解决错误,直到所有错误都消失,并继续测试直到它们消失。如果您想打开一个文件以查看源代码而不是处理后的结果,请转到显示源框。我当前的导入 XSLT 是docbooktosoffheadings.xsl(默认值),用于导入的模板是DocBookTemplate.stw(也是默认值)。
-> -> ,然后在 部分下,选中我认为这可能对某些人有用,但不幸的是对我没用。我从未使用 WYSIWYG 来编辑标记。Emacs 与 PSGML 可以告诉我我的下一个标签是什么,无论我在哪里,都可以通过移动到问题点来验证,并且我可以从命令行解析和处理。
使用 OpenOffice,您必须访问 http://xml.openoffice.org/filters.html 才能找到转换工具。
用于 MS Windows 平台的 WordPerfect 9 支持 SGML 和 DocBook 3.0。用于 Linux 的 WordPerfect 9 没有 SGML 功能。
如果您在 Linux 操作系统上使用 WordPerfect,请阅读:WordPerfect on Linux FAQ
http://www.xmlmind.com/xmleditor/
虽然严格来说,它不是文字处理器,但 XMLmind 的 XML 编辑器 允许作者专注于内容,而不是标记。它内置了拼写和转换实用程序,使您无需安装和配置额外的处理工具(如 jade)即可转换文档。有一个免费的“标准版”,它是其“专业版”的简化版本。
根据他们的网站,“Conglomerate 旨在成为每个人都可以使用的 XML 编辑器。特别是,我们的主要目标是为 DocBook 和类似格式创建终极编辑器。它旨在隐藏 XML 的术语和复杂性,并以有意义的方式呈现文档中的信息。”
![]() | 适用于高级作者 |
---|---|
本节概述的工具允许您直接使用 DocBook 标签。如果您不熟悉标记语言,您可能需要改用文字处理器。支持 DocBook 的文字处理器在 B.2.1 节中进行了描述。 |
如果您熟悉标记语言和文本编辑器,您可能需要自定义当前选择的编辑器以处理 DocBook 文件。以下是一些更常见的文本编辑器,通过一些调整,可以处理 DocBook 文件。
http://www.lysator.liu.se/~lenst/about_psgml/
Emacs 具有称为 psgml 的 SGML 编写模式,它是一种主要模式,专为编辑 SGML 和 XML 文档而设计。它提供
“语法高亮”或“美化打印”功能,使标签突出显示
一种插入标签的方法,而不是手动键入它们
以及在编写时验证文档的能力
对于 Emacs 用户来说,这是一个很好的选择。PSGML 可以很好地与 DocBook、LinuxDoc 和其他 DTD 一起工作。
如果您安装了最新的发行版,您可能已经安装了 PSGML 以与 Emacs 一起使用。要检查,启动 Emacs 并查找 PSGML 文档 (C-himpsgml)。
![]() | 依赖项 |
---|---|
如果您现在没有安装 PSGML,那么现在可能是升级 Emacs 的好时机。其余说明将假设您已安装 PSGML。 |
如果您希望 GNU Emacs 在打开.xml文件时进入 PSGML 模式,它需要能够找到 DocBook DTD 文件。如果您的发行版已经设置了 PSGML 以与 GNU Emacs 一起使用,您可能不需要执行任何操作。
![]() | 调整 Emacs |
---|---|
有关如何配置 Emacs 的更多信息,请查看 。 |
配置系统以使用 PSGML 后,您将需要使用 psgml-mode 覆盖 Emacs 的默认 sgml-mode。这可以通过配置您的.emacs文件来完成。编辑配置文件后,您需要重新启动 Emacs。
在 Emacs 中创建新的 DocBook XML 文件需要多个步骤。
创建一个新文件,扩展名为xml。
在文件的第一行输入您要使用的 DocBook 版本的文档类型。如果您不确定文档类型是什么,请查看 B.5 节
输入 C-c C-p。如果 Emacs 成功解析您的 DTD,您将看到正在解析序言...完成在 minibuffer 中。
输入 C-c C-e Enter 以自动插入文档的父元素。(新作者通常编写articles。)
如果一切正常,您应该在文档类型声明之后看到文档父元素的新标签。换句话说,您现在应该在文档中看到两个额外的标签<article>和</article>。
可以将 Emacs 配置为使用 aspell,方法是将以下内容添加到您的~/.emacs文件。感谢 Rob Weir 提供的此配置信息。
;; Use aspell (setq-default ispell-program-name "aspell") ;;Setup some dictionary languages (setq ispell-dictionary "british") (setq flyspell-default-dictionary "british") |
epcEdit 程序允许您编辑 XML 文件。它的优点是不需要在开始之前了解 Emacs 或 vi,并且是跨平台的,可在 Windows 和 Linux 中工作。这是一个商业应用程序,定价可以在 http://www.tksgml.de/pricing.html 找到
除了可视化编辑外,epcEdit 还将在加载时以及通过使用
-> 命令按需验证文档。http://www.morphon.com/xmleditor/index.shtml
这是一个商业应用程序,目前免费提供(带有可选的用户注册)。它用 Java 编写,允许它在任何具有 Java 虚拟机的平台上运行(即,在 Windows 和 Linux 中都有效)。
XMLEditor 的优点是屏幕左侧显示文档的层次结构(从 Book 等开始)。在列表中选择一个项目会将您带到文档的该部分,以便您可以编辑它。屏幕的右侧部分显示没有显示任何标记或标签的文本。如果您有外部文件作为 ELEMENTS(如 LDP 作者指南那样),XMLEditor 将会跟踪链接并加载文件,因此您始终在整个作品上工作。缺点是,如果文件丢失,您会收到错误。
公平地说,nedit 更适合程序员,因此对于新用户,尤其是非程序员来说,它可能看起来有点过分。撇开所有这些不谈,它非常强大,允许语法高亮。与 epcEdit 不同,nedit 不允许您自动插入标签或自动验证您的代码。但是,它允许对窗口内容运行 shell 命令(而不是保存文件,然后检查)。
当您打开 DocBook 文件时,nedit 应该已经启用了语法高亮。如果它没有,您可以使用以下方法显式打开它: -> ->
如果您启用了行号(使用 nsgmls,我们将使用的验证工具,按行号列出错误。
-> ),那么查找验证错误会简单得多。由于您可以将窗口的内容馈送到外部程序,因此您可以轻松扩展 nedit 以执行重复性功能。您将在此处看到的示例是使用 nsgmls 验证您的文档。有关 nsgmls 和验证文档的更多信息,请阅读 B.3 节。
选择
-> -> -> 。这将弹出 Shell 命令对话框,其中列出了 nedit 在 菜单下列出的所有 shell 命令。在菜单条目下,输入“验证 DocBook。”这将是您在屏幕上看到的条目。
在快捷键下,按 Alt-S。设置此菜单项后,您可以按 Alt-S 以自动运行验证 DocBook。
在命令输入下,选择窗口,在命令输出下,选择对话框。
在要执行的命令下,输入 nsgmls -sv。使用-v将版本号输出到屏幕,以便您知道命令已运行。
![]() | 检查 PATH |
---|---|
请注意,nsgmls 必须在您的PATH中才能正常工作。 |
单击
,您现在将返回到 nedit 主屏幕。加载一个 XML 文件,然后选择 -> 或按 Alt-S。nedit 程序将启动并检查窗口的内容。
如果您只看到 nsgml 的版本号,则您的文档有效。任何错误都由文档中的行号报告。
在不谈论 vi 的情况下,任何关于文本编辑器的提及都是不完整的。VIM (Vi IMproved) 编辑器具有常规 vi 的功能,并包括标签的“语法高亮”。
有许多版本的 vi。新作者可能需要功能更丰富的版本,以实现语法高亮和包括鼠标控制的图形界面。
Red Hat 用户将需要以下软件包:vim-common、vim-minimal 和 vim-enhanced。Debian 用户将需要以下软件包:vim。对于 X 界面(包括 GUI 菜单和鼠标控制),用户将需要 gvim。“g” 在 gvim 中代表 “图形化”。
如果您需要构建自己的 VIM,则编译非常容易。vim 和 gvim 默认情况下都会构建。语法高亮已包含在内,但如果您必须从头开始,则默认情况下未启用;在 VIM 中使用 :syntax enable 命令来启用此功能。
在 vim 和 gvim 中,.xml文件将被识别并进入“SGML 模式”。一系列已知的 DocBook 标签和属性已输入到 vim 中,如果名称已知,则会以一种颜色突出显示,如果未知,则会以另一种颜色突出显示(对于此作者,颜色为黄色和蓝色)。
在文档顶部具有正确的文档类型声明应该会添加语法高亮。如果您没有看到此高亮,您将需要强制 VIM 进入 SGML 模式(即使对于 XML 文件),使用命令 :set ft=sgml。如果您正在处理单个 XML 文档的多个文件,您可以在文件顶部的 <-- 注释 --> 中添加文档类型,以获得正确的语法高亮(您需要重新启动程序才能看到高亮的变化)。此文件的顶行(tools-text-editors.xml)看起来像这样
<!-- <!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'> --> |
以下信息由 Kwan Lowe 提供。
Vim 有一个 DocBook 帮助脚本,可以轻松复制到您的.vimscripts目录,并用于在编写 DocBook 文档时“自动完成”标签。该脚本可以从以下网址下载:http://www.vim.org/scripts/script.php?script_id=38。
获取文件,然后解压缩它。将dbhelper.vim复制到您的.vimscripts目录(如果您有目录)。
$ mkdir .vimscripts $ cp dbhelper.vim .vimscripts您还需要转换dbhelper.vim文件为 unix 格式
$ dos2unix dbhelper.vim接下来,编辑您的.vimrc文件并添加行source /home/yourname/.vimscripts/dbhelper.vim
要使用脚本,请输入 vi 并进入插入模式。按 ,(逗号),后跟快捷方式。例如,dtbk
http://www.datamech.com/XMLForm/
此基于 Web 的应用程序允许您输入 XML 源的 URL,或将 XML 直接复制并粘贴到 Web 表单中。然后,该应用程序将您的文档分解为一系列表单字段,这些字段隐藏 DocBook 标签,以便您可以直接编辑内容。版本 5 可从 http://www.datamech.com/XMLForm/formGenerator5.html 获取。此应用程序最适合较短的文档(少于 20 页打印)。
由于这是一个在线工具,因此它仅适用于小型更新。
http://www.xmlmind.com/xmleditor
David Horton 提供了以下信息
我是 XMLmind 的 XXE 编辑器和 XFC FO 转换器的忠实粉丝。它是“像啤酒一样免费”,但不一定是“像言论一样自由”。但是,个人使用许可非常宽松。它是基于 Java 的,因此可以在各种操作系统上运行。