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 tạo XSD từ Java Clas...
Java

Cách tạo XSD từ Java Class

3 phút đọc12/09/2025
CyStack Author
Bao Tran

Web Developer

0 lượt xem
Reading Time: 3 minutes

Hôm nay chúng ta sẽ cùng tìm hiểu ví dụ về jaxb2-maven-plugin XJC để tạo XSD từ Java Class. JAXB là công nghệ trung gian giữa Java Classes và XML. Chúng ta có thể dùng JAXB để tạo XML từ Java Object và ngược lại.

Cách tạo XSD từ Java Class

jaxb2-maven-plugin

XSD được dùng để định nghĩa cấu trúc dữ liệu hợp đồng, vì thế việc tạo các lớp Java đại diện cho XML schema không phải là cách làm phổ biến.

jaxb2-maven-plugin XJC là công cụ biên dịch JAXB Binding có thể dùng để tạo các lớp Java từ các tệp XSD, và trong bài này sẽ được sử dụng trong một dự án maven để minh họa cách tạo lớp Java từ XSD.

Trước tiên chúng ta phải tạo dự án maven, sau đó cần dùng plugin jaxb2-maven-plugin để tạo các lớp Java từ XSD.

Cách tạo XSD từ Java Class

Cấu trúc dự án sau khi build tạo file XSD

Dưới đây là tệp pom.xml cuối cùng:


	4.0.0
	jaxb-schemagen
	jaxb-schemagen
	0.0.1-SNAPSHOT
	
		
			javax.xml.bind
			jaxb-api
			2.1
		
	

	
		
			
				
					org.apache.maven.plugins
					maven-compiler-plugin
					2.5.1
				
			
		

		
			
				org.codehaus.mojo
				jaxb2-maven-plugin
				1.5
				
					
						schemagen
						
							schemagen
						
					
				

				
					
						
							
							empns
							employee.xsd
						
						
							
							addrns
							address.xsd
						
					
					
						com/journaldev/bean/*
					
					true
				
			
		
	


Một vài điểm cần chú ý là dependency jaxb, mục tiêu thực thi schemagen và cấu hình transformSchema. Trong đó, cấu hình transformSchema được dùng để chỉ định tên tệp XSD sẽ được tạo ra cùng với namespace prefix sẽ sử dụng trong tệp XSD.

Dưới đây là các lớp Java mà chúng ta sẽ dùng để tạo XSD. Ví dụ với Employee.java:

package com.journaldev.bean;

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlType;

@XmlType(namespace = "")
public class Employee {
    private String name;
    private int id;
    private String role;
    private Address address;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @XmlAttribute
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }
}

Lưu ý annotation @XmlType với namespace được sử dụng cho class và @XmlAttribute cho trường id. Class này sẽ tạo ra schema employee.xsd sau khi chúng ta build project. Như bạn thấy, nó có một trường Address là một class tùy chỉnh khác, nên chúng ta cũng cần annotate class này để việc tạo schema thành công.

Dưới đây là class Address với các annotation JAXB.

package com.journaldev.bean;

import javax.xml.bind.annotation.XmlType;

@XmlType(namespace = "")
public class Address {
    private String city;
    private int zip;
    private String addressLine1;
    private String addressLine2;

    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    public int getZip() {
        return zip;
    }
    public void setZip(int zip) {
        this.zip = zip;
    }
    public String getAddressLine1() {
        return addressLine1;
    }
    public void setAddressLine1(String addressLine1) {
        this.addressLine1 = addressLine1;
    }
    public String getAddressLine2() {
        return addressLine2;
    }
    public void setAddressLine2(String addressLine2) {
        this.addressLine2 = addressLine2;
    }
}

Class này sẽ tạo ra address.xsd vì tên của nó được ánh xạ trong phần transformSchema trong file pom.xml. Sau khi cấu hình xong, chỉ cần build project bằng lệnh mvn clean install thì các tệp XSD sẽ được tạo ra.

Với project của tôi, các tệp tạo ra bao gồm:

employee.xsd




  

  
    
      
      
      
    
    
  


address.xsd




  
    
      
      
      
      
    
  


Vậy là chúng ta đã hoàn tất việc tạo XSD từ các class Java. Cách làm này vừa đơn giản vừa hiệu quả để chuyển đổi từ Java class sang XSD.

Mong rằng hướng dẫn này sẽ hữu ích và dễ theo dõi với bạn.

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