天天看點

Java for XML: JAXP、JAXB、JAXM、JAX-RPC、JAX-WS

在XML領域裡,對XML檔案的校驗有兩種方式:DTD校驗、Schema校驗。在Java中,對于XML的解析,有多種方式:DOM解析、SAX解析、StAX解析。結合XML和Java後,就産生了Bind技術,将XML和Java Bean進行互相轉化。

Java對XML處理技術(JAXP)簡述

JAXP,Java API for XML Processing。包括了對XML的解析、校驗、查詢、變換。

1)解析,将XML解析成對應的記憶體對象,典型的如DOM解析中的Document。Java Se中目前提供的解析技術有:DOM、SAX、STAX。

2)校驗,Java Se目前支援DTD、Schema校驗。

3)查詢,這裡說的查詢是指采用XPath方式查詢。這部分有獨立的API。至于DOM解析中根據節點的上下級關系的查找,不作為查詢技術。由于XPath是W3c定義的關于XML的查詢技術,是以XPath是針對DOM解析方式的。

4)變換,就是将XML文檔的内容變換到指定的目标上,例如,使用JavaAPI修改了XML元素後(是記憶體對象的修改),儲存到指定的位置。

針對三種不同的解析方式,形成了三種不同的處理方式。但是有一點可以是一樣的,就是變換的過程。這三種處理方式,都可以采用Transform相關的API進行記憶體對象到檔案的變換。

1) DOM

DOM 是 W3C 處理 XML 的标準 API,它是許多其它與 XML 處理相關的标準的基礎,不僅是 Java,其它諸如 JavaScript,PHP,MS .NET 等等語言都實作了該标準, 成為了應用最為廣泛的 XML 處理方式。當然,為了能提供更多更加強大的功能,Java 對于 DOM 直接擴充工具類有很多,比如很多 Java 程式員耳熟能詳的 JDOM,DOM4J 等等, 它們基本上屬于對 DOM 接口功能的擴充,保留了很多 DOM API 的特性,許多原本的 DOM 程式員甚至都沒有任何障礙就熟練掌握了另外兩者的使用,直覺、易于操作的方式使它深受廣大 Java 程式員的喜愛。

采用DOM解析方式的處理流程:

1)  使用Dom解析器将Xml檔案解析成Document(就是一棵DOM樹)

2)  根據需要對Document進行增删改查操作

3)  必要的情況下,生成新的xml檔案

另外對Document節點進行查找時,可以根據DOM樹結構,可以使用XPath。

2) SAX

SAX 使用了最少的系統資源和最快速的解析方式對 XML 處理提供了支援。 但随之而來繁瑣的查找方式也給廣大程式員帶來許多困擾,常常令人頭痛不已,同時它對 XPath 查詢功能的支援,令人們對它又愛又恨。

采用SAX解析方式的處理流程:

1)使用SAX解析器讀入文檔時調用各種Handler進行處理。

2)必要的情況下,生成新的XML文檔

3) StAX

StAx ,Streaming API for XML

它位于javax.xml.stream包中。XMLStreamReader接口用于分析一個XML文檔,而XMLStreamWriter接口用于生成一個XML文檔。XMLEventReader負責使用一個對象事件疊代子分析XML事件-這與XMLStreamReader所使用的光标機制形成對照。本教程将基于JDK 6.0中的StAX實作來完成對一個XML文檔的分析。

Java Bean與XML的綁定(JAXB)

JAXB是專門用于将Java對象轉為XML檔案,或者将XML檔案轉為Java對象的API。

他們之間的橋梁就是XML的Schema。想要學習JAXB,可以參考https://jaxb.java.net/tutorial/

Java for XML: JAXP、JAXB、JAXM、JAX-RPC、JAX-WS

SOAP消息(JAXM)

在javax.xml.soap包下。用于JAX-WS中的消息。

WebService (JAX-RPC \ JAX-WS)

用于Web Service的API:Jax-rpc Jax-ws。

Jax-rpc :https://java.net/projects/jax-rpc/

JAX-RPC(基于可擴充标記語言XML的遠端過程調用的Java應用程式接口)是Java Web服務開發包(WSDP)的應用程式接口(API),WSDP能使Java開發者在Web服務或其他的Web應用程式中包括遠端過程調用(RPC)。JAX-RPC緻力于要使應用程式或Web服務調用其他應用程式或Web服務變得更加容易。

JAX-RPC為基于SOAP(簡單對象通路協定)的應用程式的開發提供了一個程式設計模型。JAX-RPC程式設計模型通過抽象SOAP協定層的運作機制與提供Java和Web服務描述語言(WSDL)間的映射服務來簡化開發。

Jax-ws :https://jax-ws.java.net/

JAX-WS規範是一組XML web services的JAVA API,JAX-WS允許開發者可以選擇RPC-oriented或者message-oriented 來實作自己的web services。

在 JAX-WS中,一個遠端調用可以轉換為一個基于XML的協定例如SOAP,在使用JAX-WS過程中,開發者不需要編寫任何生成和處理SOAP消息的代碼。JAX-WS的運作時實作會将這些API的調用轉換成為對應的SOAP消息。

作者: 房繼諾

出處:http://www.cnblogs.com/f1194361820

版權:本文版權歸作者和部落格園共有

歡迎轉載,轉載請需要注明部落格出處

技術交流QQ:1194361820,加好友請注明:來自部落格園,不要說你是部落格園,也可以掃描圖像二維碼直接加我。

Java for XML: JAXP、JAXB、JAXM、JAX-RPC、JAX-WS

繼續閱讀