3

我有这样的事情:

Java 类

.....
@XStreamAlias("SOME_TAG")
    private String someAttribute;
.....

<ROOT>
    <ANOTHER_TAG>VALUE</ANOTHER_TAG>
</ROOT>

在我的xml中我需要有这个“SOME_TAG”,如果由于某种原因它丢失了我需要抛出一个异常。

我可以用 XStream 做吗?

问候

4

2 回答 2

1

我不是 xstream 的实验用户,但我会这样做:

  1. 创建一个 dtd 文件或 xsd 文件,您可以在其中指定所需的元素,然后您可以根据 dtd 或 xsd 文件验证 xml 文件。或者,
  2. 在类中创建一个验证方法,用于验证任何字段是否为空或您需要执行的任何其他验证。
于 2012-09-12T14:58:51.757 回答
1

纯粹使用 XStream 我认为你有两个选择:

  1. XStream 使用与 JDK 序列化相同的机制,因此您可以简单地Object readResolve()在您的类中实现一个正在反序列化的方法。此方法在对象已初始化并且所有字段都由 XStream 设置后调用,因此您可以使用此方法检查您的someAttribute字段是否存在null- 如果是,则可以抛出异常。(可以在此处找到 XStream 的示例:http: //x-stream.github.io/faq.html#Serialization_initialize_transient

  2. 另一种选择是为您的班级编写一个自定义转换器,并在那里检查该字段是否已填写。

于 2012-09-14T09:38:01.180 回答