gpt4 book ai didi

jaxb - 如何使用 JAX-WS/JAXB 中的 schemaValidation 验证非空元素

转载 作者:行者123 更新时间:2023-12-03 17:58:37 26 4
gpt4 key购买 nike

我正在使用 JAX-WS 实现 java-first web 服务并尝试使用 @SchemaValidation验证我的 webMethod 参数中的必需元素。
这是我声明所需属性的方式;
@XmlElement(required=true)完美地映射我的 wsdl 模式(minOccur 不再是 0)但是 schemaValidation 不验证传递的空元素。

@XmlElement(required=true, nillable=false)
public String getClubName() {
return clubName;
}

任何使用我的 API 的客户端都可以传递 null 元素。我没有办法使用 JAXB 来防止这种情况。

另一方面,bean 验证的工作方式如下。但是不适用于字符串字段
@Column(name = "FOUNDATION_YEAR", nullable = false) 
private Integer foundationYear; //schemaValidation validates

@Column(name = "CLUB_NAME", length=100, nullable = false)
private String clubName; //schemaValidation does not validate

如何使用 schemaValidation 来验证字符串值?一种方法是设置限制,但在使用 java-first Web 服务时不能这样做
<xsd:simpleType name="NotEmptyString">
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
</xsd:restriction>
</xsd:simpleType>

相关文章;

Validation for generated JAXB Classes (JSR 303 / Spring)

How to enable schema validation so that JAXB rejects empty element?

最佳答案

显然你可以像说 here 那样使用 JAXB 来做到这一点。 .或者可能使用架构验证框架,如 here 所述.但是,恕我直言,这两种方法都给代码增加了太多的困惑,所以我会选择 Guava's Preconditions ,这为您提供了一种快速而干净的方法。太糟糕了,没有对此 =/的自动支持。

关于jaxb - 如何使用 JAX-WS/JAXB 中的 schemaValidation 验证非空元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6930094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com