我试图弄清楚如何从使用JAXB创建的自动生成的Java文件中获取元素列表(' propOrder'中的所有名称)。我想要的是:
列表字符串> elements = getXMLElements(ExampleInfo.class);
我无法编辑生成的java类,因为可能会更改XSD架构。我试图获取startTime,stopTime和id的元素。
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "exampleInfo", propOrder = {
"startTime",
"stopTime",
"id",
...
})
public class ExampleInfo
extends TypeInfo
{
@XmlElement(name = "StartTime")
@XmlSchemaType(name = "dateTime")
protected XMLGregorianCalendar startTime;
@XmlElement(name = "StopTime")
@XmlSchemaType(name = "dateTime")
protected XMLGregorianCalendar stopTime;
@XmlElement(name = "id")
...
}
答案 0 :(得分:0)
借助方法Class.getAnnotation(Class<A>)
,您可以轻松完成:
public static List<String> getXMLElements(Class<?> clazz) {
XmlType xmlType = clazz.getAnnotation(XmlType.class);
if (xmlType == null)
return null;
String[] propOrder = xmlType.propOrder();
return Arrays.asList(propOrder);
}
然后像这样使用它:
List<String> elements = getXMLElements(ExampleInfo.class);