|
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 |
| 325 | + </t> |
322 | 326 | </list>
|
323 | 327 | </t>
|
324 | 328 | <t>
|
|
1004 | 1008 | </section>
|
1005 | 1009 | </section>
|
1006 | 1010 | </section>
|
| 1011 | + <section title="Reserved Locations"> |
| 1012 | + <t> |
| 1013 | + A fourth category of keywords simply reserve a location to hold re-usable |
| 1014 | + components or data of interest to schema authors that is not suitable |
| 1015 | + for re-use. These keywords do not affect validation or annotation results. |
| 1016 | + Their purpose in the core vocabulary is to ensure that locations are |
| 1017 | + available for certain purposes and will not be redefined by extension |
| 1018 | + keywords. |
| 1019 | + </t> |
| 1020 | + <t> |
| 1021 | + While these keywords do not directly affect results, as explained in section |
| 1022 | + <xref target="non-schemas" format="counter"></xref> unrecognized |
| 1023 | + extension keywords that reserve locations for re-usable schemas may have |
| 1024 | + undesirable interactions with references in certain circumstances. |
| 1025 | + </t> |
| 1026 | + </section> |
1007 | 1027 | </section>
|
1008 | 1028 | <section title="The JSON Schema Core Vocabulary">
|
1009 | 1029 | <t>
|
|
1848 | 1868 | </t>
|
1849 | 1869 | </section>
|
1850 | 1870 |
|
1851 |
| - <section title="References to Possible Non-Schemas"> |
| 1871 | + <section title="References to Possible Non-Schemas" anchor="non-schemas"> |
1852 | 1872 | <t>
|
1853 | 1873 | Subschema objects (or booleans) are recognized by their use with known
|
1854 |
| - applicator keywords. These keywords may be the standard applicators |
| 1874 | + applicator keywords or with location-reserving keywords such as |
| 1875 | + <xref target="defs">"$defs"</xref> that take one or more subschemas |
| 1876 | + as a value. These keywords may be "$defs" and the standard applicators |
1855 | 1877 | from this document, or extension keywords from a known vocabulary, or
|
1856 | 1878 | implementation-specific custom keywords.
|
1857 | 1879 | </t>
|
|
1973 | 1995 | </section>
|
1974 | 1996 | </section>
|
1975 | 1997 |
|
1976 |
| - <section title='Schema Re-Use With "$defs"'> |
| 1998 | + <section title='Schema Re-Use With "$defs"' anchor="defs"> |
1977 | 1999 | <t>
|
1978 |
| - The "$defs" keyword provides a standardized location for schema |
| 2000 | + The "$defs" keyword reserves a location for schema |
1979 | 2001 | authors to inline re-usable JSON Schemas into a more general schema.
|
1980 | 2002 | The keyword does not directly affect the validation result.
|
1981 | 2003 | </t>
|
|
2010 | 2032 |
|
2011 | 2033 | <section title='Comments With "$comment"'>
|
2012 | 2034 | <t>
|
2013 |
| - This keyword is reserved for comments from schema authors to readers or |
2014 |
| - maintainers of the schema. |
| 2035 | + This keyword reserves a location for comments from schema authors |
| 2036 | + to readers or maintainers of the schema. |
2015 | 2037 |
|
2016 | 2038 | The value of this keyword MUST be a string. Implementations MUST NOT present this
|
2017 | 2039 | string to end users. Tools for editing schemas SHOULD support displaying and
|
|
0 commit comments