aid
属性のanswername
タグを、次のXMLからJavaのフィールドaid
のAnswer
クラスにマップできません。JAXBアンマーシャリング - 子要素の属性をJavaオブジェクトにマップ
助けていただければ幸いです。前もって感謝します。
XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<question id="1">
<answers>
<answername aid="101">java is a programming language</answername>
<postedby>ravi</postedby>
</answers>
<answers>
<answername aid="102">java is a platform</answername>
<postedby>john</postedby>
</answers>
<questionname>What is java?</questionname>
</question>
Javaクラス:
Question.java
package com.deere.ruleEngine.service;
import java.util.List;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Question {
private int id;
private String questionname;
private List<Answer> answers;
public Question() {}
public Question(int id, String questionname, List<Answer> answers) {
super();
this.id = id;
this.questionname = questionname;
this.answers = answers;
}
@XmlAttribute
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@XmlElement
public String getQuestionname() {
return questionname;
}
public void setQuestionname(String questionname) {
this.questionname = questionname;
}
@XmlElement
public List<Answer> getAnswers() {
return answers;
}
public void setAnswers(List<Answer> answers) {
this.answers = answers;
}
}
Answer.java
package com.deere.ruleEngine.service;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
@XmlAccessorType(XmlAccessType.FIELD)
public class Answer {
@XmlAttribute(name="aid")
private int aid;
private String answername;
private String postedby;
public Answer() {}
public Answer(int id, String answername, String postedby) {
super();
this.aid = id;
this.answername = answername;
this.postedby = postedby;
}
public int getId() {
return aid;
}
public void setId(int id) {
this.aid = id;
}
public String getAnswername() {
return answername;
}
public void setAnswername(String answername) {
this.answername = answername;
}
public String getPostedby() {
return postedby;
}
public void setPostedby(String postedby) {
this.postedby = postedby;
}
}
電流出力:
1 What is java?
Answers:
0 java is a programming language ravi
0 java is a platform john
所望の出力:援助プロパティの
1 What is java?
Answers:
101 java is a programming language ravi
102 java is a platform john
を私は答えを知りません、 「電流出力」と「希望出力」に1を加えたものです。私は誰もがそのような質問を書いていたと思います。 –
ありがとう皆さん@TimurA、Thomas、George –