Closed
Description
Two related issues:
- Regarding a proper JSON Reference, the JSON Reference spec states:
If a URI contains a fragment identifier, then the fragment should be
resolved per the fragment resolution mechansim of the referrant
document. If the representation of the referrant document is JSON,
then the fragment identifier SHOULD be interpreted as a
[JSON-Pointer].
The JSON Pointer spec, in turn, says about JSON Pointers:
Since the characters '~' (%x7E) and '/' (%x2F) have a special meaning
in JSON Pointer, they need to be encoded as '~0' and '~1'
respectively, when appearing in a reference token.
I would think therefore, that when executing isPtr
upon encountering any tildes not followed by 0
or 1
, false
should be given. Similarly when executing isRef
, especially if we detect that the target document is indeed JSON. This will also have the consequence of potentially throwing for this reason in pathFromPtr
.
The spec seems to make no mention of any requirement to do this, however:
Evaluation of each reference token begins by decoding any escaped
character sequence; this is performed by first transforming any
occurrence of the sequence '~1' to '/', then transforming any
occurrence of the sequence '~0' to '~'.
...but I think that when one asks whether something is a pointer or reference, it is good to know whether it has had proper escaping.
2 .I also think that as the JsonRefs
tool, you should make the segment encoding and decoding functions public.
Metadata
Metadata
Assignees
Labels
No labels