DocBook最先採用的是SGML技術,目前已經有了相應XML技術的實現,DocBook 其實是用SGML/XML定義的html
一種針對文檔撰寫的方言,指的就是用SGML/XML定義了一套DTD。DTD就是DocBook的核心。目前DocBook DTDredis
由Oasis-Open 組織的一個技術委員會維護,並在其網站發佈關於DocBook DTD的最新消息和DTD下載。DTD的下載工具
格式有符合SGML規範的DTD、符合XML規範的DTD、使用最新的Schema格式描述的DTD格式等。但目前只有前兩個版學習
本是正式版本,使用其它格式描述的DTD還在不斷髮展中。SGML格式的DocBook DTD下載地址爲:網站
http://www.oasis-open.org/docbook/sgml/4.2/index.shtml ui
XML格式的DocBook DTD下載地址爲 :this
http://www.oasis-open.org/docbook/xml/4.2/index.shtml spa
下載獲得的docbook-4.2.zip和docbook-xml-4.2.zip中都有兩個文件,即docbook.cat
和catalog.xml,
.net
它們分別是SGML和XML格式的目錄文件(catalog),負責將SGML和XML文檔中聲明的公共標識符(publicIdentifier)
命令行
來和本地文件創建映射。這兩個文件的格式不一樣但含義相同,關於這兩個文件的語法咱們將在後面的章節具體講解。
咱們還須要下載ISO Entities.
SGML格式的ISO Entities下載地址爲:
http://www.oasis-open.org/cover/ISOEnts.zip
XML格式的ISO Entities 下載地址爲 :
http://www.oasis-open.org/committees/docbook/xmlcharent/0.3/xmlcharent-0.3.zip
如下是具體的安裝步驟:
1) 建立docbook根目錄. 例如:c:\share,share就是咱們在後文中常提到的根目錄.
2) 安裝dtd.
2.1) 在c:\share目錄下建立dtd子目錄:c:\share\dtd\4.2,將docbook-4.2.zip的內容解壓到該目錄中.
2.2) 在catalog.xml中,刪除全部與ISO 8879:1986相關的行,例如:
<public publicId="ISO 8879:1986//ENTITIES Diacritical Marks//EN" uri="iso-dia.gml"/>
2.3) 在docbook.cat中,刪除全部與ISO 8879:1986相關的行,例如:
PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN" "iso-dia.gml"
2.4) 在dbcentx.mod中,將Unix的路徑表達方式修改成Windows的路徑表達方式(即"/"改成"\"),例如:
"ent/iso-amsb.ent"> 修改成 "ent\iso-amsb.ent">
3) 安裝和配置ISO Entities.
3.1) 在c:\share下建立entity\sgml子目錄c:\share\entity\sgml, 將ISOEnts.zip內容解壓到該目錄下.
3.2)在c:\share下建立entity\xml子目錄c:\share\entity\xml,將xmlcharent-0.3.zip內容解壓到該目錄下.
3.3)在c:\share\entity\目錄下,爲sgml建立目錄文件:catalog.sgml 內容爲:
OVERRIDE YES
-- ...................................................................... --
-- ISO entity sets for DocBook SGML ..................................... --
PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN"
"sgml\ISOamsa"
PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN"
"sgml\ISOnum"
PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN"
"sgml\ISOpub"
PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN"
"sgml\ISOtech"
PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN"
"sgml\ISOlat1"
PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN"
"sgml\ISOlat2"
PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN"
"sgml\ISOgrk1"
PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN"
"sgml\ISOgrk2"
PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN"
"sgml\ISOgrk3"
PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN"
"sgml\ISOgrk4"
PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN"
"sgml\ISOamsa"
PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN"
"sgml\ISOamsb"
PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN"
"sgml\ISOamsc"
PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN"
"sgml\ISOamsn"
PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN"
"sgml\ISOamso"
PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN"
"sgml\ISOamsr"
PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN"
"sgml\ISObox"
PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN"
"sgml\ISOcyr1"
PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN"
"sgml\ISOcyr2"
-- End of ISO entity sets for DocBook SGML .............................. --
-- ...................................................................... --
-- ...................................................................... --
-- ISO entity sets for DocBook XML ...................................... --
PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML"
"xml/iso-dia.ent"
PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
"xml/iso-num.ent"
PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN//XML"
"xml/iso-pub.ent"
PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN//XML"
"xml/iso-tech.ent"
PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
"xml/iso-lat1.ent"
PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN//XML"
"xml/iso-lat2.ent"
PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN//XML"
"xml/iso-grk1.ent"
PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML"
"xml/iso-grk2.ent"
PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN//XML"
"xml/iso-grk3.ent"
PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML"
"xml/iso-grk4.ent"
PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML"
"xml/iso-amsa.ent"
PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML"
"xml/iso-amsb.ent"
PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML"
"xml/iso-amsc.ent"
PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML"
"xml/iso-amsn.ent"
PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML"
"xml/iso-amso.ent"
PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML"
"xml/iso-amsr.ent"
PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML"
"xml/iso-box.ent"
PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML"
"xml/iso-cyr1.ent"
PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML"
"xml/iso-cyr2.ent"
-- End of ISO entity sets for DocBook XML ............................... --
-- ...................................................................... --
4) 安裝SGML的DSSSL樣表
DTD定義了DocBook的元素, 描述了DocBook文檔的結構, 可是DTD並無包含一點點文檔格式化的信息,
不管如何,文檔的漂亮的表現形式——格式, 都是很是重要的. 這些就依靠樣表來解決了. SGML的樣表是DSSSL
4.1) 能夠從如下地址下載DSSS樣表,筆者下載的版本爲:docbook-dsssl-1.79.zip
http://sourceforge.net/projects/docbook/
4.2) 在c:\share根目錄下建立子目錄: c:\share\style\dsssl , 將docbook-dsssl-1.79.zip解壓到該目錄.
4.3) 修改 c:\share\style\dsssl\catalog文件,Unix的路徑表達方式修改成Windows的路徑表達
方式(即"/"改成"\"),例如:
PUBLIC "-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN"
print/docbook.dsl
修改成:
PUBLIC "-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN"
print\docbook.dsl
4.4) 修改 c:\share\style\dsssl\catalog文件,刪除如下語句行:
DTDDECL "-//Norman Walsh//DTD DocBook HTML 1.0//EN"
dtds/html/dbhtml.dcl
5) 安裝XML樣表XSL
5.1) 能夠從如下地址下載XML的樣表XSL,筆者下載的版本爲:docbook-xsl-1.76.1.zip
http://sourceforge.net/projects/docbook/
5.2) 在c:\share根目錄下建立子目錄: c:\share\style\xsl , 將docbook-xsl-1.76.1.zip解壓到該目錄.
6) 安裝LDP擴展
LDP(Linux文檔計劃)使用DocBook格式撰寫文檔,而且在 Norman Walsh DSSSL 的基礎上進行了
必定的擴充。咱們使用 LDP 的DSSSL擴充,一方面使本身撰寫的文檔具備LDP的統一的風格,另外一方面
能夠學習到定製 DSSSL 的知識。
6.1)能夠從如下地址下載擴展文件ldp.dsl.
http://www.tldp.org/authors/tools/ldp.dsl
6.2) 將ldp.dsl拷貝到c:\share\style\dsssl目錄下.
6.3)修改ldp.dsl擴展文件,刪除掉如下內容.
<style-sheet>
;; ------------------------------------------------------------------------
;; ldp.dsl - LDP Customized DSSSL Stylesheet
;; v1.12, 2003-03-19
;; Copyright (C) 2000-2003
;;
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2 of the License, or
;; (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with this program; if not, write to the Free Software
;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
;; ------------------------------------------------------------------------
7) 在根木文件c:\share中,創建全局目錄文件catalog.xml,內容以下:
<?xml version='1.0'?>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<!-- ...................................................................... -->
<!-- DocBook driver file .................................................. -->
<nextCatalog catalog="dtd/4.2/catalog.xml" />
<!-- ...................................................................... -->
<!-- ISO entity sets ...................................................... -->
<nextCatalog catalog="entity/xml/catalog.xml" />
<nextCatalog catalog="style/xsl/catalog.xml" />
</catalog>
8) 安裝OpenJade
OpenJade 是一個DSSSL語言的實現工具,它能夠把SGML和XML文檔經過DSSSL轉換爲其它格式,如轉換爲 RTF、
TeX、HTML等格式。OpenJade 源自 James Clark's 的工具 JADE (James' DSSSL Engine),如今做爲開放源碼,
由Source Forge維護。
8.1) 從如下地址下載Windows平臺的OpenJade安裝包openjade-1.3-1.exe
http://sourceforge.net/projects/openjade/files/openjade/1.3/
8.2) 安裝openjade-1.3-1,例如:C:\Program Files\OpenJade-1.3\ 。
須要將C:\Program Files\OpenJade-1.3\bin 添加到系統PATH變量中,以即可以在Windows命令行直接調用openjade
9)導入openjade自帶的DTD到c:\share\dtd目錄。
將OpenJade自帶的c:\Program Files\OpenJade-1.3\dsssl,加入到c:\share\dtd目錄中,重命名爲openjade
10) 在根目錄文件c:\share中,創建全局目錄文件catalog.sgml,內容以下:
OVERRIDE YES
SGMLDECL "dtd\4.2\docbook.dcl"
CATALOG "dtd\4.2\docbook.cat"
CATALOG "entity\catalog.sgml"
CATALOG "style\dsssl\catalog"
CATALOG "dtd\openjade\catalog"
DOCTYPE book dtd\4.2\docbook.dtd
DOCTYPE article dtd\4.2\docbook.dtd
DOCTYPE chapter dtd\4.2\docbook.dtd
11.配置環境變量
SGML/XML的應用程序須要經過環境變量SGML_CATALOG_FILES和XML_CATALOG_FILES來確認目錄文件的位置,
進而找到相應的DTD等文件.Windows經過控制面板中的系統來設置環境變量,
設置 SGML_CATALOG_FILES 爲 C:\share\catalog.sgml
設置 XML_CATALOG_FILES 爲 C:\share\catalog.xml
------------------------------------------------------------------------------------------------