问题描述
这是我整理“请求”对象的 XML 文件(Jaxb2Marshaller,Spring Boot 2.4.8):
<request>
<payload xsi:type="ns1:SimpleRequestInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="http://example.com/Types">
<ns1:senderId>cc65c8bfa5b393d70224b496d4fd4d19581a2ba6dcfa6d243a17c6fa7e641db7</ns1:senderId>
</payload>
</request>
我想得到这样的东西:
<request>
<payload>
<simpleRequestInfo>
<ns1:senderId>cc65c8bfa5b393d70224b496d4fd4d19581a2ba6dcfa6d243a17c6fa7e641db7</ns1:senderId>
</simpleRequestInfo>
</payload>
</request>
如何做到这一点?
这是从 Web 服务接收的 XSD 文件(为了清晰起见而简化)。
<xsd:schema targetNamespace="http://example.com/Types" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="Request">
<xsd:sequence>
<xsd:element minOccurs="0" name="payload" type="xsd:anyType"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="SimpleRequestInfo">
<xsd:sequence>
<xsd:element name="senderId" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ExtendedRequestInfo">
<xsd:sequence>
<xsd:element name="region" type="xsd:string"></xsd:element>
<xsd:element name="name" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
下面列出了使用 xjc 命令行工具 (v2.3.4) 生成的 Java 类:
@XmlAccessorType(XmlAccesstype.FIELD)
@XmlType(name = "Request",propOrder = {"payload"})
public class Request {
protected Object payload; // getters & and setters are omitted
}
@XmlRootElement
@XmlType(name = "SimpleRequestInfo",propOrder = {"senderId"})
public class SimpleRequestInfo {
protected String senderId; // getters & and setters are omitted
}
@XmlRootElement
@XmlType(name = "ExtendedRequestInfo",propOrder = {"region","name"})
public class ExtendedRequestInfo {
protected String region;
protected String name; // getters & and setters are omitted
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)