定義 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。
定義 Java 數據對象與 XML 結構的雙向映射。流程:擁有 XML DTD 和 Binding Schema (定義映射關係的 XML) → 生成 Java 源碼 → 編譯 → Unmarshalling (XML 到對象) / Marshalling (對象到 XML)。缺點:XML 結構變更需重寫 Schema、重新生成編譯類。
同類競品:
為 SOAP 通信提供訪問方法與傳輸機制。支持 SOAP 1.1、同步/異步通信。架構包含 JAXM Client (通常集成於 J2EE Web/EJB 容器) 和 Provider (負責發送接收 SOAP 消息)。開發者直接調用 API 收發 SOAP,屏蔽通信複雜性。
基於 SOAP 的遠程過程調用 API。底層協議為 SOAP,開發者僅見方法、參數、返回值,SOAP 通信細節完全隱藏。JAXM 與 JAX-RPC 在 Web Services 領域扮演關鍵角色。
-Djavax.xml.transform.TransformerFactory=com.foo.ConcreteTransformer,同理 DocumentBuilderFactory、SAXParserFactory。lib/jaxp.properties:屬性文件配置實現類。META-INF/services/javax.xml.transform.TransformerFactory 文件包含實現類名。掌握四大 API 定位與適用場景,是 Java XML 應用開發的基石。