跳转到内容

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 处理器找不到一个或多个实例特定的命名空间。如果您使用 XSLT 或 XQuery 自定义了 XForm,然后再将其流式传输到用户,则处理器可能会将一些命名空间的声明降级到其首次出现的实例,因为它将您 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 调试器。此工具允许您在 XForms 在 Firefox 浏览器中运行时直观地检查模型中的所有实例。这对于确保动态配置的实例值由 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 工具/选项/常规/连接设置并单击直接连接到 Internet 来禁用代理。如果您不这样做,您的 Web 浏览器在 Charles 或 Tamper Data 关闭时将不再起作用。

调试 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 注册表中添加一个条目。

打开命令提示符并输入命令 "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
华夏公益教科书