XML 用於業務而非技術
隨著 XML 的日趨盛行,人們也越來越注重可 用性。換句話說,程式員和管理者並不希望把 XML 看作是一項技術,擁有自己 的語義和詞彙結構,而認為它更像是純粹的資料,訪問時不用擔心 XML 資料格 式的細節。
完成 XML 從技術到業務格式的轉換,最簡單是方法就是數 據綁定,這種說法還有待論證。資料繫結就是使用API (Application Programming Interface,API)操作 XML 文檔中的資料,這樣 程式員就不必過多地瞭解 XML,不必使用角括弧,或者考慮 CDATA 部分或實體 引用等等之類的事情。但即使是使用資料繫結,您也會發現在繼續操作之前有大 量的選項和重要問題需要仔細考慮。
出於本文討論的目的,我將介紹兩個與資料繫結相關的基本問題:
通 過資料繫結 API 表示資料的方法。
當資料被視為業務資料時的用法。
表示 XML 資料
在最普通的情況下,資料繫結就是將 XML 文檔中 的資料轉換成正在使用的程式設計語言中的對象。
用於資料繫結的基於對象 的 API
比方說,查看下面這段 XML 代碼:
<person>
<firstName>Brett</firstName>
<lastName>McLaughlin</lastName>
<email>brett@newInstance.com</email>
</person>
我們可以將這段代碼轉換成對象,比方說在 Java™ 代碼中,這是一個 Person 類的執行個體,擁有成員變數 firstName、 lastName 和 email。執行個體應該包含程式碼片段中的資料,並且能通過方法調用訪問 該資料,例如 myPerson.getFirstName() 方法。
用於資料繫結的基於文檔的 API
儘管這是最常見的資料繫結方法,但是使用 XML 文檔並把整個文檔表示成一 個對象的 API 也是資料繫結的一種形式。這些 API 包括文件物件模型 (Document Object Model,DOM)、JDOM 和 dom4j,所有這些 API 都用於在 Java 編碼中建立 XML 文檔的物件模型。
在這些模型中,我們使用 rootElement.getChild("firstName").getValue() 之類的調用(或者與之相似的調用,取決於 API 的細節)。雖然這確實需要一 些 XML 的基礎知識(理解元素是什麼以及文檔的基本結構),但還是對程式員 抽象瞭解析的細節。這就是資料繫結的本質:能夠更多地注意到資料而不是資料 顯示的格式。
程式員更輕鬆(有點)
一旦採用了更普通的資料繫結解決方案,如 Sun's JAXB,那麼需要注意的底 層 XML 文法將會更少。可以真正完全地使用 Java(或者您偏好的程式設計語言)對 象、方法和變數。即使是元素的細節和文檔結構也隱藏在了資料繫結處理建立的 對象之下。
但是,此處的關鍵是(經常沒有考慮到的)仍然需要將 XML 資料結構與系統 中的對象匹配,或者需要在系統中建立匹配所使用的 XML 資料格式的對象。這 兩種情況到 XML 的映射都不太明顯,但它仍然是處理的一部分。