历数Firefox2.0对XML处理的改进(2)
作者:Uche Ogbuji 来源:IBM developerWorks 发布时间:2007-11-27 12:41:00
微摘要
微摘要(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 版本的相关特性。
参考资料
您可以参阅本文在 developerWorks 全球网站上的 英文原文。
Updated developer features for Firefox 2.0:查看 Firefox 2.0 的新特性,其中部分涉及到 XML。
Updated developer features for Firefox 3.0:跟踪 Firefox 下一版本的变化和新功能,包括和 XML 有关的新特性。
XML in Firefox 1.5:阅读这三篇最新的 developerWorks 系列文章:
Firefox 1.5 中的 XML,第 1 部分: XML 特性概述(Uche Ogbuji,2006 年 3 月):了解这一迅速发展的 Web 浏览器的 XML 新特性。
Firefox 1.5 中的 XML,第 2 部分: 基本 XML 处理(Uche Ogbuji,2006 年 3 月):Firefox 中的基本 XML 处理,包括 XML 解析、级联样式表(CSS)和 XSLT 样式表。还需要了解一些限制。
XML in Firefox 1.5, Part 3: JavaScript meets XML in Firefox(Uche Ogbuji,2006 年 8 月):使用 JavaScript 在 Firefox 浏览器中操作 XML。
Controversial new Firefox 2.0 change:关于 Firefox 忽略很多 XML Web 提要中所提供样式表链接的讨论。
Microsummaries:了解这种 Firefox 2.0 新增的网页自动更新摘要。
SAX support in Firefox 2.0:了解如何使用 Simple API for XML (SAX) 解析 API 和 XUL 应用程序及扩展。
SVG in Firefox 2.0:了解 Firefox 2.0 对 SVG 的支持。
Creating OpenSearch plugins for Firefox:创建与 OpenSearch 兼容的支持 Firefox 专有特性的搜索插件,如搜索提示和
SearchForm
元素。Introducing OpenSearch (Uche Ogbuji,O'Reilly xml.com,2007 年 7 月):了解 OpenSearch,共享搜索结果的一组简单格式。
developerWorks search help:高效的搜索策略,了解如何输入搜索查询和使用 IBM developerWorks 运算符。
IBM XML 认证:看看如何才能成为一名 IBM 认证的 XML 及相关技术的开发人员。
XML 技术文档库:developerWorks XML 专区提供了大量技术文章和技巧、教程、标准以及 IBM 红皮书。
developerWorks 技术事件和网络广播:随时关注技术的最新进展。
技术书店:关于本文主题和其他技术主题的书籍。
获得产品和技术
Firefox:基于 Mozilla 的 Web 浏览器提供了符合标准、高效安全和强大的 XML 特性。当前版本是 2.0.0.6。
IBM 试用版软件:用这些试用版软件开发您的下一个项目,可直接从 developerWorks 下载。
关于作者
Uche Ogbuji 是 Zepheira, LLC 的合伙人,这家公司专门提供下一代 Web 技术解决方案。Ogbuji 是 4Suite 的首席开发人员,这是一种用于 XML、RDF 和知识管理应用程序的开放源代码平台;也是 Versa RDF 查询语言的首席开发人员。他是一位出生在尼日利亚的计算机工程师和技术作家,目前定居在科罗拉多的博尔德。可以通过他的 Weblog Copia 进一步了解 Ogbuji 先生。


猜你喜欢
- 具体代码如下所示:<?php//在子类或类内部用“::”调用本类或父类时,不是静态调用方法,而是范围解析操作符。class Paren
- 大家在用asp开发程序的时候,有时候会碰到以下的错误提示:Active Server Pages 错误 'ASP 0141'
- 我是闲的没事干,2014过的太浮夸了,博客也没写几篇,哎~~~ 用这篇来记录即将逝去的2014python对各种数据库的各种操作满大街都是,
- Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。Mac 下编译 Linux 和
- 一道Python面试题的几种解答: 两个元祖T1=('a', 'b'), T2=('c',
- 主要有以下步骤:1、人脸检测2、人脸预处理3、从收集的人脸训练机器学习算法4、人脸识别5、收尾工作人脸检测算法:基于Haar的脸部检测器的基
- <% set conn=server.createobject("adodb.connect
- sub test { my $head = "abc"; &n
- 今天来聊一下 Go 如何使用 set,本文将会涉及 set 和 bitset 两种数据结构。Go 的数据结构Go 内置的数据结构并不多。工作
- 1.random库的使用:random库是使用随机数的Python标准库从概率论角度来说,随机数是随机产生的数据(比如抛硬币),但时计算机是
- 背景说的事务,大家应该都不陌生,开发用到 MySql 数据库的时候,通常会用到事务。其中比较经典的例子就是转账,比如你要给小明转 50 块钱
- 将时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果如:{‘year':2018,‘month
- 经常在各处牛人的代码中看到许多简写的条件表达语句,看了一些介绍这方面的文章,觉得3 ways 2 say if这篇文章(http://www
- 本文为大家分享了python数据分析数据标准化及离散化的具体内容,供大家参考,具体内容如下标准化1、离差标准化是对原始数据的线性变换,使结果
- 简介Puppeteer是Google开发并开源的一款工具,可用代码驱动浏览器操作。由于诸多优秀的特性,Puppeteer常被用在爬虫与自动化
- 一、使用SQL Server全文搜索配置要使用SQL Server的全文搜索服务,需要进行如下配置。1、开启全文搜索服务:2、开启数据库的全
- 大家都知道在Dreamwerver中可以很方便地实现记录集的分页显示,但是生成的代码的确很庞大,影响了网页的显示速度,看起来条理也不是很清晰
- 什么是Three.js? 如果你正在读这篇文章,你可能对Three.js有一定的了解,那我们来简单地介绍下Three.js是什么.Three
- python中字符串内置方法很多,可以通过dir()方式查看具体有哪些方法,下表是python字符串的全部的内置方法方法名描述capital
- 中间件中间件是放在客户端和服务端的中间。 当你的客户端对某个接口发起一个请求,但是在到达接口2之前,这里是有一层中间件的处理。一般