내 질문은 이전에 물어 다른 사람과 비슷하지만, 사실은 아직 내 문제를 해결할 수 없다는 것입니다. 객체로 변환 (비 정렬 화)해야하는 XML 문서가 있으며 JAXB 주석을 사용하여 XML 문서를 처리하고 있습니다. 지금까지는 그렇게 좋았지 만 가치를 얻을 수없는 속성이 하나 있습니다. 이야기하는 대신 코드를 작성해 보겠습니다.자바 - Unmarshal 객체에 XML 문서
내 자바 객체 :
@XmlRootElement
public class Product {
private String date_upd;
private MetaDescription meta_description;
//------------Static classes for sub nodes------------------
@XmlAccessorType(XmlAccessType.FIELD)
static class MetaDescription{
private List<Language> language ;
}
@XmlAccessorType(XmlAccessType.FIELD)
static class Language{
@XmlAttribute(name="id")
private String id;
@XmlValue
private String language = null;
void setLanguage(String language){
this.language = language;
}
String getLanguage(){
return this.language;
}
}
public String getDate_upd() {
return date_upd;
}
/**
* @param date_upd the date_upd to set
*/
@XmlElement
public void setDate_upd(String date_upd) {
this.date_upd = date_upd;
}
/**
* @return the meta_description
*/
public MetaDescription getMeta_description() {
return meta_description;
}
/**
* @param meta_description the meta_description to set
*/
@XmlElement
public void setMeta_description(MetaDescription meta_description) {
this.meta_description = meta_description;
}
}
그리고 내 XML 문서는 다음과 같은 조각이 있습니다
<product>
<date_upd>
<![CDATA[2013-12-06 18:03:59]]>
</date_upd>
<meta_description>
<language id="1" xlink:href="http://demo1.it2care.com/shop/api/languages/1">
<![CDATA[product1]]>
</language>
<language id="2" xlink:href="http://demo1.it2care.com/shop/api/languages/2">
<![CDATA[produto1]]>
</language>
</meta_description>
</product>
그것은 더 많은 특성을 가지고 있지만 이들 관련이 있습니다. 'date_upd'올바르게 언 마샬링되고 있지만 'meta_description'해결할 수 없습니다. 'MetaDescription'필드 안에 'Language'객체 목록이 있지만 '언어'노드에서 'id'attr을 얻을 수는 있지만 'Language'값을 가져올 수 없습니다. 제공된 XML 예제에서 'meta_description'은 2 개의 요소가있는 List입니다. 두 목록 요소에서 'ID'는 올바르게 채워지지만 'product1'대신 'language'에서 가져옵니다.
어떤 힌트를 주시겠습니까? 대단히 감사드립니다.