Java - 如何在@XmlType 中动态设置 propOrder 属性
Java - How to set propOrder attribute dynamically within @XmlType
我有一个带有 xml 注释的 class,它将被实例化,然后用于生成一个 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>
有什么想法吗?
这是不可能的。注释在编译时处理。
PS:纯java是不可能的。如果你真的想要,你可以使用某种预处理器。
我有一个带有 xml 注释的 class,它将被实例化,然后用于生成一个 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>
有什么想法吗?
这是不可能的。注释在编译时处理。
PS:纯java是不可能的。如果你真的想要,你可以使用某种预处理器。