[英]JAXB from Java to XML
My target is to get this xml marshalling Java objects. 我的目标是获取此xml编组Java对象。
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<ns2:cedolini xmlns:ns2="" data_produzione=""
codice_sistema_emittente="">
<cedolino>
<testata lingua="I">
<info>
<infoSoggetto></infoSoggetto>
<infoIndirizzo></infoIndirizzo>
<email></email>
</info>
<anagrafica cod="xxxxxxyyxyyxyyyx">
<cognome></cognome>
<nome></nome>
<dataNascita></dataNascita>
<via></via>
<civico></civico>
<cap></cap>
<citta_residenza></citta_residenza>
<provincia_residenza></provincia_residenza>
</anagrafica>
</testata>
</cedolino>
.
.
</ns2:cedolini>
My trouble is how to represent the list of object Cedolino. 我的麻烦是如何表示对象Cedolino的列表。
<ns2:cedolini xmlns:ns2="" data_produzione=""
codice_sistema_emittente="">
<cedolino>
....
</cedolino>
<cedolino>
....
</cedolino>
</ns2:cedolini>
In my mind the solution to represent each Cedolino object is something like that. 在我看来,代表每个Cedolino对象的解决方案就是这样。
@XmlRootElement()
public class Cedolino{
private Testata testata;
private Info info;
private Anagrafica anagrafica;
public get and set methods...
}
Convert your xml to Xsd , follow below link : https://www.freeformatter.com/xsd-generator.html 将您的xml转换为Xsd,请点击以下链接: https ://www.freeformatter.com/xsd-generator.html
Once you get the generated xsd, save that in your project, now generate POJO using xsd. 获得生成的xsd后,将其保存在项目中,现在使用xsd生成POJO。
GENERATING POJO USING xsd: 使用xsd生成POJO:
1.in eclipse goto file -> new-> Other-> JAXB classes from schema. 1.在eclipse goto文件->新建->其他->模式中的JAXB类中。 provide package name, where you want your pojo to be generated. 提供软件包名称,您希望在其中生成pojo。
SimpleXml can do it. SimpleXml可以做到。 First some POJOs: 首先介绍一些POJO:
@XmlName("ns2:cedolini")
public class Cedolini {
@XmlName("cedolino")
public List<Cedolino> cedolinos;
}
public class Cedolino {
public Testata testata;
}
public class Testata {
@XmlAttribute
public String lingua;
public Info info;
public Anagrafica anagrafica;
}
public class Info {}
public class Anagrafica {
@XmlAttribute
public String cod;
}
Then serialize and print: 然后序列化并打印:
final SimpleXml simple = new SimpleXml();
final Cedolini i = simple.fromXml(xml, Cedolini.class);
System.out.println(i.cedolinos.get(0).testata.lingua + " : " + i.cedolinos.get(0).testata.anagrafica.cod);
This will print: 这将打印:
I : xxxxxxyyxyyxyyyx
SimpleXml is in maven central: SimpleXml位于Maven中央:
<dependency>
<groupId>com.github.codemonstur</groupId>
<artifactId>simplexml</artifactId>
<version>1.5.5</version>
</dependency>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.