我实际上是在尝试从JAXB Annotations生成以下XML块。
<pCredentials xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ns3:LoginCredentials">
<loginId>user</loginId>
<loginPassword>password</loginPassword>
<userType>super</userType>
</pCredentials>
我尝试了以下注释和相同类型的多个变体:
@XmlElement(name = "pCredentials", namespace = "##default", type = com.foo.LoginCredentials.class)
private LoginCredentials pCredentials;
但它会产生以下结果:
<pCredentials>
<loginId>user</loginId>
<loginPassword>password</loginPassword>
<userType>super</userType>
</pCredentials>
关于我可以提供什么类型的注释以产生类型引用的任何建议?
感谢您的帮助...... Jay
答案 0 :(得分:1)
当值的Java类型与元素的预期类型不匹配时,JAXB实现将仅添加xsi:type
属性。这就是你尝试的东西不起作用的原因(因为你说元素类型与值的类型相同。
您可以执行以下操作:
@XmlElement(type = Object.class)
private LoginCredentials pCredentials;
注意强>
xsi:type
属性。LoginCredentials
引导的类列表中包含JAXBContext
。 了解更多信息