生成 JAXB 的 swagger 2 类

swagger 2 with JAXB generated classes

我生成了 JAXB classes

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "MyResponse", propOrder = {
    "member1",
    "member2",
    "member3"
})
public class MyResponse implements Serializable {
<... other class members; setters/ getters ...>
}

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "myRequest", propOrder = {
    "test1",
    "test2",
    "test3"
})
public class MyRequest implements Serializable {
    <... other class members; setters/ getters ...>
}

但是,swagger 2(版本 3.0.0)生成的示例值如

<?xml version="1.0" encoding="UTF-8"?>
<JAXBElement«MyRequest»>
    <name>
        <localPart>jhgkhgk</localPart>
        <namespaceURI>gfjgfj</namespaceURI>
        <prefix>gfjhgfj</prefix>
    </name>
    <nil>true</nil>
    <MyRequest>
        <test1>string</test1>
        <test2>string</test2>
        <test3>string</test3>
    </MyRequest>
</JAXBElement«MyRequest»> 

如何强制swagger生成

的示例值
<MyRequest>
    <test1>string</test1>
    <test2>string</test2>
    <test3>string</test3>
</MyRequest>

我的控制器class

public @ResponseBody JAXBElement<MyRequest> test(
        @RequestBody JAXBElement<MyResponse> message) {

}

第 1 次更新

刚发现把

@ApiImplicitParams({
        @ApiImplicitParam(
                name = "message",
                dataTypeClass = MyResponse.class,
                examples = @io.swagger.annotations.Example(
                        value = {
                                @ExampleProperty(value = "{'property': 'test'}", mediaType = "application/xml")
                        }))
})

在我的控制器之上给出了所需结果的 1/2,现在需要计算 如何添加命名空间

找到解决方案 - 放弃 SpringFox 并改用 springdoc-openapi-ui(如果你是 java 开发者)它很容易死掉,即

@io.swagger.v3.oas.annotations.parameters.RequestBody(content = @Content(examples = {
                   @ExampleObject(
                           name = "Person sample",
                           summary = "person example",
                           value ="my custom example to be executed")}))