天天看點

如何建立一個 XML 的開發環境

學習 XML 的最佳途經是從簡單的開發入手,大膽實踐,循序漸進。XML 的妙處隻有在開發過程中才能深入體會,離開了開發是學不好 XML 的。是以學習 XML 首先應該建立一個 XML 的開發環境。我給大家介紹一下怎樣建立一個基于 Java 的 XML 開發環境。因為我現在沒辦法用到 Linux,是以所有的例子都是在 Windows 上做的。但是這裡介紹的所有的 軟體在 Linux 和 Windows 上都是可以用的,用法也大同小異。而且除了 Sun 的 JRE 以外都是 open source 軟體,任何人都可以拿來做任何用途,甚至是商業目的的重新發行。JRE 也是可以免費下載下傳和使用的,隻是沒有源代碼。如果您有在 Linux 上使用這些 軟體的經驗,希望能貢獻給大家。

建立一個 XML 的開發環境需要經過以下步驟:

1。安裝 Java runtime environment

2。安裝一個 Java 編譯器。

3。安裝一個 JSP Container。

4。安裝一個支援 XSLT 的 taglib。

5。安裝一個 XML Parser。

6。安裝一個支援 XSLT 的 浏覽器。

7。安裝一個 XML 檔案的編輯器 (可選)。

步驟1。安裝 Java runtime environment

推薦使用 Sun 的 JRE 1.3,可以從這裡下載下傳:

http://java.sun.com/j2se/1.3/jre/download-windows.html

注意:不是 JDK 1.3,我們需要的隻是 JRE 1.3

下載下傳完 JRE 1.3 後運作安裝程式,假設安裝在 C:/JRE1.3 下。然後需要設定三個環境變量。

JAVA_HOME=C:/JRE1.3

CLASSPATH=.;C:/JRE1.3/lib/rt.jar

PATH=%PATH%;C:/JRE1.3/bin

如果是 Windows 95/98/me,将環境變量的設定放在 Autoexec.bat 中,然後重新開機機器,Windows NT/2000 在“我的電腦/屬性”中設定就可以了。

步驟2:安裝一個 Java 編譯器。

推薦使用 IBM 的 jikes,一個高效的 open source 的 Java 編譯器。jikes 的首頁在

http://oss.software.ibm.com/developerworks/opensource/jikes/

最新的版本是 1.1.3, 可以從這裡下載下傳:

http://oss.software.ibm.com/pub/jikes/jikes-1_13-mingw-win32.zip

下載下傳後解壓縮,得到一個 jikes.exe,放在任何 PATH 環境變量中的目錄下,比如 C:/JRE1.3/bin

編輯一個簡單的 hello world 程式試一下:

// hello.java

public class hello {

    public static void main(String [] args) {

        System.out.print("hello, world!/n");

    }

}

然後編譯

jikes hello.java

如果生成了 hello.class 就可以用了。

步驟3。安裝一個 JSP Container。

推薦使用 Jakarta 的 Tomcat 3.2.1。Tomcat 3.2.1 可以從這裡下載下傳:

http://jakarta.apache.org/builds/jakarta- tomcat/release/v3.2.1/bin/

你需要下載下傳 jakarta- tomcat-3.2.1.zip 這個檔案

如果你是在 Windows NT/2000 下安裝,還有 win32/i386 目錄下的 jk_nt_service.zip 。

下載下傳後解壓縮,假設放在 C:/ tomcat 下

然後需要設定一個環境變量

TOMCAT=C:/ tomcat

為了使 Tomcat 可以使用 jikes,你需要做一點點的 hack,方法如下:

将 tomcat 的 lib 目錄下的 parser.jar,jaxp.jar,webserver.jar 加入環境變量 CLASSPATH,使其生效後執行以下步驟:

cd / tomcat/src/org/apache/ tomcat/context

編輯檔案 WebXmlReader.java,将

// sw.addInitParam("jspCompilerPlugin", "org.apache.jasper.compiler.JikesJavaCompiler");

前的注釋去掉

然後編譯

jikes WebXmlReader.java

建立一個臨時目錄,使用 jar 工具(可以從 JDK 中獲得) 解壓縮 Tomcat 的 lib 目錄下的 webserver.jar

mkdir t

cd t

jar xvf ../webserver.jar

将 org/apache/ tomcat/context 下的 WebXmlReader*.class 替換為剛才編譯生成的 WebXmlReader*.class

然後重新打包:

jar cf webserver.jar .

使用新的 webserver.jar 替換 Tomcat 的 webserver.jar

編輯 Tomcat 的 conf 目錄中的 web.xml,将

<!-- uncomment the following to use Jikes for JSP compilation

<init-param>

    <param-name>jspCompilerPlugin</param-name>

    <param-value>org.apache.jasper.compiler.JikesJavaCompiler</param-value>

</init-param>

-->

外的注釋去掉。

編輯 Tomcat 的 bin 目錄中的 tomcat.bat,将所有的 tools.jar 替換為 rt.jar

啟動 tomcat,運作 bin 目錄中的 startup.bat。

使用 浏覽器做一下測試,通路

http://localhost:8080

如果 JSP 和 Servlet 的例子都能編譯和運作,Tomcat 就可以用了。

停止 Tomcat 用 shutdown.bat

在 Windows NT/2000 下,可以把 tomcat 安裝為一個 service,方法如下:

将 Tomcat 的 conf 目錄下的 wrapper.properties 拷出來并編輯。将其中的兩個變量

wrapper. tomcat_home

wrapper.java_home

分别設定為 TOMCAT 和 JRE 的安裝路徑,将所有的 tools.jar 替換為 rt.jar。

然後運作

jk_nt_service -I Tomcat wrapper.properties

其中 Tomcat 是我們安裝的 service 的名稱。

進入控制台中啟動 Tomcat service。Tomcat service安裝後設定為手工啟動,你可以修改 Tomcat service 的屬性使其成為自動啟動。

删除 Tomcat service 用:

jk_nt_service -R Tomcat

步驟4。安裝一個支援 XSLT 的 taglib。

推薦使用 Jakarta Taglibs 中做 XSLT 的 XSL Taglib

其頁面在 http://jakarta.apache.org/taglibs/doc/xsl-doc/intro.html

從該頁面上下載下傳 XSL Taglib 的 snapshot。你也可以下載下傳全部的 Jakarta Taglibs,Jakarta Taglibs 的範圍很廣,但是這裡我們要用到的僅僅是其中的 XSL Taglib。

下載下傳完後解壓縮,将其中的 xsl-examples.war 和 xsl-doc.war 這兩個檔案拷到 Tomcat 的 webapps 目錄下,然後重新啟動 Tomcat。使用 浏覽器通路

http://localhost:8080/xsl-examples/

運作頁面中的 Apply.jsp,如果沒有出錯,顯示了一個有很多表格的頁面,XSL Taglib 就可以用了。

XSL Taglib 的文檔也裝好了,在

http://localhost:8080/xsl-doc/

你可以從這個例子出發,一步一步地開始寫你自己的 XML 處理程式。比如你可以在 Tomcat 的 server.xml 中添加一個新的 Context

<Context path="/jspxml"

        docBase="path-to-your-work-directory"

        crossContext="false"

        debug="0"

        reloadable="true" >

</Context>

其中的 path-to-your-work-directory 是你的開發目錄。将 Tomcat 的 webapps/xsl-examples 目錄下的内容原封不動的拷到你的開發目錄,以這個程式為參考開始寫你自己的 XML 處理程式。

關于如何使用 JSP 做 XML 開發可以參考 Sun 的 whitepaper ,在:http://java.sun.com/products/jsp/pdf/JSPXML.pdf

講的基本上就是我上面告訴你的這種方法。

步驟5。安裝一個 XML Parser。

做完了步驟3 和 步驟4,你已經有了兩個可用的 XML Parser 了,那就是 Tomcat 本身使用的 Sun 的 JAXP 和 XSL Taglib 使用的 xml.apache.org 的 Xerces。JAXP 包括兩個檔案 parser.jar 和 jaxp.jar,Xerces 隻有一個檔案 xerces.jar,這幾個檔案可以從 Tomcat 的目錄下找到。

推薦使用 Xerecs 這個 XML Parser,因為它目前已經可以支援 XML Schema,并且它是 open source 軟體。但是這完全是出于個人喜好,Sun 的 XML Parser 也是非常出色的。決定使用哪個 XML Parser 後将其檔案加入到 CLASSPATH 中。但是不要同時使用兩個 XML Parser。CLASSPATH 生效後你就可以在你的 Java 程式中使用 JDOM 和 SAX 的 API 處理 XML 檔案了。

關于 JDOM 和 SAX 适用的場合和用法的例子可以從這裡找到:http://developerlife.com

步驟6。安裝一個支援 XSLT 的 浏覽器。

這一步并不是必須的,因為我們現在已經可以在 Server 端使用 XSL Taglib 将 XML 檔案轉換為 HTML 格式後發給 Browser,是以實際上你可以使用任何你喜歡的 浏覽器。但是安裝一個支援 XSLT 的 浏覽器可以友善我們的學習。雖然現在我們需要在 Server 端做 XSLT,但是将來支援 XSLT 的 浏覽器流行了之後我們甚至連這一步都可以省掉,直接把 XML 和 XSL 檔案發給 浏覽器就行了。這樣就可以大大減輕 Server 端的負擔,因為做 XSLT 可不是一件輕松的工作。

推薦使用 Mozilla 0.8。說到這裡,你可能又要問了,為什麼不使用 IE 4/5 呢?IE 4/5 不是也可以做 XSLT 嗎?除了個人喜好以外,我可以舉出 3 個使用 Mozilla 的理由:

首先 Mozilla 支援的 XSLT 版本比 IE 4/5 要新,IE 4/5 支援的 XSLT 不是正式版本,而是一個草稿。即:http://www.w3.org/TR/WD-xsl ,而 Mozilla 支援的 XSLT 是 XSLT 的正式版本。即:http://www.w3.org/1999/XSL/Transform 。

其次 Mozilla 中的 XML 應用不僅包括 XSLT,還包括 RDF,XUL,SVG,MathML 等等,是以 Mozilla 對 XML 的支援從廣度和深度上都要超過 IE 4/5。

第三 XML FAQ 的作者對 Mozilla 推崇有加,認為 Mozilla 對 XML 的支援在魯棒性上比 IE 4/5 要好得多。

OK,說了這麼多,現在轉到正題上來,如何使 Mozilla 0.8 支援 XSLT?

首先,從這裡下載下傳 Mozilla 0.8:http://www.mozilla.org/releases/

最新的是 0.8.1 版,但是這個版本安裝了支援 XSLT 的子產品後無法運作,是以目前還隻能使用老一點但是比較慢的 0.8 版。

如果你不想再要其它諸如 SVG/MathML 的功能的話,最友善的方法是使用做好的 .exe 檔案安裝。

安裝完畢後,啟動 Mozilla,通路這個頁面:http://www.mozilla.org/projects/xslt/

頁面裡有一個 Install 按鈕,點選這個按鈕就可以安裝實作 XSLT 功能的 TransforMiiX 子產品。

重新啟動 Mozilla,通路上面提到的那個頁面。點選上面 simple example 的連結。如果看到的結果與點選 look like 連結看到的結果相同,那麼你的 Mozilla 就已經能夠支援 XSLT 了。

關于如何配置 Mozilla 0.8 支援 Java Plug-in 請參考我發在 XML 版的另一篇文章:基于 Mozilla 的 XML 用戶端解決方案,這裡就不多說了。

步驟7。安裝一個 XML 檔案的編輯器。

這一步就更不是必須的了。你聽說過現在還有人使用 vi 做 HTML 頁面嗎?我就見過這樣的人,那就是于明儉老師。在于老師的個人首頁上有樣一句醒目的話:Just vim it ! 實際上你可以使用任何你喜歡的編輯器來編輯 XML 檔案,但是為了友善那些習慣使用 WYSIWYG 編輯器的朋友,我還是推薦幾個比較好的 XML 編輯器:

1。XML Spy:一個功能很全的 XML 編輯器,有試用版可以下載下傳。

http://www.xmlspy.com/

2。EditML Pro:另一個功能比較全的 XML 編輯器。

http://www.editml.com

3。PSGML for Emacs:Emacs,我就不用說什麼了吧?

http://www.lysator.liu.se/projects/about_psgml.html

這裡隻是為了錦上添花再介紹一些其它的知識,使用這些知識我們可以建造一個更為強大的開發環境。

步驟8。安裝一個比較好的 JSP Framework

推薦使用 Struts。Struts 是 Jakarta 項目的一個子項目,目的是開發一個基于 MVC 設計模式的 JSP Framework。在 Struts 的架構内做開發可以有效地分離 Web 應用的表示層和實作層,提高代碼的可重用性。基于 MVC 設計模式的開發也就是所謂的 Model 2 開發模式。目前該項目已接近完成,最新的版本是 1.0-beta-1。

關于什麼是 MVC 設計模式可以參考機械工業出版社的《設計模式》這本書。關于 Struts 的用法,可以參考我翻譯的《Struts 使用者指南》,在文章荟萃裡:http://www.linuxforum.net/doc/strutsuserguide.html

從這裡下載下傳 Jakarta Struts:

http://jakarta.apache.org/builds/jakarta-struts/release/v1.0-b1/

你需要下載下傳 jakarta-struts-1.0-b1.zip 這個檔案。

将其解壓縮,然後将其中的 struts-example.war,struts-documentation.war 這兩個檔案拷到 Tomcat 的 webapps 目錄下,然後重新啟動 Tomcat。使用 浏覽器通路

http://localhost:8080/struts-example/

運作頁面裡的 MailReader 程式,如果能正确注冊就可以用了。

Struts 的文檔也裝好了,在

http://localhost:8080/struts-documentation/

關于如何在自己的開發目錄中使用 Struts,請參考 Struts 所帶的文檔。Java 版裡有一些關于 Struts 的讨論,使用論壇的搜尋功能可以找到。

步驟9。建立與 Apache 的連接配接

這已經是老生長談了,我介紹一下最簡單的方法,使用 mod_jk 建立與 Apache 的連接配接。

假設你已經安裝好了 Apache,從 這裡下載下傳 mod_jk:

http://jakarta.apache.org/builds/jakarta- tomcat/release/v3.2.1/bin/win32/i386/

你需要下載下傳 mod_jk.zip 這個檔案。

将其解壓縮,得到一個 mod_jk.dll,拷到 Apache 安裝目錄下的 modules 目錄中。

修改 Apache 的配置檔案 httpd.conf,加入以下兩行:

Include C:/ tomcat/conf/mod_jk.conf-auto

JkMount /*.do ajp12

其中“C:/ tomcat”是 Tomcat 的安裝目錄。

将 index.jsp 加到 DirectoryIndex 中,即:

DirectoryIndex index.html index.jsp

如果 ServerName 前有注釋,打開 ServerName 前的注釋,将其設定為 localhost,即:

ServerName localhost

重新啟動 Apache,通路這個頁面:

http://localhost/examples/

如果能列出 jsp 和 servlet 目錄,Tomcat 和 Apache 的連接配接就建好了。

OK,說這麼多,其實不過是整理了一下内務。現在内務整理好了,我們可以開始做 XML 開發了。:-)