李彥,王宇飛,王鑫 ,朱銳
(1.國家海洋技術中心,天津 300112;2.University of Nottingham,NOTTINGHAM,NG8 1AD)
基于XML的海洋環境數據處理技術研究
李彥1,王宇飛2,王鑫1,朱銳1
(1.國家海洋技術中心,天津 300112;2.University of Nottingham,NOTTINGHAM,NG8 1AD)
海洋環境數據是海洋科學研究、應用、發展的重要基礎,然而由于獲取手段的不同,導致各類數據格式不一,為數據交換帶來一定難度。因此,本文主要針對海洋環境數據交換能力差這一問題,利用XML技術統一數據格式定義,并通過對小浮標獲取數據的解析處理,說明XML技術在應對跨學科、跨平臺的海洋環境數據交換方面具有廣泛的應用價值。
XML;海洋環境數據;互操作
海洋環境數據是海洋科學研究、應用、發展的重要基礎,是維護海洋權益、保障海洋安全、保護海洋環境、促進海洋可持續發展的重要支撐。
海洋環境立體監測系統[1]是海洋環境數據獲取的基本手段,核心是由以遙感衛星組成的天基海洋環境監測平臺,以海洋巡航飛機、有人/無人航空遙感飛機組成的空基海洋環境監測平臺,以固定海洋環境監測站和高頻地波雷達站組成的岸基海洋環境監測平臺,以浮標、潛標、漂流浮標、水下移動潛器、船舶等組成的海基海洋環境監測平臺,以水下固定監測站、水下水聲探測陣等組成的海底海洋環境監測平臺等構成的多平臺、長時序的海洋環境立體監測系統。
因此,海洋環境數據根據獲取手段的不同而格式各異[1,2],由于缺乏統一標準無法實現在不同平臺、系統中的交互,這為包括管理部門、科研機構、企業、教育界以及公眾在內的廣大用戶對數據的使用帶來了很大不便。XML技術的出現恰恰可以解決這一問題。
聯合國教科文組織(UNESCO)的政府間海洋學委員會(IOC)的國際海洋資料與情報交換委員會(IODE)一直致力于標準數據格式、簡化數據交換的研究。2000年, IODE前任主席Ben Searle創建了marineXML聯盟從事marineXML標準的開發。國際海洋勘探理事會(ICES)與IOC聯合成立了SG-XML(Study Group on the Development of Marine Data Exchange Systems Using XML)。并在2002年4月召開的第一次會議上,提出了SGXML的職責和主要工作內容,提出了提出最佳的海洋數據元數據定義。英國的國家海洋資料中心、HR WALLINGFORD LTD和政府機構共同發起的長達兩年的EU MarineXML項目,以改進涉海用戶系統,特別是海洋觀測系統的數據交互性為目的,開發了一個基于XML的海洋標記語言原型,以推動數據標準的制定。
本文主要以研究適用我國海洋環境數據交換的統一格式需求為目的,通過參考國際現有成果,利用XML技術進行數據處理,為海洋用戶提供具有可操作性的數據共享服務。
XML是eXtensible Markup Language(可擴展的標記語言)的縮寫[3,4],是W3C組織于1998年2月發布的一種標記語言標準,其目的和作用是提供一種國際統一的規范,進行Intenet上各種信息數據的統一表示和交換。XML解決了在不同系統之間的數據結構差異,使得數據層在XML技術的支持下得到統一。在國際互聯網上,服務器與服務器之間、服務器與瀏覽器之間有大量的數據需要交換,特別是在電子商務、公共衛生、遠程教育、電子金融等領域中。這些被交換的數據,都被要求對數據的內容和表現方式進行說明,用XML標記語言處理這類工作最為合適。因此在互聯網世界XML的用途主要有兩個,一是作為元標記語言,定義各種領域相關的標記語言標準;二是作為標準交換語言,擔負起描述交換數據的作用。
XML本身是一種開放性技術,是連接不同系統、不同平臺的數據橋梁,目前XML技術受到了行業的廣泛關注和認同,支持XML的軟件和開發工具越來越多,功能也越來越強大,許多XML工具還提供了開放的源代碼,以方便在此基礎之上進行移植和二次開發。
XML起源于SGML(Standard Generalized Markup Language),它是SGML的一個簡化版本,從來源上看,XML和HTML都是由SGML派生而來的,但是,HTML是一種特殊化的標記語言,而XML是開放的標記語言。HTML的優勢是連接文本和顯示內容,但在動態信息處理仍有很多問題;由于HTML具有固定的格式,缺少了靈活性,只能描述有限的數據類型,若使HTML包含了所有的數據類型,那么HTML將變得非常復雜。而XML是一種元語言(Meta Language),它本身不提供預定義標記,而提供了一個定義標準,用戶根據該準則制定適合需要的標記體系。可以說XML是“基于信息描述的、能夠體現數據信息之間邏輯關系的、可以確保文件的易讀性和易搜索性的自定義標記。
在XML安全方面,XML語言自身的結構化特征,以及XML廣泛和深入的應用,給XML數據的安全帶來了新特性,比如保護XML文檔的存儲安全、保護XML消息長期的確認性、保護XML文檔局部數據的安全等。W3C和IETF于1999年提出了XML數字簽名標準(XML Digital Signature Syntax and Processing),該標準在2002年2月12日成為W3C的推薦標準(W3C Recommendation)。W3C還于2000年4月開始制定XML加密標準(XML Encryption Syntax and Processing),并于2001年10月18日發布工作草案(W3C Working Draft)。
XML語言具有如下特點:
(1)XML不但是標記語言,而且是可擴展的(eXtensible)標記語言。不同個人、不同行業和應用都可以根據實際需要定義新的標記語言。準確的說,XML是一種元語言,基于它提供的規則,可以制定各種各樣的標記語言;
(2)信息的顯示與處理分離:在XML中,文檔內容以什么樣的形式顯示由可擴展樣式語言(eXtensible Style Language,簡稱XSL)和層疊樣式表(Cascading Style Sheets,簡稱CSS)加以控制。這樣,如果需要改動信息的表現方式,無須改動信息本身;XML中數據搜索可以簡單高效地進行;XML文檔制定者可以根據數據自身的邏輯定義文檔結構;顯示與內容分離,極大地拓寬了XML的應用領域;
(3)XML遵循嚴格的語法要求,結構清晰,可讀性好,容易編制,便于不同系統之間信息的傳輸。
因此,采用XML來描述數據,就可以很方便的在相同的或是不同的系統中對這些數據進行互操作。例如,一位開發者可以使用來自另一個系統的數據,只要那些數據是用XML描述的,開發者在考慮軟件的互操作性時就不必擔心諸如平臺、操作系統、語言、或是數據存儲等各方面的不同了。
但是,XML并不關心數據是如何具體描述的、數據是否正確。這一問題需要XML schema來解決。
XML Schema就是描述信息結構的模型,可以用來對XML文檔內容的合法性進行驗證,包括2個方面:一方面是語法結構的驗證,即元素類型、元素嵌套格式、屬性類型、屬性值數據類型、屬性值是否可選等相關文檔對象單元本身及其結構的合法性;另一方面是語義的驗證,只有真正理解了XML文檔的含義才能算是實現了信息交互,否則僅是結構上正確但意義模糊的信息,對于接收方來說一樣是無用的,有時甚至會產生誤解,起到相反的作用。
驗證步驟如下:
(1)定義一份XML schema為同一類型的所有文檔的結構標準;
(2)應用XML schema,一般由文檔的作者制定schema,這樣接收方可以很快地根據說明對文檔進行驗證;
(3)運行解析器進行驗證,解析器在裝載文檔的同時掃描結構,遇到任何錯誤都會終止裝載過程,并做出適當的響應。
XML Schema共有8種元素:
(1)〈Schema〉元素
XML Schema文件與其他的XML文檔結構非常相似,根元素為〈Schema〉,表明文檔類型:

其中屬性name指定Schema名稱,xmlns指定所屬名稱空間。第一個xmlns指定全文的缺省名稱空間,第二個定義了文檔中可使用的數據類型的名稱空間。
在XML中引用Schema的方法是在XML文檔的根元素中使用名稱空間指明Schema文件的URL地址,在URL前加上“x-schema”前綴:


Content屬性規定聲明的元素是否為空,是否包含文本或子元素,還是兩者都有;order指定子元素的排列順序;model規定了元素中是否可以包含未在Schema定義的元素或屬性;dt:type則指定了元素的數據類型。
對于其它6個元素,本文不再一一列舉說明。
本文對海洋環境數據的分類定義,主要依據獲取手段的不同,針對數據管理者為不同用戶提供數據共享服務,滿足數據交換需求。對每一類平臺獲取的海洋環境數據進行的XML定義,主要包括一般數據信息和工作數據信息。一般工作信息主要包括平臺信息、工作狀態、布放位置/獲取數據區域范圍、以及在位時間等;工作數據信息主要包括平臺監測數據。以小浮標為例,一般工作信息包括小浮標信息、工作狀態、布放位置、在位時間等,工作數據信息包括小浮標所搭載的各類傳感器監測數據,主要為溫、鹽、波、流和氣象等測量數據。數據結構如圖1所示:

圖 1 小浮標系統觀測的海洋環境數據結構Fig.1 Marine environment data framework of buoy



上述數據結構定義為各類監測數據提供了統一的XML格式定義,數據管理者可通過對數據的解析方便實現不同用戶間基于瀏覽器的數據交換。本文通過XML解析器msxmlchs實現對小浮標獲取的海洋環境數據XML的格式解析,同時顯示以供用戶查看和使用。代碼如下:

將上述解析結果提取后,通過JFreechart這一插件進行圖形處理,以曲線形式顯示在瀏覽器上。代碼如下:


至此,用戶可通過瀏覽器方便查看數據信息,如圖2所示,也可以通過下載XML格式數據源文件對數據進行進一步處理,如產品開發等。

圖 2 海流剖面數據XML解析曲線顯示結果Fig.2 Current profile data XML curve show
隨著海洋環境數據獲取手段的不斷更新和海洋環境數據量的不斷增加,如何有效綜合利用各類海洋環境測量數據、提供統一的數據交換標準格式,已成為海洋學者和海洋管理者面臨的迫切問題。本文通過參考國際現有Marine XML研究成果,并結合我國海洋環境數據實際情況,通過利用XML技術對海洋環境數據的處理,用戶利用瀏覽器可方便的實現對數據的操作,實現了數據的可使用性、易用性,保證了不同系統、不同學科間數據的互操作性。因此,XML技術在應對我國海洋領域中跨學科、跨平臺的海洋環境數據交換方面具有廣泛的應用價值。
[1]羅續業, 周智海, 曹東, 等.海洋環境立體監測系統的設計方法[J].海洋通報, 2006, 25(4): 69-77.
[2]李彥.基于Web Service 的系統集成技術在海洋監測系統中的應用 [J].海洋技術, 2004, 23(3):55-58.
[3]Heather Williamson.XML 技術大全 [M].北京: 機械工業出版社, 2002.
[4]Charles F G.XML手冊 [M].北京: 電子工業出版社, 2005.
Research of XML based processing technology for marine environment data
LI Yan1, WANG Yu-fei2, WANG Xin1, ZHU Rui1
(1.National Ocean Technology Center, Tianjin 300112, China; 2.University of Nottingham, NOTTINGHAM, NG8 1AD, England)
Marine environment data is the basis of ocean science research, application and development.But data sharing is difficult because of the different data format coming from different platforms.Thus, this paper aims to solve the problem that the exchanging-capability for the marine environment data is relatively poor.In this paper, we unify the format of the data by using the XML technology.By analyzing the data of buoy, this paper shows that the XML technology will be applied widely in the exchanging of marine environment data in cross-platform.
XML; marine environment data; interoperability
TP393
A
1001-6932(2011)06-0697-05
2011-06-06;
2011-08-15
海洋公益性項目(200905024)。
李彥(1980-),女,碩士,工程師,從事海洋監測數據集成管理、海上試驗檢測與評價研究工作,電子郵箱:haqiu.li@gmail.com。