XSLTForms/通用 HTTP 伺服器
此頁面描述了在通用 Web 伺服器(如 Apache)中安裝 XSLTForms。如果您使用 XSLTForms 與 MarkLogic 或 eXistDB,請參閱產品特定文件。
潛在的 XSLTForms 使用者有時會感到沮喪,因為他們找不到任何看起來像正確的安裝說明。(此頁面試圖糾正這種情況,對於那些找到它的人。)問題的一部分是,一些使用者難以相信 XForms 實現的安裝可以像它那樣簡單。
首先,您必須下載 XSLTForms 的副本。最簡單的方法可能是轉到 XSLTForms 的 Sourceforge 專案主頁 並查詢下載按鈕;單擊該按鈕將導致您的瀏覽器下載包含軟體最新發行版包的 ZIP 檔案。
當此頁面最後一次修訂時(2017 年 2 月),最新的軟體包是 1.0RC2(1.0 版本候選版 2)。
注意:較早版本仍然可用,包括
- 1.0 RC,2012 年 3 月 18 日
- Beta 3,2011 年 2 月 27 日
- Beta3 版本候選版,2010 年 9 月 12 日
但是,除非您有特殊需要使用舊版本而不是當前版本,否則您應該使用最新的可用軟體包。
快照版本可以透過單擊 SourceForge 專案區域中的 程式碼標籤 或 SVN 標籤 來找到。(當此頁面最後一次在 2017 年 2 月修訂時,最新的快照是 r639,日期為 2017 年 1 月 20 日。)由於快照版本可能包含重要的增強功能或錯誤修復,因此許多 XSLTForms 使用者使用快照版本進行生產工作,而不是最新的“穩定”版本。)
接下來,您必須解壓縮 ZIP 檔案並將其放到您的 HTTP 伺服器上。請記住您放置它的位置。(如果您不知道如何將檔案放到您的 Web 伺服器上,您需要諮詢其他來源以瞭解如何操作,然後再繼續操作。)
最後,您必須在您的 XForms 中新增一個 XML 樣式表指令,它指向xsltforms.xsl您剛剛安裝的軟體包中的樣式表。因此,如果您的站點名為forms.example.com並且您在/lib/xsltforms-1.0RC/中安裝了 XSLTFormsxsltforms.xsl並且該檔案位於該目錄中(請檢查,有時發行版包會被包裝在額外的層中,您將在下一級目錄中找到樣式表),您將新增如下所示的行(您可以用單個空格替換換行符;它們在這裡是為了使程式碼塊中的行保持簡短)
<?xml-stylesheet href="http://forms.example.com/lib/xsltforms-1.0RC/xsltforms.xsl" type="text/xsl"?>
到您想使用 XSLTForms 提供的 XHTML+XForms 文件中。在實踐中,您可能更喜歡使用相對 URI 而不是絕對 URI(因此樣式表指令將讀取... href="../../../lib/xsltforms-1.0RC/xsltforms.xsl" ...);這樣可以更輕鬆地在將表單放到生產伺服器之前在測試機器上對其進行測試。
初始設定時出現問題的常見原因是使用不合適的 MIME 型別提供表單。
- 從 HTTP 伺服器提供的表單應具有
application/xml、text/xml或application/xhtml的 MIME 型別。作為text/html提供的表單將無法正常工作:瀏覽器不會將 XSLT 樣式表應用於 HTML 文件。 - 從本地檔案系統載入的表單將正常工作或不正常工作,具體取決於瀏覽器與副檔名關聯的 MIME 型別。如果
.html不起作用,請嘗試.xhtml或.xml。
安排您的伺服器接受來自 XForm 的 PUT 或 POST 請求是完全獨立的事情。原則上,將伺服器設定為處理此類請求與您的 XForms 實現完全獨立(儘管在實踐中,一些伺服器端 XForms 實現將在軟體包中包含對 PUT 和 POST 的伺服器端支援)。
這不是介紹細節的地方,但總的來說,可用的選項包括
- 安裝 WebDAV 伺服器(或更常見的是配置其他一些伺服器軟體以支援 WebDAV 請求);可能性包括
- Apache 中的 WebDAV 支援
- Subversion 中的 WebDAV/Delta V 支援
- 使用 Subversion 作為檔案儲存的 Apache 對 WebDAV 的支援
- eXist 或 BaseX 等 XQuery 資料庫中的 WebDAV 介面
- MarkLogic 中的 WebDAV 伺服器
- 配置通用 HTTP 伺服器以接受 PUT 或 POST
因為它們涉及接受和處理來自可能未知(因此可能不可信且具有敵意的)客戶端的資料,所以 PUT 和 POST 不可避免地對您的系統構成安全風險。因此,大多數網站管理員和系統管理員對正確設定以妥善管理風險的方式有明確的看法。XForms 使用者將需要與網站管理員合作,以確保將事物設定為您能夠完成工作並且不會使您的網站暴露於不可避免的安全問題的方式。
即使沒有將資料提交到伺服器,XForms 也可用作一種便捷的方式,為網頁提供更復雜的使用者介面,因此對於某些目的,您可能不需要將伺服器設定為 PUT 和 POST。
對於只想在您自己的機器上執行的 XForms 應用程式,當前版本 XSLTForms 中對 file:// URI 的支援可能使配置 WebDAV 伺服器變得不必要。(華夏公益教科書中其他地方需要對 Java 小程式進行描述,並且需要從此處連結到該描述。)