|
1341 | 1341 | <list>
|
1342 | 1342 | <t>
|
1343 | 1343 | "additionalProperties", whose behavior is defined in terms of
|
1344 |
| - "properties" and "patternProperties"; and |
| 1344 | + "properties" and "patternProperties" |
| 1345 | + </t> |
| 1346 | + <t> |
| 1347 | + "unevaluatedProperties", whose behavior is defined in terms of |
| 1348 | + annotations from "properties", "patternProperties", |
| 1349 | + "additionalProperties" and itself. |
1345 | 1350 | </t>
|
1346 | 1351 | <t>
|
1347 | 1352 | "additionalItems", whose behavior is defined in terms of "items".
|
|
1350 | 1355 | </t>
|
1351 | 1356 | </section>
|
1352 | 1357 |
|
1353 |
| - <section title="Keywords for Applying Subschemas in Place"> |
| 1358 | + <section title="Keywords for Applying Subschemas in Place" anchor="in-place"> |
1354 | 1359 | <t>
|
1355 | 1360 | These keywords apply subschemas to the same location in the instance
|
1356 | 1361 | as the parent schema is being applied. They allow combining
|
|
1687 | 1692 | an empty schema.
|
1688 | 1693 | </t>
|
1689 | 1694 | <t>
|
1690 |
| - Implementation MAY choose to implement or optimize this keyword |
| 1695 | + Implementations MAY choose to implement or optimize this keyword |
1691 | 1696 | in another way that produces the same effect, such as by directly
|
1692 | 1697 | checking the names in "properties" and the patterns in
|
1693 | 1698 | "patternProperties" against the instance property set.
|
1694 | 1699 | Implementations that do not support annotation collection MUST do so.
|
1695 | 1700 | </t>
|
1696 | 1701 | </section>
|
1697 | 1702 |
|
| 1703 | + <section title="unevaluatedProperties" anchor="unevaluatedProperties"> |
| 1704 | + <t> |
| 1705 | + The value of "unevaluatedProperties" MUST be a valid JSON Schema. |
| 1706 | + </t> |
| 1707 | + <t> |
| 1708 | + The behavior of this keyword depends on the annotation results of |
| 1709 | + adjacent keywords that apply to the instance location being validated. |
| 1710 | + Specifically, the annotations from "properties", "patternProperties", |
| 1711 | + and "additionalProperties", which can come from those keywords when |
| 1712 | + they are adjacent to the "unvevaluatedProperties" keyword. Those |
| 1713 | + three annotations, as well as "unevaluatedProperties", can also |
| 1714 | + result from any and all adjacent |
| 1715 | + <xref target="in-place">in-place applicator</xref> keywords. |
| 1716 | + This includes but is not limited to the in-place applicators |
| 1717 | + defined in this document. |
| 1718 | + </t> |
| 1719 | + <t> |
| 1720 | + Validation with "unevaluatedProperties" applies only to the child |
| 1721 | + values of instance names that do not appear in the "properties", |
| 1722 | + "patternProperties", "additionalProperties", or |
| 1723 | + "unevaluatedProperties" annotation results that apply to the |
| 1724 | + instance location being validated. |
| 1725 | + </t> |
| 1726 | + <t> |
| 1727 | + For all such properties, validation succeeds if the child instance |
| 1728 | + validates against the "unevaluatedProperties" schema. |
| 1729 | + </t> |
| 1730 | + <t> |
| 1731 | + This means that "properties", "patternProperties", "additionalProperties", |
| 1732 | + and all in-place applicators MUST be evaluated before this keyword can |
| 1733 | + be evaluated. Authors of extension keywords MUST NOT define an in-place |
| 1734 | + applicator that would need to be evaluated before this keyword. |
| 1735 | + </t> |
| 1736 | + <t> |
| 1737 | + The annotation result of this keyword is the set of instance |
| 1738 | + property names validated by this keyword's subschema. |
| 1739 | + Annotation results for "unevaluatedProperties" keywords from |
| 1740 | + multiple schemas applied to the same instance location are combined |
| 1741 | + by taking the union of the sets. |
| 1742 | + </t> |
| 1743 | + <t> |
| 1744 | + Omitting this keyword has the same assertion behavior as |
| 1745 | + an empty schema. |
| 1746 | + </t> |
| 1747 | + <t> |
| 1748 | + Implementations that do not collect annotations MUST raise an error |
| 1749 | + upon encountering this keyword. |
| 1750 | + </t> |
| 1751 | + </section> |
| 1752 | + |
1698 | 1753 | <section title="propertyNames">
|
1699 | 1754 | <t>
|
1700 | 1755 | The value of "propertyNames" MUST be a valid JSON Schema.
|
|
0 commit comments