2012-07-15 106 views
1

我有下面的XML格式:XML綁定與JAXB註釋

<repositories> 
    <set> 
     <id>1</id> 
     <name>First</name> 
     <spec>data</spec> 
    </set> 
    <set> 
     <id>2</id> 
     <name>INFO</name> 
     <spec>main</spec> 
    </set> 
     . 
     . 
</repositories> 

我創建以下package-info.java

@javax.xml.bind.annotation.XmlSchema (
elementFormDefault=XmlNsForm.QUALIFIED, 
xmlns = {} 
) 

package website.model; 

import javax.xml.bind.annotation.XmlNsForm; 

及以下類:

@XmlRootElement 
@XmlAccessorType(XmlAccessType.FIELD) 
public class Repositories { 

@XmlElement 
private ListofRepositories repositories; 

public ListofRepositories getRepositories() { 
    return repositories; 
} 

public void setRepositories(ListofRepositories repositories) { 
    this.repositories = repositories; 
} 

} 

包裝套

@XmlAccessorType(XmlAccessType.FIELD) 
public class ListofRepositories { 

private List<Sets> set; 

public List<Sets> getSet() { 
    return set; 
} 

public void setSet(List<Sets> set) { 
    this.set = set; 
} 

} 

而且數據:

@XmlAccessorType(XmlAccessType.FIELD) 
public class Sets { 

private Long id; 
private String name; 
private String spec; 

//get set 

} 

我不知道爲什麼這是行不通的。響應始終爲空。我使用Java和JAXB註釋實現了類似的流程,我從來沒有遇到過這種問題。有誰知道什麼是錯的,我該如何解決它?

+0

清晰。上面的類結構需要上述xml或xml的類結構嗎? – 2012-07-15 18:23:16

+0

我需要檢索以下xml格式。所以我需要提供確切的結構才能成功。 – 2012-07-15 18:58:26

回答

2

對於上面的XML,你需要下面的類結構:

@XmlRootElement(name="repositories") 
@XmlAccessorType(XmlAccessType.FIELD) 
public class Repositories { 

@XmlElement 
private List<Sets> set; 

//getter and setter 

} 

@XmlAccessorType(XmlAccessType.FIELD) 
public class Sets { 

private Long id; 
private String name; 
private String spec; 

//getter and setter 

} 

但是,根據您的類結構,你會得到下面的XML:

<Repositories> 
    <repositories> 
    <set> 
     <id></id> 
     <name></name> 
     <spec></spec> 
    </set> 
    <set> 
     <id></id> 
     <name></name> 
     <spec></spec> 
    </set> 
    . 
    . 
    . 
    </repositories> 
</Repositories> 
+0

我只想檢索問題中提到的格式。標籤<存儲庫>不應該出現。我試圖實現你的建議,但它沒有奏效。 – 2012-07-15 19:05:30

+0

查看更新。我已添加名稱屬性 – 2012-07-15 19:11:23

1

與JAXB你也可以生成從XSD文件這些類 - 和檢查對XSD傳入的XML(它會顯示爲什麼它不會接受它)