Я реализую первые в Java веб-службы, используя JAX-WS, и пытаюсь использовать @SchemaValidation
для проверки необходимых элементов, которые есть в моих параметрах webMethod.вот как я объявляю свой обязательный атрибут:
@XmlElement(required=true)
отображает мою схему wsdl идеально (minOccur больше не 0), но schemaValidation не проверяет переданные нулевые элементы.
@XmlElement(required=true, nillable=false)
public String getClubName() {
return clubName;
}
Любой клиент, использующий мой API, может передавать нулевые элементы.У меня нет способа предотвратить это с помощью JAXB.
С другой стороны, проверка бинов работает следующим образом.Однако не для строковых полей
@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
<xsd:simpleType name="NotEmptyString">
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
связанных сообщений;
Проверка для сгенерированных классов JAXB (JSR 303 / Spring)
Как включить проверку схемы, чтобы JAXB отклонял пустой элемент?