Java API for XML Processing, hay JAXP, là một trong các API cho lập trình Java XML. Nó cung cấp khả năng kiểm chứng và phân tích các tài liệu XML. Hai loại giao diện (interface) để phân tích cơ bản là:
Giao diện thứ ba, với hứa hẹn là sẽ được thêm vào trong xuất bản lớn sắp tới của Java (tên hiệu Mustang), đang được dự kiến sẽ ra vào cuối năm 2006 là:
Cùng với các giao diện phân tích, API này còn cung cấp một giao diện XSLT để cung cấp việc chuyển đổi dữ liệu và cấu trúc từ một tài liệu XML sang một dạng khác.
J2SE 1.4 JDK là phiên bản đầu tiên mà có kèm theo JAXP 1.1.
Giao diện DOM có lẽ là một giao diện dễ hiểu nhất. Nó phân tích toàn bộ tài liệu XML và kiến thiết một cấu trúc hoàn chỉnh đại diện cho bản tài liệu, trong bộ nhớ, bằng cách dùng các lớp để mô hình hóa các khái niệm đã ghi trong Tài liệu chi tiết đặc tả kĩ thuật của Document Object Model(DOM) Cấp độ 2.
Bộ phân tích DOM được gọi là DocumentBuilder, vì nó tạo nên một hình thức đại diện cho Document trong bộ nhớ. javax.xml.parsers.DocumentBuilder được tạo nên bởi javax.xml.parsers.DocumentBuilderFactory. DocumentBuilder tạo ra một trường hợp của org.w3c.dom.Document, tức một cấu trúc cây chứa các nốt trong Tài liệu XML. Mỗi nốt cây trong cấu trúc thực hiện một giao diện org.w3c.dom.Node. Có nhiều loại nốt cây đại diện cho loại dữ liệu tìm thấy trong bản tài liệu XML. Loại nốt quan trọng nhất là:
Xem tài liệu javadoc của gói org.w3c.dom để có danh sách đầy đủ mọi loại nốt.
java.io.File file = new java.io.File("c:/news.xml");
javax.xml.parsers.DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
javax.xml.parsers.DocumentBuilder db = dbf.newDocumentBuilder();
org.w3c.dom.Document doc=null;
if (file.exists()){
doc = db.parse(file);
}
if (doc != null) {
/* xử lý */
NodeList nodes = doc.getElementsByTagName("content");
for (int i = 0; i < nodes.getLength(); i++) {
Element e = (Element) nodes.item(i);
/* xử lý */
}
}
Bộ phân tích SAX được gọi là SAXParser và được tạo bằng javax.xml.parsers.SAXParserFactory. Khác với bộ phân tích DOM, bộ SAXParser không tạo ra một hình thức đại diện của tài liệu XML trong bộ nhớ và vì thế nó hoạt động nhanh hơn, ít tốn bộ nhớ hơn. Thay vào đó, bộ phân tích SAXParser thông báo cho các trình khách cấu trúc của tài liệu XML bằng cách gọi các hàm callbacks, nghĩa là, bằng cách gọi các phương pháp của trường hợp
org.xml.sax.helpers.DefaultHandler
đã được cung cấp cho bộ phân tích.
Lớp DefaultHandler nằm trong gói org.xml.sax.helpers. Lớp này thực hiện các giao diện ContentHandler, ErrorHandler, DTDHandler, và EntityResolver. Đại bộ phận các trình khách chỉ quan tâm đến những phương pháp được định nghĩa trong giao diện ContentHandler mà thôi.
Các phương pháp của giao diện ContentHandler, được DefaultHandler thực hiện, được gọi đến khi bộ phân tích SAX bắt gặp những phần tử tương ứng trong bản tài liệu XML. Những phương pháp chủ yếu trong giao diện này bao gồm:
Các trình khách cung cấp một phân lớp của DefaultHandler. Phân lớp này được sử dụng để lấn quyền những phương pháp trên và xử lý dữ liệu. Quá trình này có thể bao gồm việc lưu trữ dữ liệu vào trong cơ sở dữ liệu, hoặc viết chúng ra một luồng (dữ liệu).
Ngôn ngữ tập tin định dạng XML dành cho việc chuyển đổi - (The XML Stylesheet Language for Transformations, hay XSLT) cho phép biến đổi một bản tài liệu XML sang các dạng thức dữ liệu khác.