當前,Java 2平台企業版(J2EE)架構在廠商市場和開發人員社區中倍受推崇。作為一種工具,可延伸標記語言 (XML)(XML)簡化了資料交換、進程間訊息交換這一類的事情,因而對開發人員逐漸層得有吸引力,並開始流行起來。自然,在J2EE架構中訪問或整合XML解決方案的想法也很誘人。因為這將是強大系統架構同高度靈活的資料管理方案的結合。
XML的應用似乎是無窮無盡的,但它們大致上可以分為三大類:
* 簡單資料的表示和交換(針對XML的簡單API(SAX)和文件物件模型(DOM)文法解析,不同的文件類型定義(DTDs)和概要(schemas))
* 面向訊息的計算(XML-RPC(遠端程序呼叫),SOAP協議,電子化業務XML(ebXML))
* 使用者介面相關、表示相關的上下文(可延伸樣式表語言 (XSL)(XSL),可延伸樣式表語言轉換(XSLT))
這幾類應用在J2EE架構中恰好有天然的對應:資料表示和交換功能是EJB組件模型中持久化服務(persistence services)的一部分,基於訊息的通訊由JavaMessage Service(JMS)API來處理,而介面表示正是Java伺服器頁面(JSP)和Java Servlets的拿手好戲。
在本文中,我們將看到當今基於J2EE的應用裡,XML是如何在上述幾個方面進行應用的,以及在相關標準的未來版本中這些應用將會如何發展。
基礎:資料的表示和交換
原型化的XML應用(假設有的話)的內容通常是:資料以XML格式存放,為了進行顯示、修改甚至寫入某個XML文檔而經常被讀入到某個物件模型中。作為例子,假定我們正處理多種類型的媒體(圖品、視頻、文字文件等等),並且用下面這個簡單的XML DTD來描述這些媒體的中繼資料:
<!-- DTD for a hypothetical media management system -->
<!-- Media assets are the root of the object hierarchy. Assets are also
hierarchical - they can contain other assets. -->
<!ELEMENT media-asset (name, desc?, type*, media-asset*, urn)>
<!-- Metadata about the asset -->
<!ELEMENT name (#PCDATA)>
<!ELEMENT desc (#PCDATA)>
<!ELEMENT type (desc, mime-type?)>
<!ELEMENT mime-type (#PCDATA)>
<!ELEMENT urn (#PCDATA)>
以下是一個基於上述媒體DTD的XML文檔,描述了與某個課程講座相關的內容:
<?xml version="1.0" ?
<