學(xué)習 XML 的最佳途經(jīng)是從簡(jiǎn)單的開(kāi)發(fā)入手,大膽實(shí)踐,循序漸進(jìn)。XML 的妙處只有在開(kāi)發(fā)過(guò)程中才能深入體會(huì ),離開(kāi)了開(kāi)發(fā)是學(xué)不好 XML 的。因此學(xué)習 XML 首先應該建立一個(gè) XML 的開(kāi)發(fā)環(huán)境。我給大家介紹一下怎樣建立一個(gè)基于 Java 的 XML 開(kāi)發(fā)環(huán)境。因為我現在沒(méi)辦法用到 Linux,所以所有的例子都是在 Windows 上做的。但是這里介紹的所有的軟件在 Linux 和 Windows 上都是可以用的,用法也大同小異。而且除了 Sun 的 JRE 以外都是 open source 軟件,任何人都可以拿來(lái)做任何用途,甚至是商業(yè)目的的重新發(fā)行。JRE 也是可以免費下載和使用的,只是沒(méi)有源代碼。如果您有在 Linux 上使用這些軟件的經(jīng)驗,希望能貢獻給大家。
建立一個(gè) XML 的開(kāi)發(fā)環(huán)境需要經(jīng)過(guò)以下步驟: 1。安裝 Java runtime environment 2。安裝一個(gè) Java 編譯器。 3。安裝一個(gè) JSP Container。 4。安裝一個(gè)支持 XSLT 的 taglib。 5。安裝一個(gè) XML Parser。 6。安裝一個(gè)支持 XSLT 的瀏覽器。 7。安裝一個(gè) XML 文件的編輯器 (可選)。
建立一個(gè)臨時(shí)目錄,使用 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> --> 外的注釋去掉。
步驟6。安裝一個(gè)支持 XSLT 的瀏覽器。 這一步并不是必須的,因為我們現在已經(jīng)可以在 Server 端使用 XSL Taglib 將 XML 文件轉換為 HTML 格式后發(fā)給 Browser,所以實(shí)際上你可以使用任何你喜歡的瀏覽器。但是安裝一個(gè)支持 XSLT 的瀏覽器可以方便我們的學(xué)習。雖然現在我們需要在 Server 端做 XSLT,但是將來(lái)支持 XSLT 的瀏覽器流行了之后我們甚至連這一步都可以省掉,直接把 XML 和 XSL 文件發(fā)給瀏覽器就行了。這樣就可以大大減輕 Server 端的負擔,因為做 XSLT 可不是一件輕松的工作。
推薦使用 Mozilla 0.8。說(shuō)到這里,你可能又要問(wèn)了,為什么不使用 IE 4/5 呢?IE 4/5 不是也可以做 XSLT 嗎?除了個(gè)人喜好以外,我可以舉出 3 個(gè)使用 Mozilla 的理由: 首先 Mozilla 支持的 XSLT 版本比 IE 4/5 要新,IE 4/5 支持的 XSLT 不是正式版本,而是一個(gè)草稿。即: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 的支持從廣度和深度上都要超過(guò) IE 4/5。 第三 XML FAQ 的作者對 Mozilla 推崇有加,認為 Mozilla 對 XML 的支持在魯棒性上比 IE 4/5 要好得多。
OK,說(shuō)了這么多,現在轉到正題上來(lái),如何使 Mozilla 0.8 支持 XSLT? 首先,從這里下載 Mozilla 0.8:http://www.mozilla.org/releases/ 最新的是 0.8.1 版,但是這個(gè)版本安裝了支持 XSLT 的模塊后無(wú)法運行,所以目前還只能使用老一點(diǎn)但是比較慢的 0.8 版。 如果你不想再要其它諸如 SVG/MathML 的功能的話(huà),最方便的方法是使用做好的 .exe 文件安裝。 安裝完畢后,啟動(dòng) Mozilla,訪(fǎng)問(wèn)這個(gè)頁(yè)面:http://www.mozilla.org/projects/xslt/ 頁(yè)面里有一個(gè) Install 按鈕,點(diǎn)擊這個(gè)按鈕就可以安裝實(shí)現 XSLT 功能的 TransforMiiX 模塊。 重新啟動(dòng) Mozilla,訪(fǎng)問(wèn)上面提到的那個(gè)頁(yè)面。點(diǎn)擊上面 simple example 的鏈接。如果看到的結果與點(diǎn)擊 look like 鏈接看到的結果相同,那么你的 Mozilla 就已經(jīng)能夠支持 XSLT 了。
關(guān)于如何配置 Mozilla 0.8 支持 Java Plug-in 請參考我發(fā)在 XML 版的另一篇帖子:基于 Mozilla 的 XML 客戶(hù)端解決方案,這里就不多說(shuō)了。
步驟7。安裝一個(gè) XML 文件的編輯器。 這一步就更不是必須的了。你聽(tīng)說(shuō)過(guò)現在還有人使用 vi 做 HTML 頁(yè)面嗎?我就見(jiàn)過(guò)這樣的人,那就是于明儉老師。在于老師的個(gè)人主頁(yè)上有樣一句醒目的話(huà):Just vim it ! 實(shí)際上你可以使用任何你喜歡的編輯器來(lái)編輯 XML 文件,但是為了方便那些習慣使用 WYSIWYG 編輯器的朋友,我還是推薦幾個(gè)比較好的 XML 編輯器: 1。XML Spy:一個(gè)功能很全的 XML 編輯器,有試用版可以下載。 http://www.xmlspy.com/ 2。EditML Pro:另一個(gè)功能比較全的 XML 編輯器。 http://www.editml.com 3。PSGML for Emacs:Emacs,我就不用說(shuō)什么了吧? http://www.lysator.liu.se/projects/about_psgml.html