Ограничить появление промежуточного элемента в XML, но не его свойства
Я работаю над анализом XML и пытаюсь достичь заранее определенного формата XML. Я использую синтаксический анализатор JAXB и создал несколько POJO для достижения той же цели. Я подготовил POJO, как показано ниже:
- User.java
``
public class User
{
@XmlVariableNode("fieldName")
public List<Field> field;
// getter, setter
}
- Field.java
``
public class Field
{
@XmlAttribute
public int id;
@XmlAttribute
public String mode;
@XmlTransient
public String fieldName;
public Child1 child1;
public Child2 child2;
public Field(){}
public Field(int id, String fieldName, String value)
{
this.id = id;
this.fieldName = fieldName;
this.child1 = new Child1(value);
}
public Field(int id, String mode, String fieldName, String userName, String userId)
{
this.id = id;
this.mode = mode;
this.fieldName = fieldName;
this.child2 = new Child2(userName, userId);
}
// getter, setter
public static class Child1
{
@XmlValue
String value;
Child1(){}
Child1(String value)
{
this.value = value;
}
//getter,setter
}
public static class Child2
{
@XmlElement(name="USERNAME")
String userName;
@XmlElement(name="USERID")
String userId;
Child2(){}
Child2(String userName, String userId)
{
this.userId = userId;
this.userName = userName;
}
// getter, setter
}
}
и JAXB дает мне XML как:
<USER>
<First_Name id="21">
<child1>Mahendra</child1>
</First_Name>
<Middle_Name id="22">
<child1>Singh</child1>
</Middle_Name>
<Last_Name id="23">
<child1>Dhoni</child1>
</Last_Name>
<Manager id="21" mode="2">
<child2>
<USERNAME>rahulsharma</USERNAME>
<USERID>rahul_23</USERID>
</child2>
</Manager>
<HRManager id="22" mode="3">
<child2>
<USERNAME>amanverma</USERNAME>
<USERID>aman_45</USERID>
</child2>
</HRManager>
</USER>
но я не хочу, чтобы теги child1 и child2 появлялись в XML, а хочу, чтобы приведенный выше XML был следующим:
<USER>
<First_Name id="21">Mahendra</First_Name>
<Middle_Name id="22">Singh</Middle_Name>
<Last_Name id="23">Dhoni</Last_Name>
<Manager id="21" mode="2">
<USERNAME>rahulsharma</USERNAME>
<USERID>rahul_23</USERID>
</Manager>
<HRManager id="22" mode="3">
<USERNAME>amanverma</USERNAME>
<USERID>aman_45</USERID>
</HRManager>
</USER>