Java 如何使用JAXB编写深层XML文档?
我正在尝试创建一个XML文档,它的结构比我见过的其他示例更复杂。以下是我的尝试,使用三个类:Java 如何使用JAXB编写深层XML文档?,java,xml,jaxb,marshalling,Java,Xml,Jaxb,Marshalling,我正在尝试创建一个XML文档,它的结构比我见过的其他示例更复杂。以下是我的尝试,使用三个类: Band类,标识图像上的垂直颜色带。现在,它只有一个X值,在图像上 一个程序类,“程序”表示某种图像的模板。它具有图像上的波段数、程序名称和波段对象列表 包含程序列表的ProgramList类 波段类别代码: 程序类代码: 它编译正常,运行无异常。但XML文档如下所示: <?xml version="1.0" encoding="UTF-8" stand
- Band类,标识图像上的垂直颜色带。现在,它只有一个X值,在图像上
- 一个程序类,“程序”表示某种图像的模板。它具有图像上的波段数、程序名称和波段对象列表
- 包含程序列表的ProgramList类
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ProgramList/>
相同的结果。以下内容不是构造函数,因为它具有
void
返回类型。它只是一个与构造函数同名的方法。这意味着运行此逻辑不是为了填充对象模型
public void ProgramList() {
Program program1 = new Program();
program1.setNumBands(2);
program1.setProgramName("Program 1");
programlist.add(program1);
Program program2 = new Program();
program2.setNumBands(2);
program2.setProgramName("Program 2");
programlist.add(program2);
}
应该是:
public ProgramList() {
programlist = new ArrayList<Program>(2);
Program program1 = new Program();
program1.setNumBands(2);
program1.setProgramName("Program 1");
programlist.add(program1);
Program program2 = new Program();
program2.setNumBands(2);
program2.setProgramName("Program 2");
programlist.add(program2);
}
publicprogramlist(){
programlist=新的ArrayList(2);
程序1=新程序();
程序1.设置编号(2);
program1.setProgramName(“program1”);
programlist.add(program1);
Program program2=新程序();
程序2.SetNumands(2);
program2.setProgramName(“program2”);
programlist.add(program2);
}
注意:因为JAXB是异常配置,所以您添加了很多不必要的注释。以下内容应该会有所帮助:
- 以下内容不是构造函数,因为它具有
void
返回类型。它只是一个与构造函数同名的方法。这意味着运行此逻辑不是为了填充对象模型
public void ProgramList() {
Program program1 = new Program();
program1.setNumBands(2);
program1.setProgramName("Program 1");
programlist.add(program1);
Program program2 = new Program();
program2.setNumBands(2);
program2.setProgramName("Program 2");
programlist.add(program2);
}
应该是:
public ProgramList() {
programlist = new ArrayList<Program>(2);
Program program1 = new Program();
program1.setNumBands(2);
program1.setProgramName("Program 1");
programlist.add(program1);
Program program2 = new Program();
program2.setNumBands(2);
program2.setProgramName("Program 2");
programlist.add(program2);
}
publicprogramlist(){
programlist=新的ArrayList(2);
程序1=新程序();
程序1.设置编号(2);
program1.setProgramName(“program1”);
programlist.add(program1);
Program program2=新程序();
程序2.SetNumands(2);
program2.setProgramName(“program2”);
programlist.add(program2);
}
注意:因为JAXB是异常配置,所以您添加了很多不必要的注释。以下内容应该会有所帮助:
JAXBContext context = JAXBContext.newInstance(new Class[] {ProgramList.class, Program.class, Band.class});
public void ProgramList() {
Program program1 = new Program();
program1.setNumBands(2);
program1.setProgramName("Program 1");
programlist.add(program1);
Program program2 = new Program();
program2.setNumBands(2);
program2.setProgramName("Program 2");
programlist.add(program2);
}
public ProgramList() {
programlist = new ArrayList<Program>(2);
Program program1 = new Program();
program1.setNumBands(2);
program1.setProgramName("Program 1");
programlist.add(program1);
Program program2 = new Program();
program2.setNumBands(2);
program2.setProgramName("Program 2");
programlist.add(program2);
}