<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>