Re: [Json] JSON Schema Language

Anders Rundgren <anders.rundgren.net@gmail.com> Sun, 05 May 2019 05:52 UTC

Return-Path: <anders.rundgren.net@gmail.com>
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 AEAB2120197 for <json@ietfa.amsl.com>; Sat, 4 May 2019 22:52:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 1DLeiSvBYUJZ for <json@ietfa.amsl.com>; Sat, 4 May 2019 22:52:25 -0700 (PDT)
Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com [IPv6:2a00:1450:4864:20::342]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EBFD912012E for <json@ietf.org>; Sat, 4 May 2019 22:52:24 -0700 (PDT)
Received: by mail-wm1-x342.google.com with SMTP id b10so11797804wmj.4 for <json@ietf.org>; Sat, 04 May 2019 22:52:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=hP647i9f/T8cIOBAP6mlnLrhJMUWoCrFQQsy4ra0mcM=; b=EHcXWA/vhW7ehm/ehqT8xepdyFc1s/gQK0bhydEZRS06NmXhkXIlJBjrR5B0s+7H9q 8dpoSlxpdVs4egxCdRoP4k568f29ar5TfqdBgjwcHNveYDQBp5GsOYql1xUBCFM6NF9w RIFuDBkRPIqxRjLBf2y6ohtIIRaHR9Z0sy6J5eA4I4lk/4+F40aOwCVWBe7ETlmO8YtB 6xw2KzeAVnGUwZK0bu1koc54RHSfOVf5RRrdCKy1BfpRZrIwf/zJ70OO2VcYLXJhbckU NFdbzXPpnH6wyT8o0XmKBd3w/BCz3KOZRpesjmzkaKmVzCgKnlRh5XfmKnEkVEFCArrN 48EA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=hP647i9f/T8cIOBAP6mlnLrhJMUWoCrFQQsy4ra0mcM=; b=A8dfS6lfDZeTOBo47QFea3pMG14/zLNhazvxPyA+BuALWdImyFDOXE9BKldmpURjUH ebj4LKqY2aM+TURd2+HwhgyVxHHHyKkMNXFJQxyo3wL5trpQIYYuj7rd9qjQquiwHO/p ojAAXJtMYpP4/nA9hngXiR/WkgecjpXpJOadD0YzDQtqTJwPj8VJTFyT1slQo+KSV288 wjU/3MtBPYqX5mjOfPVjUyTMvsas84355UWwvP/jTALd4rJHUIADRLVQMownrqPfBGAG ju+OnNxQGILzvrlmXFcg55hGRmcekFVhDbmbvFEA3nWgjyY/i9HxKPyggXXvApHYQ7tp qLHw==
X-Gm-Message-State: APjAAAU8Fv1pZ5JuFDRc5Da7h92Bmxo2e7mF/8RQ4X8OJkCZgsWV/BQ4 EpjqJOPi2vjCNgxtlVbt0jApMb7C/SI=
X-Google-Smtp-Source: APXvYqyqzwZ/zW5Y33L8coSLiXq5ZnV2W3uY44AjrraWGiy3GxDSd81vBtauE5xrHtHPZAWfvFVJWw==
X-Received: by 2002:a1c:c910:: with SMTP id f16mr11500943wmb.47.1557035543062; Sat, 04 May 2019 22:52:23 -0700 (PDT)
Received: from [192.168.1.79] (25.131.146.77.rev.sfr.net. [77.146.131.25]) by smtp.googlemail.com with ESMTPSA id v20sm4905854wmj.10.2019.05.04.22.52.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 04 May 2019 22:52:21 -0700 (PDT)
To: Nico Williams <nico@cryptonector.com>
Cc: Ulysse Carion <ulysse@segment.com>, json@ietf.org
References: <CAJK=1RjV1uv0eOdtFZ8cKn-FfCwCiGP5r2hOz1UamiM6YV4H1A@mail.gmail.com> <39682ec8-f993-a44c-d3e2-1638d2c1608f@gmail.com> <20190505053921.GA21049@localhost>
From: Anders Rundgren <anders.rundgren.net@gmail.com>
Message-ID: <ac285e33-0ddc-3b96-fb50-de9b65f40c0e@gmail.com>
Date: Sun, 05 May 2019 07:52:18 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1
MIME-Version: 1.0
In-Reply-To: <20190505053921.GA21049@localhost>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/json/uwWVR2VwMwGHAwmnKTB02HfX4a0>
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: Sun, 05 May 2019 05:52:27 -0000

On 2019-05-05 07:39, Nico Williams wrote:
> On Sat, May 04, 2019 at 06:47:35AM +0200, Anders Rundgren wrote:
>> On 2019-05-04 01:59, Ulysse Carion wrote:
>>> Hello all,
>>
>> Hello Ulysse,
>>
>> I'm a former user of XML Schema.   I was therefore looking for similarities
>> like data types and facets but didn't find them.
>>
>> Example: although 10.0 is a valid JSON Number, in system where you expect
>> an integer, this should be flagged as a syntax error.
> 
> As a maintainer of one popular implementation, this idea that having a
> zero fractional part makes a number non-integer annoys me a great deal.

As I described, this is incompatible with other popular implementations like Jackson for C#.

A schema language should provide the flexibility you want but users should be aware of that certain combinations may not work so well in practice.

A schema may for example specify an BigInteger "huge" and suggest serializing this as JSON Number which will give surprises when processed by ECMAScript's JSON.parse().

Anders

> 
> I would insist that any parser that distinguishes real and integer
> representations should parse numeric values with a zero fractional part
> (and non-negative exponent) as integers.
> 
> 10.0 is an integer, even if a parser only supports, e.g., IEEE754
> representations of numeric values.
> 
> Nico
>