<div dir="auto">3.  It may be possible to do something like</div><div dir="auto"><br></div><div dir="auto">“default” :  [ 0,  1, 0 ]</div><div dir="auto"><br></div><div dir="auto">But this is an unknown at this point and would require testing.   I don’t think default values are tested in JSON schema validation , so we may be able to do what we like.   There are other JSON schema tools which use this kind of info   we may want to leverage.</div><div dir="auto"><br></div><div dir="auto">I agree that the above is much more readable.</div><div dir="auto"><br></div><div dir="auto">I’ve been pretty desperate to create something that the schema validators accept, but the validators seem to accept more and more as I am patient.   If we can create a representative set of examples (ConformanceNist?) and possible schema that we desire, that would be good feedback for the standards creators and validation teams.</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Feb 5, 2022 at 9:06 AM Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">





<div lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="m_1685069169478418524WordSection1">
<p class="MsoNormal">I’ve updated your latest version in sourceforge.  Several comments.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">1. Still not seeing anything in your header about date produced.  This is a recipe for future versionitis problems.  Please add that.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Perhaps trivial but better title follows (start with subject and then add amplifying information)   <u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<ul style="margin-top:0in" type="disc">
<li class="m_1685069169478418524MsoListParagraph" style="margin-left:0in">"title": "X3D V4.0 JSON Schema ",<u></u><u></u></li></ul>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Excerpt:<u></u><u></u></p>
<p class="MsoNormal">{<u></u><u></u></p>
<p class="MsoNormal">  "$schema": <a href="https://json-schema.org/draft/2020-12/schema" target="_blank">https://json-schema.org/draft/2020-12/schema</a>,<u></u><u></u></p>
<p class="MsoNormal">  "$id": <a href="https://www.web3d.org/specifications/x3d-4.0-JSONSchema.json" target="_blank">https://www.web3d.org/specifications/x3d-4.0-JSONSchema.json</a>,<u></u><u></u></p>
<p class="MsoNormal">  "title": "JSON Schema X3D V4.0",<u></u><u></u></p>
<p class="MsoNormal">  "description": "Experimental JSON Schema for X3D V4.0",<u></u><u></u></p>
<p class="MsoNormal">  "type": "object",<u></u><u></u></p>
<p class="MsoNormal">  "properties": {<u></u><u></u></p>
<p class="MsoNormal">    "X3D": {<u></u><u></u></p>
<p class="MsoNormal">      "$ref": "#/$defs/X3D"<u></u><u></u></p>
<p class="MsoNormal">    }<u></u><u></u></p>
<p class="MsoNormal">  },<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">2. Saw a documentation problem:  USE nodes can’t indicate anything besides the @USE value (except for containerField value for relevant parent-child relationship in XML encoding).  So your following guidance about comments is not portable
 outside of JSON.<span style="font-size:10pt;font-family:"Courier New";color:black"><br>
<br>
</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">    "RigidBody": {<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">      "type": "object",<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">      "oneOf": [<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">        {<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">          "type": "object",<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">          "properties": {<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">            "@class": {<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">              "type": "string"<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">            },<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">            "@USE": {<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">              "type": "string"<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">            },<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">            "-children": {<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">              "type": "array",<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">              "minItems": 1,<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">              "items": {<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">                "type": "object",<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">                "properties": {<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">                  "#comment": {<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">                    "type": "string",<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">                    "$comment": "#comment statements are the only allowed in -children node when using a USE field"<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">                  }<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">                },<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">                "additionalProperties": false<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">              }<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">            }<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">         },<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">          "required": [<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">            "@USE"<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">          ],<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">          "additionalProperties": false<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New";color:black">        },<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">3. Also looked at how array defaults like 0 1 0 might be defined.  Looks gnarly.  Somewhat surprised you have to do this one-by-one.<span style="color:black"><br>
<br>
<u></u><u></u></span></p>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">            "@finiteRotationAxis": {<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">              "$comment": "SFVec3f inputOutput",<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">              "type": "array",<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">              "minItems": 3,<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">              "maxItems": 3,<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">              "prefixItems": [<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">                {<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">                  "default": 0,<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">                  "type": "number"<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">                },<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">                {<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">                  "default": 1,<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">                  "type": "number"<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">                },<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">                {<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">                  "default": 0,<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">                  "type": "number"<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">                }<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">              ],<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">              "items": false<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<pre style="font-family:monospace"><span style="font-family:monospace;color:black">            },<u style="font-family:monospace"></u><u style="font-family:monospace"></u></span></pre>
<div>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New""><u style="font-family:"Courier New""></u> <u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt">Thanks for these continuing update efforts.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New""><u style="font-family:"Courier New""></u> <u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New"">all the best, Don<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New"">-- <u style="font-family:"Courier New""></u>
<u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New"">Don Brutzman  Naval Postgraduate School, Code USW/Br        <a href="mailto:brutzman@nps.edu" target="_blank" style="font-family:"Courier New"">brutzman@nps.edu</a><u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New"">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New"">X3D graphics, virtual worlds, Navy robotics https://</span>
<span style="font-size:10pt;font-family:"Courier New""><a href="http://faculty.nps.edu/brutzman" target="_blank" style="font-family:"Courier New"">faculty.nps.edu/brutzman</a><u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div style="border-style:solid none none;border-top-width:1pt;padding:3pt 0in 0in;border-top-color:rgb(225,225,225)">
<p class="MsoNormal"><b>From:</b> John Carlson <<a href="mailto:carlsonsolutiondesign@gmail.com" target="_blank">carlsonsolutiondesign@gmail.com</a>> <br>
<b>Sent:</b> Friday, February 4, 2022 2:23 PM<br>
<b>To:</b> Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>>; X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br>
<b>Subject:</b> X3D JSON Schema updated for axis++ defaults<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">X3D JSON Schema updated per changes in RBP default values:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/schema/x3d-4.0-JSONSchema.json" target="_blank">https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/schema/x3d-4.0-JSONSchema.json</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Enjoy!<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Tested against my JSON archive with x3dschema repo.   Same files were reported with errors (mails from a few days ago).   I realize these files have been updated, I haven’t recreated or downloaded JSON examples at this point, I’m minimizing
 work done on a physical keyboard.  I gave my wife my iPad.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Also, I’ve been adding rules to the X3D JSON schema generator in a new file (WIP):<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<div>
<p class="MsoNormal"><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/python/rules.py" target="_blank">https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/python/rules.py</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Current point of work is found by searching for TODO (I think there’s only one in the file).<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">I’m about ready to nod off for the day, I might do a bit more work after 9pm CST.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">John<u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
</div>
</div>

_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</blockquote></div></div>