java—如何避免在@xmltype proporder中添加所有字段,以及从父类导入字段

0dxa2lsx  于 2021-07-09  发布在  Java
关注(0)|答案(0)|浏览(282)

我正在尝试使用jaxb注解来整理输入,我面临一些小问题。想确认是否有可能实现
我有两节课 parent 以及 child 每一个都有许多领域。 child 类扩展 parent 班级。
是否可以从中添加元素 parent 班级 child 班级 prepOrder 为了 @XmlType ?
是否有必要将所有元素添加到 propOrder ? 例如,如果我有10个字段,我只想从中排序4个字段。休息可以出现在他们想要的任何顺序。有可能这样做吗?因为当我不添加一个字段时,我就得到了错误。

  1. @XmlAccessorType(XmlAccessType.FIELD)
  2. @XmlType(name = "Parent",propOrder={"city","year"})
  3. public class Parent{
  4. private String brand;
  5. private String city;
  6. private String year;
  7. //Getters and Setters avoided
  8. }
  1. @XmlRootElement(name = "Car")
  2. @XmlAccessorType(XmlAccessType.FIELD)
  3. @XmlType(name = "Child",propOrder={"engine","brand","build"})
  4. public class Child{
  5. private String engine;
  6. private String build;
  7. //Getter and Setters avoided
  8. }
  1. public class Main{
  2. public static void main(String []args){
  3. Child child = new Child();
  4. //Adding values and creating xml using the Marshalling approach
  5. JAXBContext context = JAXBContext.newInstance(Child.class);
  6. Marshaller mar = context.createMarshaller();
  7. mar.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
  8. mar.marshal(child, System.out);
  9. }
  10. }

我期待的最后一个xml是:

  1. <?xml version="1.0"?>
  2. <child>
  3. <cit>Frankfurt</cit>
  4. <year>2021</year>
  5. <engine>Mercedes</engine>
  6. <brand>Ferari</brand>
  7. <build>Germany</build>
  8. </child>

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题