[摘 要] RSS作為xml數(shù)據(jù)源應(yīng)用的一種方式,已經(jīng)得到越來越廣泛的應(yīng)用,但隨著RSS信息量的不斷增大,RSS應(yīng)用需要一種有效的數(shù)據(jù)處理方案拓展其應(yīng)用面,本文根據(jù)xquery規(guī)范,使用Qexo模型,實(shí)現(xiàn)一種對(duì)RSS數(shù)據(jù)查詢的方法。
[關(guān)鍵詞] Xquery XML Qexo
一、前言
RSS起源于Netscape的MY Netscrpe項(xiàng)目,他是資源描述框架(Resource Description Framework, RDF )的一種應(yīng)用,當(dāng)時(shí)Netscrpe希望通過使用RSS來描述新聞報(bào)導(dǎo)并且允許通過選擇想再個(gè)人門戶上顯示得新聞資源來構(gòu)建他們自己的信息門戶,所以得名為RDF站點(diǎn)概要(RDF Site Summery,RSS),通過樹狀結(jié)構(gòu)變現(xiàn)文檔來列出數(shù)據(jù),目前很多門戶網(wǎng)站都向用戶提供了RSS文檔。RSS文檔作為一種資源共享模式的延伸,給用戶提供了信息檢索上的便利。
自1999年RSS誕生起,短短的10年間,RSS經(jīng)歷了飛速地發(fā)展,包括最近兩年IETF(Internet Engineering Task Force,國際互聯(lián)網(wǎng)工程任務(wù)組)發(fā)布的RSS新格式Atom在內(nèi),一共有10個(gè)版本的RSS格式,其中有很多版本已被廢棄,但是還有很多依然在被許多互聯(lián)網(wǎng)站點(diǎn)使用。
本文針對(duì)RSS提出一種可以實(shí)現(xiàn)的資源查詢RSS方法。這種方法改變并簡(jiǎn)化網(wǎng)站對(duì)RSS的管理維護(hù),改變信息網(wǎng)站對(duì)RSS的管理模式,同時(shí)又使得用戶可以更自由地選擇自己所需要的RSS資源,使RSS可以得到更充分的應(yīng)用。
二、基于Xquery的RSS資源查詢方法
本文借鑒Xquery規(guī)范,使用Qexo框架實(shí)現(xiàn)對(duì)RSS數(shù)據(jù)管理,Xquery是由W3C組織針對(duì)對(duì)xml數(shù)據(jù)源查詢管理制定的一套查詢語言規(guī)范,根據(jù)Xquery規(guī)范,查詢xml數(shù)據(jù)可以和sql語言一樣簡(jiǎn)單。for對(duì)應(yīng)select..from語句,選擇RSS數(shù)據(jù)資源地址,where為條件語句,return返回一個(gè)值。以下是xquery制定下對(duì)xml數(shù)據(jù)檢索的語句。
for $i in doc(“url”)/root/element
where $i/itemname2> 30
return $i/itemname
Qexo模型是由java語言編譯而成,使用了kawa框架進(jìn)行轉(zhuǎn)化為符合Xquery規(guī)范的xml數(shù)據(jù)查詢模型。Qexo通過攔截所有xql結(jié)尾的文件,把xquery查詢語句讀入KawaPageServlet中,并對(duì)其中的查詢語句進(jìn)行編譯執(zhí)行,最后再返回用戶所需要的XML資源顯示?;谶@種對(duì)于XML格式數(shù)據(jù)的操作,Qexo完全可以應(yīng)用到RSS的數(shù)據(jù)管理上。把Qexo比作一個(gè)RSS過濾器,把RSS資源根據(jù)要求過濾為相應(yīng)的RSS結(jié)果集輸出。由于Qexo輸出的依然還是RSS格式文檔,這樣,就不需要再設(shè)計(jì)程序把其轉(zhuǎn)化為原來的格式或HTML格式,一般的IE瀏覽器可以直接顯示輸出RSS結(jié)果集。
對(duì)于數(shù)據(jù)的基本操作一般包括查詢,排序,歸并等,這里使用聲明函數(shù)編寫最常用的數(shù)據(jù)處理操作:
函數(shù)寫入RSS或Atom的pubdate(文件的日期),可以自動(dòng)對(duì)這些信息進(jìn)行排序。
對(duì)RSS進(jìn)行查詢:
declare function local:rss-inquiry ($url)
{
for $b in doc($url) /rss/channel/item
where $b/ pubDate > 2008-5-26
return local:rss-row($b/link/text(), $b/title/text(),$b/ description /text())
}
Xquery根據(jù)where條件句篩選RSS數(shù)據(jù),并返回用戶指定元素集。
Qexo將過濾指令函數(shù)嵌入到用來生成輸出格式的文檔(*.xql)中后。在前臺(tái)頁面調(diào)用這些函數(shù)時(shí),通過項(xiàng)目調(diào)用saxon2.jar包,使用{local:FunctionName(“url”)}調(diào)用當(dāng)頁函數(shù)進(jìn)行操作處理出來的,url是從門戶網(wǎng)站抓取來的RSS地址。通過這種查詢RSS方式,用戶不僅可以從定制更加個(gè)性化的RSS資源庫,即滿足所需即所得,同時(shí),對(duì)于提供RSS的網(wǎng)站,也可以簡(jiǎn)化工作量,提高效率,網(wǎng)站可以把所有的RSS資源合并成一個(gè)文檔管理,并使用xquery查詢修改對(duì)其進(jìn)行更新,而用戶則可以使用xquery把抓取過來的RSS資源根據(jù)自己的需要進(jìn)行篩選、歸類,實(shí)現(xiàn)正真意義上的個(gè)性化信息索取。
三、總結(jié)
在20世紀(jì)90年代末,博客軟件以及web門戶的開發(fā)者需要一種標(biāo)準(zhǔn)的數(shù)據(jù)格式,以便他們能夠輕松地聯(lián)合web上的內(nèi)容,因此RSS,Atom就此誕生了,RSS從出現(xiàn)到現(xiàn)在10個(gè)年頭里,將來的web的許多應(yīng)用都將基于RSS,也正是這個(gè)原因,對(duì)于RSS的具有數(shù)據(jù)處理方法也將是一種必要的網(wǎng)頁搜索功能得到更廣泛的應(yīng)用,本論文對(duì)RSS的數(shù)據(jù)管理提出了一種基于Qexo模型可行的實(shí)現(xiàn)方式,使RSS查詢更易管理,為RSS的發(fā)展提供了一個(gè)可行的方案。
參考文獻(xiàn):
[1]Xquery1.0 An XML Query Language[EB/OL]http://wwww.w3c.org/TR/2005/CR-xquery~20051103
[2]使用 XQuery開發(fā)mashup[EB/OL]http://www.mp3sea.net/XML/[2007~03~22]