1.2. Docbook是什么

根据Docook官网的解释,Docbook是一种schema。

schema,中文一般翻译为模式,但是如此解释,还是很抽象,很难理解。

[提示]关于Schema

此处,可以简单的将Docbook理解为,类似于某种语言,比如英语。

英语,包括了对应的单词,词汇,以及对应的语法,规定了单词和词汇之间的关系,如何使用它们才是正确的。

对应的Docbook,也规定了一堆基本的单词和相应的语法

  1. Docbook中的单词 == 元素(Element)

    Docbook中的单词,被称为元素(elment),比如最常见的book,chapter,section等。

  2. Docbook的中语法 == 用其他语言(Relax NG/SGML/XML DTDs/W3C XML Schema)来解释

    Docbook中各个元素之间的关系,是Docbook规定好的。

    此所谓的规定,就是用某种方法,解释出来,并且要解释的清楚易懂。

    而直接用文字去描述的话,比如book下面可以嵌套多个chapter,chapter下面可以有多个section等,

    首先真容易把Docbook的人累死,因为单纯用文字描述清楚如此复杂的关系,真的需要太多文字的解释。

    其次,用纯文字描述,语义上不是足够明确。

    而计算机领域内,有对应的,专门用于描述,类似于Docbook中的各个“单词”之间的关系的语言。

    而Docbook就是采用他们,来解释清楚,Docbook中有哪些元素,以及这些元素之间的关系又是啥样的。

    目前已经实现了的,包括Relax NG,SGML,XML DTDs,W3C XML Schema

    通过如此描述,可以简介而精确的描述出Docbook的内容,即有哪些元素和元素之间的关系。

    [提示]到底这些描述语言,比如DTD,XML Schema等,都是啥样子的

    关于到底这些描述语言,都长的啥样子的,都是如何工作的,可以去看:DTD vs XML Schema

    看完后,就可以大概的了解到,这些描述语言,是怎么回事了。

    而对于具体的更多的描述语言的细节,作为Docbook使用者来说,我们可以不必太关心。

    我们需要关心的是,docbook中有哪些元素,以及他们之间的关系。然后如何去正确的使用它们。

所以,简单总结可以理解为:

Docbook是一种模式,其规定了包括哪些元素以及这些元素之间的关系。

而包含的元素以及元素之间的关系,是用对应的Schema Language去描述的。

目前已经Docbook实现了的Schema Language有:Relax NG,SGML,XML DTDs,W3C XML Schema

Docbook(虽然不仅仅只支持这些,但是)更加适用于计算机(软件和硬件)相关的书籍和文章。

Docbook的<=4.5的版本,很多都是用SGML语言书写Docbook源码的,现在已不再推荐。

Docbook最新版本是5.0。推荐使用XML语言书写Docbook的源码。