2014-11-03 25 views
2

我試圖來解讀XML的下面幾行:JAXB解組找到一個預期標記和失敗,因爲它是意外

<?xml version="1.0" encoding="utf-8"?> 
<StazioneStatusBikeMi xmlns="http://atm.it/" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

    <IdStazione>1</IdStazione> 
    <OraAggiornamento>2013-04-04T14:49:03</OraAggiornamento> 
    <BiciDisponibili>20</BiciDisponibili> 
    <BiciRotte>0</BiciRotte> 
    <StalliVuoti>4</StalliVuoti> 
    <StalliRotti>0</StalliRotti> 
    <StalliTotale>24</StalliTotale> 
</StazioneStatusBikeMi> 

我不得不使用JAXB來解讀它。

的問題是解組方法拋出以下異常:

unexpected element (uri:"http://atm.it/", local:"StazioneStatusBikeMi"). Expected elements are <{http://atm.it}StazioneStatusBikeMi> 

看起來完美給我... 我在哪裏錯了?

我複製類我使用來解讀:

@XmlRootElement(name = "StazioneStatusBikeMi", namespace="http://atm.it") 
@XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 
public class StazioneStatusBikeMi extends BaseDTO { 

    private int idStazione; 
    private Timestamp oraAggiornamento; 
    private int biciDisponibili; 
    private int biciRotte; 
    private int stalliVuoti; 
    private int stalliRotti; 
    private int stalliTotale; 

    public StazioneStatusBikeMi() { 
     super(); 
    } 

    public StazioneStatusBikeMi(int idStazione, Timestamp oraAggiornamento, 
     int biciDisponibili, int biciRotte, int stalliVuoti, 
     int stalliRotti, int stalliTotale) { 
     super(); 
     this.idStazione = idStazione; 
     this.oraAggiornamento = oraAggiornamento; 
     this.biciDisponibili = biciDisponibili; 
     this.biciRotte = biciRotte; 
     this.stalliVuoti = stalliVuoti; 
     this.stalliRotti = stalliRotti; 
     this.stalliTotale = stalliTotale; 
    } 

    @XmlElement(name = "IdStazione") 
    public int getIdStazione() { 
     return idStazione; 
    } 


    public void setIdStazione(int idStazione) { 
     this.idStazione = idStazione; 
    } 

    @XmlElement(name = "OraAggiornamento") 
    public Timestamp getOraAggiornamento() { 
     return oraAggiornamento; 
    } 

    public void setOraAggiornamento(Timestamp oraAggiornamento) { 
     this.oraAggiornamento = oraAggiornamento; 
    } 

    @XmlElement(name = "BiciDisponibili") 
    public int getBiciDisponibili() { 
     return biciDisponibili; 
    } 

    public void setBiciDisponibili(int biciDisponibili) { 
     this.biciDisponibili = biciDisponibili; 
    } 

    @XmlElement(name = "BiciRotte") 
    public int getBiciRotte() { 
     return biciRotte; 
    } 

    public void setBiciRotte(int biciRotte) { 
     this.biciRotte = biciRotte; 
    } 

@XmlElement(name = "StalliVuoti") 
    public int getStalliVuoti() { 
     return stalliVuoti; 
    } 

    public void setStalliVuoti(int stalliVuoti) { 
     this.stalliVuoti = stalliVuoti; 
    } 

    @XmlElement(name = "StalliRotti") 
    public int getStalliRotti() { 
     return stalliRotti; 
    } 

    public void setStalliRotti(int stalliRotti) { 
     this.stalliRotti = stalliRotti; 
    } 

    @XmlElement(name = "StalliTotale") 
    public int getStalliTotale() { 
     return stalliTotale; 
    } 

    public void setStalliTotale(int stalliTotale) { 
     this.stalliTotale = stalliTotale; 
    } 
} 

謝謝您的幫助! 裏克

回答

3

心靈最後的斜線:

<StazioneStatusBikeMi xmlns="http://atm.it/" ... 
            here^

應該是http://atm.it

一個錯誤消息中明確提示了:

Expected elements are <{http://atm.it}StazioneStatusBikeMi> 
            ^
+0

已經嘗試過有和沒有結尾的斜線... 一切都沒有改變... :( – 2014-11-03 20:00:58

+0

@RiccardoCipolleschi好吧,讓我用'意想不到的堆棧跟蹤元素(uri:「http://atm.it」,本地:「StazioneStatusBikeMi」)。預期的元素首先是<{http://atm.it} StazioneStatusBikeMi>'(即沒有斜線) – lexicore 2014-11-03 20:09:47

+0

我不知道我之前犯的錯誤是什麼......我用尾部斜線再次嘗試,結果如此......:D – 2014-11-03 20:48:24

相關問題