如何創建使用JAXB此XML文件的Java對象的Java對象,轉換XML文件來使用JAXB
<?xml version="1.0" encoding="ISO-8859-1" ?>
<Parameters>
<Varremise>
<Name>Amazigh</Name>
<Var>Notprovided</Var>
<Var>Notprovided</Var>
</Varremise>
<Varheader>
<Name>CdAppOr</Name>
<Var>P</Var>
<Var>A</Var>
<Var>O</Var>
</Varheader>
<Vardetail>
<Name>TopUC</Name>
<Var>U</Var>
<Var>C</Var>
</Vardetail>
</Parameters>
我有嘗試用這個,但它不工作,
參數類:
import java.util.Set;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "parametersContainer")
@XmlRootElement(name = "Parameters")
public class Parameters {
@XmlElement(name = "Varremise")
@XmlElementWrapper(name = "Varremise")
private Set<VarRemise> varremise;
@XmlElement(name = "Varheader")
@XmlElementWrapper(name = "Varheader")
private Set<VarHeader> varheader;
@XmlElement(name = "Vardetail")
@XmlElementWrapper(name = "Vardetail")
private Set<VarDetail> vardetail;
public Set<VarHeader> getVarheader() {
return varheader;
}
public void setVarheader(final Set<VarHeader> varheader) {
this.varheader = varheader;
}
public Set<VarDetail> getVardetail() {
return vardetail;
}
public void setVardetail(final Set<VarDetail> vardetail) {
this.vardetail = vardetail;
}
public Set<VarRemise> getVarremise() {
return varremise;
}
public void setVarremise(final Set<VarRemise> varremise) {
this.varremise = varremise;
}
}
AllVarsDefinition類:
import java.util.Set;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public abstract class AllVarsDefinition {
@XmlElement(name = "Name", required = true)
private String name;
@XmlElement(name = "Var", required = true)
private Set<String> var;
public String getName() {
return name;
}
public void setName(final String name) {
this.name = name;
}
public Set<String> getVar() {
return var;
}
public void setVar(final Set<String> var) {
this.var = var;
}
}
VarHeader類:
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
@XmlAccessorType(XmlAccessType.FIELD)
public class VarHeader extends AllVarsDefinition {
}
相同的代碼來Vardetail和varRemise類,
當我EXCUTE此代碼它創建一個空的對象
謝謝
謝謝您回答,現在它返回null,而不是空對象 – darkman
當我刪除包裝它工作,謝謝 – darkman
我不認爲去除包裝解決所有問題。我不認爲你現在可以在列表中指定多個元素。也許你應該嘗試一下。 – cvesters