【问题标题】:@NotNull for Double in XML Validation@NotNull 用于 XML 验证中的 Double
【发布时间】:2018-05-27 10:42:35
【问题描述】:

我需要使用 JSR-303 注释在输入中验证 XML 的结构。所以我希望我的 XML 包含所有必需的标签,如果 XML 标签根本不包含任何值,我会接受。 所以必须有所有的标签,它们可以是空的。

问题是,如果 @NotNull 注释适用于字符串(所以我可以在其中包含没有值的 xml 标签),对于 Double 变量我不能使用它,因为如果我清空标签,它会返回我这样的错误我也删除了标签。

举个例子:

<extTag>
  <myString>Hello</myString>   -> @NotNull String myString; -> OK!
</extTag>

<extTag>
  <myString></myString>        -> @NotNull String myString; -> OK!
</extTag>

<extTag>
                               -> @NotNull String myString; -> ERROR!
</extTag>

对于 Double 我想拥有相同的控件,但是当值为 null 时,我得到了错误!

<extTag>
  <myDouble>12.00</myDouble>   -> @NotNull Double myDouble; -> OK!
</extTag>

<extTag>
  <myDouble></myDouble>        -> @NotNull Double myDouble; -> ERROR!
</extTag>

<extTag>
                               -> @NotNull Double myDouble; -> ERROR!
</extTag>

我能否使用注释为 Double 变量获得相同的行为 od 字符串?

【问题讨论】:

    标签: java xml data-binding annotations bean-validation


    【解决方案1】:

    也许您应该使用不同的技术来验证XML 结构,使用XML Schema Definition (XSD) 或使用解析器迭代漏洞文档。

    我认为您对 XML 和 Bean 验证有点困惑,请记住 XML 存储 Bean 值的 String 表示,而 JSR-303 是关于值验证的:

    • 对于String,你有一个空值表示,这:&lt;myString&gt;&lt;/myString&gt; 很好,因为它等同于""

    • 对于Double,没有空表示,所以这个&lt;myDouble&gt;&lt;/myDouble&gt;是一个空值。

    【讨论】:

      猜你喜欢
      • 2019-01-07
      • 1970-01-01
      • 2017-11-22
      • 2014-09-23
      • 2014-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      相关资源
      最近更新 更多