有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

非属性(内联)文本值的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) 个答案

  1. # 1 楼答案

    OpenAPI规范does not support包含属性和文本的XML元素,如

    <entry value="foo">some text</entry>
    

    这意味着您的XML结构不能使用OpenAPI和相关Java注释来表示