Uri不是绝对的

时间:2012-09-05 19:25:11

标签: java jaxb

我正在尝试使用方法Jaxb.unmarshall(String,Class)解组以下xml文件。我总是得到错误:

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 个答案:

答案 0 :(得分:1)

以下是xml示例中的working Java unmarshalling example

你有一个名为spieltag的根元素和一个也称为spieltag的内部元素。如果您在XMLSchema中没有很好地定义它,那么这可能会导致问题。在示例中,我使用spieltag2作为内部spieltag元素。

另外,不要忘记使用正确的@XmlSchema编译package-info.java:

如上所述here,您可以在@XmlSchema类上使用package-info注释来控制命名空间限定。如果你已经编写了一个package-info类,请确保它正在被编译(某些版本的ant在package-info类中有问题)。

<强>包信息

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

了解更多信息