|
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