gpt4 book ai didi

java - Jaxb:为固定值属性生成常量值

转载 作者:搜寻专家 更新时间:2023-10-31 19:53:21 26 4
gpt4 key购买 nike

我目前正在开发一个使用以下结构的 xsd:

<xs:attribute name="listVersionID" type="xs:normalizedString" use="required" fixed="1.0">

虽然本身没有问题,但使用起来相当烦人,因为这个定义的固定值在 xsd 规范的版本之间增加,我们需要修改单独的常量类中的值以保持它们有效,尽管 xsd 中感兴趣的内容几乎没有改变。 xsd 在别处维护,因此无法更改它。

因此我问自己是否有一个 jaxb-plugin 或类似的插件来将固定值属性转换为常量 ala

@XmlAttribute(name = "listVersionID")
@XmlJavaTypeAdapter(NormalizedStringAdapter.class)
@XmlSchemaType(name = "normalizedString")
protected final String listVersionID = "1.0";

不仅仅是

@XmlAttribute(name = "listVersionID")
@XmlJavaTypeAdapter(NormalizedStringAdapter.class)
@XmlSchemaType(name = "normalizedString")
protected String listVersionID;

必须手动填充。

有人知道吗?

最佳答案

如果您不想修改架构,另一种选择是使用外部绑定(bind)文件:

<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
version="2.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema">

<jaxb:bindings schemaLocation="yourschema.xsd" node="/xs:schema">
<jaxb:globalBindings fixedAttributeAsConstantProperty="true" />
</jaxb:bindings>

</jaxb:bindings>

这等同于@jmattheis 在他的回答中提出的建议。

关于java - Jaxb:为固定值属性生成常量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37110002/

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