亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

Java中關于XML的API

2020-03-24 17:15:54
字體:
來源:轉載
供稿:網友
簡單介紹一下Java關于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的通用的接口。這樣在你的程序中你只要使用這些通用的接口,當你需要改變具體的實現時候也不需要修改代碼。比如,你用的XSLT處理器太慢了,你想換一個,你不需要修改你以前的代碼,只要修改一下JAXP的相關配置。(在后面我將詳細地介紹)作為一個共同的接口,JAXP也有所謂的“最小公分母”效應,也就是說它支持的東西很有限。JAXP1.0支持XML1.0,XML Namespace1.0,SAX1.0以及DOM level 1。而JAXP1.1增加了對SAX2.0,DOM level 2以及XSLT1.0的支持。很明顯如果你想使用Xalan的XPath相關的接口,JAXP就沒有支持,你也只能將代碼綁定到特定的Xalan的API上了。

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

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

它的缺點也很明顯,一旦xml的結構發生了改變,就要重新寫bindng schema以及重新生成編譯Java類。

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

一、Castor

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

二、Zeus

Zeus與Castor和JAXB相比,在html' target='_blank'>class generation方面多做了些步驟,因此它可以支持多種的約束關系,包括對DTD,XML Schema以及TREX等等的支持。不過目前該項目好像已經不做了。

三、Quick

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

3、JAXM

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

4、JAX-RPC

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

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

補充: JAXP框架查找具體實現的步驟

JDK1.4自帶的是JAXP的參考實現:Crimson的DOM, SAX解析器,Xalan的XSLT處理器。

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

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

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

ConcreteTransformer是實現了TransformerFactory的子類,如果你用的是ant,也可以在build file中指定。

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

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

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

那么JAXP就會使用相應的TransformerFactory實現。

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

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

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

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

4、最后,如果上面3步都沒有找到任何具體的實現,JAXP就會使用缺省的實現:Crimson和Xalan。html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品电影一区二区| 日韩欧美亚洲一二三区| 日韩精品一二三四区| 日韩电影视频免费| 国产精品夜间视频香蕉| 亚洲精品97久久| 亚洲精品xxx| 最新国产精品拍自在线播放| 91九色国产在线| 欧美成人免费在线视频| 1769国产精品| 国产精品va在线播放我和闺蜜| 成人国产在线激情| zzjj国产精品一区二区| 国产91ⅴ在线精品免费观看| 国产91九色视频| 欧美在线视频观看免费网站| 国产精品美女视频网站| 亚洲女同精品视频| 国产精品国内视频| 91wwwcom在线观看| 日韩免费在线免费观看| 国产精品私拍pans大尺度在线| 日韩精品中文字| 亚洲综合中文字幕在线| 久久综合免费视频影院| 亚洲美女视频网| 欧美日韩国产丝袜美女| 在线免费看av不卡| 一区二区三区亚洲| 亚洲小视频在线| 欧美在线视频导航| 美女av一区二区三区| 一区二区欧美亚洲| 亚洲xxxxx电影| 国产精品视频精品| 欧美日韩国产精品一区二区三区四区| 国产精品稀缺呦系列在线| 亚洲精品成人久久久| 精品久久久久久久久中文字幕| 亚洲女人天堂色在线7777| 国产精品第一页在线| 91网在线免费观看| 成人黄色在线免费| 在线看日韩欧美| 欧美在线视频观看免费网站| 91丝袜美腿美女视频网站| 国产成人久久久| 91国产精品电影| 懂色aⅴ精品一区二区三区蜜月| 欧美大尺度激情区在线播放| 日韩电影在线观看永久视频免费网站| 国产一区欧美二区三区| 欧美多人爱爱视频网站| 午夜精品久久久久久久99黑人| 免费不卡欧美自拍视频| 日韩精品在线观看一区二区| 91精品久久久久久久久| 91在线直播亚洲| 日韩av综合网站| 精品亚洲一区二区三区在线观看| 国产精品视频色| 亚洲精品国产精品国产自| 国产精品久久激情| 亚洲欧美国产va在线影院| 欧美国产极速在线| 97人洗澡人人免费公开视频碰碰碰| 欧美一级大片视频| 国产一级揄自揄精品视频| 久久久亚洲成人| 久久中文字幕在线| 日韩电影免费在线观看中文字幕| 国产精品视频区1| 91亚洲精品视频| 国产精品久久久久av免费| 久久中国妇女中文字幕| 亚洲午夜色婷婷在线| 亚洲精品xxxx| 中文字幕亚洲激情| 国产一区二区欧美日韩| 欧美大尺度在线观看| 欧美一级淫片播放口| 亚洲午夜精品视频| 8x拔播拔播x8国产精品| 92版电视剧仙鹤神针在线观看| 国内精品久久久久久中文字幕| 久久天天躁夜夜躁狠狠躁2022| 国产精品网站视频| 国产精品电影一区| 萌白酱国产一区二区| 中文字幕亚洲专区| 2018中文字幕一区二区三区| 欧美日韩福利视频| 久久九九有精品国产23| 亚洲精品久久在线| 日韩av在线免费播放| 国产精品一区二区久久久| 成人网在线免费观看| 国产精品私拍pans大尺度在线| 久久av资源网站| 亚洲欧美激情一区| 欧美性资源免费| 国产精品毛片a∨一区二区三区|国| 日韩美女主播视频| 久久精品美女视频网站| 亚洲欧美日韩在线一区| 丝袜一区二区三区| 欧美人与物videos| 国产成人综合亚洲| 国产成人精品视频在线观看| 日韩欧美在线播放| 国产精品夜色7777狼人| 亚洲国产精品小视频| 国产欧美精品日韩精品| 欧美老女人在线视频| 色综久久综合桃花网| 久久国产精品久久久久久| 九九视频直播综合网| 国产成人亚洲综合91精品| 久久亚洲精品中文字幕冲田杏梨| 精品夜色国产国偷在线| 欧美成人免费观看| 在线国产精品视频| 在线国产精品视频| 国产成人精品一区二区三区| 伊人久久久久久久久久久| 成人在线播放av| 国产欧美日韩91| 亚洲福利在线播放| 91精品在线国产| 国产精品福利小视频| 91干在线观看| 亚洲视频在线观看网站| 91在线视频精品| 91老司机在线| 午夜精品国产精品大乳美女| 亚洲一区二区三区四区在线播放| 狠狠色狠色综合曰曰| 爽爽爽爽爽爽爽成人免费观看| 欧美精品在线第一页| 日韩精品在线免费观看视频| 国产性色av一区二区| 国产精品毛片a∨一区二区三区|国| 亚洲午夜未满十八勿入免费观看全集| 91精品久久久久久久久久久久久| 美女扒开尿口让男人操亚洲视频网站| 久久中文字幕一区| 国模gogo一区二区大胆私拍| 国产精品 欧美在线| 色偷偷偷亚洲综合网另类| 亚洲老头老太hd| 国产精品成人一区| 国产精品久久久久av| 欧美性xxxx| 免费91麻豆精品国产自产在线观看| 亚洲精品99久久久久中文字幕| 国产一区二区日韩精品欧美精品| 亚洲欧美日韩精品久久奇米色影视| 日韩国产欧美精品一区二区三区| 91sao在线观看国产| 午夜精品一区二区三区在线| 在线播放国产一区中文字幕剧情欧美| 欧美日韩视频免费播放| 欧美激情一级精品国产|