CyStack logo
  • Sản phẩm & Dịch vụ
  • Giải pháp
  • Bảng giá
  • Công ty
  • Tài liệu
Vi

vi

Mục lục

Trang chủBlogCách xác thực XML với XSD...
Java

Cách xác thực XML với XSD trong Java đơn giản

2 phút đọc18/07/2025
CyStack Author
Bao Tran

Web Developer

0 lượt xem
Reading Time: 2 minutes

Java XML Validation API có thể được sử dụng để kiểm tra tính hợp lệ của XML so với XSD trong chương trình Java. Lớp javax.xml.validation.Validator được dùng trong chương trình này để kiểm tra XML với XSD trong Java.

 xác thực XML với XSD

Xác thực XML với XSD

Dưới đây là các tệp XSD và XML mẫu được sử dụng: Employee.xsd




	
	
	

	
		
			
		
	
	
	
		
			
			
			
		
	

Lưu ý rằng XSD trên có chứa hai phần tử gốc và cả không gian tên (namespace), tôi đã tạo hai tệp XML mẫu từ XSD này bằng công cụ Eclipse. EmployeeRequest.xml



  5

EmployeeResponse.xml



  1
  Developer
  Pankaj Kumar

Dưới đây là một tệp XML khác không tuân theo cấu trúc của Employee.xsd. employee.xml



	Pankaj
	29
	Java Developer
	Male

Đây là chương trình được sử dụng để kiểm tra cả ba tệp XML so với XSD. Phương thức validateXMLSchema nhận tệp XSD và XML làm tham số và trả về true nếu xác nhận thành công, ngược lại trả về false. XMLValidation.java

package com.journaldev.xml;

import java.io.File;
import java.io.IOException;

import javax.xml.XMLConstants;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;

import org.xml.sax.SAXException;

public class XMLValidation {

    public static void main(String[] args) {
        
      System.out.println("EmployeeRequest.xml validates against Employee.xsd? "+validateXMLSchema("Employee.xsd", "EmployeeRequest.xml"));
      System.out.println("EmployeeResponse.xml validates against Employee.xsd? "+validateXMLSchema("Employee.xsd", "EmployeeResponse.xml"));
      System.out.println("employee.xml validates against Employee.xsd? "+validateXMLSchema("Employee.xsd", "employee.xml"));
      
      }
    
    public static boolean validateXMLSchema(String xsdPath, String xmlPath){
        
        try {
            SchemaFactory factory = 
                    SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
            Schema schema = factory.newSchema(new File(xsdPath));
            Validator validator = schema.newValidator();
            validator.validate(new StreamSource(new File(xmlPath)));
        } catch (IOException | SAXException e) {
            System.out.println("Exception: "+e.getMessage());
            return false;
        }
        return true;
    }
}

Kết quả đầu ra của chương trình trên là:

EmployeeRequest.xml validates against Employee.xsd? true
EmployeeResponse.xml validates against Employee.xsd? true
Exception: cvc-elt.1: Cannot find the declaration of element 'Employee'.
employee.xml validates against Employee.xsd? false

Lợi ích của việc sử dụng Java XML Validation API là chúng ta không cần phải tự phân tích (parse) nội dung tệp XML, và cũng không cần dùng đến bất kì APIs của bên thứ ba nào.

Về tác giả

Bao Tran
Bao TranWeb Developer

I’m passionate about web development and sharing my insights through articles, with over 8 years of experience. I hope these sharings inspire you and help build a strong web development community. @#@ Tôi đam mê phát triển web và chia sẻ những hiểu biết của mình thông qua các bài viết, với hơn 8 năm kinh nghiệm. Tôi hy vọng những chia sẻ này sẽ truyền cảm hứng cho các bạn và giúp xây dựng một cộng đồng phát triển web mạnh mẽ.

Cập nhật thông tin mới nhấtNhận các thông tin mới nhất về mối đe dọa, báo cáo an ninh mạng từ CyStack về hòm thư điện tử của bạn

Thảo luận (0)

Đăng nhập để thảo luận

Bài viết liên quan