跳转到内容

XForms/调试 XForms

来自维基教科书,开放的书籍,开放的世界
(从 XForms/调试技巧 重定向)

如果您是 XForms 的新手,并且在调试 XForms 时遇到问题,您并不孤单。XForms 调试可能很棘手,尤其是对于新手来说。如果您关注 XForms 的新闻组,您会发现一些问题经常出现。

常见问题

[编辑 | 编辑源代码]

这些问题按频率排序,大致包括以下内容:

  1. 确保使用 .xhtml 扩展名命名您的文件。包括 FireFox 在内的许多浏览器不会在扩展名为 .htm 或 .html 的文件中查找 XML 标签。
  2. 忘记将实例数据与命名空间或默认命名空间关联的问题。可以通过在实例变量中添加 xmlns="" 参数来解决此问题。
  3. 文档主体中命名空间不正确或缺失。例如,如果默认命名空间是 html,则标签 <input> 是有效的,但浏览器会将其视为 <html:input> 而不是 <xf:input>。当用户从使用 XForms 作为默认命名空间的地方复制 XForms 示例代码时,这种情况经常发生。这是一个很好的理由,教程和培训开发人员不应将 XForms 作为默认命名空间。
  4. 模型和视图之间的绑定不正确。这通常是由于 “ref” 或 “nodeset” 属性定义不正确,或者组或重复更改了数据元素的路径前缀。
  5. 无法将表单绑定到实例,因为 XForms 处理器无法找到一个或多个实例特定的命名空间。如果您在将 XForm 流式传输到用户之前使用 XSLT 或 XQuery 对其进行了自定义,则处理器可能会将一些命名空间的声明委派给它们首次出现的实例,因为它将 XForm 上 ref 和 bind 属性的内容视为只是内容。但是,您的 XForms 处理器可能希望在父轴上定义 ref 属性中命名空间的定义,并且可能不会在模型实例中查找任何声明。当这种情况发生时,您需要手动构造根 xhtml:html 节点,并明确声明出现在您的表单中的任何命名空间。

使用 XForms 验证器

[编辑 | 编辑源代码]

有些人发现这个 XForms 验证器很有用

http://xformsinstitute.com/validator

该程序将查找 XForms 示例中的常见错误。

使用 Eclipse 验证 XPath

[编辑 | 编辑源代码]

有一个很好的用于 XSLT 的 Eclipse 插件,它还提供了一个 XPath 验证 “视图”。参见:http://wiki.eclipse.org/XSLT_Project

Firefox 的调试工具

[编辑 | 编辑源代码]

最实用的 Firefox 扩展之一是 XForms Buddy 调试器。此工具允许您在 Firefox 浏览器中运行 XForms 时,以可视方式检查模型中的所有实例。这对于确保动态配置的实例值由 XForms 正确设置特别有用。该网站的链接是:这里

使用 JavaScript 打印您的绑定

[编辑 | 编辑源代码]

还有一种方法可以在您的 JavaScript 代码中以可视方式查看您的绑定。

这些接口在这里有文档记录

nsIXFormsAccessors

Mozilla 调试技巧

[编辑 | 编辑源代码]

以下是一些针对调试 XForms 的人员的建议

Mozilla XForms 故障排除页面

测试提交

[编辑 | 编辑源代码]

有时,当您创建对 Web 服务的复杂提交时,您需要确保 XForms 应用程序生成的內容与 Web 服务期望的內容完全一致。有时,Web 服务供应商会提供一个示例 Web 表单客户端,该客户端可以正确调用他们的服务,但有关调用该服务的文档却有所欠缺。解决此问题的一种方法是观察 HTTP 数据包离开工作应用程序,并将它们与您的 XForms 的 HTTP 数据包进行比较。可以使用 HTTP 代理工具(如 Charles)来完成此操作,该工具也可以作为 Firefox 扩展运行。

标准 Web 开发调试器的 “网络” 标签,如 Firebug 和 Google Chrome Javascript 控制台,可用于观察浏览器与之之间进出的网络流量,从而允许您验证提交内容、方法和 HTTP 错误代码是否符合预期。

使用 Firefox 的 HTTP 代理

[编辑 | 编辑源代码]

代理是一种充当 Web 服务器的工具。它将自己置于您的 Web 浏览器和服务器之间,并告诉您浏览器刚刚发送给 Web 服务器的内容。为此,您必须设置您的 Web 浏览器使用代理(通过告诉它将所有内容转发到另一个 IP 地址),然后代理将其转发到服务。

使用完代理后,请确保记得通过转到 Firefox 工具/选项/常规/连接设置并单击直接连接到互联网来禁用代理。如果您不这样做,当 Charles 或 Tamper Data 关闭时,您的 Web 浏览器将不再起作用。

调试 WebDAV 和 Subversion

[编辑 | 编辑源代码]

有一些 XForms 是为了使用 HTTP put、HTTP post 和 [w:WebDAV:WebDAV] 而设计的。WebDAV 允许您不仅存储表单的第一个版本,还可以返回并查看以前的版本。Subversion 常见问题解答 [1] 建议您运行 Wireshark 数据包嗅探器,查看 HTTP 消息中的数据。

验证文件是否格式正确

[编辑 | 编辑源代码]

要验证数据文件是否格式正确,您可以使用 RUWF(您格式正确吗)?XML 语法检查器

在 Internet Explorer 6.0 中设置 Mime 类型

[编辑 | 编辑源代码]

某些版本的 IE 6.0 尚未为 IE6 设置正确的 mime 类型。要解决此问题,您必须在 Microsoft Windows 注册表中添加一个条目

打开命令 shell 输入命令 “regedit”

[HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/xhtml+xml]
"CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}"
"Encoding"=hex:08,00,00,00
"Extension"=".xhtml"
下一页: XForms | 上一页: Intalio 表单设计器
主页: XForms
华夏公益教科书