↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 7.0 / 6.5
历史版本PostgreSQL 7.0 已于 2005 年 5 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

DG2.3. 文档源码

文档源码包括纯文本文件、手册页和 html。不过, Postgres 的新文档大多将使用 标准通用标记语言 (SGML) DocBook 文档类型定义(DTD)编写。 现有文档的大部分已经或将被转换为 SGML。

SGML 的目的是让作者能够 指定文档的结构和内容(例如使用 DocBook DTD), 并由文档样式定义这些内容如何被渲染成 最终形式(例如使用 Norm Walsh 的样式表)。

文档积累自多个来源。随着我们把现有文档整合成一个连贯的 文档集,较旧的版本将逐渐过时,并会从发行包中 删除。但是,这不会立即发生,也不会 同时发生在所有文档上。为了简化过渡,并 帮助引导开发者和作者,我们定义了一份过渡路线图。

DG2.3.1. 文档结构

目前有五份用 DocBook 编写的独立文档。每份文档 都有一个容器源文档,它定义 DocBook 环境和其他 文档源文件。这些主源文件位于 doc/src/sgml/,文档使用的许多其他源文件也在 那里。主源文件有:

postgres.sgml

这是集成文档,把所有其他文档作为部分包含在内。 它以 HTML 格式生成输出,因为浏览器界面 让你只需点击就能在全部文档之间轻松跳转。 其他文档同时提供 HTML 和硬拷贝两种格式。

tutorial.sgml

入门教程,带示例。不包括编程主题, 旨在帮助不熟悉 SQL 的读者。 这是“入门”文档。

user.sgml

用户指南。包括数据类型和用户级接口的信息。 这是放置“为什么”类信息的地方。

reference.sgml

参考手册。包括 Postgres SQL 语法。 这是放置“怎么做”类信息的地方。

programming.sgml

程序员指南。包括 Postgres 可扩展性以及编程接口的信息。

admin.sgml

管理员指南。包括安装说明和发行说明。

DG2.3.2. 样式与约定

DocBook 有一组丰富的标签和 构造,其中直接而明显地适用于良构文档的百分比 出人意料地高。Postgres 文档集最近才改写为 SGML,不久 将来会从文档集中选出若干节,作为 DocBook 用法的示范性示例加以 维护。此外,下面还会给出 DocBook 标签的简短摘要。

DG2.3.3. SGML 编写工具

当前的 Postgres 文档集是使用 纯文本编辑器(或 emacs/psgml,见下文)编写的,内容用 SGML DocBook 标记。

SGML 和 DocBook 的开源编写工具 并不多。最常见的工具集是 带 psgml 功能扩展的 emacs/xemacs 编辑软件包。 在某些系统(例如 RedHat Linux)上,典型的完整安装会包含这些工具。

DG2.3.3.1. emacs/psgml

emacs(以及 xemacs)有 一种 SGML 主模式。正确配置后, 它可以让你用 emacs 插入标签并 检查标记的一致性。

把以下内容放入你的 ~/.emacs 环境文件(把路径名调整为适合你系统的值):

; ********** for SGML mode (psgml)

(setq sgml-catalog-files "/usr/lib/sgml/CATALOG")
(setq sgml-local-catalogs "/usr/lib/sgml/CATALOG")

(autoload 'sgml-mode "psgml" "Major mode to edit SGML files." t )
     

并在同一文件中为 SGML 向(已有的) auto-mode-alist 定义中加入一项:

(setq
  auto-mode-alist
  '(("\\.sgml$" . sgml-mode)
   ))
     

每个 SGML 源文件的末尾都有下面这一块:

!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"./reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:("/usr/lib/sgml/catalog")
sgml-local-ecat-files:nil
End:
--
     

Postgres 发行包中包含一个 已解析的 DTD 定义文件 reference.ced。 你可能会发现

使用 emacs/psgml 时,处理这些 分别保存书籍各部分的文件,有一种方便的方式:在编辑时 插入适当的 DOCTYPE 声明。例如,当前这个源码 文件是一章附录,因此可以将它指定为 DocBook 文档的 “appendix”实例,把第一行写成这样:

      !doctype appendix PUBLIC "-//Davenport//DTD DocBook V3.0//EN"
     

这意味着任何读取 SGML 的东西都能正确处理它, 而且我可以用 “nsgmls -s docguide.sgml” 验证该文档。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。