为什么Swagger 1.X忽略@XmlAttribute字段?

时间:2018-06-25 09:19:46

标签: java swagger

我有一个用Swagger 1.X,Jackson和JAXB注释注释的简单模型类,例如:

@XmlRootElement(name = "ClassA")
@ApiModel(value = "ClassA")
@XmlAccessorType(XmlAccessType.NONE)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ClassA
{
    @ApiModelProperty(value = "The attribute key", example = "a key")
    @XmlAttribute
    private String key;

    @ApiModelProperty(value = "The attribute name", example = "a name")
    @XmlAttribute
    private String name;

    @ApiModelProperty(value = "a value")
    @XmlElement
    private Object value;

    public String getKey()
    {
        return key;
    }

    public void setKey(String key)
    {
        this.key = key;
    }

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public Object getValue()
    {
        return value;
    }

    public void setValue(Object value)
    {
        this.value = value;
    }
}

这由CXF的Swagger2Feature处理,以生成swagger.json文档,该文档通过Swagger-UI呈现。 CXF的版本为3.2.1,似乎使用的是Swagger 1.5.16。

在生成的swagger.json文档中,用@XmlAttribute注释的字段将被忽略(仅包括@XmlElement注释的value字段)。除了将它们全部更改为XML元素之外,是否有办法使Swagger包含在生成的规范中?

1 个答案:

答案 0 :(得分:0)

显然,这是CXF 3.2.1-Swagger Core 1847使用的Swagger版本(1.5.16)中的错误。该错误已在Swagger Core 1.5.18中修复。