Jaxb 带有合格类型引用的不合格元素
我实际上是在尝试从JAXB注释生成以下XML块Jaxb 带有合格类型引用的不合格元素,jaxb,jaxb2,Jaxb,Jaxb2,我实际上是在尝试从JAXB注释生成以下XML块 <pCredentials xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns3:LoginCredentials"> <loginId>user</loginId> <loginPassword>password</loginPassword>
<pCredentials xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ns3:LoginCredentials">
<loginId>user</loginId>
<loginPassword>password</loginPassword>
<userType>super</userType>
</pCredentials>
但它会产生以下结果:
<pCredentials>
<loginId>user</loginId>
<loginPassword>password</loginPassword>
<userType>super</userType>
</pCredentials>
@XmlElement(type = Object.class)
private LoginCredentials pCredentials;
用户
密码
超级的
关于我可以提供哪种类型的注释来生成类型引用,有什么建议吗
感谢您的帮助…当值的Java类型与元素的预期类型不匹配时,JAXB实现只会添加一个
xsi:type
属性。这就是为什么您尝试的方法不起作用(因为您说的元素类型与值的类型相同)
您可以执行以下操作:
<pCredentials>
<loginId>user</loginId>
<loginPassword>password</loginPassword>
<userType>super</userType>
</pCredentials>
@XmlElement(type = Object.class)
private LoginCredentials pCredentials;
注意
- 要取消编组的XML中需要
属性xsi:type
- 您需要将
包含在用于引导LoginCredentials
的类列表中JAXBContext
xsi:type
属性。这就是为什么您尝试的方法不起作用(因为您说元素类型与值的类型相同)
您可以执行以下操作:
<pCredentials>
<loginId>user</loginId>
<loginPassword>password</loginPassword>
<userType>super</userType>
</pCredentials>
@XmlElement(type = Object.class)
private LoginCredentials pCredentials;
注意
- 要取消编组的XML中需要
属性xsi:type
- 您需要将
包含在用于引导LoginCredentials
的类列表中JAXBContext