JAXB 轉(zhuǎn)換

2018-12-16 22:04 更新

一般地,我們將Java對象轉(zhuǎn)換為XML的過程稱之為Marshal,將XML轉(zhuǎn)換為Java對象的過程稱之為UnMarshal。 為了能告訴轉(zhuǎn)換器使用什么樣的規(guī)則進(jìn)行轉(zhuǎn)換,JAXB提供了如下兩種方式:

  • JAXB 的 xjc 工具定義 schema 通過XSD(XML Schema Definition)文檔生成Java類的方式。

  • Java Annotation 注解 JAXB通過分析java類中的標(biāo)記(annotation),將java類轉(zhuǎn)換為相應(yīng)的XML文檔。

在方案一中,通過XSD文件生成的java類,已經(jīng)被編譯器(xjc)進(jìn)行了標(biāo)注,因此無需手工標(biāo)注,而對應(yīng)第二種方案,必須是編程人員手工添加這些標(biāo)記。JAXB定義的標(biāo)記比較多,也很復(fù)雜,要想靈活的控制轉(zhuǎn)換過程,可以使用直接標(biāo)注的方式。

使用XSD轉(zhuǎn)換的方式,相對比較簡單,但需要使用者具有熟練的XSD編寫經(jīng)驗(yàn),此外,使用XSD方式生成XML文檔還有一大優(yōu)勢,就是在分布式系統(tǒng)中,不能保證XML信息的發(fā)送端和接收端都是使用的java運(yùn)行環(huán)境,因此,XSD實(shí)際上將會成為端到端通信的一個(gè)標(biāo)準(zhǔn),規(guī)定了通信的信息格式,因此,一般在分布式系統(tǒng)中可以先編寫XSD文件,之后通信兩端根據(jù)XSD提供的協(xié)議各自根據(jù)自身的情況,實(shí)現(xiàn)對XML文檔的處理。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號