我有一个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;
}
答案 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.