
From nobody Thu Dec  1 17:55:29 2016
Return-Path: <tbray@textuality.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 A2ED5129A54 for <json@ietfa.amsl.com>; Thu,  1 Dec 2016 17:55:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=textuality-com.20150623.gappssmtp.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 wTGQNVkuuy4T for <json@ietfa.amsl.com>; Thu,  1 Dec 2016 17:55:26 -0800 (PST)
Received: from mail-qk0-x229.google.com (mail-qk0-x229.google.com [IPv6:2607:f8b0:400d:c09::229]) (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 F2833129A51 for <json@ietf.org>; Thu,  1 Dec 2016 17:55:25 -0800 (PST)
Received: by mail-qk0-x229.google.com with SMTP id q130so77719356qke.1 for <json@ietf.org>; Thu, 01 Dec 2016 17:55:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=textuality-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=OQjUfxUBQfrO4p0pHntJqdUwHNHVvB1UEMJ7JIzPCcc=; b=ki7JewyuVlk7+2TSeM8ivVLN1/2FR7r6JvjaNxgiBh4H+59Id1s8UhwEgt6z/N7Yyh /6FNDGUFDG/qHemd2TGmWaraZH1GKANaG8j2NdQL5hopDVVqylBbU4iks6CjAXEtYgbZ kzRMBcMFxbcXuFeT8BsLScijH+M7wnUDmf4w9Euo6ROnB3RVu9acKMxgplkkEA/l9Bt3 K0jLnkvNNkhRoy6edqkW4JF+q8F8MenzxSXd0tnd1PfLTSLsVRjxOQ5UyPkmKzoURRjj w35iFlPxM8ww3ZdjZq2KdXnoa5IS4MKHbwq2ijkjNXujdJWfAG88rlCBPHnSvgwrdS8f zmdg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=OQjUfxUBQfrO4p0pHntJqdUwHNHVvB1UEMJ7JIzPCcc=; b=fVuvV8yQe6LKWcdvJia9pa3NQ5bxZ5CvyrwRU+8w80JwE4G9LpFo3vQUbUy7cM/xL6 zBN11P8/c4h3js5944Yi7Y+1xwBfh7mGqhvbXfTRwDNZK2uynMSGebGxblaUzlnmHWD9 J7kg49zB/EtSjoeIerHpbkGIQvWSntE8ECJTlgfNxfXdrXc+nRlCw8MlvrE8PYx1463T a5dNUKqnNOu+WREssDYnat7QVP/4DuOmCRMAmt8BIuhVXLd2pXBCilILVjibXdAqYleo 3XmfGRg+QV5/bCQ/M63fE0DbHRdhwYXvw2ikVE24eJbbmdwki7WM2OfW/5qA6NfKzSHB m8iw==
X-Gm-Message-State: AKaTC02k+XCol5mOtA/j817MfVy8KkSRZojhJ5on/T94rM2bq+7IPIKIAFxgpIznake7SB99HcFSygQH0uDfAA==
X-Received: by 10.55.111.68 with SMTP id k65mr40912698qkc.138.1480643725050; Thu, 01 Dec 2016 17:55:25 -0800 (PST)
MIME-Version: 1.0
Received: by 10.140.30.69 with HTTP; Thu, 1 Dec 2016 17:55:04 -0800 (PST)
X-Originating-IP: [72.215.83.249]
From: Tim Bray <tbray@textuality.com>
Date: Thu, 1 Dec 2016 17:55:04 -0800
Message-ID: <CAHBU6ivTaiHyBXBRBPjc3t=eM_zSd64mQ3h2f9o6WO4sMyXWsg@mail.gmail.com>
To: "json@ietf.org" <json@ietf.org>
Content-Type: multipart/alternative; boundary=94eb2c059f40455ab00542a33b4c
Archived-At: <https://mailarchive.ietf.org/arch/msg/json/HFF8vtEEdFdnuBUqJpx7dd2XdQw>
Subject: [Json] Accidental schema language
X-BeenThere: json@ietf.org
X-Mailman-Version: 2.1.17
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: Fri, 02 Dec 2016 01:55:27 -0000

--94eb2c059f40455ab00542a33b4c
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

I had to write a validator for a JSON DSL in an AWS product, and I ended up
sketching in a sort of one-off schema language for the purpose. Of the 27
people on earth who care about such things, a majority are probably on this
mailing list:
https://www.tbray.org/ongoing/When/201x/2016/12/01/J2119-Validator
=E2=80=8B
<https://keybase.io/timbray>

--94eb2c059f40455ab00542a33b4c
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-size:small">I h=
ad to write a validator for a JSON DSL in an AWS product, and I ended up sk=
etching in a sort of one-off schema language for the purpose. Of the 27 peo=
ple on earth who care about such things, a majority are probably on this ma=
iling list:=C2=A0<a href=3D"https://www.tbray.org/ongoing/When/201x/2016/12=
/01/J2119-Validator">https://www.tbray.org/ongoing/When/201x/2016/12/01/J21=
19-Validator</a></div><div><a href=3D"https://keybase.io/timbray" target=3D=
"_blank"><div class=3D"gmail_default" style=3D"font-size:small;display:inli=
ne">=E2=80=8B</div></a><br></div>
</div>

--94eb2c059f40455ab00542a33b4c--


From nobody Fri Dec  2 01:01:28 2016
Return-Path: <lhotka@nic.cz>
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 371661293E3 for <json@ietfa.amsl.com>; Fri,  2 Dec 2016 01:01:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.896
X-Spam-Level: 
X-Spam-Status: No, score=-9.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-2.896] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nic.cz
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 EaOaCldDiwHK for <json@ietfa.amsl.com>; Fri,  2 Dec 2016 01:01:18 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 78D1A1204D9 for <json@ietf.org>; Fri,  2 Dec 2016 01:01:18 -0800 (PST)
Received: from [IPv6:2001:718:1a02:1:8c0b:6279:7833:d775] (unknown [IPv6:2001:718:1a02:1:8c0b:6279:7833:d775]) by mail.nic.cz (Postfix) with ESMTPSA id 7A96E62522; Fri,  2 Dec 2016 10:01:15 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1480669275; bh=Yp6vCcc4QjAG7izcEEuIR32utXrMEbwk4IJM1IeRS9g=; h=From:Date:To; b=EA1FEVpx3rQu83cemOLeHsID+A5oKK/sjgs31COjqD0pOFaTEUwEsNRIwBdhs4DIh WUlay8GPa857j/uxVkhIHuTZARPp4u0nL3iFiMgaRdOuqO1S6sROfQDAqvZbx93iPx 4dLKPIoeDSnH9rhNqZNYHE08dJnHWixKxPozVT/Y=
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 10.1 \(3251\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <CAHBU6ivTaiHyBXBRBPjc3t=eM_zSd64mQ3h2f9o6WO4sMyXWsg@mail.gmail.com>
Date: Fri, 2 Dec 2016 10:01:18 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <B088A186-5FB9-4E9D-A37E-586EAF903E79@nic.cz>
References: <CAHBU6ivTaiHyBXBRBPjc3t=eM_zSd64mQ3h2f9o6WO4sMyXWsg@mail.gmail.com>
To: Tim Bray <tbray@textuality.com>
X-Mailer: Apple Mail (2.3251)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <https://mailarchive.ietf.org/arch/msg/json/oJWLZJ1pd7olO1h0KYxySWGh1Zc>
Cc: "json@ietf.org" <json@ietf.org>
Subject: Re: [Json] Accidental schema language
X-BeenThere: json@ietf.org
X-Mailman-Version: 2.1.17
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: Fri, 02 Dec 2016 09:01:22 -0000

> On 2 Dec 2016, at 02:55, Tim Bray <tbray@textuality.com> wrote:
>=20
> I had to write a validator for a JSON DSL in an AWS product, and I =
ended up sketching in a sort of one-off schema language for the purpose. =
Of the 27 people on earth who care about such things, a majority are =
probably on this mailing list: =
https://www.tbray.org/ongoing/When/201x/2016/12/01/J2119-Validator
> =E2=80=8B

FWIW, I wrote a validator for JSON that's based on James Clark's =
approach using derivatives of patterns. It is part of the Yangson =
library (Python 3):

https://github.com/CZ-NIC/yangson

The schema language in this case is YANG but it should be really easy to =
adapt it for DSL.

Lada

> _______________________________________________
> json mailing list
> json@ietf.org
> https://www.ietf.org/mailman/listinfo/json

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Fri Dec  2 08:22:28 2016
Return-Path: <hallam@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 D2CD812978B for <json@ietfa.amsl.com>; Fri,  2 Dec 2016 08:22:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level: 
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=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 2Y-m1kc4hxPC for <json@ietfa.amsl.com>; Fri,  2 Dec 2016 08:22:22 -0800 (PST)
Received: from mail-wj0-x242.google.com (mail-wj0-x242.google.com [IPv6:2a00:1450:400c:c01::242]) (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 CA4731296D2 for <json@ietf.org>; Fri,  2 Dec 2016 08:22:21 -0800 (PST)
Received: by mail-wj0-x242.google.com with SMTP id j10so3467490wjb.3 for <json@ietf.org>; Fri, 02 Dec 2016 08:22:21 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=zRsaJnOD7CW/lYbfK5NIHMmOFsHcGzktrDCvikMkFw8=; b=F0wx8DR8099A6tsCG0Breg0pZ+kepLqFI1uCgVQ1/mMzMaJCXjtx6htVsexIpG+evN MOm/fanHM9mu9ZUqEMk5uj5sR5iEDQMFHwKLTgaBMxJz+QLyrVKSz7R2b2lwp2ymYoHG ZHz2AuPDjq/OXeIEczqVpL4buztHJi5tDtVVJsA3vuVNnyRRmWymSKlnWqVjGnSGJQg/ E64XKNwxyEo9KNCZCpQf9LgBPv/q3HX3ZDAJVKTS/3TUmPdOTLW3h2GcMA6hFrBXw5Xw uC4zI4F3X51AIMWYWLNNG+FCcOdpfr8xeDhDaIgJJiEplwZ6E3GB+xv9jCDUQHZIOIlQ ZqgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=zRsaJnOD7CW/lYbfK5NIHMmOFsHcGzktrDCvikMkFw8=; b=Gs9v5lJ6P4WqtGmCO/FJ4TRLg/AMlJfpSz3/lA+XTLAR0/olbPOi4kbqzlQRjfpw5C IuvTwnr78XY92NxUJUJSK9sDSvLqDfQAk6cle+B/45e9Qfnfhyk0wMzvqvlBZLPNPiJM 9LiS83/sClWOzLDJcz8ysHF3NwDpzLIvS9sf0ZSl9tVQoLiDj7vIZpKfkoTgemG1wQjQ PYJZjmOfwzSV3MWEdd+Ukq58k2+3dQ/cEAFCUVpFRRZPRKFKdeyLFzfCnou+/vQWfe5s 7A05rvJpewTErICtpVHjbFSTuPBacj5/MknkV2Fspd9TGfLYUV4eXlJZQ+0yQHxk7Jor rByw==
X-Gm-Message-State: AKaTC01t8T9NmvRfdVpfeHg0s7PuO1YiqYt5xa/AO7G6LREOXVajVXp7Wo2/j3GWAUoaPuuuBuh1m0YkLMT45g==
X-Received: by 10.194.14.196 with SMTP id r4mr14338491wjc.54.1480695739831; Fri, 02 Dec 2016 08:22:19 -0800 (PST)
MIME-Version: 1.0
Sender: hallam@gmail.com
Received: by 10.194.83.101 with HTTP; Fri, 2 Dec 2016 08:22:19 -0800 (PST)
In-Reply-To: <B088A186-5FB9-4E9D-A37E-586EAF903E79@nic.cz>
References: <CAHBU6ivTaiHyBXBRBPjc3t=eM_zSd64mQ3h2f9o6WO4sMyXWsg@mail.gmail.com> <B088A186-5FB9-4E9D-A37E-586EAF903E79@nic.cz>
From: Phillip Hallam-Baker <ietf@hallambaker.com>
Date: Fri, 2 Dec 2016 11:22:19 -0500
X-Google-Sender-Auth: P_y3go09Du2PVQ_SMKCLejnyCzE
Message-ID: <CAMm+LwhVioJz6hPCNqg4c4h02Pxhtxvd0fQt10nu8bDi3jybpw@mail.gmail.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: multipart/alternative; boundary=047d7b66fd9d97dd7c0542af5750
Archived-At: <https://mailarchive.ietf.org/arch/msg/json/rBIKtOy0UZVG3ywaRzcFYFn6Thk>
Cc: Tim Bray <tbray@textuality.com>, "json@ietf.org" <json@ietf.org>
Subject: Re: [Json] Accidental schema language
X-BeenThere: json@ietf.org
X-Mailman-Version: 2.1.17
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: Fri, 02 Dec 2016 16:22:25 -0000

--047d7b66fd9d97dd7c0542af5750
Content-Type: text/plain; charset=UTF-8

If people are interested in this stuff, I have a protocol compiler that I
built to construct this:

http://prismproof.org/

The code base actually contains compilers for ASN.1, XML and TLS-Schema
type encodings besides JSON. But right now these are three separate
processors rather than one.

It is all open source under MIT license and can target Windows, Linux or
OSX. The latest version is limited to C# but thats just because the C
backend lags a little.

The way it works is, you write the schema:

https://github.com/hallambaker/Mathematical-Mesh/blob/master/Goedel.Mesh/SchemaMesh.protocol

This is then used to generate the reference section of your Internet Draft:

https://tools.ietf.org/html/draft-hallambaker-mesh-reference-03

The generator also emits code (currently C#)

https://github.com/hallambaker/Mathematical-Mesh/blob/master/Goedel.Mesh/SchemaMesh.cs

You can generate code using a linemode tool and makefile of course. If you
are using Visual Studio, the code generator is integrated into the shell as
a VSIX extension.

The code is currently configured to generate reference code. Which means
that it is intentionally strict in what it accepts and might well become
permissive in what it generates. Reference code should give implementations
a workout.

I have just spent six months cleaning up the code to make it suitable for
production use (with some caveats) The main thing that is missing is that
people should use something like MongoDB as the backend.

The code can also generate examples. These can be emitted as Markdown, HTML
or XML2RFC format. The Markdown format is the one I use.

*Next Steps*

My system meets my current needs. It is not as pretty as it could be but it
is functional and provides a lot more functionality than the YANG tool
chain. My schema language is rather more abstract.

What I would want to do to improve the product is to replace the three
different frontends I use right now with one common frontend. I would also
want that frontend to use a syntax that matches the JSON data model. I
certainly do not want to use JSON. I did sketch out a JSON-A that would be
programmer friendly.

--047d7b66fd9d97dd7c0542af5750
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-size:small">If =
people are interested in this stuff, I have a protocol compiler that I buil=
t to construct this:</div><div class=3D"gmail_default" style=3D"font-size:s=
mall"><br></div><div class=3D"gmail_default"><a href=3D"http://prismproof.o=
rg/">http://prismproof.org/</a><br></div><div class=3D"gmail_default"><br><=
/div><div class=3D"gmail_default">The code base actually contains compilers=
 for ASN.1, XML and TLS-Schema type encodings besides JSON. But right now t=
hese are three separate processors rather than one.</div><div class=3D"gmai=
l_default"><br></div><div class=3D"gmail_default">It is all open source und=
er MIT license and can target Windows, Linux or OSX. The latest version is =
limited to C# but thats just because the C backend lags a little.</div><div=
 class=3D"gmail_default"><br></div><div class=3D"gmail_default">The way it =
works is, you write the schema:</div><div class=3D"gmail_default"><br></div=
><div class=3D"gmail_default"><a href=3D"https://github.com/hallambaker/Mat=
hematical-Mesh/blob/master/Goedel.Mesh/SchemaMesh.protocol">https://github.=
com/hallambaker/Mathematical-Mesh/blob/master/Goedel.Mesh/SchemaMesh.protoc=
ol</a><br></div><div class=3D"gmail_default"><br></div><div class=3D"gmail_=
default">This is then used to generate the reference section of your Intern=
et Draft:</div><div class=3D"gmail_default"><br></div><div class=3D"gmail_d=
efault"><a href=3D"https://tools.ietf.org/html/draft-hallambaker-mesh-refer=
ence-03">https://tools.ietf.org/html/draft-hallambaker-mesh-reference-03</a=
><br></div><div class=3D"gmail_default"><br></div><div class=3D"gmail_defau=
lt">The generator also emits code (currently C#)</div><div class=3D"gmail_d=
efault"><br></div><div class=3D"gmail_default"><a href=3D"https://github.co=
m/hallambaker/Mathematical-Mesh/blob/master/Goedel.Mesh/SchemaMesh.cs">http=
s://github.com/hallambaker/Mathematical-Mesh/blob/master/Goedel.Mesh/Schema=
Mesh.cs</a><br></div><div class=3D"gmail_default"><br></div><div class=3D"g=
mail_default">You can generate code using a linemode tool and makefile of c=
ourse. If you are using Visual Studio, the code generator is integrated int=
o the shell as a VSIX extension.</div><div class=3D"gmail_default"><br></di=
v><div class=3D"gmail_default">The code is currently configured to generate=
 reference code. Which means that it is intentionally strict in what it acc=
epts and might well become permissive in what it generates. Reference code =
should give implementations a workout.</div><div class=3D"gmail_default"><b=
r></div><div class=3D"gmail_default">I have just spent six months cleaning =
up the code to make it suitable for production use (with some caveats) The =
main thing that is missing is that people should use something like MongoDB=
 as the backend.=C2=A0</div><div class=3D"gmail_default"><br></div><div cla=
ss=3D"gmail_default">The code can also generate examples. These can be emit=
ted as Markdown, HTML or XML2RFC format. The Markdown format is the one I u=
se.=C2=A0</div><div class=3D"gmail_default"><br></div><div class=3D"gmail_d=
efault"><b>Next Steps</b></div><div class=3D"gmail_default"><br></div><div =
class=3D"gmail_default">My system meets my current needs. It is not as pret=
ty as it could be but it is functional and provides a lot more functionalit=
y than the YANG tool chain. My schema language is rather more abstract.</di=
v><div class=3D"gmail_default"><br></div><div class=3D"gmail_default">What =
I would want to do to improve the product is to replace the three different=
 frontends I use right now with one common frontend. I would also want that=
 frontend to use a syntax that matches the JSON data model. I certainly do =
not want to use JSON. I did sketch out a JSON-A that would be programmer fr=
iendly.</div><div class=3D"gmail_default"><br></div><div class=3D"gmail_def=
ault"><br></div><div class=3D"gmail_default"><br></div></div>

--047d7b66fd9d97dd7c0542af5750--

