JAXB 默认属性值
我正在使用 JAXB 注释从我的类生成 xsd 架构。
带有参数defaultValue 的注释@XmlElement 设置元素的默认值。 是否可以为@XmlAttribute设置默认值?
PS 我检查了 xsd 语法是否允许属性的默认值
I'm using JAXB annotations to generate xsd schema from my classes.
Annotation @XmlElement with parameter defaultValue sets default value for element.
Is it possible to set default value for @XmlAttribute?
P.S. I checked that xsd syntax allow default values for attributes
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
可能想检查一下:JAXB 支持默认架构值吗?
老实说,我不知道为什么标准 JAXB 中没有属性默认选项。
Might wanna check this: Does JAXB support default schema values?
To be honest, I don't have a clue why there isn't an attribute default option in standard JAXB.
当您从定义具有默认值的属性的 xsd 生成类时,jaxb 将生成一个 if 子句,它将检查 null 值,如果是,将返回默认值。
When you generate classes from an xsd where you define an attribute with a default value then jaxb will generate a if clause where it will check the null value and if so, will return the default value.
对于 XML 属性,默认值位于 getter 方法内。
例如,
customer.xsd
它将生成如下所示的类。
读取
创建了示例 XML,以便在我们将逻辑写入主类中的编组时
。它将在控制台中打印。
默认元素名称
defaultAttributeValue
P.S -:要获取元素的默认值,您需要将元素的空白副本放入正在编组的 xml 中。
For XML attributes default value goes inside getter method.
for Example,
customer.xsd
It will generate class like below.
Created Sample XML to read
when we write logic to marshall in our main class.
It will print, in console.
defaultElementName
defaultAttributeValue
P.S -: to get default value of elements you need to have a blank copy of element into xml which is being marshalled.