source

JSON Schema 초안 버전4의 "additionalProperties" 키워드에 대해서

manysource 2023. 3. 26. 11:35

JSON Schema 초안 버전4의 "additionalProperties" 키워드에 대해서

사양 링크: http://json-schema.org/latest/json-schema-validation.html#anchor64

섹션 5.4.4.2는 다음과 같이 기술되어 있다.

이들 3개의 키워드에 대한 오브젝트인스턴스의 검증은 "additionalProperties"의 값에 따라 달라집니다.이 값은 부울트루 또는 스키마일 경우 검증이 성공합니다.

섹션 5.4.4.3은 다음과 같이 기술되어 있다.

"additionalProperties"가 없는 경우 빈 스키마를 값으로 사용하여 존재하는 것으로 간주할 수 있습니다.

네, "additionalProperties"가 존재하지 않으면 빈 스키마와 함께 존재하는 것으로 간주됩니다.스키마(어떤 종류의 스키마)인 경우 오브젝트는 다른 고려사항에 관계없이 정상적으로 검증됩니다.

그러나 이는 섹션 5.4.4.5의 "예"에서 지정된 인스턴스가 지정된 스키마에 대해 검증에 실패한다는 주장과 모순됩니다(이것은 "additionalProperties"에 대해 아무것도 지정하지 않음).

제가 어디서 어떤 방식으로 사양을 잘못 해석하고 있는지 설명해 주실 수 있나요?

사양에서 오류가 발견되었으므로 실제로 잘못 해석한 것은 아닙니다.

IETF 웹사이트에는 갱신된 인터넷 초안 버전이(2일 후부터) 있습니다만, 이 예에서는 다릅니다.

참조: https://datatracker.ietf.org/doc/html/draft-fge-json-schema-validation-00#page-13

이 문서는 인터넷 초안이기 때문에 http://datatracker.ietf.org/의 버전이 올바른 버전일 가능성이 높습니다.

이 메모의 상태

이 인터넷 초안은 다음 조건에 따라 제출됩니다.
BCP 78 및 BCP 79의 규정.

Internet-DraftsInternet Engineering Task Force(IETF; 인터넷 기술
특별
조사위원회)의 작업 문서입니다.
다른 그룹에서도 배포될 수 있습니다.

인터넷 드래프트로 작업하는 문서입니다.현재 인터넷 목록-
초안은 http://datatracker.ietf.org/drafts/current/에 있습니다.

인터넷 드래프트는 인터넷 엔지니어링의 작업 문서입니다.
태스크포스(IETF).

또한 두 버전은 날짜 및 만료 날짜가 다릅니다.

  • 링크 버전 - 문서: 2013년 1월 30일 만료:2013년 8월 3일
  • 버전 ietf - 2013년 2월 1일 작성 및 만료:2013년 8월 5일

IETF 버전:

이 스키마는 예로 사용됩니다.

   {
       "properties": {
           "p1": {}
       },
       "patternProperties": {
           "p": {},
           "[0-9]": {}
       },
       "additionalProperties": false

검증할 인스턴스는 다음과 같습니다.

{ "p1": true, "p2": null, "a32&o": "foobar", "[", "foobar": 42, "apple": "pie"}

다음 세 가지 속성 세트가 있습니다.

   s  [ "p1", "p2", "a32&o", "", "fiddle", "apple" ]

   p  [ "p1" ]

   pp [ "p", "[0-9]" ]

알고리즘의 2단계 적용:

      after the first step, "p1" is removed from "s";

      after the second step, "p2" (matched by "p"), "a32&o" (matched by
      "[0-9]") and "apple" (matched by "p") are removed from "s".

세트 "s"에는 ""와 "fiddle"이라는 두 가지 요소가 포함되어 있습니다.따라서 검증은 실패합니다.

언급URL : https://stackoverflow.com/questions/16459954/understanding-the-additionalproperties-keyword-in-json-schema-draft-version-4