|
26 | 26 | <?rfc rfcedstyle="yes"?>
|
27 | 27 | <?rfc comments="yes"?>
|
28 | 28 | <?rfc inline="yes" ?>
|
29 |
| -<rfc category="info" docName="draft-handrews-json-schema-validation-00" ipr="trust200902"> |
| 29 | +<rfc category="info" docName="draft-handrews-json-schema-validation-01" ipr="trust200902"> |
30 | 30 | <front>
|
31 | 31 | <title abbrev="JSON Schema Validation">
|
32 | 32 | JSON Schema Validation: A Vocabulary for Structural Validation of JSON
|
|
686 | 686 | <section title="dependencies">
|
687 | 687 | <t>
|
688 | 688 | <cref>
|
689 |
| - Now that "if", "then", and "else" are keywords, it is not clear whether |
690 |
| - there is any benefit in keeping the schema form of "dependencies". |
691 |
| - It is frequently misunderstood, and having a form that takes a subschema |
692 |
| - as well as a form that takes a primitive value is particularly |
693 |
| - confusing. And it seems to be rarely used. Depending on feedback |
694 |
| - with "if", "then", and "else", the schema form of this keyword may |
695 |
| - well be removed in a future draft. Current thought is that the string |
696 |
| - form (giving property names in an array) is a useful shortcut. |
| 689 | + This keyword may be split into two, with the variation that uses |
| 690 | + an array of property names rather than a subschema getting a new |
| 691 | + name. The dual behavior is confusing and relatively difficult to |
| 692 | + implement. In the previous draft, we proposed dropping the keyword |
| 693 | + altogether, or dropping one of its forms, but we received feedback |
| 694 | + in support of keeping it. See issues #442 and #528 at |
| 695 | + <https://github.com/json-schema-org/json-schema-spec/issues> |
| 696 | + for further discussion. Further feedback is encouraged. |
697 | 697 | </cref>
|
698 | 698 | </t>
|
699 | 699 | <t>
|
|
926 | 926 | Implementations supporting formats SHOULD implement support for
|
927 | 927 | the following attributes:
|
928 | 928 | <list style="hanging">
|
929 |
| - <t hangText="date-time"> |
| 929 | + <t hangText="date-time:"> |
930 | 930 | A string instance is valid against this attribute if it is
|
931 | 931 | a valid representation according to the "date-time" production.
|
932 | 932 | </t>
|
933 |
| - <t hangText="date"> |
| 933 | + <t hangText="date:"> |
934 | 934 | A string instance is valid against this attribute if it is
|
935 | 935 | a valid representation according to the "full-date" production.
|
936 | 936 | </t>
|
937 |
| - <t hangText="time"> |
| 937 | + <t hangText="time:"> |
938 | 938 | A string instance is valid against this attribute if it is
|
939 | 939 | a valid representation according to the "full-time" production.
|
940 | 940 | </t>
|
|
967 | 967 | A string instance is valid against these attributes if it is a valid
|
968 | 968 | Internet email address as follows:
|
969 | 969 | <list style="hanging">
|
970 |
| - <t hangText="email"> |
| 970 | + <t hangText="email:"> |
971 | 971 | As defined by <xref target="RFC5322">RFC 5322, section 3.4.1</xref>.
|
972 | 972 | </t>
|
973 |
| - <t hangText="idn-email"> |
| 973 | + <t hangText="idn-email:"> |
974 | 974 | As defined by <xref target="RFC6531">RFC 6531</xref>
|
975 | 975 | </t>
|
976 | 976 | </list>
|
|
986 | 986 | A string instance is valid against these attributes if it is a valid
|
987 | 987 | representation for an Internet hostname as follows:
|
988 | 988 | <list style="hanging">
|
989 |
| - <t hangText="hostname"> |
| 989 | + <t hangText="hostname:"> |
990 | 990 | As defined by <xref target="RFC1034">RFC 1034, section 3.1</xref>,
|
991 | 991 | including host names produced using the Punycode algorithm
|
992 | 992 | specified in <xref target="RFC5891">RFC 5891, section 4.4</xref>.
|
993 | 993 | </t>
|
994 |
| - <t hangText="idn-hostname"> |
| 994 | + <t hangText="idn-hostname:"> |
995 | 995 | As defined by either RFC 1034 as for hostname, or an
|
996 | 996 | internationalized hostname as defined by
|
997 | 997 | <xref target="RFC5890">RFC 5890, section 2.3.2.3</xref>.
|
|
1010 | 1010 | A string instance is valid against these attributes if it is a valid
|
1011 | 1011 | representation of an IP address as follows:
|
1012 | 1012 | <list style="hanging">
|
1013 |
| - <t hangText="ipv4"> |
| 1013 | + <t hangText="ipv4:"> |
1014 | 1014 | An IPv4 address according to the "dotted-quad" ABNF
|
1015 | 1015 | syntax as defined in
|
1016 | 1016 | <xref target="RFC2673">RFC 2673, section 3.2</xref>.
|
1017 | 1017 | </t>
|
1018 |
| - <t hangText="ipv6"> |
| 1018 | + <t hangText="ipv6:"> |
1019 | 1019 | An IPv6 address as defined in
|
1020 | 1020 | <xref target="RFC4291">RFC 4291, section 2.2</xref>.
|
1021 | 1021 | </t>
|
|
1029 | 1029 | </t>
|
1030 | 1030 | <t>
|
1031 | 1031 | <list style="hanging">
|
1032 |
| - <t hangText="uri"> |
| 1032 | + <t hangText="uri:"> |
1033 | 1033 | A string instance is valid against this attribute if it is
|
1034 | 1034 | a valid URI, according to <xref target="RFC3986"/>.
|
1035 | 1035 | </t>
|
1036 |
| - <t hangText="uri-reference"> |
| 1036 | + <t hangText="uri-reference:"> |
1037 | 1037 | A string instance is valid against this attribute if it is a valid URI
|
1038 | 1038 | Reference (either a URI or a relative-reference),
|
1039 | 1039 | according to <xref target="RFC3986"/>.
|
1040 | 1040 | </t>
|
1041 |
| - <t hangText="iri"> |
| 1041 | + <t hangText="iri:"> |
1042 | 1042 | A string instance is valid against this attribute if it is
|
1043 | 1043 | a valid IRI, according to <xref target="RFC3987"/>.
|
1044 | 1044 | </t>
|
1045 |
| - <t hangText="iri-reference"> |
| 1045 | + <t hangText="iri-reference:"> |
1046 | 1046 | A string instance is valid against this attribute if it is a valid IRI
|
1047 | 1047 | Reference (either an IRI or a relative-reference),
|
1048 | 1048 | according to <xref target="RFC3987"/>.
|
|
1073 | 1073 | </t>
|
1074 | 1074 | <t>
|
1075 | 1075 | <list style="hanging">
|
1076 |
| - <t hangText="json-pointer"> |
| 1076 | + <t hangText="json-pointer:"> |
1077 | 1077 | A string instance is valid against this attribute if it
|
1078 | 1078 | is a valid JSON string representation of a JSON Pointer,
|
1079 | 1079 | according to <xref target="RFC6901">RFC 6901, section 5</xref>.
|
1080 | 1080 | </t>
|
1081 |
| - <t hangText="relative-json-pointer"> |
| 1081 | + <t hangText="relative-json-pointer:"> |
1082 | 1082 | A string instance is valid against this attribute if it is a valid
|
1083 | 1083 | <xref target="relative-json-pointer">Relative JSON Pointer</xref>.
|
1084 | 1084 | </t>
|
|
1261 | 1261 | <t>
|
1262 | 1262 | Schema validation is a useful mechanism for annotating instance data
|
1263 | 1263 | with additional information. The rules for determining when and how
|
1264 |
| - annotations are associated with an instance are outlined in this specification's |
1265 |
| - overview. |
| 1264 | + annotations are associated with an instance are outlined in section |
| 1265 | + <xref target="annotations" format="counter"></xref>. |
1266 | 1266 | </t>
|
1267 | 1267 | <t>
|
1268 | 1268 | These general-purpose annotation keywords provide commonly used information
|
|
1439 | 1439 | </author>
|
1440 | 1440 | <date year="2017" month="November"/>
|
1441 | 1441 | </front>
|
1442 |
| - <seriesInfo name="Internet-Draft" value="draft-handrews-relative-json-pointer-00" /> |
| 1442 | + <seriesInfo name="Internet-Draft" value="draft-handrews-relative-json-pointer-01" /> |
1443 | 1443 | </reference>
|
1444 | 1444 | <reference anchor="json-schema">
|
1445 | 1445 | <front>
|
|
1452 | 1452 | </author>
|
1453 | 1453 | <date year="2017" month="November"/>
|
1454 | 1454 | </front>
|
1455 |
| - <seriesInfo name="Internet-Draft" value="draft-handrews-json-schema-00" /> |
| 1455 | + <seriesInfo name="Internet-Draft" value="draft-handrews-json-schema-01" /> |
1456 | 1456 | </reference>
|
1457 | 1457 | </references>
|
1458 | 1458 |
|
|
1491 | 1491 | </t>
|
1492 | 1492 | <t>
|
1493 | 1493 | <list style="hanging">
|
| 1494 | + <t hangText="draft-handrews-json-schema-validation-01"> |
| 1495 | + <list style="symbols"> |
| 1496 | + <t>This draft is purely a clarification with no functional changes</t> |
| 1497 | + <t>Restored ommitted "if present" clause for "else" under "if"</t> |
| 1498 | + <t>Clarified that when "if" is absent, the results of "then" and "else" are ignored</t> |
| 1499 | + <t>Minor formatting and cross-referencing improvements</t> |
| 1500 | + </list> |
| 1501 | + </t> |
1494 | 1502 | <t hangText="draft-handrews-json-schema-validation-00">
|
1495 | 1503 | <list style="symbols">
|
1496 | 1504 | <t>Added "if"/"then"/"else"</t>
|
|
1511 | 1519 | </t>
|
1512 | 1520 | <t hangText="draft-wright-json-schema-validation-01">
|
1513 | 1521 | <list style="symbols">
|
1514 |
| - <t>Standardized on hyphenated format names ("uriref" becomes "uri-ref")</t> |
| 1522 | + <t>Standardized on hyphenated format names with full words ("uriref" becomes "uri-reference")</t> |
1515 | 1523 | <t>Add the formats "uri-template" and "json-pointer"</t>
|
1516 | 1524 | <t>Changed "exclusiveMaximum"/"exclusiveMinimum" from boolean modifiers of "maximum"/"minimum" to independent numeric fields.</t>
|
1517 | 1525 | <t>Split the additionalItems/items into two sections</t>
|
|
0 commit comments