XMLBean 提供了一種處理 XML 的直觀方法,這種方法使您可以更輕松地訪問和操作 Java 中的 XML 數據和文檔。
XMLBean 處理 XML 的方法具有以下特征:
-
它提供了我們熟悉的、基于 Java 對象的 XML 數據視圖,并且讓您仍然能夠訪問原始的、純 XML 結構。
-
XMLBean 不會使 XML 作為文檔的完整性丟失。面向 XML 的 API 通常將 XML 拆開,以便綁定到它的各個部分。使用 XMLBean,可以將整個 XML 實例文檔作為一個整體加以處理。XML 數據以 XML 的形式存儲在內存中。這意味著保留了文檔的順序,以及原始的元素內容和空格。
-
使用通過 Schema 所生成的類型,可以通過與 JavaBean 類似的存取程序來訪問 XML 實例,這個過程需要利用 get 和 set 方法。
-
從設計一開始就要考慮到 XML Schema,而 XMLBean 支持所有 XML Schema 定義。
- 訪問 XML 的速度很快。
XMLBean 的起點是 XML Schema。Schema(包含在 XSD 文件中)是 XML 文檔,它定義了其他 XML 文檔必須遵守的一組規則。XML Schema 規范提供了豐富的數據模型,使您可以表達復雜的結構,并對數據加以約束。例如,XML Schema 可以對文檔中數據的順序進行控制,或對特定的值加以約束(例如,生日必須大于 1900)。遺憾的是,在 Java 中,通常要編寫自定義代碼才能強制實施此類規則。XMLBean 遵守 Schema 約束。
注意: XML Schema 用于為 XML 文檔定義規則,而 XML“實例”則是遵守該 Schema 的 XML 文檔。
可以通過編譯 Schema (XSD) 文件,來生成一組用來鏡像該 Schema 的 Java 接口。使用這些類型,可以處理遵守該 Schema 的 XML 實例文檔??梢詫?XML 實例文檔綁定到這些類型;通過 Java 接口所進行的更改會改變基本的 XML 表示。
以前在處理 XML 時可以選擇使用 XML 編程接口(如 DOM 或 SAX),或 XML 編組/綁定工具(如 JAXB)。由于它缺乏很強的面向 Schema 的類型功能,因此在面向 DOM 的模型中導航時速度更加緩慢,并需要了解完整的對象模型。JAXB 支持 XML Schema 規范,但只能處理它的一個子集;而 XMLBean 支持它的全部。此外,通過將數據以 XML 的形式存儲在內存中,XMLBean 能夠減少編組和解除編組的開銷。