Java SimpleXML元素“x”已与“x”一起使用

Java SimpleXML元素“x”已与“x”一起使用,java,xml,simple-framework,Java,Xml,Simple Framework,我试图处理一些将自己重新定义为孩子的XML。我的意思是,我有以下XML片段: <ns4:Warning> <ns4:Symptom DTCList="2~3~600E18~C2797~NONE" sortOrder="5460"> <ns4:Symptom>Symptom description ...</ns4:Symptom> </ns4:Symptom> </<ns4:Warning&g

我试图处理一些将自己重新定义为孩子的XML。我的意思是,我有以下XML片段:

<ns4:Warning>
    <ns4:Symptom DTCList="2~3~600E18~C2797~NONE" sortOrder="5460">
        <ns4:Symptom>Symptom description ...</ns4:Symptom>
    </ns4:Symptom>
</<ns4:Warning>
警告等级:

@Root(name = "Warning")
public class Warning {
    @Element(name = "Symptom") SymptomNS4 symptom;
}
症状4级:

@Root(name = "Symptom")
public class SymptomNS4 {
    @Attribute(name = "DTCList") String dtcList;
    @Attribute(name = "sortOrder") String sortOrder;
    @Element(name = "Symptom") String symptom;
}

显然,我采取的方法不起作用。如何在SimpleXML中为这段XML建模?

您使用的是当前版本的simple吗?如果您已经用序列化测试了这些类,它们就可以工作了。顺便说一句,他们缺少@Namespace,您的xml中有一个输入错误是的,我使用的是SimpleXML2.7.1,这是Maven中央存储库上显示的最新版本。这里看不到@Namespace的原因是,由于使用ns4名称空间的其他元素,它在更高的级别上定义得更远。您正在测试序列化还是反序列化?反序列化,获取XML文档并将其分解为Java对象。好的,您可以使用相反的测试方向:获取对象,序列化它并检查结果是否有效。因此,至少您的注释是正确的。