如何在java中的xml中找到缺少的属性

时间:2015-04-13 06:58:30

标签: java xml parsing jaxb

我有一个XML文件,其中我有一些属性。我有实现类来解析文件以获取值。但是,当我测试缺失值时,它工作正常。我的程序在运行时想要抛出错误或警告。请给我一个解决方案。

示例" hello.xml"

<head>
<welcome>Hi</welcome>
<id>1</id>
<uname>chill</uname>
<persons>
<person>
<name>1</name>
<age>23</age>
<city>huils</city>
</person>
<person>
<name>2</name>
<age>23</age>
<city>huils</city>
</person>
<person>
<name>3</name>

</person>
</persons>
</head>

现在第3个人我缺少属性和标签年龄和城市。但我的程序工作正常,没有抛出错误。怎么了。

实施计划:

@XmlElementWrapper(name="welcome")
    public void setwelcome(String welcome) {
        welcome= welcome;
    }

@XmlElement (name = "id")
    public void setid(String id) {
        id= id;
    }

    @XmlElement (name = "id")
    public void setid(String id) {
        id= id;
    }

    @XmlElement (name = "name")
    public void setname(String name) {
        name= name;
    }


    @XmlElement(name="age")
    public void setage(String age) {
        age= age;
    }

   @XmlElement(name="city")
    public void setage(String city) {
        city= city;
    }

2 个答案:

答案 0 :(得分:0)

您必须使用required annotation property将所需元素标记为必填元素。默认值为false,因此缺少的元素不会触发错误。

@XMLElement(name=<name>, required=true)

至于属性,它的工作方式相同,你必须将它们标记为required

@XmlAttribute(required=true)

答案 1 :(得分:-1)

一般来说,最好不要手动编写JAXB java代码,而是从 xsd 文件生成它。您还可以将xsd用于验证xml ,以防止在将其映射到Java对象期间出现任何解析问题。如果以这种方式执行并且xml不匹配,那么您将获得更复杂的错误消息,这有助于识别问题。

Here is how to generate JAXB java classes from xsd in Eclipse.