首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

Java XML 處理四大核心 API 全景解析:JAXP、JAXB、JAXM、JAX-RPC

     編輯:關於JSP

1. JAXP (Java API for XML Parsing)

定義 Java 中使用 DOM、SAX、XSLT 的通用接口。程序針對接口編程,切換具體實現 (如 XSLT 處理器) 無需修改代碼,只需調整配置。但存在「最小公分母」效應,功能受限:JAXP 1.0 支持 XML 1.0、Namespace 1.0、SAX 1.0、DOM Level 1;1.1 增加 SAX 2.0、DOM Level 2、XSLT 1.0。若需 XPath 等進階功能,仍需綁定特定 API (如 Xalan)。

補充:JDOM 雖未實現 JAXP,但因簡單易用、樹狀結構優於 W3C DOM,成為 JCP 推薦 API。新版內部優先調用 JAXP API,失敗則回退默認解析器 Xerces 和 Xalan。

2. JAXB (Java API for XML Binding)

定義 Java 數據對象與 XML 結構的雙向映射。流程:擁有 XML DTD 和 Binding Schema (定義映射關係的 XML) → 生成 Java 源碼 → 編譯 → Unmarshalling (XML 到對象) / Marshalling (對象到 XML)。缺點:XML 結構變更需重寫 Schema、重新生成編譯類。

同類競品:

  • Castor:支持 XML、LDAP、OQL/SQL、JDO 綁定,僅需 XML Schema 生成代碼。
  • Zeus:支持 DTD、XML Schema、TREX 等多種約束,但項目似已停止。
  • Quick:靈活框架,詳情可搜索。

3. JAXM (Java API for XML Messaging)

為 SOAP 通信提供訪問方法與傳輸機制。支持 SOAP 1.1、同步/異步通信。架構包含 JAXM Client (通常集成於 J2EE Web/EJB 容器) 和 Provider (負責發送接收 SOAP 消息)。開發者直接調用 API 收發 SOAP,屏蔽通信複雜性。

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

基於 SOAP 的遠程過程調用 API。底層協議為 SOAP,開發者僅見方法、參數、返回值,SOAP 通信細節完全隱藏。JAXM 與 JAX-RPC 在 Web Services 領域扮演關鍵角色。

補充:JAXP 實現查找機制 (JDK 1.4 內置 Crimson + Xalan)

  1. 系統屬性指定:-Djavax.xml.transform.TransformerFactory=com.foo.ConcreteTransformer,同理 DocumentBuilderFactory、SAXParserFactory。
  2. JRE lib/jaxp.properties:屬性文件配置實現類。
  3. JAR 服務提供者機制:META-INF/services/javax.xml.transform.TransformerFactory 文件包含實現類名。
  4. 默認實現:以上均無則使用內置 Crimson (DOM/SAX) 和 Xalan (XSLT)。

掌握四大 API 定位與適用場景,是 Java XML 應用開發的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved