Skip to content

Commit ff62fcf

Browse files
committed
Address Brian's comments
1 parent 5e39e18 commit ff62fcf

File tree

1 file changed

+31
-32
lines changed

1 file changed

+31
-32
lines changed

openid-4-verifiable-presentations-1_0.md

+31-32
Original file line numberDiff line numberDiff line change
@@ -722,7 +722,7 @@ be present more than once.
722722

723723
`path`:
724724
: REQUIRED if the Credential Format uses a JSON-based claims structure; MUST NOT
725-
be present otherwise. The value MUST be a claims path pointer that specifies the path to the claim
725+
be present otherwise. The value MUST be a non-empty array representing a claims path pointer that specifies the path to a claim
726726
within the Verifiable Credential, as defined in (#claims_path_pointer).
727727

728728
`namespace`:
@@ -847,7 +847,7 @@ be a valid doctype identifier as defined in [@ISO.18013-5].
847847
A claims path pointer is a pointer into the JSON structure of the Verifiable
848848
Credential, identifying one or more claims. A claims path pointer MUST be a
849849
non-empty array of strings and non-negative integers. A string value
850-
indicates that the respective key is to be selected, the special string value `*`
850+
indicates that the respective key is to be selected, a null value
851851
indicates that all elements of the currently selected array(s) are to be selected;
852852
and a non-negative integer indicates that the respective index in an array is to be selected. The path
853853
is formed as follows:
@@ -858,12 +858,37 @@ Start with an empty array and repeat the following until the full path is formed
858858
to the array.
859859
- To address an element within an array, append the index to the array (as a
860860
non-negative, 0-based integer).
861-
- To address all elements within an array, append the string `*` to the array.
861+
- To address all elements within an array, append a null value to the array.
862862

863863
Verifiers MUST NOT point to the same claim more than once in a single query.
864864
Wallets SHOULD ignore such duplicate claim queries.
865865

866-
### Example
866+
### Processing
867+
868+
In detail, the array is processed by the Wallet from left to right as follows:
869+
870+
1. Select the root element of the Credential, i.e., the top-level JSON object.
871+
2. Process the query of the claims path pointer array from left to right:
872+
1. If the component is a string, select the element in the respective
873+
key in the currently selected element(s). If any of the currently
874+
selected element(s) is not an object, abort processing and return an
875+
error. If the key does not exist in any element currently selected,
876+
remove that element from the selection.
877+
2. If the component is null, select all elements of the currently
878+
selected array(s). If any of the currently selected element(s) is not an
879+
array, abort processing and return an error.
880+
3. If the component is a non-negative integer, select the element at
881+
the respective index in the currently selected array(s). If any of the
882+
currently selected element(s) is not an array, abort processing and
883+
return an error. If the index does not exist in a selected array, remove
884+
that array from the selection.
885+
3. If the set of elements currently selected is empty, abort processing and
886+
return an error.
887+
888+
The result of the processing is the set of elements which is requested for
889+
presentation.
890+
891+
### Claims Path Pointer Example {#claims_path_pointer_example}
867892

868893
The following shows a non-normative, simplified example of a Credential:
869894

@@ -897,37 +922,11 @@ claims:
897922
selected.
898923
- `["address", "street_address"]`: The claim `street_address` with the value `42
899924
Market Street` is selected.
900-
- `["degrees", "*", "type"]`: All `type` claims in the `degrees` array are
925+
- `["degrees", null, "type"]`: All `type` claims in the `degrees` array are
901926
selected.
902927
- `["nationalities", 1]`: The second nationality is selected.
903-
- `[]` (empty array): The entire Credential is selected.
904-
905-
### Processing
906-
907-
In detail, the array is processed by the Wallet from left to right as follows:
908-
909-
1. Select the root element of the Credential, i.e., the top-level JSON object.
910-
2. Process the query of the claims path pointer array from left to right:
911-
1. If the component is a string, select the element in the respective
912-
key in the currently selected element(s). If any of the currently
913-
selected element(s) is not an object, abort processing and return an
914-
error. If the key does not exist in any element currently selected,
915-
remove that element from the selection.
916-
2. If the component is `*`, select all elements of the currently
917-
selected array(s). If any of the currently selected element(s) is not an
918-
array, abort processing and return an error.
919-
3. If the component is a non-negative integer, select the element at
920-
the respective index in the currently selected array(s). If any of the
921-
currently selected element(s) is not an array, abort processing and
922-
return an error. If the index does not exist in a selected array, remove
923-
that array from the selection.
924-
3. If the set of elements currently selected is empty, abort processing and
925-
return an error.
926-
927-
The result of the processing is the set of elements which is requested for
928-
presentation.
929928

930-
## Examples {#dcql_query_example}
929+
## DCQL Examples {#dcql_query_example}
931930

932931
The following is a non-normative example of a DCQL query that requests a Verifiable
933932
Credential of the format `vc+sd-jwt` with a type value of

0 commit comments

Comments
 (0)