|
Mozilla 对 XML 有很好的支持。数个来自 XML 规范家族的 W3C 建议和草案就象其它相关技术一样被 Mozilla 所支持。
这篇文档主要描述 Mozilla 中的核心 XML 技术。其它技术在 mozilla.org web 站点的其它地方描述;到那些文档的链接在这里给出。
内容
支持的核心 XML W3C 建议和其它规范及相关技术
核心 XML 支持包括不做验证地解析 XML (我们使用 EXPat 解析器),使用 CSS技巧">CSS 显示 XML,通过 DOM 使用脚本处理 XML 文档,XML 文档的联合样式单 (associating stylesheet),以及 XML 的名域 (namespace)。核心支持非常好,只有很少的 bug。
大量的文档对象模型 (DOM ,W3C 的建议和草案) 应用于 XML。同样,层叠样式单 ( CSS ,W3C 的建议和草案) 样式语言可以用来装饰 XML 文档。
核心 XML 的大部分代码可以在 Mozilla CVS 服务器的以下目录中找到: mozilla/content/xml ,mozilla/expat 和 mozilla/htmlparser 。
讨论 Mozilla 中的 XML 的讨论组有点依赖于问题的种类。例如,DOM 相关问题可能需要到 netscape.public.mozilla.dom 讨论组去讨论,而样式问题应该到 netscape.public.mozilla.style 去讨论等等。 关于 XML 的一般性讨论的讨论组是netscape.public.mozilla.xml。
其它支持的 XML W3C 建议和其它规范及相关技术
XHTML 的支持仍然有点虚弱,但是测试正在进行,我们正在以稳定的速度修正 bug。我们依赖于 mime 类型 (或者文件的后缀,如果文件是从本地磁盘加载的话) 以不同的方式对待 XHTML 文档£ºtext/html (或 .htm 和 .html) 文件走 HTML 代码路径,这样我们并不总是象我们应该做的那样遵照 XML 规范。text/xml (或 .xml) 文件走 XML 代码路径,这样我们会做所有的格式正确检查等等。当你经历这个代码路径时,你将注意到所有的 XHTML 特征都得到了支持。
| Mime 类型 |
文件后缀 |
代码路径 |
text/xml application/xml |
xml |
XML |
| text/html |
html htm xhtml |
HTML |
整个的文档不必全部都是 XHTML。你可以在任意的 XML 文档中通过使用 XHTML 名称空间 来使用 XHTML 的元素。查看 Testing 部分以得到例子。正确的 XHTML 名称空间是 http://www.w3.org/1999/xhtml
XML Linking 支持包括 XML Base (仅在你的鼠标在一个链接之上或者点击一个链接时使用) 和 简单 XLink。你可以通过使用 XLink 的名称空间 http://www.w3.org/1999/xlink 把任何 XML 元素做成一个 XLink。 你也可以使用来自 XHTML 名称空间的链接元素。查看 Testing 部分以得到例子。
document.load() 是一个由 Microsoft 发明的 DOM 扩展。load 方法有一个参数,一个字符串,被解释为到一个 XML 文档的 URI。 它试图异步地加载文档,这样你将需要设置一个事件处理器来观察 load 事件以便在文档被加载后做一些事。查看在 XML tests 目录中的 load 例子 。 从 LXR 生成的页面加载 load.html 文件将不会工作,可能会使 Mozilla/Netscape 6 崩溃,因为 LXR 会把 test.xml 转换为 HTML 并且作为 HTML 来 为其服务。为 测试这个功能,在你自己的本地磁盘或者 web 服务器上创建这个文件。
在其它地方解释的支持的 XML W3C 建议和其它的规范及相关技术
测试和 QA
我们在 浏览器标准顺从问题与解答 页面中有大量的测试用例链接。
CVS 服务器上大部分 XML 测试文档位于 mozilla/content/xml/tests 。我们也有一对在线的例子£º books demo 和 IRS table of contents demo 。两者都展示了 XML,XML 的联合样式单,使用 CSS 显示 XML,XML 的名称空间,XHTML,简单 XLink,和 通过 DOM 使用脚本对 XML 的处理。
这里有 UCt=Browser&component=XML&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&status_whiteboard=&status_whiteboard_type=substring&keyWords=&keywords_type=anywords&field0-0-0=noop&type0-0-0=noop&value0-0-0=&cmdtype=doit&namedcmd=joki_not_fixed_not_future&newqueryname=&order=Reuse+same+sort+as+last+time">Bugzilla 中的 XML 组件 。
我们还有以“xhtml”做关键字的 XHTML bugs (这些 bug 倾向于分散在多个组件之间)。
我们有一个 test matrix for XHTML (Netscape internal) 。
我们打开了使 NIST DOM ( bug 51247 ) 和 NIST XML ( bug 57673 ) 测试套件在 Mozilla 中工作的 bug - 它们现在还不能工作。
QA 资源
我怎样提供帮助?
如果你能够编码,查看 helpwanted keyword in XML bugs 。我们并不经常使用它,所以如果你想避免做重复劳动,你可以从 Future milestone 开始工作,或者有一个将会设置于将来的 milestone。
你可以经常测试我们的 XML 支持。我们实际上最好得到可以自动运行的测试 (这要求有 web 开发的知识;document.load() 和/或 XML Extras 可能需要),但是可能大部分我们得到的 bug 是由普通人发现的,他们试图做一些在其它浏览器中工作的事,但是在 Mozilla 中却不工作。
你也可以为 XML 一些部分注册成为 QA 资源,联系 Heikki Toivonen 以得到这方面的信息。
|