jaxb - 添加元素到列表(maven-plugin)
jaxb - add elements to list (maven-plugin)
我用 jaxb 生成了 classes,现在我需要填充一些列表。最好的方法是什么?
pom.xml:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaDirectory>${basedir}/src/main/resources/META-INF/xsd</schemaDirectory>
<packageName>be.structure</packageName>
<outputDirectory>${basedir}/target/generated/java</outputDirectory>
</configuration>
</plugin>
生成的class列表所在位置:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "configuration", propOrder = {
"professions"
})
public class Configuration {
protected List<Profession> professions;
public List<Profession> getProfessions() {
if (professions == null) {
professions = new ArrayList<Profession>();
}
return this.professions;
}
}
但如您所见,没有 "addProfession" 或 "setProfessions()" 之类的东西。我知道有一个方法,但我真的记不住了..
如果基础列表是可变的,getProfessions().add(profession)
应该可以解决问题,但通常您不会更改 JAX 实例的内容,因为 JAXB 会根据 XML 数据为您填充对象它是从 - 如果您更改该列表,它不再代表 XML。
我用 jaxb 生成了 classes,现在我需要填充一些列表。最好的方法是什么?
pom.xml:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaDirectory>${basedir}/src/main/resources/META-INF/xsd</schemaDirectory>
<packageName>be.structure</packageName>
<outputDirectory>${basedir}/target/generated/java</outputDirectory>
</configuration>
</plugin>
生成的class列表所在位置:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "configuration", propOrder = {
"professions"
})
public class Configuration {
protected List<Profession> professions;
public List<Profession> getProfessions() {
if (professions == null) {
professions = new ArrayList<Profession>();
}
return this.professions;
}
}
但如您所见,没有 "addProfession" 或 "setProfessions()" 之类的东西。我知道有一个方法,但我真的记不住了..
getProfessions().add(profession)
应该可以解决问题,但通常您不会更改 JAX 实例的内容,因为 JAXB 会根据 XML 数据为您填充对象它是从 - 如果您更改该列表,它不再代表 XML。