【发布时间】:2015-04-15 16:10:03
【问题描述】:
我有一个包含某些属性的 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;
}
【问题讨论】:
-
我对@987654326@ 的看法是,它不是无用的,仅用于文档范围。你可以在你的类上定义一个
afterUnmarshal()method,它以编程方式验证对象的状态,如果它不喜欢它就会抛出异常。但是,如果您想要一个有效的验证,您应该考虑为您创建一个XSD架构XML。 -
我的 xml 很大,如何从 xml 生成 xsd?是不是还有别的办法?
-
您可以从 java 类 see this question 或 XML this 站点生成 XSD。另见here。