Java - 如何在 @XmlType 中动态设置 propOrder 属性
Posted
技术标签:
【中文标题】Java - 如何在 @XmlType 中动态设置 propOrder 属性【英文标题】:Java - How to set propOrder attribute dynamically within @XmlType 【发布时间】:2021-10-08 04:18:23 【问题描述】:我有一个带有 xml 注释的类,它将被实例化然后用于生成一个 xml 文件。
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder =
"foo", "bar", "baz"
)
public class MyClass
@XmlElement(name = "foo", required = true)
protected String foo;
@XmlElement(name = "bar", required = true)
protected String bar;
@XmlElement(name = "baz", required = true)
protected String baz;
...
我想使用这样的变量(例如version
)动态设置属性propOrder
:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = version.equals("1") ? "foo", "bar", "baz" : "bar", "baz", "foo"
)
public class MyClass
@XmlElement(name = "foo", required = true)
protected String foo;
@XmlElement(name = "bar", required = true)
protected String bar;
@XmlElement(name = "baz", required = true)
protected String baz;
...
所以基于这个version
参数,生成的xml文件会是这样的
<foo></foo>
<bar></bar>
<baz></baz>
or
<bar></bar>
<baz></baz>
<foo></foo>
有什么想法吗?
【问题讨论】:
【参考方案1】:这是不可能的。注解在编译时处理。
PS:在纯java中是不可能的。如果你真的想要,你可以使用某种预处理器。
【讨论】:
以上是关于Java - 如何在 @XmlType 中动态设置 propOrder 属性的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 jdbc 和 java-swing 从特定列中检索完整的 xml(DataType as XMLTYPE)
在Java中,@XmlType 、@XmlRootElement、@XmlElement 这类写法是啥语法?
如何在 oracle XMLTYPE XMLTABLE 中支持 1 级路径目录