非属性(内联)文本值的 OpenAPI 注释
OpenAPI annotation for non-attribute (inline) text value
假设我要建模:
<?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>
标签的示例对象?
OpenAPI 规范 XML 具有属性和文本的元素,例如
<entry value="foo">some text</entry>
这意味着您的 XML 结构无法使用 OpenAPI 和相关的 Java 注释表示。
假设我要建模:
<?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>
标签的示例对象?
OpenAPI 规范
<entry value="foo">some text</entry>
这意味着您的 XML 结构无法使用 OpenAPI 和相关的 Java 注释表示。