将PostgreSQL文档从SGML转换为XML

来自PostgreSQL Wiki
跳转到导航跳转到搜索

在大约过去10年中,偶尔会有关于将PostgreSQL文档从SGML转换为XML(无论那是什么意思)的讨论。以下是一些需要考虑的要点。

技术要点

将源格式从SGML更改为XML与将工具链从DSSSL更改为XSLT之间存在区别。尽管DSSSL通常与SGML相关联,而XSLT与XML相关联,但实际上所有组合或多或少地都能正常工作。

关于SGML与XML的论据

  • DocBook 5,下一个主要版本,将不再发布SGML DTD。但是,DocBook 5已经开发了很多年,可能还需要很多年才能成为标准版本,并且所有以前的版本都将消失。
  • 由于标签最小化和其他一些简化,SGML比XML更容易编辑。
  • SGML支持条件部分(例如,用于构建INSTALL文件)。这需要为XML找到不同的解决方案。
  • 可能会有更多支持XML的编辑工具,但这需要得到证实。
  • 翻译团队正在使用XML。
  • 我们可能希望重命名*.sgml -> *.xml。现在使用Git更容易,但需要一些规划。
  • 使用xmllint,我们可以对文档进行类似pgindent的排序。

关于DSSSL与XSLT的论据

  • DSSSL工具多年来一直没有维护。
  • 关于FOP(XSLT到PDF工具)的小疑问:它是否维护? 是否有稳定版本(而不是无休止的开发预发布版)? 它是否可以在完全免费的Java安装上运行? 是否应该使用dblatex代替FOP?
  • 我们对DSSSL样式表所做的自定义将必须移植到XSLT。这项工作可以立即开始。
  • 当前XSLT构建的速度比DSSSL构建慢很多。
  • XSLT可能提供更多灵活性,例如部分构建。
  • 有更多以各种方式使用XSLT的工具。

我们生成的格式

一个完整的解决方案需要能够生成所有以下输出形式:

  • HTML
  • 手册页
  • RTF
  • PDF和Postscript
    • A4格式
    • 美国格式
  • TeXinfo
  • ePub

工具链组件

为了进行切换,将需要替换所有组件。列出这些组件很有价值,这样一来,没有人会犯这样的错误:认为对某个部分的某个部分解决方案代表了完整的解决方案。

docbook-utils
包含将DocBook转换为一些有用形式(html、pdf、rtf、手册页)的脚本。
docbook-dsssl
这些是用于将DocBook呈现为各种输出形式的DSSSL样式表。它们可能被XSLT样式表取代。
jade
一个DSSSL引擎
openjade
一个可选的DSSSL引擎
jadetex
一个生成基于TeX的输出的DSSSL引擎