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

Trang chủHướng dẫnHướng dẫn sử dụng plugin jaxb2 maven XJC để tạo lớp java từ XSD
Java

Hướng dẫn sử dụng plugin jaxb2 maven XJC để tạo lớp java từ XSD

CyStack blog 2 phút để đọc
CyStack blog30/08/2025
Locker Avatar

Bao Tran

Web Developer

Locker logo social
Reading Time: 2 minutes

Hôm nay, chúng ta sẽ tìm hiểu ví dụ về việc sử dụng plugin jaxb2 maven XJC để tạo lớp Java từ XSD. JAXB là một công nghệ trung gian (middleware) giữa lớp Java (Java Class) và XML. Chúng ta có thể sử dụng JAXB để tạo XML từ đối tượng Java và ngược lại.

sử dụng plugin jaxb2 maven XJC

Plugin jaxb2 maven là gì?

Chúng ta sử dụng XSD để định nghĩa cấu trúc dữ liệu hợp đồng, vì vậy việc tạo các lớp Java đại diện cho lược đồ XML là điều phổ biến. Plugin jaxb2 maven XJC là một công cụ biên dịch JAXB Binding có thể được sử dụng để tạo các lớp Java từ các tệp XSD. Tại đây, chúng ta sẽ học cách sử dụng plugin jaxb2 maven XJC trong một dự án Maven để tạo các lớp Java từ XSD. Đầu tiên, chúng ta phải tạo một dự án Maven, sau đó chúng ta cần sử dụng plugin jaxb2-maven-plugin để tạo các lớp Java từ XSD.

Tệp pom.xml

<project xmlns="<https://maven.apache.org/POM/4.0.0>" xmlns:xsi="<https://www.w3.org/2001/XMLSchema-instance>" xsi:schemaLocation="<https://maven.apache.org/POM/4.0.0> <https://maven.apache.org/xsd/maven-4.0.0.xsd>">
  <modelVersion>4.0.0</modelVersion>
  <groupId>jd</groupId>
  <artifactId>jd</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <name>JD Example XSD to Java</name>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>
	<build>
		<plugins>
			<!-- Plugin required to build java classes from XSD using XJC -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>jaxb2-maven-plugin</artifactId>
				<version>1.5</version>
				<executions>
					<execution>
						<goals>
							<goal>xjc</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
                   <!-- The name of your generated source package -->
                	<arguments>-extension -npa -b ${project.basedir}/src/main/xsd/global.xjb</arguments>
                </configuration>
			</plugin>

		</plugins>
	</build>

</project>

Lưu ý tệp global.xjb trong phần đối số, đây là nơi chúng ta chỉ định các quy tắc ràng buộc Java. Tệp global.xjb

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxb:bindings version="2.0"
  xmlns:jaxb="<https://java.sun.com/xml/ns/jaxb>"
  xmlns:xjc="<https://java.sun.com/xml/ns/jaxb/xjc>"
  xmlns:xs="<https://www.w3.org/2001/XMLSchema>"
  jaxb:extensionBindingPrefixes="xjc">

 <jaxb:globalBindings>
    <xjc:simple />
    <xjc:serializable uid="-1" />
    <jaxb:javaType name="java.util.Calendar" xmlType="xs:dateTime"
      parseMethod="javax.xml.bind.DatatypeConverter.parseDateTime"
      printMethod="javax.xml.bind.DatatypeConverter.printDateTime" />
  </jaxb:globalBindings>
</jaxb:bindings>

Đây là tệp XSD sẽ được sử dụng để tạo các lớp Java. Tệp Employee.xsd

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="<https://www.w3.org/2001/XMLSchema>"
	targetNamespace="<https://www.journaldev.com/com/journaldev/employee/data>"
	xmlns:empns="<https://www.journaldev.com/com/journaldev/employee/data>"
	elementFormDefault="qualified">

	<element name="empRequest" type="empns:EmpRequest"></element>
	<element name="empResponse" type="empns:EmpResponse"></element>

	<complexType name="EmpRequest">
		<sequence>
			<element name="id" type="int" minOccurs="0" maxOccurs="1" />
			<element name="name" type="string" minOccurs="0" maxOccurs="1" />
		</sequence>
	</complexType>

	<complexType name="EmpResponse">
		<sequence>
			<element name="id" type="int" minOccurs="1" maxOccurs="1" />
			<element name="name" type="string" minOccurs="1" maxOccurs="1" />
			<element name="role" type="string" minOccurs="1" maxOccurs="unbounded" />
			<element name="gender" type="string" minOccurs="1" maxOccurs="1" />
			<element name="salary" type="string" minOccurs="1" maxOccurs="1" />
		</sequence>
	</complexType>

</schema>

Chỉ cần xây dựng dự án Maven bằng cách sử dụng mvn clean install và bạn sẽ thấy các lớp Java được tạo ra trong thư mục target/generated-sources/jaxb. Cuối cùng, dự án sẽ trông giống như hình ảnh dưới đây.

Đọc thêm:

0 Bình luận

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

Chuyên mục Hướng dẫn

Tổng hợp các bài viết hướng dẫn, nghiên cứu và phân tích chi tiết về kỹ thuật, các xu hướng công nghệ mới nhất dành cho lập trình viên.

Đăng ký nhận bản tin của chúng tôi

Hãy trở thành người nhận được các nội dung hữu ích của CyStack sớm nhất

Xem chính sách của chúng tôi Chính sách bảo mật.

Đăng ký nhận Newsletter

Nhận các nội dung hữu ích mới nhất