0
Я читаю XML-файл.@XmlValue и @XmlElement Conflict в JaxB
<MSS id="9B8F6188-9636-11E0-8718-88F89CFF4B22">
<STANDARD id="1EBE0C64-9892-11E0-8388-5F489DFF4B22">
<TOPIC>
Reading
<TOPIC> Literature </TOPIC>
<TOPIC> Writing </TOPIC>
</TOPIC>
</STANDARD>
</MSS>
для выше XML я создал POJO как
@XmlRootElement(name="MSS")
@XmlAccessorType(XmlAccessType.FIELD)
public class MSS
{
private String id;
private STANDARD STANDARD;
public String getId()
{
return id;
}
public void setId (String id)
{
this.id = id;
}
public STANDARD getSTANDARD()
{
return STANDARD;
}
public void setSTANDARD (STANDARD STANDARD)
{
this.STANDARD = STANDARD;
}
@Override
public String toString()
{
return "ClassPojo [id = "+id+", STANDARD = "+STANDARD+"]";
}
}
STANDARD.java
@XmlAccessorType(XmlAccessType.FIELD)
public class STANDARD
{
private String id;
@XmlElement(name="TOPIC")
private TOPIC TOPIC;
public String getId()
{
return id;
}
public void setId (String id)
{
this.id = id;
}
public TOPIC getTOPIC()
{
return TOPIC;
}
public void setTOPIC (TOPIC TOPIC)
{
this.TOPIC = TOPIC;
}
@Override
public String toString()
{
return "ClassPojo [id = "+id+", TOPIC = "+TOPIC+"]";
}
}
и TOPIC.java
@XmlAccessorType(XmlAccessType.NONE)
public class TOPIC
{
@XmlValue
private String content;
@XmlElement(name="TOPIC")
private String TOPIC;
public String getContent()
{
return content;
}
public void setContent (String content)
{
this.content = content;
}
public String getTOPIC()
{
return TOPIC;
}
public void setTOPIC (String TOPIC)
{
this.TOPIC = TOPIC;
}
@Override
public String toString()
{
return "ClassPojo [content = "+content+", TOPIC = "+TOPIC+"]";
}
}
когда я пытаюсь распаковать это я получил исключение, такое как
Если класс @XmlElement свойства, оно не может иметь @XmlValue свойству
У меня есть несколько разделов внутри тега темы, и я хочу тему содержания «Чтение» значения.
тема не может быть строкой. это будет список – Mahi
try @XmlMixed .. или попытаться создать сгенерированный класс с помощью xsd. – Mahi