有 3 种方法可以从 Web 服务器提供 DocBook 4.1.2 XML 服务
命令行预处理 Open Jade, XSLT
脚本 - PHP, Perl, Python
应用服务器 - Tomcat + Cocoon
使用像 Cocoon 这样的应用服务器是最佳选择。
![]() | Cocoon 实战 |
---|---|
要查看运行 Tomcat + Cocoon 提供 DocBook 4.1.2 XML 内容的 Web 服务器示例,请访问 http://www.xml-dev.com:8080/cocoon/mount/docbook/ |
在本节中,我们将了解如何使用 Tomcat + Cocoon 提供 DocBook 4.1.2 XML 内容。
Tomcat 是 Java Servlet 容器。有关更多信息,请访问 http://jakarta.apache.org/tomcat/index.html。
Apache Cocoon 是一个 XML 发布框架。有关更多信息,请访问 http://xml.apache.org/cocoon/index.html。
本 HOWTO 不会详细介绍如何设置 Tomcat + Cocoon,因为它已经在文档 http://xml.apache.org/cocoon/installing/index.html 中进行了解释。设置 Tomcat + Cocoon 是一个简单的过程,应该不到五分钟。
一旦你设置并运行了 Cocoon + Tomcat,请按照接下来的章节来提供 DocBook 4.1.2 XML 内容。
![]() | 一个重要的注意事项: 现场用户在使用 DocBook 样式表和某些版本的 Xalan XML 解析器时遇到了兼容性问题。Xalan 是 Sun JRE 捆绑的解析器,所以那是你默认使用的解析器。 |
至少,请确保你正在使用 Sun 的最新 JRE(在撰写本文时为 1.4.2)。
还要考虑将 Xalan 解析器升级到最新版本。 在撰写本文时,最新的 Sun JRE 1.4.2 捆绑了 Xalan 2.4.1,而 Xalan 本身已更新至 2.5.1 版本。
要检查当前安装的版本,请输入
# java org.apache.xalan.xslt.EnvironmentCheck |
更多信息,请访问 http://xml.apache.org/xalan-j/faq.html。
在此步骤中,我们将在以下位置安装 Norman Walsh 的 XSL/usr/local/dbtools/目录。
切换到/tmp/downloads目录并解压 docbook-xsl 文件。
# cd /tmp/downloads/ |
# gzip -d docbook-xsl-1.53.0.tar.gz |
# tar -xvf docbook-xsl-1.53.0.tar |
要安装 docbook-xsl,请将文件移动到/usr/local/dbtools.
# mv docbook-xsl-1.53.0 /usr/local/dbtool/docbook-xsl |
接下来安装 LDP XSL。
解压tldp-xsl-xxxxx.tar.gz并将所有文件复制到/usr/local/dbtools/docbook-xsl/html目录。
# cd /tmp/downloads |
# gzip tldp-xsl-xxxxx.tar.gz |
# gzip tldp-xsl-xxxxx.tar |
# mv tldp-html*.xsl /usr/local/dbtools/docbook-xsl/html |
$COCOON_HOME 指向 Cocoon Web 应用程序目录。此目录通常是/usr/local/jakarta-tomcat-4.1.9/webapps/cocoon/
创建一个名为docbook的目录,在$COCOON_HOME/mount下。 这就是我们将放置所有 DocBook XML 4.1.2 内容的地方。
# mkdir $COCOON_HOME/mount/docbook |
在$COCOON_HOME/mount/docbook中创建一个名为 sitemap.xmap 的文件,内容如下
# cd $COCOON_HOME/mount/docbook |
# vi sitemap.xmap |
<map:sitemap xmlns:map="https://apache.ac.cn/cocoon/sitemap/1.0"> <!-- use the standard components --> <map:components> <map:generators default="file"/> <map:transformers default="xslt"/> <map:readers default="resource"/> <map:serializers default="html"/> <map:selectors default="browser"/> <map:matchers default="wildcard"/> <map:transformers default="xslt"/> </map:components> <map:pipelines> <map:pipeline> <map:match pattern=""> <map:generate src="samples.xml"/> <map:transform src="/usr/local/jakarta-tomcat-4.1.9/webapps/cocoon/mount/editor/stylesheets/simple-page2html.xsl"/> <map:serialize/> </map:match> <!-- respond to *.html requests with our docs processed by .xsl --> <map:match pattern="*.html"> <map:generate src="{1}.xml"/> <map:transform src="/usr/local/dbtools/docbook-xsl/html/tldp-html.xsl"/> <map:serialize type="html"/> </map:match> <!-- later, respond to *.pdf requests with our docs processed by doc2pdf.xsl --> <map:match pattern="*.pdf"> <map:generate src="{1}.xml"/> <map:transform src="/usr/local/dbtools/docbook-xsl/fo/docbook.xsl"/> <map:serialize type="fo2pdf"/> </map:match> <map:match pattern="*.xml"> <map:generate src="{1}.xml"/> <map:serialize type="xml"/> </map:match> </map:pipeline> </map:pipelines> </map:sitemap> |
将 DocBook 4.1.2 XML 文件放置在$COCOON_HOME/mount/docbook/目录。
一个示例文件可从 http://www.xml-dev.com:8080/cocoon/mount/docbook/openjade.xml 获取。
现在你可以使用浏览器通过 http://localhost:8080/cocoon/mount/sample.html (HTML) 或 http://localhost:8080/cocoon/mount/sample.pdf (PDF) 访问该文档。