Important: This release brings a complete rework of reference resolving which deprecates some older APIs.
While backward compatibility is maintained for now, users are encouraged to update their code. See the Migration Guide for details on transitioning to the new API.
Added
$anchorsupport.$recursiveRef&$recursiveAnchorsupport in Draft 2019-09.$dynamicRef&$dynamicAnchorsupport in Draft 2020-12.
Changed
- BREAKING: Treat
$refas URI, not URL and additionally normalize them. #454 - BREAKING: Resolve all non-recursive references eagerly.
- BREAKING: Disallow use of fragments in
$id. #264
Deprecated
SchemaResolvertrait andSchemaResolverErrorin favor of a simplerRetrievethat works withBox<dyn std::error::Error>.
In turn, it also deprecatesValidationOptions::with_resolverin favor ofValidationOptions::with_retrieverValidationOptions::with_documentin favor ofValidationOptions::with_resource.
Fixed
- Infinite recursion in
unevaluatedProperties. #420 - Cross-draft validation from newer to older ones.
- Changing base URI in folder.
- Location-independent identifier in remote resource.
- Missing some format validation for Draft 2020-12.
- Incomplete
iri&iri-referencevalidation.
Performance
- Faster validation for
uri,iri,uri-reference, andiri-referenceformats.