六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

<>


標(biāo)簽:Java中對于XML的API 

Java中對于XML的API

[摘要]簡單介紹一下Java關(guān)于xml的API,這樣大家看到了縮寫就知道是干什么的了。水平有限,多多包涵。      1、JAXP(Java API for XML Parsing)   2、JAXB(Java API for XML Binding)   3、JAXM(Java API for XML ...
簡單介紹一下Java關(guān)于xml的API,這樣大家看到了縮寫就知道是干什么的了。水平有限,多多包涵。
  
  1、JAXP(Java API for XML Parsing)

  2、JAXB(Java API for XML Binding)

  3、JAXM(Java API for XML Messaging)

  4、JAX-RPC(Java API for XML-RPC)

  1、JAXP定義了在Java中使用DOM, SAX, XSLT的通用的接口。這樣在你的程序中你只要使用這些通用的接口,當(dāng)你需要改變具體的實(shí)現(xiàn)時候也不需要修改代碼。比如,你用的XSLT處理器太慢了,你想換一個,你不需要修改你以前的代碼,只要修改一下JAXP的相關(guān)配置。(在后面我將詳細(xì)地介紹)作為一個共同的接口,JAXP也有所謂的“最小公分母”效應(yīng),也就是說它支持的東西很有限。JAXP1.0支持XML1.0,XML Namespace1.0,SAX1.0以及DOM level 1。而JAXP1.1增加了對SAX2.0,DOM level 2以及XSLT1.0的支持。很明顯如果你想使用Xalan的XPath相關(guān)的接口,JAXP就沒有支持,你也只能將代碼綁定到特定的Xalan的API上了。

  這里還要提一下JDOM,雖然它沒有實(shí)現(xiàn)JAXP,但是由于它使用的簡單性,還是很受歡迎,并且成為了JCP正式推薦的API。它也是一種樹狀的結(jié)構(gòu)表現(xiàn)XML,在使用方法上要比w3c的dom標(biāo)準(zhǔn)簡單易用的多。最新版本的JDOM在其內(nèi)部已經(jīng)開始使用JAXP的API,它會盡可能的去調(diào)用JAXP的API,如果不行就使用自己的默認(rèn)XML解析器Xerces,XSLT處理器Xalan。

  2、JAXB定義了Java數(shù)據(jù)對象和xml結(jié)構(gòu)之間的一種雙向映射關(guān)系。這樣你就可以很方便地將一個Java對象存儲為一個xml文檔,也可以從一個xml文檔實(shí)例化一個Java對象。它的結(jié)構(gòu)是這樣子的:首先要有xml的dtd以及binding schema(這個不是xml的schema,而是一個定義Java對象和xml結(jié)構(gòu)之間映射關(guān)系xml文檔),通過這兩個文件JAXB就可以生成與xml文檔結(jié)構(gòu)一致的Java源文件,編譯之后就可以很方便地通過具體的xml文檔得到與xml結(jié)構(gòu)一致的Java類(就是生成的那些類)unmarshalling,反過來marshalling也可以。

  它的缺點(diǎn)也很明顯,一旦xml的結(jié)構(gòu)發(fā)生了改變,就要重新寫bindng schema以及重新生成編譯Java類。

  sun的動作總是一如既往地慢,在JAXB出臺之前已經(jīng)有了一些用于xml data binding的框架,我們再來看看同樣也是做xml databinding但是并沒有實(shí)現(xiàn)JAXB的框架:

  一、Castor

  Castor不僅僅支持對XML的綁定,它還支持對LDAP對象,用OQL將SQL查詢映射為對象,以及對JDO的支持。與JAXB不同的是,它需要的僅僅是xml的Schema。通過xml的Schema來生成相應(yīng)的Java源代碼,編譯之后就可以marshalling和unmarshalling了。

  二、Zeus

  Zeus與Castor和JAXB相比,在class generation方面多做了些步驟,因此它可以支持多種的約束關(guān)系,包括對DTD,XML Schema以及TREX等等的支持。不過目前該項目好像已經(jīng)不做了。

  三、Quick

  Quick也是一個非常靈活的框架,詳細(xì)的情況可以google一下。

  3、JAXM

  JAXM是為SOAP通信提供訪問方法和傳輸機(jī)制的API。目前它支持SOAP1.1規(guī)范以及同步和異步通信。JAXM定義了大量服務(wù),JAXM的實(shí)現(xiàn)產(chǎn)品將會提供這些服務(wù),使得開發(fā)者不用面對復(fù)雜的通信系統(tǒng)。JAXM體系結(jié)構(gòu)中包括兩個重要的組件:JAXM Client和Provider。Client通常是作為J2EE web或EJB容器的一部分,以提供你所寫的程序訪問JAXM服務(wù)的能力。而Provider可以以不同的方式實(shí)現(xiàn),主要負(fù)責(zé)發(fā)送和接收SOAP消息。這樣你就可以直接地使用JAXM的API直接發(fā)送和接收SOAP消息。

  4、JAX-RPC

  JAX-RPC是通過xml進(jìn)行遠(yuǎn)程過程調(diào)用的Java API。它是基于SOAP技術(shù)的,使用SOAP作為底層的協(xié)議。這樣對于開發(fā)者來說,只有方法,參數(shù),返回值是可見的,而底層的soap通信都被隱藏起來了,開發(fā)人員不需要與之直接打交道。

  JAXM和JAX-RPC在Web Services方面有很重要的作用。

  補(bǔ)充: JAXP框架查找具體實(shí)現(xiàn)的步驟

  JDK1.4自帶的是JAXP的參考實(shí)現(xiàn):Crimson的DOM, SAX解析器,Xalan的XSLT處理器。

  如果你想用其他的實(shí)現(xiàn)替代它們,那就必須了解JAXP框架查找實(shí)現(xiàn)的具體步驟:

  1、首先,算法會通過諸如javax.xml.transform.TranformerFactory這樣的系統(tǒng)屬性來定位具體實(shí)現(xiàn)的類。你可以在命令行中直接指定:

  java -Djavax.xml.transform.TransformerFactory=com.foo.ConcreteTransformer YourApp

  ConcreteTransformer是實(shí)現(xiàn)了TransformerFactory的子類,如果你用的是ant,也可以在build file中指定。

  同樣地有,javax.xml.parsers.document.uilderFactory和javax.xml.parsers.SAXBuilderFactory屬性。

  2、接著,如果系統(tǒng)屬性中沒有指定,JAXP將會在JRE的目錄中查找lib/jaxp.properties屬性文件,它像一般的properties文件一樣是由name=value組成的,假設(shè)有如下的一行:

  javax.xml.transform.TransformerFactory=com.foo.ConcreteTransformer

  那么JAXP就會使用相應(yīng)的TransformerFactory實(shí)現(xiàn)。

  在Java程序中,你可以通過如下的代碼獲得JRE所在的目錄:

  String javaHomeDir = System.getProperty("java.home");

  不過要注意,如果是在一些IDE中使用,IDE會改變這個java.home的值,比如JBuilder。

  3、如果jaxp.properties不存在或者沒有相應(yīng)的值,那么JAXP將會使用JAR文件的服務(wù)提供體制來定位正確的子類。簡單地說,你可以在jar文件的META-INF/services目錄下新建一個名為javax.xml.transform.TransformerFactory的文件,這個文件中只有一行:com.foo.ConcreteTransformer就可以了。

  4、最后,如果上面3步都沒有找到任何具體的實(shí)現(xiàn),JAXP就會使用缺省的實(shí)現(xiàn):Crimson和Xalan。
主站蜘蛛池模板: 最近新的免费韩国视频 | 午夜天堂在线视频 | 日日躁夜夜躁狠狠天天 | 欧美一级淫片a免费播放口aaa | 日韩欧美不卡在线 | 午夜网页| 手机在线日韩高清理论片 | 日本三级2018亚洲视频 | 日日拍夜夜操 | 日本免费一区二区三区a区 日本免费一二三区 | 日日做夜夜爱 | 伊人官网 | 欧美专区在线播放 | 日日摸日日添夜夜爽97 | 青青青国产色视频在线观看 | 色婷婷99综合久久久精品 | 色播影视| 日韩一级片在线免费观看 | 亚洲欧美综合一区 | 日韩在线国产精品 | 视频一区精品 | 日韩成人免费视频播放 | 青草免费在线 | 日本成人激情视频 | 深夜视频在线播放视频在线观看免费观看 | 午夜合集| 五月天欧美激情午夜情 | 日本特黄特色免费大片 | 午夜不卡av免费 | 午夜快播| 午夜啪啪片 | 午夜视频免费在线观看 | 片成年免费观看网站黄 | 日本韩国欧美三级 | 天堂在线影院 | 天天色综合色 | 日本黄色一级大片 | 中文字幕日韩在线一区国内 | 在线国产日韩 | 日日噜噜夜夜躁躁狠狠 | 午夜性色福利影院 |