Handling JSONPointer (URI fragment identifier) with no base uri
diff --git a/src/main/java/com/networknt/schema/JsonSchema.java b/src/main/java/com/networknt/schema/JsonSchema.java
index 511869a..472294d 100644
--- a/src/main/java/com/networknt/schema/JsonSchema.java
+++ b/src/main/java/com/networknt/schema/JsonSchema.java
@@ -82,6 +82,8 @@
final String id = validationContext.resolveSchemaId(schemaNode);
if (id == null) {
return currentUri;
+ } else if (isUriFragmentWithNoContext(currentUri, id)) {
+ return null;
} else {
try {
return this.validationContext.getURIFactory().create(currentUri, id);
@@ -90,6 +92,10 @@
}
}
}
+
+ private boolean isUriFragmentWithNoContext(URI currentUri, String id) {
+ return id.startsWith("#") && currentUri == null;
+ }
public URI getCurrentUri()
{