21
21
previousPublishDate : "2022-04-05" ,
22
22
localBiblio : vcwg . localBiblio ,
23
23
doJsonLd : true ,
24
+ xref : true ,
24
25
github : "https://github.com/w3c/vc-json-schema/" ,
25
26
includePermalinks : false ,
26
27
edDraftURI : "https://w3c.github.io/vc-json-schema/" ,
105
106
< section id ='abstract '>
106
107
< h2 > Abstract</ h2 >
107
108
< p >
108
- Among other things, the [[VC-DATA-MODEL-2]] specifies the models used for Verifiable Credentials,
109
+ Among other things, the [[VC-DATA-MODEL-2.0 ]] specifies the models used for Verifiable Credentials,
109
110
Verifiable Presentations, and explains the relationships between three parties:
110
111
< i > issuers</ i > , < i > holders</ i > , and < i > verifiers</ i > . Verifiability, extensibility, and semantic
111
112
interoperability are critical pieces of functionality referenced throughout
112
- the [[VC-DATA-MODEL-2]]. This specification provides a mechanism to make use of a Credential Schema in
113
+ the [[VC-DATA-MODEL-2.0 ]]. This specification provides a mechanism to make use of a Credential Schema in
113
114
< a > Verifiable Credential</ a > , leveraging the existing
114
- < a data-cite ="vc-data-model /#data-schemas "> Data Schemas</ a > concept.
115
+ < a data-cite ="VC-DATA-MODEL-2.0 /#data-schemas "> Data Schemas</ a > concept.
115
116
</ p >
116
117
</ section >
117
118
< section id ='sotd '>
@@ -151,17 +152,18 @@ <h3>Terminology</h3>
151
152
< h2 > Data Model</ h2 >
152
153
< p >
153
154
The following sections outline the data models for this document, of which there are two:
154
- < code > JsonSchema</ code > for usage of a [[JSON-Schema ]] directly in a < code > credentialSchema</ code >
155
- property, and < code > JsonSchemaCredential</ code > for usage of a [[JSON-Schema ]] represented as a
155
+ < code > JsonSchema</ code > for usage of a [[JSON-SCHEMA ]] directly in a < code > credentialSchema</ code >
156
+ property, and < code > JsonSchemaCredential</ code > for usage of a [[JSON-SCHEMA ]] represented as a
156
157
< a > verifiable credential</ a > .
157
158
</ p >
158
159
< p >
159
160
Implementers may find use in packaging a JSON Schema as a verifiable credential when they wish to
160
- leverage features of the [[VC-DATA-MODEL-2]], answering questions such as:
161
+ leverage features of the [[VC-DATA-MODEL-2.0 ]], answering questions such as:
161
162
< ul >
162
163
< li > Who is the author of this schema? (provided by the < code > issuer</ code > property)</ li >
163
164
< li > Is it schema still valid? (provided by the < code > validFrom</ code > , < code > validUntil</ code > , and < code > credentialStatus</ code > properties)</ li >
164
- < li > Has the schema been tampered with? (provided by [[VC-DATA-INTEGRITY]] or [[VC-JOSE-COSE]])</ li >
165
+ < li > Has the schema been tampered with? (provided by < a data-cite ="VC-DATA-MODEL-2.0/#securing-verifiable-credentials ">
166
+ Securing Verifiable Credentials</ a > )</ li >
165
167
</ ul >
166
168
</ p >
167
169
< section class ="normative ">
@@ -176,7 +178,7 @@ <h3>JsonSchema</h3>
176
178
< code > JsonSchema</ code > < code > type</ code > value the result is a valid JSON
177
179
Schema document according to its specification version.
178
180
< p >
179
- The specification version of [[JSON-Schema ]] can be any version noted in the section
181
+ The specification version of [[JSON-SCHEMA ]] can be any version noted in the section
180
182
on < a href ="#json-schema-specifications "> JSON Schema Specifications</ a > .
181
183
</ p >
182
184
< p >
@@ -191,7 +193,7 @@ <h3>JsonSchema</h3>
191
193
< tr >
192
194
< td > id</ td >
193
195
< td > The constraints on the < code > id</ code > property are listed in the Verifiable Credentials
194
- Data Model specification [[VC-DATA-MODEL-2]]. The value MUST be a URL that identifies
196
+ Data Model specification [[VC-DATA-MODEL-2.0 ]]. The value MUST be a URL that identifies
195
197
the schema associated with the < a > verifiable credential</ a > .</ td >
196
198
</ tr >
197
199
< tr >
@@ -314,7 +316,7 @@ <h3>JsonSchemaCredential</h3>
314
316
< tr >
315
317
< td > id</ td >
316
318
< td > The constraints on the < code > id</ code > property are listed in the Verifiable Credentials
317
- Data Model specification [[VC-DATA-MODEL-2]]. The value MUST be a < a > URL</ a > that identifies
319
+ Data Model specification [[VC-DATA-MODEL-2.0 ]]. The value MUST be a URL that identifies
318
320
the < a > verifiable credential</ a > which contains a credential schema.</ td >
319
321
</ tr >
320
322
< tr >
@@ -324,7 +326,7 @@ <h3>JsonSchemaCredential</h3>
324
326
< tr >
325
327
< td > credentialSubject.id</ td >
326
328
< td > The < code > credentialSubject</ code > 's < code > id</ code > property MUST follow the guidance
327
- provided for < a data-cite ="vc-data-model #identifiers "> identifiers</ a > in the [[VC-DATA-MODEL-2]]
329
+ provided for < a data-cite ="VC-DATA-MODEL-2.0/ #identifiers "> identifiers</ a > in the [[VC-DATA-MODEL-2.0 ]]
328
330
specification.</ td >
329
331
</ tr >
330
332
< tr >
@@ -470,7 +472,7 @@ <h4>jsonSchema</h4>
470
472
< h2 > JSON Schema Specifications</ h2 >
471
473
< p >
472
474
The following section describes the allowed specifications for
473
- using a [[JSON-Schema ]] with a < a > credential schema</ a > .
475
+ using a [[JSON-SCHEMA ]] with a < a > credential schema</ a > .
474
476
</ p >
475
477
< p >
476
478
To promote conformance and enable interoperability, implementers MUST
@@ -533,8 +535,8 @@ <h3>Reserved Keywords</h3>
533
535
< h4 > $id</ h4 >
534
536
< p >
535
537
Across JSON Schema specifications, the < code > $id</ code > keyword identifies a schema resource
536
- with its canonical [[RFC-6596 ]] URI. The < code > $id</ code > MUST be present and its value
537
- MUST represent a valid URI-reference [[RFC-3986 ]].
538
+ with its canonical [[RFC6596 ]] URI. The < code > $id</ code > MUST be present and its value
539
+ MUST represent a valid URI-reference [[RFC3986 ]].
538
540
</ p >
539
541
< p >
540
542
It is RECOMMENDED that the value of the < code > $id</ code > property match the < code > id</ code >
@@ -573,7 +575,7 @@ <h3>Representations of JSON Schema</h3>
573
575
syntax</ a > with < code > .json</ code > as the file extension.
574
576
</ p >
575
577
< p >
576
- Implementers MAY use OpenAPI Specification's [[OAS ]] [[YAML]] representation
578
+ Implementers MAY use OpenAPI Specification's [[[OPENAPIS-3.1.0] ]] [[YAML]] representation
577
579
of a [[JSON-SCHEMA]] with < code > .yaml</ code > as the file extension.
578
580
579
581
< p class ="note ">
@@ -616,21 +618,22 @@ <h3>Integrity Validation</h3>
616
618
Credential Schemas MAY be packaged as < a > verifiable credentials</ a > as defined
617
619
by usage of the < a href ="#jsonschemacredential "> JsonSchemaCredential</ a > type.
618
620
The credential containing a < a > credential schema</ a > may include a proof, either
619
- embedded according to [[VC-DATA-INTEGRITY]] or packaged as a [[VC-JOSE-COSE]].
621
+ embedded according to < a data-cite ="VC-DATA-MODEL-2.0/#securing-verifiable-credentials ">
622
+ Securing Verifiable Credentials</ a > .
620
623
</ p >
621
624
< p >
622
625
Secured credentials representing credential schemas SHOULD first be validated
623
626
according to the rules set out in the aforementioned securing specifications
624
627
before proceeding with additional processing.
625
628
</ p >
626
629
< p class ="issue " data-number ="143 ">
627
- Provide examples for Data Integrity and VC-JOSE-COSE Credential Schemas
630
+ Provide examples for secured credential schemas.
628
631
</ p >
629
632
< p >
630
633
Credential Schemas of type < a href ="#jsonschema "> JsonSchema</ a > MAY
631
634
be annotated with integrity information by adding the `digestSRI` property to the `credentialSchema` value
632
635
in the Verifiable Credential which contains the schema, using the method specified in
633
- < a data-cite ="sri /#integrity-metadata " > Subresource Integrity</ a > .
636
+ < a data-cite ="VC-DATA-MODEL-2.0 /#integrity-of-related-resources " > Integrity of Related Resources </ a > .
634
637
It is RECOMMENDED that validation of the integrity of the schema be done before evaluation.
635
638
</ p >
636
639
< p >
@@ -853,7 +856,7 @@ <h3>Credential Property Validation</h3>
853
856
< section class ="informative ">
854
857
< h3 > Additional Properties</ h3 >
855
858
< p >
856
- In using [[JSON-Schema]] it is advised that implementers avoid
859
+ When using [[JSON-SCHEMA]], it is advised that implementers avoid
857
860
setting the < code > additionalProperties</ code > to < i > false</ i > . Doing
858
861
so could inadvertently exclude properties in a credential from passing
859
862
validation.
@@ -919,7 +922,8 @@ <h3>Content Integrity Protection</h3>
919
922
of a < a > credential schema</ a > via its digital signature.
920
923
</ p >
921
924
< p >
922
- As an alternative, the aforementioned [[SRI]] scheme may be used to provide content integrity
925
+ As an alternative, the aforementioned < a data-cite ="VC-DATA-MODEL-2.0/#integrity-of-related-resources ">
926
+ Integrity of Related Resources</ a > scheme may be used to provide content integrity
923
927
protection, ensuring that the underlying < a > credential schema</ a > resource has not been tampered with.
924
928
</ p >
925
929
</ section >
@@ -935,7 +939,7 @@ <h3>Storage</h3>
935
939
< h3 > Multiple Schemas</ h3 >
936
940
< p >
937
941
A common use case is to include multiple schemas to validate against a single
938
- < a > verifiable Credential</ a > . One such use case is to utilize < a href ="https://github.com/w3c/vc-data-model/blob/main/schema/verifiable-credential/verifiable-credential-schema.json "> the JSON Schema defined by the</ a > [[VC-DATA-MODEL-2]] in addition to a schema to validate a specific property in the credential, such as the < code > credentialSubject</ code > . Multiple schemas MAY be combined using native constructs from the [[JSON-SCHEMA]] specification, through utilizing properties such as < code > oneOf</ code > , < code > anyOf</ code > , or < code > allOf</ code > .
942
+ < a > verifiable Credential</ a > . One such use case is to use < a href ="https://github.com/w3c/vc-data-model/blob/main/schema/verifiable-credential/verifiable-credential-schema.json "> the JSON Schema defined by the</ a > [[VC-DATA-MODEL-2.0 ]] in addition to a schema to validate a specific property in the credential, such as the < code > credentialSubject</ code > . Multiple schemas MAY be combined using native constructs from the [[JSON-SCHEMA]] specification, through use of properties such as < code > oneOf</ code > , < code > anyOf</ code > , or < code > allOf</ code > .
939
943
</ p >
940
944
< p >
941
945
An example of how to construct such a schema using the [[JSON-SCHEMA]] property
@@ -1037,8 +1041,8 @@ <h3>Multiple Schemas</h3>
1037
1041
< h3 > Validity of a Verifiable Credential</ h3 >
1038
1042
< p >
1039
1043
Validation against a [[JSON-SCHEMA]] may be confused with
1040
- < a data-cite ="vc-data-model /#dfn-credential-validation "> validation</ a >
1041
- or < a data-cite ="vc-data-model /#dfn-verify "> verification</ a >
1044
+ < a data-cite ="VC-DATA-MODEL-2.0 /#dfn-credential-validation "> validation</ a >
1045
+ or < a data-cite ="VC-DATA-MODEL-2.0 /#dfn-verify "> verification</ a >
1042
1046
of a Verifiable Credential. A valid credential according to a [[JSON-SCHEMA]] refers
1043
1047
only to the structure of the claims comprising a Verifiable Credential. This idea of
1044
1048
validity does not imply anything about the validity of the Verifiable Credential itself.
@@ -1050,11 +1054,11 @@ <h3>Validity of a Verifiable Credential</h3>
1050
1054
< h3 > Relationship to Verifiable Credential Type Property</ h3 >
1051
1055
< p >
1052
1056
It is common to define a < code > credential schema</ code > that will be set for
1053
- Verifiable Credentials whose < a data-cite ="vc-data-model /#dfn-type "> type</ a >
1057
+ Verifiable Credentials whose < a data-cite ="VC-DATA-MODEL-2.0 /#dfn-type "> type</ a >
1054
1058
property contains a specific < code > type</ code > . In this scenario, it is advised to use the value
1055
1059
of the specific < code > type</ code > in the < code > id</ code > or in a < code > name</ code > or
1056
1060
< code > description</ code > property.
1057
- of a [[JSON-Schema ]].
1061
+ of a [[JSON-SCHEMA ]].
1058
1062
</ p >
1059
1063
< p >
1060
1064
The example below illustrates this for < code > EmailCredential</ code > :
@@ -1211,7 +1215,7 @@ <h2>Accessibility Considerations</h2>
1211
1215
JSON Schemas are designed to be a machine-readable format which provides static
1212
1216
validation. As such, human readability is a secondary concern. When using a
1213
1217
< a > verifiable credential</ a > to represent a schema, we recommend following the
1214
- guidance in the < a data-cite ="vc-data-model /#accessibility-considerations "> VC Data Model</ a > .
1218
+ guidance in the < a data-cite ="VC-DATA-MODEL-2.0 /#accessibility-considerations "> VC Data Model</ a > .
1215
1219
</ p >
1216
1220
</ section >
1217
1221
< section class ="informative ">
@@ -1232,7 +1236,7 @@ <h2>Internationalization Considerations</h2>
1232
1236
</ p >
1233
1237
< p >
1234
1238
When using a < a > verifiable credential</ a > to represent a schema, we recommend following the
1235
- guidance in the < a data-cite ="vc-data-model /#internationalization-considerations "> VC Data Model</ a > .
1239
+ guidance in the < a data-cite ="VC-DATA-MODEL-2.0 /#internationalization-considerations "> VC Data Model</ a > .
1236
1240
</ p >
1237
1241
</ section >
1238
1242
< section class ="normative ">
@@ -1248,8 +1252,8 @@ <h2><code>JsonSchema</code></h2>
1248
1252
< a href ="#json-schema-specifications "> JSON Schema specifications</ a > .
1249
1253
</ p >
1250
1254
< p >
1251
- When using the < a href ="#jsonschema "> JsonSchema</ a > type with a YAML
1252
- representation of a JSON Schema , defined by [[OAS ]], the types < code > application/openapi+yaml</ code >
1255
+ When using the < a href ="#jsonschema "> JsonSchema</ a > type with a [[ YAML]]
1256
+ representation of a [[ JSON-SCHEMA]] , defined by [[[OPENAPIS-3.1.0] ]], the types < code > application/openapi+yaml</ code >
1253
1257
or < code > application/yaml</ code > may be used.
1254
1258
</ p >
1255
1259
</ section >
@@ -1259,7 +1263,7 @@ <h2><code>JsonSchemaCredential</code></h2>
1259
1263
This specification acknowledges the use of the < code > application/vc+ld+json</ code > ,
1260
1264
< code > application/vc+ld+json+jwt</ code > , and < code > application/vc+ld+json+sd-jwt</ code > Media Types
1261
1265
specifically for identifying a [[JSON-SCHEMA]] with usage of the < a href ="#jsonschemacredential ">
1262
- JsonSchemaCredential</ a > type, as registered in the [[VC-DATA-MODEL-2]], [[VC-JOSE-COSE]], and [[SD-JWT]] specifications respectively.
1266
+ JsonSchemaCredential</ a > type, as registered in the [[VC-DATA-MODEL-2.0 ]], [[VC-JOSE-COSE]], and [[SD-JWT]] specifications respectively.
1263
1267
</ p >
1264
1268
</ section >
1265
1269
</ section >
0 commit comments