假设我想建立以下模型:
<?xml version="1.0" encoding="UTF-8"?>
<something>
<entry value="foo">some text</entry>
<entry value="bar">some other text</entry>
</something>
有了这种造型:
@XmlRootElement(name = "something")
public class Something {
@Schema(name = "entry")
@JacksonXmlProperty(localName = "entry")
@JacksonXmlElementWrapper(useWrapping = false)
List<Entry> entries = new ArrayList<>();
}
public class Entry {
@XmlAttribute
String value;
@JacksonXmlText
String inlineTxt;
}
我对@JacksonXmlText
的使用显然是不够的,因为当我按下Try it out
时,Swagger为我生成了以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<something>
<entry value="string">
<inlineTxt>string</inlineTxt>
</entry>
</something>
然而,当我接收到以我想要建模的方式形成的对象时,Jackson正确地完成了工作。(getter和诸如此类的东西是由Lombok生成的,为了简洁起见,这里没有显示其他注解。)
如何让OpenAPI生成一个没有这些<inlineTxt>
标记的示例对象?
2条答案
按热度按时间rhfm7lfc1#
OpenAPI规范does not support XML元素,包含属性和文本,例如
这意味着您的XML结构不能使用OpenAPI和相关的Java注解来表示。
vvppvyoh2#
对于我的项目工作这个例子:
在pom.xml中添加导入:
然后在命名空间com.example.iso20022.http.v1.schema.AmountMoreZero中创建此文件: