|
307 | 307 | <t>
|
308 | 308 | Object properties that are applied to the instance are called keywords,
|
309 | 309 | or schema keywords. Broadly speaking, keywords fall into one
|
310 |
| - of three categories: |
| 310 | + of four categories: |
311 | 311 | <list style="hanging">
|
312 | 312 | <t hangText="assertions:">
|
313 | 313 | produce a boolean result when applied to an instance
|
|
319 | 319 | apply one or more subschemas to a particular location
|
320 | 320 | in the instance, and combine or modify their results
|
321 | 321 | </t>
|
| 322 | + <t hangText="reserved locations:"> |
| 323 | + do not directly affect results, but reserve a place |
| 324 | + for a specific purpose to ensure interoperability |
322 | 325 | </list>
|
323 | 326 | </t>
|
324 | 327 | <t>
|
|
1004 | 1007 | </section>
|
1005 | 1008 | </section>
|
1006 | 1009 | </section>
|
| 1010 | + <section title="Reserved Locations"> |
| 1011 | + <t> |
| 1012 | + A fourth category of keywords simply reserve a location to hold re-usable |
| 1013 | + components or data of interest to schema authors that is not suitable |
| 1014 | + for re-use. These keywords do not affect validation or annotation results. |
| 1015 | + Their purpose in the core vocabulary is to ensure that locations are |
| 1016 | + available for certain purposes and will not be redefined by extension |
| 1017 | + keywords. |
| 1018 | + </t> |
| 1019 | + <t> |
| 1020 | + While these keywords do not directly affect results, as explained in section |
| 1021 | + <xref target="non-schemas" format="counter"></xref> unrecognized |
| 1022 | + extension keywords that reserve locations for re-usable schemas may have |
| 1023 | + undesirable interactions with references in certain circumstances. |
| 1024 | + </t> |
| 1025 | + </section> |
1007 | 1026 | </section>
|
1008 | 1027 | <section title="The JSON Schema Core Vocabulary">
|
1009 | 1028 | <t>
|
|
1786 | 1805 | </t>
|
1787 | 1806 | </section>
|
1788 | 1807 |
|
1789 |
| - <section title="References to Possible Non-Schemas"> |
| 1808 | + <section title="References to Possible Non-Schemas" anchor="non-schemas"> |
1790 | 1809 | <t>
|
1791 | 1810 | Subschema objects (or booleans) are recognized by their use with known
|
1792 |
| - applicator keywords, or with placeholder keywords such as |
| 1811 | + applicator keywords or with placeholder keywords such as |
1793 | 1812 | <xref target="defs">"$defs"</xref> that take one or more subschemas
|
1794 | 1813 | as a value. These keywords may be "$defs" and the standard applicators
|
1795 | 1814 | from this document, or extension keywords from a known vocabulary, or
|
|
1915 | 1934 |
|
1916 | 1935 | <section title='Schema Re-Use With "$defs"' anchor="defs">
|
1917 | 1936 | <t>
|
1918 |
| - The "$defs" keyword provides a standardized location for schema |
| 1937 | + The "$defs" keyword reserves a location for schema |
1919 | 1938 | authors to inline re-usable JSON Schemas into a more general schema.
|
1920 | 1939 | The keyword does not directly affect the validation result.
|
1921 | 1940 | </t>
|
|
1950 | 1969 |
|
1951 | 1970 | <section title='Comments With "$comment"'>
|
1952 | 1971 | <t>
|
1953 |
| - This keyword is reserved for comments from schema authors to readers or |
1954 |
| - maintainers of the schema. |
| 1972 | + This keyword is reserved a location for comments from schema authors |
| 1973 | + to readers or maintainers of the schema. |
1955 | 1974 |
|
1956 | 1975 | The value of this keyword MUST be a string. Implementations MUST NOT present this
|
1957 | 1976 | string to end users. Tools for editing schemas SHOULD support displaying and
|
|
0 commit comments