1

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

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>

4

1 回答 1

1

这是您的 xml 示例中的一个有效的 Java 解组示例。

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

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

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

包信息

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

了解更多信息

于 2012-09-06T14:49:28.467 回答