在現(xiàn)在的應(yīng)用系統(tǒng)中幾乎都能看到xml和database的身影,與這兩個(gè)東西正交的是OO.
- XML <==> OO 影射的東西有很多,一般都是使用marshaller架構(gòu).
?
(這里不說(shuō)用于xml解析的dom和sax模型,只是說(shuō)xml與pojo的影射關(guān)系:)其實(shí)再怎么影射也是通過(guò)dom或者sax接口的實(shí)現(xiàn)進(jìn)行解析的,還是通過(guò)新的javaSE規(guī)范Streaming API for XML (StAX), xml和OO的影射只不過(guò)進(jìn)行了抽象封裝,把xml到pojo之間的解析部分透明化了,我們這里實(shí)際說(shuō)的其實(shí)是JavaEE5.0中一個(gè)新的規(guī)范Java Architecture for XML Binding (JAXB))
比較有名的框架有:
+ castor 比較有名的一個(gè)O/X影射框架,可以根據(jù)xsd生成解析框架.(個(gè)人比較喜歡使用她)
+ apache 的xmlbean和Commons-Digester(不知道為什么會(huì)存在兩個(gè)同樣領(lǐng)域的東西,可能是digester相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,因而它被許多的apache的開(kāi)源項(xiàng)目使用);
+ JAXB 是JAVAEE中的對(duì)于xml和OO對(duì)象Binding定制的新的規(guī)范(標(biāo)準(zhǔn)阿!);
實(shí)際要研究xml和OO的影射框架,大家不妨看看現(xiàn)有的web service框架就會(huì)了解很多了,建議看Codehaus的 XFire 他是一個(gè)比較輕量級(jí)的WS框架,AXIS2也不錯(cuò).
我了解的XML Binding框架就這么多,如果誰(shuí)知道更好用的可以告訴我,相您請(qǐng)教.
- 對(duì)于O/R mapping 就不用太說(shuō)了,大家了解的可能都比我多,個(gè)人只用過(guò)一下幾個(gè):
+ hibernate ,ibatis ,jdo ,castor jdo(期待EJB3.0種的Persistence規(guī)范JPA)對(duì)于這幾種框架的介紹就不說(shuō)明了,google一下會(huì)出來(lái)無(wú)數(shù).
?
?這里不是想討論兩種技術(shù),而是想聽(tīng)大家對(duì)XML到database的影射有什么更好的辦法,因?yàn)镺/X,O/R都有很好的框架了,是否有X/R的好的框架.
這里我只知道castor 中對(duì)從xml到database有一定的支持,但支持的還是不夠,hibernate3.0種好象對(duì)xml到database進(jìn)行了支持,但是也是一些簡(jiǎn)單的支持.
不斷整理中。。。