Re: [Json] JSON Schema Language

Carsten Bormann <cabo@tzi.org> Mon, 06 May 2019 07:32 UTC

Return-Path: <cabo@tzi.org>
X-Original-To: json@ietfa.amsl.com
Delivered-To: json@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 41B5C1200FA for <json@ietfa.amsl.com>; Mon, 6 May 2019 00:32:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.199
X-Spam-Level:
X-Spam-Status: No, score=-4.199 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6SJqVBgQHq3W for <json@ietfa.amsl.com>; Mon, 6 May 2019 00:32:16 -0700 (PDT)
Received: from smtp.uni-bremen.de (gabriel-vm-2.zfn.uni-bremen.de [134.102.50.17]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7DBE7120049 for <json@ietf.org>; Mon, 6 May 2019 00:32:16 -0700 (PDT)
Received: from [192.168.217.106] (p54A6CC75.dip0.t-ipconnect.de [84.166.204.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.uni-bremen.de (Postfix) with ESMTPSA id 44yDvx5LGszyX8; Mon, 6 May 2019 09:32:13 +0200 (CEST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <9D90C1F1-6747-4373-93B0-8D51C5B25F1C@bzfx.net>
Date: Mon, 06 May 2019 09:32:13 +0200
Cc: json@ietf.org
X-Mao-Original-Outgoing-Id: 578820731.222464-e39f262434e4c52938a0a0f6b7e99ac7
Content-Transfer-Encoding: quoted-printable
Message-Id: <751DAC92-D70C-4C5E-9C61-954D6E300A1F@tzi.org>
References: <CAJK=1RjV1uv0eOdtFZ8cKn-FfCwCiGP5r2hOz1UamiM6YV4H1A@mail.gmail.com> <39682ec8-f993-a44c-d3e2-1638d2c1608f@gmail.com> <29CAE1CE-D6CB-4796-B2F2-2095BE921385@tzi.org> <AD5ABD9C-F5F2-477D-B862-529C890D5472@bzfx.net> <DA1767B8-22D6-4EA9-8112-4B36B79E9039@tzi.org> <D21B379B-23CC-48B3-BE10-D2777308E2E0@bzfx.net> <40f80ea0-d130-3f3b-39fa-2c84e802ed55@gmail.com> <35E2623E-753D-4918-8AF4-BF0BC5DE4868@bzfx.net> <6260354b-aca2-e001-7145-148b32658416@gmail.com> <9D90C1F1-6747-4373-93B0-8D51C5B25F1C@bzfx.net>
To: Austin Wright <aaa@bzfx.net>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/json/-XRJlzGQQ339lB1XunqCDQQdhNM>
Subject: Re: [Json] JSON Schema Language
X-BeenThere: json@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "JavaScript Object Notation \(JSON\) WG mailing list" <json.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/json>, <mailto:json-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/json/>
List-Post: <mailto:json@ietf.org>
List-Help: <mailto:json-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/json>, <mailto:json-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 06 May 2019 07:32:18 -0000

On May 6, 2019, at 09:22, Austin Wright <aaa@bzfx.net> wrote:
> 
> But also, why not build a parser that uses a schema to influence how values are parsed?

That is exactly what most of the members of this WG are afraid of when the talk comes to “schemas”.

XML (and later JSON) learned one thing from the problems of SGML: schema-oblivious decoders are more robust than schema-depending ones.
(They are, in the first place, and protocol evolution only amplifies this.)

> Suppose you have a dynamically typed language, and want to parse some value, e.g. sometimes as an int, sometimes as a bignum, depending on the property. You might provide a JSON Schema to specify this behavior.

There goes the generic decoder.

(There is nothing wrong with using a “schema” to specify upconversion from the JSON data model to your application data model.  What I’m objecting to is getting rid of JSON and replacing it with a gazillion dialects that happen to be syntactically compatible with JSON but the semantics of which are controlled by a “schema” mechanism.)

Grüße, Carsten