@@ -722,7 +722,7 @@ be present more than once.
722
722
723
723
` path ` :
724
724
: 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
726
726
within the Verifiable Credential, as defined in (#claims_path_pointer).
727
727
728
728
` namespace ` :
@@ -847,7 +847,7 @@ be a valid doctype identifier as defined in [@ISO.18013-5].
847
847
A claims path pointer is a pointer into the JSON structure of the Verifiable
848
848
Credential, identifying one or more claims. A claims path pointer MUST be a
849
849
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
851
851
indicates that all elements of the currently selected array(s) are to be selected;
852
852
and a non-negative integer indicates that the respective index in an array is to be selected. The path
853
853
is formed as follows:
@@ -858,12 +858,37 @@ Start with an empty array and repeat the following until the full path is formed
858
858
to the array.
859
859
- To address an element within an array, append the index to the array (as a
860
860
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.
862
862
863
863
Verifiers MUST NOT point to the same claim more than once in a single query.
864
864
Wallets SHOULD ignore such duplicate claim queries.
865
865
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}
867
892
868
893
The following shows a non-normative, simplified example of a Credential:
869
894
@@ -897,37 +922,11 @@ claims:
897
922
selected.
898
923
- ` ["address", "street_address"] ` : The claim ` street_address ` with the value `42
899
924
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
901
926
selected.
902
927
- ` ["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.
929
928
930
- ## Examples {#dcql_query_example}
929
+ ## DCQL Examples {#dcql_query_example}
931
930
932
931
The following is a non-normative example of a DCQL query that requests a Verifiable
933
932
Credential of the format ` vc+sd-jwt ` with a type value of
0 commit comments