java - Jaxb - 忽略未知属性

标签 java xml jaxb

我有一个包含枚举“ActionType”的父类。

@XmlRootElement(name="Action")
public class ActionDto {
[...] ActionType type;
}

以及一些扩展 ActionDto 并具有更多特殊属性(例如密码(LoginDto))的子类。

这是一个服务器-客户端连接。 我想将一些数据从客户端发送到服务器。所以我将其序列化(我使用 Jaxb) 并将其反序列化为 ActionDto 对象。

LoginDto-Object 的示例:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Action>
<type>LOGIN</type>
<password>Testpassword</password>
</Action>

如果我想将其反序列化为 ActionDto 对象,我会收到错误 - 我认为这是由密码属性引起的。我可以让 Jaxb-unmarshaller 忽略那些未知属性吗?

是否还有其他可能性将其直接解码到我的 LoginDto-Object(服务器仅接收一个 xml-String,我不知道特殊类型)?

最佳答案

默认情况下,JAXB 实现将忽略未知元素。如果抛出异常,则 Unmarshaller 上的默认 ValidationEventHandler 已被替换。您需要将敏感度较低的一项替换为敏感度较低的一项。

关于java - Jaxb - 忽略未知属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27711859/

相关文章:

java - 将事件/回调绑定(bind)到 Java 中的关键字

java - Maven 没有将测试资源部署到嵌入式服务器

c# - 在调用 Handle() 之前使用 Nservice 总线从 MSMQ 读取消息正文(原始 xml)

java - 注释节点 JaxB 编码

java - 将 Moxy 设置为默认 jaxb 实现提供者

java - 流/fork-join 如何线程安全地访问数组?

java - 如何定义以连字符命名的任务?

c# - 如何正确序列化 DateTime?

xml - 使用 perl XML::LibXML 解析 XML

java - 在 Jersey 中使用 JAXB 解析 JSON