Quarkus实战:专为Kubernetes而优化的Java解决方案
上QQ阅读APP看书,第一时间看更新

5.2 对XML进行编组和解组

问题

如何把XML文档编组到Java对象,把Java对象解组到XML文档?

解决方案

使用JAX-B规范。

当创建REST API时,你可能希望使用XML作为数据格式进行信息传递。到目前为止,你已经看到了如何使用JSON格式来实现,但在本节中,你将学习如何开始使用XML作为请求主体和响应的数据格式。

首先在pom.xml中添加JAX-B扩展。打开一个终端窗口,在项目的根目录运行以下命令:

这可以快速将io.quarkus:quarkus-resteasy-jaxb添加到构建工具中。

在Gradle中,可以使用./gradlew addExtension --extensions = "quarkus-resteasy-jaxb "来添加扩展。

下一步是创建一个名为Computer的类,该类将在端点中被编组和解组。创建一个名为org.acme.quickstart.Computer.java的新类:

❶XmlRootElement将其设置为XML文档

最后,你可以创建一个REST API来实现Computer类的操作。创建一个名为org.acme.quickstart.ComputerResource.java的新类:

打开一个新的终端窗口,启动Quarkus应用程序,尝试发送POST和GET方法的请求:

讨论

除了@XmlRootElement,JAX-B规范中还有其他重要的注解:

@XmlRootElement

设置XML文档的根目录,也可以用它来设置元素的名称或命名空间。

@XmlType

定义字段写入的顺序。

@XmlElement

定义实际的XML元素名称,以及其他属性,如namespace、nillable或required。

@XmlAttribute

定义字段要被映射为属性而不是元素。

@XmlTransient

表示不包含在XML中的字段。

另见

你可以在以下网页中了解关于JAX-B的更多信息:

·Oracle:Lesson:Introduction to JAXB(The Java Tutorials)(https://oreil.ly/r9FKb