非属性(内联)文本值的java OpenAPI注释
假设我要对此进行建模:
<?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
时,这就是斯威格为我生成的结果:
<?xml version="1.0" encoding="UTF-8"?>
<something>
<entry value="string">
<inlineTxt>string</inlineTxt>
</entry>
</something>
然而,当我接收到以我想要的方式建模的对象时,Jackson会正常工作。(getter和what not由Lombok生成,为了简洁起见,这里没有显示其他注释。)
如何让OpenAPI生成一个没有那些<inlineTxt>
标记的示例对象强>
# 1 楼答案
OpenAPI规范does not support包含属性和文本的XML元素,如
这意味着您的XML结构不能使用OpenAPI和相关Java注释来表示