2012-09-05 70 views
1

我試圖用Jaxb.unmarshall(String,Class)的方法解組下面的xml文件。我總是得到錯誤:Uri不是絕對的

Exception in thread "main" java.lang.IllegalArgumentException: URI is not absolute:

XML文件:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<spieltag xmlns="http://arnezelasko.de/spieltag"> 
<game> 
    <spieltag>28</spieltag> 
    <nummer>1</nummer> 
    <beginn>2010-03-26 20:30:00</beginn> 
    <mannschaft_heim><![CDATA[VfL Bochum]]></mannschaft_heim> 
    <mannschaft_gast><![CDATA[Eintracht Frankfurt]]></mannschaft_gast> 
    <tore_heim_halbzeit>1</tore_heim_halbzeit> 
    <tore_gast_halbzeit>1</tore_gast_halbzeit> 
    <tore_heim_ergebnis>1</tore_heim_ergebnis> 
    <tore_gast_ergebnis>2</tore_gast_ergebnis> 
</game> 
<game> 
    <spieltag>28</spieltag> 
    <nummer>2</nummer> 
    <beginn>2010-03-27 15:30:00</beginn> 
    <mannschaft_heim><![CDATA[Bayern München]]></mannschaft_heim> 
    <mannschaft_gast><![CDATA[VfB Stuttgart]]></mannschaft_gast> 
    <tore_heim_halbzeit></tore_heim_halbzeit> 
    <tore_gast_halbzeit></tore_gast_halbzeit> 
    <tore_heim_ergebnis></tore_heim_ergebnis> 
    <tore_gast_ergebnis></tore_gast_ergebnis> 
</game> 

+1

後的完整代碼ü[R使用unmarshallinjg –

+0

你能不能給我們的XMLSchema的?您是否使用xjc從xmlschema生成了java文件? –

+0

我在jaxb Unmarshaller上看不到'unmarshall(String,Class)'方法嗎? – jtahlborn

回答

1

這裏是你的XML例如working Java unmarshalling example

您有一個名爲spieltag的根元素和一個也稱爲spieltag的內部元素。如果您在XMLSchema中沒有很好地定義這個,可能會導致問題。在這個例子中,我使用spieltag2作爲內部spieltag元素。

另外,不要忘記編譯package-info.java用正確的@XmlSchema

至於說here,您可以使用@XmlSchema註釋上package-info類控制的命名空間的資格。如果您已經編寫了package-info類,請確保它正在編譯中(某些版本的ant與package-info類有問題)。

包信息

@XmlSchema( 
    namespace = "http://arnezelasko.de/spieltag", 
    elementFormDefault = XmlNsForm.QUALIFIED) 
package de.arnezelasko.spieltag; 

更多信息

相關問題