<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">[Adjusted subject line to match topic] Hello again John, thanks for further detail.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The following is valid XML:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">            <Shape USE='Torus'><br>
              <!-- Knot --><br>
            </Shape><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">As is the following VRML fragment, if found in the right place:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="text-indent:.5in">USE Torus # Knot<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Certainly the most common place to find comments in practice will be as children within a grouping node, or at the top of a scene.  So it is clearly an important use case to support.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">In general we want to be able to “round trip” convert between any of the X3D encodings without loss of X3D scene information, including comments.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">So if your JSON schema is not validating such comments, may I recommend that you add such support.  Good luck!<o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">all the best, Don<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">-- <o:p>
</o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman@nps.edu<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">X3D graphics, virtual worlds, Navy robotics https://</span>
<span style="font-size:10.0pt;font-family:"Courier New"">faculty.nps.edu/brutzman<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> x3d-public <x3d-public-bounces@web3d.org> <b>On Behalf Of
</b>John Carlson<br>
<b>Sent:</b> Wednesday, February 9, 2022 8:02 PM<br>
<b>To:</b> X3D Graphics public mailing list <x3d-public@web3d.org><br>
<b>Subject:</b> Re: [x3d-public] X3D JSON Schema updated for axis++ defaults (regression failure)<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">Report on JSON file generated by X3dToJson.xslt, download from 
<a href="https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/TrebuchetIndex.html" target="_blank">
https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/TrebuchetIndex.html</a><o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Note that the JSON linked file (on the above linked page) is essentially identical to the  February 9th version, except for the date.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">X3dToJson.xslt needs to be updated to not produce comments inside -children fields at the same level as @USE field.  There should be NO -children fields at the same level as @USE in X3DJSON<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I believe this is the JSON in question.  Note @USE and -children at the same level.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">==<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> { "Shape":<br>
                                    {<br>
                                      "@USE":"Torus",<br>
                                      "-children":[<br>
                                        {<br>
                                          "#comment":"Knot"<br>
                                        }<br>
                                      ]<br>
                                    }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">==<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">This appears to be the problematic XML, but double check me please (there are two Knot comments).<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            <Shape USE='Torus'><br>
              <!-- Knot --><br>
            </Shape><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">==<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Please suggest an alternate JSON encoding of this XML<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><br>
Updated JSON schema (with Bounded Object updates) available at normal locations (see messages included).<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks!<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">John<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">$ node x3dvalidate.js Trebuchet.json<br>
Can only validate version 4.0 presently. Switching version to 4.0.<br>
Loading schema<br>
Parsing schema<br>
Adding schema<br>
Schema 4.0 added<br>
Schema 4.0 compiled<br>
================================================================================<br>
File: Trebuchet.json<br>
Error reading Trebuchet.json<br>
 keyword: required<br>
 instancePath: /X3D/Scene/-children/8/Transform<br>
 message: must have required property @USE<br>
 params: {"missingProperty":"@USE"}<br>
 file: Trebuchet.json<br>
 version: 3.0<br>
<br>
 keyword: required<br>
 instancePath: /X3D/Scene/-children/8/Transform/-children/8/Transform<br>
 message: must have required property @USE<br>
 params: {"missingProperty":"@USE"}<br>
 file: Trebuchet.json<br>
 version: 3.0<br>
<br>
 keyword: required<br>
 instancePath: /X3D/Scene/-children/8/Transform/-children/8/Transform/-children/4/Transform<br>
 message: must have required property @USE<br>
 params: {"missingProperty":"@USE"}<br>
 file: Trebuchet.json<br>
 version: 3.0<br>
<br>
 keyword: required<br>
 instancePath: /X3D/Scene/-children/8/Transform/-children/8/Transform/-children/4/Transform/-children/0/Transform<br>
 message: must have required property @USE<br>
 params: {"missingProperty":"@USE"}<br>
 file: Trebuchet.json<br>
 version: 3.0<br>
<br>
 keyword: additionalProperties<br>
 instancePath: /X3D/Scene/-children/8/Transform/-children/8/Transform/-children/4/Transform/-children/0/Transform/-child<br>
ren/0/Shape<br>
 message: must NOT have additional properties<br>
 params: {"additionalProperty":"-children"}<br>
 file: Trebuchet.json<br>
 version: 3.0<br>
<br>
 keyword: additionalProperties<br>
 instancePath: /X3D/Scene/-children/8/Transform/-children/8/Transform/-children/4/Transform/-children/0/Transform/-child<br>
ren/0/Shape<br>
 message: must NOT have additional properties<br>
 params: {"additionalProperty":"@USE"}<br>
 file: Trebuchet.json<br>
 version: 3.0<br>
<br>
 keyword: oneOf<br>
 instancePath: /X3D/Scene/-children/8/Transform/-children/8/Transform/-children/4/Transform/-children/0/Transform/-child<br>
ren/0/Shape<br>
 message: must match exactly one schema in "oneOf"<br>
 params: {"passingSchemas":null}<br>
 file: Trebuchet.json<br>
 version: 3.0<br>
<br>
 keyword: oneOf<br>
 instancePath: /X3D/Scene/-children/8/Transform/-children/8/Transform/-children/4/Transform/-children/0/Transform<br>
 message: must match exactly one schema in "oneOf"<br>
 params: {"passingSchemas":null}<br>
 file: Trebuchet.json<br>
 version: 3.0<br>
<br>
 keyword: oneOf<br>
 instancePath: /X3D/Scene/-children/8/Transform/-children/8/Transform/-children/4/Transform<br>
 message: must match exactly one schema in "oneOf"<br>
 params: {"passingSchemas":null}<br>
 file: Trebuchet.json<br>
 version: 3.0<br>
<br>
 keyword: oneOf<br>
 instancePath: /X3D/Scene/-children/8/Transform/-children/8/Transform<br>
 message: must match exactly one schema in "oneOf"<br>
 params: {"passingSchemas":null}<br>
 file: Trebuchet.json<br>
 version: 3.0<br>
<br>
 keyword: oneOf<br>
 instancePath: /X3D/Scene/-children/8/Transform<br>
 message: must match exactly one schema in "oneOf"<br>
 params: {"passingSchemas":null}<br>
 file: Trebuchet.json<br>
 version: 3.0<o:p></o:p></p>
</div>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Mon, Feb 7, 2022 at 11:12 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p class="MsoNormal">New fetchable X3D V4.0 JSON Schema fetchable from:<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcoderextreme%2FX3DJSONLD%2Fblob%2Fmaster%2Fsrc%2Fmain%2Fschema%2Fx3d-4.0-JSONSchema.json&data=04%7C01%7Cbrutzman%40nps.edu%7Cbd4c3b3b4b9c480a478708d9ec4a3731%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637800626508897471%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=9BFtdH4oQ3m2rgQFhZLZIykqyJx29cTQBstsYI68gUM%3D&reserved=0" target="_blank">https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/schema/x3d-4.0-JSONSchema.json</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Includes changes to title...word ordering and date time (now being the time generated.<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Thu, Jan 27, 2022 at 2:55 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p class="MsoNormal">You may now grab new versions of X3D JSON schema:<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcoderextreme%2FX3DJSONLD%2Fblob%2Fmaster%2Fsrc%2Fmain%2Fschema%2Fx3d-4.0-JSONSchema.json&data=04%7C01%7Cbrutzman%40nps.edu%7Cbd4c3b3b4b9c480a478708d9ec4a3731%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637800626508897471%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=9BFtdH4oQ3m2rgQFhZLZIykqyJx29cTQBstsYI68gUM%3D&reserved=0" target="_blank">X3DJSONLD/x3d-4.0-JSONSchema.json
 at master · coderextreme/X3DJSONLD (github.com)</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">(Includes Navigation.type update to JSON string instead of JSON array)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Thanks for your support!<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">John<o:p></o:p></p>
</div>
</div>
</blockquote>
</div>
</blockquote>
</div>
</div>
</div>
</body>
</html>