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 小程序进行描述,并且需要从此处链接到该描述。)