gpt4 book ai didi

java - 如何让JAXB识别@XmlElement(默认='something')注释参数?

转载 作者:行者123 更新时间:2023-11-30 05:07:28 24 4
gpt4 key购买 nike

未能使用 JAXB 2.1 RI 生成具有固定元素值的 XML。我们使用 xjc 生成 XML 绑定(bind)代码并整理结果。

它适用于使用 <xs:attribute fixed='something'/> 的属性和 JAXB 自定义属性 fixedAttributeAsConstantProperty 。对于元素,我们认为没有办法做到同样的事情。或者有吗?

作为解决方法,我们使用 <xs:element default='something'/>变成 @XmlElement(default='something') 。现在我的猜测是你可以告诉编码器以某种方式解释 default参数并生成相应内容的元素,如 <element>something</element> .

我查看了标准和 RI 供应商特定的编码器配置属性,但没有找到有用的东西。似乎有一个 xjc 插件可以执行类似的操作[1],但如果没有标准的 JAXB 方法来执行此操作,我会感到有点惊讶。

非常感谢您的指点,谢谢。

[1] http://fisheye5.cenqua.com/browse/~raw,r=1.5/jaxb2-commons/www/default-value/index.html

最佳答案

XML 模式规范仅处理解码,即确定源 XML 表示的验证后信息集。

JAXB 似乎在其对默认值的支持中反射(reflect)了这一点,即主要用于读取。例如,对默认属性的支持并不扩展到写入默认值,而只是读取(或使用 getter 从 Java 访问)

在我看来,解决方案的最佳选择是扩展默认值插件来处理固定元素,方法是将字段设为最终值并删除 setter 。

code for the plugin非常简单,真的!

关于java - 如何让JAXB识别@XmlElement(默认='something')注释参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4593055/

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