网络编程
位置:首页>> 网络编程>> XML编程>> 历数Firefox2.0对XML处理的改进(2)

历数Firefox2.0对XML处理的改进(2)

作者:Uche Ogbuji 来源:IBM developerWorks 发布时间:2007-11-27 12:41:00 

标签:Firefox,xml,ajax,浏览器

微摘要

微摘要(microsummarie),也称为活动标题(Live Title)是 Firefox 2.0 一种简洁的新特性,可以让浏览器用网站中一些有意义的内容来替换标题,特别是在书签中。比如,IBM developerWorks 的微摘要可以用站点上的最新文章标题代替静态文字 “developerWorks : IBM's resource for developers”。网站可以提供一个微摘要,用户也可自行创建。后一种情况称为 “微摘要生成器”,也是本文更关注的一点,因为它要求用户端处理 XML 和 XSLT(不熟悉 XML 的人可以重复使用其他人提供的生成器)。清单 3 中的微摘要生成器提取 developerWorks 主打文章的标题。

清单 3. 使用 IBM developerWorks 主打文章标题的微摘要生成器


<?xml version="1.0" encoding="UTF-8"?>
<generator xmlns="http://www.mozilla.org/microsummaries/0.1"
 name="IBM developerWorks featured article">
 <template>
 <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
 xmlns:html="http://www.w3.org/1999/xhtml">
 <xsl:output method="text"/>
 <xsl:template match="/">
 <xsl:text>Featured article:</xsl:text>
 <!-- On sites that make wider use of element IDs
 you can use more direct and efficient XPaths -->
 <xsl:value-of select="//html:a[@class='feature'][1]"/>
 </xsl:template>
 </xsl:transform>
 </template>
 <pages>
 <include>http://www.ibm.com/developerworks/[a-zA-Z0-9]*/?</include>
 </pages>
</generator>


生成器包括两部分:模板和页面信息。模板包括应用于网页的提取微摘要文本的 XSLT 代码。后者指定浏览器把微摘要应用于哪个页面。微摘要是简单的文本,输出指令与此相适应。微摘要的关键在于 XPath //html:a[@class='feature'][1],查找包含主打文章标题的元素。pages 部分的正则表达式保证微摘要可用于网站首页和每个 developerWorks 专区的首页。

参考资料 提供的一篇教程说明了如何安装 清单 3 这样的微摘要生成器。到目前为止,微摘要还是 Mozilla 特有的特性。

SAX 及其他

对于那些开发 Mozilla 扩展的人来说,最有意义的是 Mozilla XPCOM 组件系统现在提供了一个 SAX 解析器框架。如果没有合适的高层处理技术,可以自行开发高效处理 XML 的扩展。XPCOM 集成意味着可以用 C++、JavaScript 或具有 XPCOM 绑定支持的其他任何语言来处理 SAX 事件。

OpenSearch

OpenSearch 是 Amazon A9 孵化器开发的一个 XML 标准。它提供了几种 XML 格式和其他约定来描述和使用搜索引擎。Firefox 一直强力支持可扩展的搜索引擎插件,2.0 引入了 OpenSearch 支持,因而可以通过与 Iternet Explorer 及其他浏览器兼容的机制扩展搜索功能。

Firefox 支持的 OpenSearch 1.1 目前是 beta 版,为保持与 Firefox 和 OpenSearch 的兼容性,可能需要更新。清单 4 提供了对于 IBM developerWorks 的 OpenSearch 描述文档。

清单 4. IBM developerWorks 的 OpenSearch 描述文档
               

<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
 <ShortName>IBM developerWorks search</ShortName>
 <Description>Search IBM developerWorks zones</Description>
 <Tags>xml java architecture</Tags>
 <InputEncoding>utf-8</InputEncoding>
 <Contact>https://www.ibm.com/developerworks/secure/feedback.jsp
</Contact>
 <!-- The template attribute is split at the "?" for formatting purposes -->
 <Url type="text/html"
 template="http://www.ibm.com/developerworks/views/xml/
libraryview.jsp?
search_by={searchTerms}"/>
 <Attribution>All content Copyright 2007, IBM developerWorks</Attribution>
</OpenSearchDescription>


该文档仅仅说明 IBM developerWorks 提供了一个搜索 URL:


http://www.ibm.com/developerworks/views/xml/libraryview.jsp?search_by={searchTerms}


其中的 {searchTerms} 是一个模板参数,搜索工具将使用搜索项目来代替它。如果搜索 “Firefox XML”,URL 将变成:


http://www.ibm.com/developerworks/views/xml/libraryview.jsp?search_by=Firefox+XML


OpenSearch 规范了定义了这种 URL 模板系统。OpenSearch 还定义了把结果返回为 RSS 2.0 或 Atom 1.0 提要的约定和几种专用的扩展。Firefox 还不支持这种 Web 提要搜索结果,如果描述不含 Url 元素和 type="text/html"(表示从 URL 返回的内容类型)则返回错误。这种限制很不合理,但也可能是基于多数人仍然通过传统 HTML 表单和结果页面而不是 Web 2.0 机制搜索的现实考量。

在 Firefox 2.0 中,清单 4 这样的 OpenSearch 描述就像是完整的搜索引擎插件。网站可以使用页面头部的链接指定这样的描述,比如:


<link rel="search" type="application/opensearchdescription+xml"
title="IBM developerWorks"
href="/path/to/opensearch/description/document.xml"/>


注意:前面的三行代码通常显示为一行。为了便于显示和打印而分解成多行。

结束语

仍在 alpha 测试阶段的 Firefox 3.0 将带来更重要的 XML 特性。预计将在 2008 年上半年发布完整的版本。包括关于 XML 处理的重要 bug 修正和新的特性,当它成为主流 Firefox 版本的时候我将继续讨论。Mozilla 核心 XML 工具箱仍然在不断改进,对于涉及 XML 技术的开发人员和用户来说是一大福音。对于多数用户和开发人员来说,Web 浏览器是 XML 处理的脸面,本系列文章讲继续追踪和讨论最新 Firefox 版本的相关特性。

参考资料

获得产品和技术

  • Firefox:基于 Mozilla 的 Web 浏览器提供了符合标准、高效安全和强大的 XML 特性。当前版本是 2.0.0.6。

  • IBM 试用版软件:用这些试用版软件开发您的下一个项目,可直接从 developerWorks 下载。

关于作者

Uche Ogbuji 是 Zepheira, LLC 的合伙人,这家公司专门提供下一代 Web 技术解决方案。Ogbuji 是 4Suite 的首席开发人员,这是一种用于 XML、RDF 和知识管理应用程序的开放源代码平台;也是 Versa RDF 查询语言的首席开发人员。他是一位出生在尼日利亚的计算机工程师和技术作家,目前定居在科罗拉多的博尔德。可以通过他的 Weblog Copia 进一步了解 Ogbuji 先生。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com