Skip to content

Commit d21140a

Browse files
fduttonFaron Dutton
and
Faron Dutton
authored
Supports iri-reference format validation. (#766)
* Supports relative-json-pointer validation. Resolves #761 * Supports uri-reference format. Resolves #763 * Supports iri-refereence format validation. REsolves # 765 * Supports iri-reference format validation. Resolves #765 * Supports iri-reference format validation. Resolves # 765 --------- Co-authored-by: Faron Dutton <[email protected]>
1 parent 1e81668 commit d21140a

File tree

3 files changed

+19
-4
lines changed

3 files changed

+19
-4
lines changed

src/main/java/com/networknt/schema/JsonMetaSchema.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.fasterxml.jackson.databind.JsonNode;
2020
import com.networknt.schema.format.DateFormat;
2121
import com.networknt.schema.format.EmailFormat;
22+
import com.networknt.schema.format.IriReferenceFormat;
2223
import com.networknt.schema.format.PatternFormat;
2324
import com.networknt.schema.format.RegexFormat;
2425
import com.networknt.schema.format.TimeFormat;
@@ -46,7 +47,7 @@ static PatternFormat pattern(String name, String regex) {
4647

4748
public static final List<Format> COMMON_BUILTIN_FORMATS = new ArrayList<>();
4849

49-
// this section contains formats that is common for all specification versions.
50+
// this section contains formats common to all dialects.
5051
static {
5152
COMMON_BUILTIN_FORMATS.add(pattern("alpha", "^[a-zA-Z]+$"));
5253
COMMON_BUILTIN_FORMATS.add(pattern("alphanumeric", "^[a-zA-Z0-9]+$"));
@@ -64,6 +65,7 @@ static PatternFormat pattern(String name, String regex) {
6465
COMMON_BUILTIN_FORMATS.add(pattern("uuid", "^\\p{XDigit}{8}-\\p{XDigit}{4}-\\p{XDigit}{4}-\\p{XDigit}{4}-\\p{XDigit}{12}$"));
6566
COMMON_BUILTIN_FORMATS.add(new DateFormat());
6667
COMMON_BUILTIN_FORMATS.add(new EmailFormat());
68+
COMMON_BUILTIN_FORMATS.add(new IriReferenceFormat());
6769
COMMON_BUILTIN_FORMATS.add(new RegexFormat());
6870
COMMON_BUILTIN_FORMATS.add(new TimeFormat());
6971
COMMON_BUILTIN_FORMATS.add(new UriFormat());
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.networknt.schema.format;
2+
3+
import java.net.URI;
4+
5+
public class IriReferenceFormat extends AbstractRFC3339Format {
6+
7+
public IriReferenceFormat() {
8+
super("iri-reference", "must be a valid RFC 3986 IRI-reference");
9+
}
10+
11+
@Override
12+
protected boolean validate(URI uri) {
13+
return true;
14+
}
15+
16+
}

src/test/java/com/networknt/schema/JsonSchemaTestSuiteTest.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ private void disableV202012Tests() {
8080
this.disabled.add(Paths.get("src/test/suite/tests/draft2020-12/optional/format-assertion.json"));
8181
this.disabled.add(Paths.get("src/test/suite/tests/draft2020-12/optional/format/idn-email.json"));
8282
this.disabled.add(Paths.get("src/test/suite/tests/draft2020-12/optional/format/idn-hostname.json"));
83-
this.disabled.add(Paths.get("src/test/suite/tests/draft2020-12/optional/format/iri-reference.json"));
8483
this.disabled.add(Paths.get("src/test/suite/tests/draft2020-12/optional/format/iri.json"));
8584
this.disabled.add(Paths.get("src/test/suite/tests/draft2020-12/ref.json"));
8685
this.disabled.add(Paths.get("src/test/suite/tests/draft2020-12/refRemote.json"));
@@ -95,7 +94,6 @@ private void disableV201909Tests() {
9594
this.disabled.add(Paths.get("src/test/suite/tests/draft2019-09/optional/float-overflow.json"));
9695
this.disabled.add(Paths.get("src/test/suite/tests/draft2019-09/optional/format/idn-email.json"));
9796
this.disabled.add(Paths.get("src/test/suite/tests/draft2019-09/optional/format/idn-hostname.json"));
98-
this.disabled.add(Paths.get("src/test/suite/tests/draft2019-09/optional/format/iri-reference.json"));
9997
this.disabled.add(Paths.get("src/test/suite/tests/draft2019-09/optional/format/iri.json"));
10098
this.disabled.add(Paths.get("src/test/suite/tests/draft2019-09/recursiveRef.json"));
10199
this.disabled.add(Paths.get("src/test/suite/tests/draft2019-09/ref.json"));
@@ -111,7 +109,6 @@ private void disableV7Tests() {
111109
this.disabled.add(Paths.get("src/test/suite/tests/draft7/optional/float-overflow.json"));
112110
this.disabled.add(Paths.get("src/test/suite/tests/draft7/optional/format/idn-email.json"));
113111
this.disabled.add(Paths.get("src/test/suite/tests/draft7/optional/format/idn-hostname.json"));
114-
this.disabled.add(Paths.get("src/test/suite/tests/draft7/optional/format/iri-reference.json"));
115112
this.disabled.add(Paths.get("src/test/suite/tests/draft7/optional/format/iri.json"));
116113
this.disabled.add(Paths.get("src/test/suite/tests/draft7/ref.json"));
117114
this.disabled.add(Paths.get("src/test/suite/tests/draft7/refRemote.json"));

0 commit comments

Comments
 (0)