我需要处理大型XML文档,但有时会出现错误处理缺失属性数据的情况。与其忽略缺失的属性,它们通常被指定为空字符串值。这在取消编组时会导致问题,因为空字符串本身已经是一个值。
例如,原本应该是:
<SOME_ELEMENT attr1="someValue"/>
相反地
<SOME_ELEMENT attr1="someValue" attr2="" attr3=""/>
我正在试图优雅地处理这个格式不正确的XML的方法。目标是在属性值为空字符串时将属性视为省略,并且空字符串从未是该属性(例如Integers)的有效值。我目前使用XML适配器将这些空字符串翻译成null(如此帖子中建议的那样),但这似乎是错误的解决方案。我正在处理的文档中的许多属性已经使用了来自其他代码的类型适配器,而且似乎没有一种方法可以为属性指定多个XML适配器。
有没有我忽略了的标准方法来处理这种情况?
谢谢!
编辑
我正在寻找一种解决方案,不需要我编辑各种JAXB映射类,因为有几十个都有相同的需求。理想情况下,解决此问题的解决方案将允许我为所有属性指定通用策略,并在必要时允许特定的覆盖。