Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow boolean subschemas everywhere. #128

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 27 additions & 2 deletions jsonschema-core.xml
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@
<t>
A JSON Schema document, or simply a schema, is a JSON document used to describe an instance.
A schema is itself interpreted as an instance.
A JSON schema MUST be an object.
A JSON Schema document MUST consist of an object, known as the root schema.
</t>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This language is not correct. "Consists of" means "has parts". Previous "must be" is correct.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's fixed in #167, which currently has more support than this PR. If that changes I will backport @awwright's language fixes to this PR.

<t>
Properties that are used to describe the instance are called keywords, or schema keywords.
Expand Down Expand Up @@ -231,6 +231,31 @@
In this example document, the schema titled "array item" is a subschema,
and the schema titled "root" is the root schema.
</t>
<t>
A subschema MUST be an object or a boolean, where boolean values are equivalent to object schemas as follows:
</t>
<t>
true:
</t>
<figure>
<artwork>
<![CDATA[
{}
]]>
</artwork>
</figure>
<t>
false:
</t>
<figure>
<artwork>
<![CDATA[
{
"not": {}
}
]]>
</artwork>
</figure>
</section>

</section>
Expand Down Expand Up @@ -323,7 +348,7 @@
<xref target="RFC3986">RFC3986 Section 5.1</xref> defines how to determine the default base URI of a document.
</t>
<t>
Informatively, the initial base URI of a schema is the URI it was found at, or a suitable substitute URI if none is known.
Informatively, the initial base URI of a schema is the URI at which it was found, or a suitable substitute URI if none is known.
</t>
</section>

Expand Down
22 changes: 9 additions & 13 deletions jsonschema-validation.xml
Original file line number Diff line number Diff line change
Expand Up @@ -327,8 +327,7 @@

<section title="items">
<t>
The value of "items" MUST be either an object or an array of objects.
Each object MUST be a valid JSON Schema.
The value of "items" MUST be either a valid subschema or an array of valid subschemas.
</t>
<t>
If absent, it can be considered present with an empty schema.
Expand All @@ -350,8 +349,7 @@

<section title="additionalItems">
<t>
The value of "additionalItems" MUST be a boolean or an object.
If it is an object, the object MUST be a valid JSON Schema.
The value of "additionalItems" MUST be a valid subschema.
</t>
<t>
If absent, it can be considered present with an empty schema.
Expand Down Expand Up @@ -466,7 +464,7 @@
<section title="properties">
<t>
The value of "properties" MUST be an object. Each value of this object
MUST be an object, and each object MUST be a valid JSON Schema.
MUST be a valid subschema.
</t>
<t>
If absent, it can be considered the same as an empty object.
Expand All @@ -487,7 +485,7 @@
The value of "patternProperties" MUST be an object. Each property name
of this object SHOULD be a valid regular expression, according to the
ECMA 262 regular expression dialect. Each property value of this object
MUST be an object, and each object MUST be a valid JSON Schema.
MUST be a valid subschema.
</t>
<t>
If absent, it can be considered the same as an empty object.
Expand All @@ -506,8 +504,7 @@

<section title="additionalProperties">
<t>
The value of "additionalProperties" MUST be a boolean or an
object. If it is an object, the object MUST be a valid JSON Schema.
The value of "additionalProperties" MUST be a valid subschema.
</t>
<t>
If "additionalProperties" is absent, it may be considered present with
Expand Down Expand Up @@ -535,12 +532,11 @@
</t>
<t>
This keyword's value MUST be an object. Each property specifies a dependency.
Each dependency value MUST be an object or an array.
Each dependency value MUST be an array or a valid subschema.
</t>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would add "array of strings"?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's covered on line 542.

<t>
If the dependency value is an object, it MUST be a valid JSON Schema. If the
dependency key is a property in the instance, the dependency value must validate
against the entire instance.
If the dependency value is a subschema, and the dependency key is a property
in the instance, the entire instance must validate against the dependency value.
</t>
<t>
If the dependency value is an array, each element in the array,
Expand Down Expand Up @@ -649,7 +645,7 @@
<section title="definitions">
<t>
This keyword's value MUST be an object. Each member value of this object
MUST be a valid JSON Schema.
MUST be a valid subschema.
</t>
<t>
This keyword plays no role in validation per se. Its role is to provide
Expand Down