This is an automated email from the ASF dual-hosted git repository.
jungm pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bval.git
The following commit(s) were added to refs/heads/master by this push:
new cc95ff5 Bump jakarta.validation:jakarta.validation-api from 3.1.0 to
3.1.1 (#176)
cc95ff5 is described below
commit cc95ff5a878e576b60fdf3582fca4c18e394b4d7
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
AuthorDate: Fri Feb 28 08:59:53 2025 +0100
Bump jakarta.validation:jakarta.validation-api from 3.1.0 to 3.1.1 (#176)
* Bump jakarta.validation:jakarta.validation-api from 3.1.0 to 3.1.1
Bumps
[jakarta.validation:jakarta.validation-api](https://github.com/jakartaee/validation)
from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/jakartaee/validation/releases)
- [Commits](https://github.com/jakartaee/validation/compare/3.1.0...3.1.1)
---
updated-dependencies:
- dependency-name: jakarta.validation:jakarta.validation-api
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <[email protected]>
* integrate 3.1 XSDs
---------
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot]
<49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Markus Jung <[email protected]>
---
bval-jsr/pom.xml | 4 +-
.../org/apache/bval/jsr/metadata/XmlBuilder.java | 2 +-
.../bval/jsr/xml/ValidationMappingParser.java | 2 +
.../org/apache/bval/jsr/xml/ValidationParser.java | 2 +
bval-jsr/src/main/xjb/binding-customization.xjb | 4 +-
.../src/main/xsd/validation-configuration-3.1.xsd | 108 +++++++
bval-jsr/src/main/xsd/validation-mapping-3.1.xsd | 321 +++++++++++++++++++++
.../apache/bval/jsr/xml/ValidationParserTest.java | 8 +
.../src/test/resources/sample-validation31.xml | 30 ++
pom.xml | 2 +-
10 files changed, 477 insertions(+), 6 deletions(-)
diff --git a/bval-jsr/pom.xml b/bval-jsr/pom.xml
index 1e37d26..d9c9cfa 100644
--- a/bval-jsr/pom.xml
+++ b/bval-jsr/pom.xml
@@ -270,8 +270,8 @@
<extension>true</extension>
<enableIntrospection>true</enableIntrospection>
<sources>
-
<source>${project.basedir}/src/main/xsd/validation-configuration-3.0.xsd</source>
-
<source>${project.basedir}/src/main/xsd/validation-mapping-3.0.xsd</source>
+
<source>${project.basedir}/src/main/xsd/validation-configuration-3.1.xsd</source>
+
<source>${project.basedir}/src/main/xsd/validation-mapping-3.1.xsd</source>
</sources>
</configuration>
<dependencies>
diff --git
a/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/XmlBuilder.java
b/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/XmlBuilder.java
index ba2f4f3..775b02f 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/XmlBuilder.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/XmlBuilder.java
@@ -82,7 +82,7 @@ import
org.apache.commons.weaver.privilizer.Privilizing.CallTo;
public class XmlBuilder {
//@formatter:off
public enum Version {
- v10("1.0"), v11("1.1"), v20("2.0"), v30("3.0");
+ v10("1.0"), v11("1.1"), v20("2.0"), v30("3.0"), v31("3.1");
//@formatter:on
static Version of(ConstraintMappingsType constraintMappings) {
diff --git
a/bval-jsr/src/main/java/org/apache/bval/jsr/xml/ValidationMappingParser.java
b/bval-jsr/src/main/java/org/apache/bval/jsr/xml/ValidationMappingParser.java
index b9763f4..12af226 100644
---
a/bval-jsr/src/main/java/org/apache/bval/jsr/xml/ValidationMappingParser.java
+++
b/bval-jsr/src/main/java/org/apache/bval/jsr/xml/ValidationMappingParser.java
@@ -61,6 +61,8 @@ public class ValidationMappingParser implements
MetadataSource {
"META-INF/validation-mapping-2.0.xsd")
.add(XmlBuilder.Version.v30.getId(),
"https://jakarta.ee/xml/ns/validation/mapping",
"META-INF/validation-mapping-3.0.xsd")
+ .add(XmlBuilder.Version.v31.getId(),
"https://jakarta.ee/xml/ns/validation/mapping",
+ "META-INF/validation-mapping-3.1.xsd")
.build();
private ApacheValidatorFactory validatorFactory;
diff --git
a/bval-jsr/src/main/java/org/apache/bval/jsr/xml/ValidationParser.java
b/bval-jsr/src/main/java/org/apache/bval/jsr/xml/ValidationParser.java
index d85ac10..3baac4d 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/xml/ValidationParser.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/xml/ValidationParser.java
@@ -69,6 +69,8 @@ public class ValidationParser {
"META-INF/validation-configuration-2.0.xsd")
.add(XmlBuilder.Version.v30.getId(),
"https://jakarta.ee/xml/ns/validation/configuration",
"META-INF/validation-configuration-3.0.xsd")
+ .add(XmlBuilder.Version.v31.getId(),
"https://jakarta.ee/xml/ns/validation/configuration",
+ "META-INF/validation-configuration-3.1.xsd")
.build();
private static String getValidationXmlFile(String file) {
diff --git a/bval-jsr/src/main/xjb/binding-customization.xjb
b/bval-jsr/src/main/xjb/binding-customization.xjb
index 9a2fbab..3bebb37 100644
--- a/bval-jsr/src/main/xjb/binding-customization.xjb
+++ b/bval-jsr/src/main/xjb/binding-customization.xjb
@@ -22,7 +22,7 @@
xmlns:xjc="https://jakarta.ee/xml/ns/jaxb"
version="3.0">
- <jxb:bindings schemaLocation="../xsd/validation-mapping-3.0.xsd"
node="/xs:schema">
+ <jxb:bindings schemaLocation="../xsd/validation-mapping-3.1.xsd"
node="/xs:schema">
<jxb:globalBindings>
<!-- adapter attribute not supported anymore
<xjc:javaType name="java.lang.String" xmlType="xs:string"
@@ -34,7 +34,7 @@
</jxb:bindings>
</jxb:bindings>
- <jxb:bindings schemaLocation="../xsd/validation-configuration-3.0.xsd"
node="/xs:schema">
+ <jxb:bindings schemaLocation="../xsd/validation-configuration-3.1.xsd"
node="/xs:schema">
<jxb:bindings node="//xs:element[@name='executable-type']">
<jxb:javaType name="jakarta.validation.executable.ExecutableType"
parseMethod="jakarta.validation.executable.ExecutableType.valueOf"/>
diff --git a/bval-jsr/src/main/xsd/validation-configuration-3.1.xsd
b/bval-jsr/src/main/xsd/validation-configuration-3.1.xsd
new file mode 100644
index 0000000..00734ed
--- /dev/null
+++ b/bval-jsr/src/main/xsd/validation-configuration-3.1.xsd
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<xs:schema attributeFormDefault="unqualified"
+ elementFormDefault="qualified"
+ targetNamespace="https://jakarta.ee/xml/ns/validation/configuration"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:config="https://jakarta.ee/xml/ns/validation/configuration"
+ version="3.1">
+
+ <xs:annotation>
+ <xs:documentation><![CDATA[
+ This is the XML Schema for the Jakarta Validation configuration
file.
+ The configuration file must be named "META-INF/validation.xml".
+
+ Jakarta Validation configuration files must indicate the Jakarta
Validation
+ XML schema by using the validation namespace:
+
+ https://jakarta.ee/xml/ns/validation/configuration
+
+ and indicate the version of the schema by using the version
attribute
+ as shown below:
+
+ <validation-config
+ xmlns="https://jakarta.ee/xml/ns/validation/configuration"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ https://jakarta.ee/xml/ns/validation/configuration
+
https://jakarta.ee/xml/ns/validation/validation-configuration-3.1.xsd"
+ version="3.1">
+ [...]
+ </validation-config>
+ ]]>
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="validation-config" type="config:validation-configType"/>
+ <xs:complexType name="validation-configType">
+ <xs:sequence>
+ <xs:element type="xs:string" name="default-provider" minOccurs="0"/>
+ <xs:element type="xs:string" name="message-interpolator" minOccurs="0"/>
+ <xs:element type="xs:string" name="traversable-resolver" minOccurs="0"/>
+ <xs:element type="xs:string" name="constraint-validator-factory"
minOccurs="0"/>
+ <xs:element type="xs:string" name="parameter-name-provider"
minOccurs="0"/>
+ <xs:element type="xs:string" name="clock-provider" minOccurs="0"/>
+ <xs:element type="xs:string" name="value-extractor" maxOccurs="unbounded"
+ minOccurs="0"/>
+ <xs:element type="config:executable-validationType"
name="executable-validation"
+ minOccurs="0"/>
+ <xs:element type="xs:string" name="constraint-mapping"
maxOccurs="unbounded"
+ minOccurs="0"/>
+ <xs:element type="config:propertyType" name="property"
maxOccurs="unbounded"
+ minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="version" type="config:versionType" fixed="3.0"
use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="executable-validationType">
+ <xs:sequence>
+ <xs:element type="config:default-validated-executable-typesType"
+ name="default-validated-executable-types" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="enabled" use="optional" type="xs:boolean"
default="true"/>
+ </xs:complexType>
+ <xs:complexType name="default-validated-executable-typesType">
+ <xs:sequence>
+ <xs:element name="executable-type" maxOccurs="unbounded" minOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="NONE"/>
+ <xs:enumeration value="CONSTRUCTORS"/>
+ <xs:enumeration value="NON_GETTER_METHODS"/>
+ <xs:enumeration value="GETTER_METHODS"/>
+ <xs:enumeration value="ALL"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="propertyType">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="name" use="required" type="xs:string"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:simpleType name="versionType">
+ <xs:restriction base="xs:token">
+ <xs:pattern value="[0-9]+(\.[0-9]+)*" />
+ </xs:restriction>
+ </xs:simpleType>
+</xs:schema>
\ No newline at end of file
diff --git a/bval-jsr/src/main/xsd/validation-mapping-3.1.xsd
b/bval-jsr/src/main/xsd/validation-mapping-3.1.xsd
new file mode 100644
index 0000000..add4b00
--- /dev/null
+++ b/bval-jsr/src/main/xsd/validation-mapping-3.1.xsd
@@ -0,0 +1,321 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<xs:schema attributeFormDefault="unqualified"
+ elementFormDefault="qualified"
+ targetNamespace="https://jakarta.ee/xml/ns/validation/mapping"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:map="https://jakarta.ee/xml/ns/validation/mapping"
+ version="3.1">
+
+ <xs:annotation>
+ <xs:documentation><![CDATA[
+ This is the XML Schema for Jakarta Validation constraint mapping
files.
+
+ Jakarta Validation constraint mapping files must indicate the
Jakarta Validation
+ XML schema by using the constraint mapping namespace:
+
+ https://jakarta.ee/xml/ns/validation/mapping
+
+ and indicate the version of the schema by using the version
attribute
+ as shown below:
+
+ <constraint-mappings
+ xmlns="https://jakarta.ee/xml/ns/validation/mapping"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ https://jakarta.ee/xml/ns/validation/mapping
+
https://jakarta.ee/xml/ns/validation/validation-mapping-3.1.xsd"
+ version="3.1">
+ ...
+ </constraint-mappings>
+ ]]>
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="constraint-mappings" type="map:constraint-mappingsType"/>
+
+ <xs:complexType name="payloadType">
+ <xs:sequence>
+ <xs:element type="xs:string" name="value" maxOccurs="unbounded"
minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="groupsType">
+ <xs:sequence>
+ <xs:element type="xs:string" name="value" maxOccurs="unbounded"
minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="groupSequenceType">
+ <xs:sequence>
+ <xs:element type="xs:string" name="value" maxOccurs="unbounded"
minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="groupConversionType">
+ <xs:attribute type="xs:string" name="from" use="optional"/>
+ <xs:attribute type="xs:string" name="to" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="constraint-mappingsType">
+ <xs:sequence>
+ <xs:element type="xs:string" name="default-package" minOccurs="0"/>
+ <xs:element type="map:beanType"
+ name="bean"
+ maxOccurs="unbounded"
+ minOccurs="0"/>
+ <xs:element type="map:constraint-definitionType"
+ name="constraint-definition"
+ maxOccurs="unbounded"
+ minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="version" type="map:versionType" fixed="3.0"
use="required"/>
+ </xs:complexType>
+ <xs:simpleType name="versionType">
+ <xs:restriction base="xs:token">
+ <xs:pattern value="[0-9]+(\.[0-9]+)*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="validated-byType">
+ <xs:sequence>
+ <xs:element type="xs:string" name="value" maxOccurs="unbounded"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute type="xs:boolean" name="include-existing-validators"
use="optional"/>
+ </xs:complexType>
+ <xs:complexType name="constraintType">
+ <xs:sequence>
+ <xs:element type="xs:string" name="message" minOccurs="0"/>
+ <xs:element type="map:groupsType"
+ name="groups"
+ minOccurs="0"/>
+ <xs:element type="map:payloadType"
+ name="payload"
+ minOccurs="0"/>
+ <xs:element type="map:elementType"
+ name="element"
+ maxOccurs="unbounded"
+ minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute type="xs:string" name="annotation" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="elementType" mixed="true">
+ <xs:sequence>
+ <xs:element type="xs:string" name="value" maxOccurs="unbounded"
minOccurs="0"/>
+ <xs:element type="map:annotationType"
+ name="annotation"
+ maxOccurs="unbounded"
+ minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute type="xs:string" name="name" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="containerElementTypeType">
+ <xs:sequence>
+ <xs:element type="xs:string" name="valid" minOccurs="0" fixed=""/>
+ <xs:element type="map:groupConversionType"
+ name="convert-group"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xs:element type="map:containerElementTypeType"
+ name="container-element-type"
+ maxOccurs="unbounded"
+ minOccurs="0"/>
+ <xs:element type="map:constraintType"
+ name="constraint"
+ maxOccurs="unbounded"
+ minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="type-argument-index" use="optional">
+ <xs:simpleType>
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="0" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="classType">
+ <xs:sequence>
+ <xs:element type="map:groupSequenceType"
+ name="group-sequence"
+ minOccurs="0"/>
+ <xs:element type="map:constraintType"
+ name="constraint"
+ maxOccurs="unbounded"
+ minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute type="xs:boolean" name="ignore-annotations" use="optional"/>
+ </xs:complexType>
+ <xs:complexType name="beanType">
+ <xs:sequence>
+ <xs:element type="map:classType"
+ name="class"
+ minOccurs="0">
+ </xs:element>
+ <xs:element type="map:fieldType"
+ name="field"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xs:element type="map:getterType"
+ name="getter"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xs:element type="map:constructorType"
+ name="constructor"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xs:element type="map:methodType"
+ name="method"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute type="xs:string" name="class" use="required"/>
+ <xs:attribute type="xs:boolean" name="ignore-annotations" use="optional"
+ default="true"/>
+ </xs:complexType>
+ <xs:complexType name="annotationType">
+ <xs:sequence>
+ <xs:element type="map:elementType"
+ name="element"
+ maxOccurs="unbounded"
+ minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="getterType">
+ <xs:sequence>
+ <xs:element type="xs:string" name="valid" minOccurs="0" fixed=""/>
+ <xs:element type="map:groupConversionType"
+ name="convert-group"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xs:element type="map:containerElementTypeType"
+ name="container-element-type"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xs:element type="map:constraintType"
+ name="constraint"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute type="xs:string" name="name" use="required"/>
+ <xs:attribute type="xs:boolean" name="ignore-annotations" use="optional"/>
+ </xs:complexType>
+ <xs:complexType name="methodType">
+ <xs:sequence>
+ <xs:element type="map:parameterType"
+ name="parameter"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xs:element type="map:crossParameterType"
+ name="cross-parameter"
+ minOccurs="0"
+ maxOccurs="1"/>
+ <xs:element type="map:returnValueType"
+ name="return-value"
+ minOccurs="0"
+ maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attribute type="xs:string" name="name" use="required"/>
+ <xs:attribute type="xs:boolean" name="ignore-annotations" use="optional"/>
+ </xs:complexType>
+ <xs:complexType name="constructorType">
+ <xs:sequence>
+ <xs:element type="map:parameterType"
+ name="parameter"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xs:element type="map:crossParameterType"
+ name="cross-parameter"
+ minOccurs="0"
+ maxOccurs="1"/>
+ <xs:element type="map:returnValueType"
+ name="return-value"
+ minOccurs="0"
+ maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attribute type="xs:boolean" name="ignore-annotations" use="optional"/>
+ </xs:complexType>
+ <xs:complexType name="parameterType">
+ <xs:sequence>
+ <xs:element type="xs:string" name="valid" minOccurs="0" fixed=""/>
+ <xs:element type="map:groupConversionType"
+ name="convert-group"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xs:element type="map:containerElementTypeType"
+ name="container-element-type"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xs:element type="map:constraintType"
+ name="constraint"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute type="xs:string" name="type" use="required"/>
+ <xs:attribute type="xs:boolean" name="ignore-annotations" use="optional"/>
+ </xs:complexType>
+ <xs:complexType name="returnValueType">
+ <xs:sequence>
+ <xs:element type="xs:string" name="valid" minOccurs="0" fixed=""/>
+ <xs:element type="map:groupConversionType"
+ name="convert-group"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xs:element type="map:containerElementTypeType"
+ name="container-element-type"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xs:element type="map:constraintType"
+ name="constraint"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute type="xs:boolean" name="ignore-annotations" use="optional"/>
+ </xs:complexType>
+ <xs:complexType name="crossParameterType">
+ <xs:sequence>
+ <xs:element type="map:constraintType"
+ name="constraint"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute type="xs:boolean" name="ignore-annotations" use="optional"/>
+ </xs:complexType>
+ <xs:complexType name="constraint-definitionType">
+ <xs:sequence>
+ <xs:element type="map:validated-byType"
+ name="validated-by"/>
+ </xs:sequence>
+ <xs:attribute type="xs:string" name="annotation" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="fieldType">
+ <xs:sequence>
+ <xs:element type="xs:string" name="valid" minOccurs="0" fixed=""/>
+ <xs:element type="map:groupConversionType"
+ name="convert-group"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xs:element type="map:containerElementTypeType"
+ name="container-element-type"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xs:element type="map:constraintType"
+ name="constraint"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute type="xs:string" name="name" use="required"/>
+ <xs:attribute type="xs:boolean" name="ignore-annotations" use="optional"/>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
diff --git
a/bval-jsr/src/test/java/org/apache/bval/jsr/xml/ValidationParserTest.java
b/bval-jsr/src/test/java/org/apache/bval/jsr/xml/ValidationParserTest.java
index 6f03070..a5fb1e2 100644
--- a/bval-jsr/src/test/java/org/apache/bval/jsr/xml/ValidationParserTest.java
+++ b/bval-jsr/src/test/java/org/apache/bval/jsr/xml/ValidationParserTest.java
@@ -117,6 +117,14 @@ public class ValidationParserTest implements
ApacheValidatorConfiguration.Proper
assertEquals("org.apache.bval.jsr.xml.TestMessageInterpolator",
configuration.getMessageInterpolatorClassName());
}
+ @Test
+ public void testParseV31() {
+ ConfigurationImpl config = new ConfigurationImpl(null, new
ApacheValidationProvider());
+ final BootstrapConfiguration configuration =
+
validationParser.processValidationConfig("sample-validation31.xml", config);
+ assertEquals("org.apache.bval.jsr.xml.TestMessageInterpolator",
configuration.getMessageInterpolatorClassName());
+ }
+
@Test
public void testConfigureFromXml() {
ValidatorFactory factory = getFactory();
diff --git a/bval-jsr/src/test/resources/sample-validation31.xml
b/bval-jsr/src/test/resources/sample-validation31.xml
new file mode 100644
index 0000000..3483835
--- /dev/null
+++ b/bval-jsr/src/test/resources/sample-validation31.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<validation-config
+ xmlns="https://jakarta.ee/xml/ns/validation/configuration"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="https://jakarta.ee/xml/ns/validation/configuration
validation-configuration-3.1.xsd"
+ version="3.0"> <!-- Yes, the 3.1 spec XSD _really_ requires version to be
set to 3.0 -->
+
+
<default-provider>org.apache.bval.jsr.ApacheValidationProvider</default-provider>
+
<message-interpolator>org.apache.bval.jsr.xml.TestMessageInterpolator</message-interpolator>
+
<traversable-resolver>org.apache.bval.jsr.resolver.SimpleTraversableResolver</traversable-resolver>
+
<constraint-validator-factory>org.apache.bval.jsr.xml.TestConstraintValidatorFactory</constraint-validator-factory>
+ <constraint-mapping>sample-constraints.xml</constraint-mapping>
+ <property name="test-prop">test-prop-value</property>
+</validation-config>
diff --git a/pom.xml b/pom.xml
index e6b2010..2c5fc41 100644
--- a/pom.xml
+++ b/pom.xml
@@ -339,7 +339,7 @@
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
- <version>3.1.0</version>
+ <version>3.1.1</version>
</dependency>
<!-- JPA2 spec required for JPA TraversableResolver support -->