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