Java 使用XML进行Bean验证:字段上的多个相同约束

Java 使用XML进行Bean验证:字段上的多个相同约束,java,xml,validation,Java,Xml,Validation,在Java 8中引入@Repeatable之前,字段上不允许有多个相同的注释。对于XMLBean验证,解决方法是在约束注释内创建嵌套的@List注释。例如,如中所述,嵌套在javax.validation.constraints.NotNull中,您有: @interface List { NotNull[] value(); } 当直接在java代码中使用注释时(通常是这样),可以定义多个@NotNull注释: @NotNull.List({@NotNull(groups=Foo.cl

在Java 8中引入
@Repeatable
之前,字段上不允许有多个相同的注释。对于XMLBean验证,解决方法是在约束注释内创建嵌套的@List注释。例如,如中所述,嵌套在
javax.validation.constraints.NotNull
中,您有:

@interface List {

  NotNull[] value();
}
当直接在java代码中使用注释时(通常是这样),可以定义多个
@NotNull
注释:

@NotNull.List({@NotNull(groups=Foo.class, message="myObject may not be null for Foo"), 
               @NotNull(groups=Bar.class, message="myObject may not be null for Bar"})
private Object myObject;
但是,我尝试在xml文件中而不是在代码中配置验证(这是不太常见的)

我的xml bean验证如下所示:

<field name="myObject">
  <constraint annotation="javax.validation.constraints.NotNull">
    <message>myObject may not be null for Foo</message>
    <groups>
      <value>my.package.Foo</value>
    </groups>
  </constraint>
  <constraint annotation="javax.validation.constraints.NotNull">
    <message>myObject may not be null for Bar</message>
    <groups>
      <value>my.package.Bar</value>
    </groups>
  </constraint>
</field>

对于Foo,myObject不能为null
my.package.Foo
对于Bar,myObject不能为空
我的包
这对我不起作用。。。当我这样做的时候,验证根本不会发生

我已经在xsd:中寻找了线索,但我没有找到合并
@NotNull.List
的方法

在xml中使用多个相同约束的正确方法是什么