gpt4 book ai didi

java - XJC 为扩展的 base64Binary 元素生成了错误的注释

转载 作者:行者123 更新时间:2023-12-02 05:02:09 25 4
gpt4 key购买 nike

我有一个用于导出图像文件的网络服务。 Web 服务的实体在 XSD 模式中定义,并使用 xjc 生成服务响应中使用的 java 类。

在 XSD 中,图像被定义为扩展 base64Binary 简单类型的复杂类型。


<xsd:complexType name="image">
<xsd:simpleContent>
<xsd:extension base="xsd:base64Binary">
<xsd:attribute name="nil" type="xsd:boolean" use="optional"/>
<xsd:attribute name="overwrite" type="xsd:boolean"
use="optional"/>
<xsd:attribute name="origin" type="xsd:string" use="optional"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>

使用 xjc 我们生成 java 类,我得到以下内容:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "image", propOrder = {
"value"
})
public class Image {

@XmlValue
protected byte[] value;
@XmlAttribute(name = "nil")
protected Boolean nil;
@XmlAttribute(name = "overwrite")
protected Boolean overwrite;
@XmlAttribute(name = "origin")
protected String origin;

value 属性具有注释@XMlValue,而不是@XmlSchemaType(name="base64Binary")。

使用 SoapUI 测试 Web 服务时,我获取的是字节数组图像的 toString() 结果,而不是获取带有图像的 Base64 字符串。

[B@11a0f47b

但是如果我通过@XmlSchemaType(name="base64Binary")手动更改@XmlValue注释,结果是正确的。

<ns1:value>LzlqLzRBQVFTa1pKUmdBQkFnQUFBUU....</ns1:value>

最佳答案

尝试删除

<xsd:simpleContent>

在类型定义中。

如果不起作用,请替换为 <xsd:complexContent>

关于java - XJC 为扩展的 base64Binary 元素生成了错误的注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56380669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com