diff --git a/common.js b/common.js
index abc69fa..1af5313 100644
--- a/common.js
+++ b/common.js
@@ -5,38 +5,6 @@ var vcwg = {
// Add as the respecConfig localBiblio variable
// Extend or override global respec references
localBiblio: {
- "RFC-6596": {
- title: "The Canonical Link Relation",
- date:" April 2012",
- href: "https://www.rfc-editor.org/rfc/rfc6596",
- authors: [
- "M. Ohye",
- "J. Kupke"
- ]
- },
- "RFC-3986": {
- title: "Uniform Resource Identifier (URI): Generic Syntax",
- date:" January 2005",
- href: "https://www.rfc-editor.org/rfc/rfc3986",
- authors: [
- "T. Berners-Lee",
- "R. Fielding",
- "L. Masinter"
- ]
- },
- "VC-DATA-MODEL-2": {
- title: "Verifiable Credentials Data Model v2.0",
- href: "https://www.w3.org/TR/vc-data-model-2.0/",
- authors: [
- "Manu Sporny",
- "Orie Steele",
- "Michael B. Jones",
- "Gabe Cohen",
- "Oliver Terbu"
- ],
- status: "Working Draft",
- publisher: "W3C Verifiable Credentials Working Group"
- },
"JSON-SCHEMA": {
href: "https://json-schema.org/specification.html",
title: "JSON Schema: A Media Type for Describing JSON Documents",
@@ -57,63 +25,18 @@ var vcwg = {
title: "JSON Schema Draft-07 Release Notes",
publisher: "OpenJS Foundation"
},
- "DID-CORE": {
- href: "https://w3c.github.io/did-core/",
- title: "Decentralized Identifiers (DIDs) v1.0",
- publisher: "W3C"
- },
- "JSON-LD": {
- href: "https://w3c.github.io/json-ld-syntax/",
- title: "JSON-LD 1.1: A JSON-based Serialization for Linked Data",
- publisher: "W3C"
- },
"VC-JOSE-COSE": {
href: "https://www.w3.org/TR/vc-jose-cose/",
title: "Securing Verifiable Credentials using JOSE and COSE",
authors: ["Orie Steele", "Michael Jones", "Michael Prorock"],
publisher: "W3C"
},
- "VC-DATA-INTEGRITY": {
- title: "Verifiable Credential Data Integrity 1.0",
- href: "https://www.w3.org/TR/vc-data-integrity/",
- authors: ["David Longley", "Manu Sporny"],
- status: "Working Draft",
- publisher: "W3C Verifiable Credentials Working Group"
- },
- "JOSE": {
- href: "https://jose.readthedocs.io/en/latest/",
- title: "Javascript Object Signing and Encryption (JOSE)",
- publisher: "IETF"
- },
- "JSON-SCHEMA-IMPLMENTATIONS": {
- href: "https://json-schema.org/implementations.html",
- title: "JSON Schema Implementations",
- publisher: "json-schema-org"
- },
"SD-JWT": {
title: "Selective Disclosure for JWTs (SD-JWT)",
href: "https://datatracker.ietf.org/doc/html/draft-ietf-oauth-selective-disclosure-jwt-05",
- authors: [ "Daniel Fett" , "Kristina Yasuda" , "Brian Campbell"],
+ authors: ["Daniel Fett", "Kristina Yasuda", "Brian Campbell"],
status: "Internet-Draft",
publisher: "IETF"
- },
- "OAS": {
- title: "OpenAPI Specification Version 3.1.0",
- href: "https://swagger.io/specification/",
- authors: [
- "Darrel Miller",
- "Jeremy Whitlock",
- "Marsh Gardiner ",
- "Mike Ralphson",
- "Ron Ratovsky",
- "Uri Sarid",
- ],
- publisher: "OpenAPI Initiative",
- },
- "YAML": {
- href: "https://yaml.org/spec/1.2.2/",
- title: "YAML Ain’t Markup Language (YAML™) version 1.2",
- publisher:"YAML Language Development Team"
}
}
};
diff --git a/index.html b/index.html
index d03a681..d125659 100644
--- a/index.html
+++ b/index.html
@@ -21,6 +21,7 @@
previousPublishDate: "2022-04-05",
localBiblio: vcwg.localBiblio,
doJsonLd: true,
+ xref: true,
github: "https://github.com/w3c/vc-json-schema/",
includePermalinks: false,
edDraftURI: "https://w3c.github.io/vc-json-schema/",
@@ -105,13 +106,13 @@
- Among other things, the [[VC-DATA-MODEL-2]] specifies the models used for Verifiable Credentials,
+ Among other things, the [[VC-DATA-MODEL-2.0]] specifies the models used for Verifiable Credentials,
Verifiable Presentations, and explains the relationships between three parties:
issuers, holders, and verifiers. Verifiability, extensibility, and semantic
interoperability are critical pieces of functionality referenced throughout
- the [[VC-DATA-MODEL-2]]. This specification provides a mechanism to make use of a Credential Schema in
+ the [[VC-DATA-MODEL-2.0]]. This specification provides a mechanism to make use of a Credential Schema in
Verifiable Credential, leveraging the existing
- Data Schemas concept.
+ Data Schemas concept.
The following sections outline the data models for this document, of which there are two:
-
Implementers may find use in packaging a JSON Schema as a verifiable credential when they wish to
- leverage features of the [[VC-DATA-MODEL-2]], answering questions such as:
+ leverage features of the [[VC-DATA-MODEL-2.0]], answering questions such as:
Abstract
Terminology
Data Model
JsonSchema
for usage of a [[JSON-Schema]] directly in a credentialSchema
- property, and JsonSchemaCredential
for usage of a [[JSON-Schema]] represented as a
+ JsonSchema
for usage of a [[JSON-SCHEMA]] directly in a credentialSchema
+ property, and JsonSchemaCredential
for usage of a [[JSON-SCHEMA]] represented as a
verifiable credential.
issuer
property)validFrom
, validUntil
, and credentialStatus
properties)
JsonSchema
type
value the result is a valid JSON
Schema document according to its specification version.
- The specification version of [[JSON-Schema]] can be any version noted in the section + The specification version of [[JSON-SCHEMA]] can be any version noted in the section on JSON Schema Specifications.
@@ -191,7 +193,7 @@
id
property are listed in the Verifiable Credentials
- Data Model specification [[VC-DATA-MODEL-2]]. The value MUST be a URL that identifies
+ Data Model specification [[VC-DATA-MODEL-2.0]]. The value MUST be a URL that identifies
the schema associated with the verifiable credential.id
property are listed in the Verifiable Credentials
- Data Model specification [[VC-DATA-MODEL-2]]. The value MUST be a URL that identifies
+ Data Model specification [[VC-DATA-MODEL-2.0]]. The value MUST be a URL that identifies
the verifiable credential which contains a credential schema.credentialSubject
's id
property MUST follow the guidance
- provided for identifiers in the [[VC-DATA-MODEL-2]]
+ provided for identifiers in the [[VC-DATA-MODEL-2.0]]
specification.The following section describes the allowed specifications for - using a [[JSON-Schema]] with a credential schema. + using a [[JSON-SCHEMA]] with a credential schema.
To promote conformance and enable interoperability, implementers MUST @@ -533,8 +535,8 @@
Across JSON Schema specifications, the $id
keyword identifies a schema resource
- with its canonical [[RFC-6596]] URI. The $id
MUST be present and its value
- MUST represent a valid URI-reference [[RFC-3986]].
+ with its canonical [[RFC6596]] URI. The $id
MUST be present and its value
+ MUST represent a valid URI-reference [[RFC3986]].
It is RECOMMENDED that the value of the $id
property match the id
@@ -573,7 +575,7 @@
.json
as the file extension.
- Implementers MAY use OpenAPI Specification's [[OAS]] [[YAML]] representation
+ Implementers MAY use OpenAPI Specification's [[[OPENAPIS-3.1.0]]] [[YAML]] representation
of a [[JSON-SCHEMA]] with .yaml
as the file extension.
@@ -616,7 +618,8 @@
Secured credentials representing credential schemas SHOULD first be validated @@ -624,13 +627,13 @@
- Provide examples for Data Integrity and VC-JOSE-COSE Credential Schemas + Provide examples for secured credential schemas.
Credential Schemas of type JsonSchema MAY be annotated with integrity information by adding the `digestSRI` property to the `credentialSchema` value in the Verifiable Credential which contains the schema, using the method specified in - Subresource Integrity. + Integrity of Related Resources. It is RECOMMENDED that validation of the integrity of the schema be done before evaluation.
@@ -853,7 +856,7 @@
- In using [[JSON-Schema]] it is advised that implementers avoid
+ When using [[JSON-SCHEMA]], it is advised that implementers avoid
setting the additionalProperties
to false. Doing
so could inadvertently exclude properties in a credential from passing
validation.
@@ -919,7 +922,8 @@
- As an alternative, the aforementioned [[SRI]] scheme may be used to provide content integrity + As an alternative, the aforementioned + Integrity of Related Resources scheme may be used to provide content integrity protection, ensuring that the underlying credential schema resource has not been tampered with.
A common use case is to include multiple schemas to validate against a single
- verifiable Credential. One such use case is to utilize the JSON Schema defined by the [[VC-DATA-MODEL-2]] in addition to a schema to validate a specific property in the credential, such as the credentialSubject
. Multiple schemas MAY be combined using native constructs from the [[JSON-SCHEMA]] specification, through utilizing properties such as oneOf
, anyOf
, or allOf
.
+ verifiable Credential. One such use case is to use the JSON Schema defined by the [[VC-DATA-MODEL-2.0]] in addition to a schema to validate a specific property in the credential, such as the credentialSubject
. Multiple schemas MAY be combined using native constructs from the [[JSON-SCHEMA]] specification, through use of properties such as oneOf
, anyOf
, or allOf
.
An example of how to construct such a schema using the [[JSON-SCHEMA]] property @@ -1037,8 +1041,8 @@
Validation against a [[JSON-SCHEMA]] may be confused with - validation - or verification + validation + or verification of a Verifiable Credential. A valid credential according to a [[JSON-SCHEMA]] refers only to the structure of the claims comprising a Verifiable Credential. This idea of validity does not imply anything about the validity of the Verifiable Credential itself. @@ -1050,11 +1054,11 @@
It is common to define a credential schema
that will be set for
- Verifiable Credentials whose type
+ Verifiable Credentials whose type
property contains a specific type
. In this scenario, it is advised to use the value
of the specific type
in the id
or in a name
or
description
property.
- of a [[JSON-Schema]].
+ of a [[JSON-SCHEMA]].
The example below illustrates this for EmailCredential
:
@@ -1211,7 +1215,7 @@
When using a verifiable credential to represent a schema, we recommend following the - guidance in the VC Data Model. + guidance in the VC Data Model.
JsonSchema
- When using the JsonSchema type with a YAML
- representation of a JSON Schema, defined by [[OAS]], the types application/openapi+yaml
+ When using the JsonSchema type with a [[YAML]]
+ representation of a [[JSON-SCHEMA]], defined by [[[OPENAPIS-3.1.0]]], the types application/openapi+yaml
or application/yaml
may be used.
JsonSchemaCredential
application/vc+ld+json
,
application/vc+ld+json+jwt
, and application/vc+ld+json+sd-jwt
Media Types
specifically for identifying a [[JSON-SCHEMA]] with usage of the
- JsonSchemaCredential type, as registered in the [[VC-DATA-MODEL-2]], [[VC-JOSE-COSE]], and [[SD-JWT]] specifications respectively.
+ JsonSchemaCredential type, as registered in the [[VC-DATA-MODEL-2.0]], [[VC-JOSE-COSE]], and [[SD-JWT]] specifications respectively.