<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">Joe, it looks like you’ve got an old copy of the X3D JSON schema.   I will try to follow up with a more recent version.<br><br><div dir="ltr">Sent from my iPad</div><div dir="ltr"><br><blockquote type="cite">On Oct 31, 2021, at 7:26 PM, Joseph D Williams <joedwil@earthlink.net> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><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;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        font-size:10.0pt;
        font-family:"Courier New";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><div class="WordSection1"><div><pre><span style="color:black">        "definitions": {<o:p></o:p></span></pre><pre><span style="color:black">               "Anchor": {<o:p></o:p></span></pre><pre><span style="color:black">                       "type": "object",<o:p></o:p></span></pre><pre><span style="color:black">                       "properties": {<o:p></o:p></span></pre><pre><span style="color:black">                            "@DEF": {<o:p></o:p></span></pre><pre><span style="color:black">                                   "type": "string"<o:p></o:p></span></pre><pre><span style="color:black">                            },<o:p></o:p></span></pre><pre><span style="color:black">                            "@USE": {<o:p></o:p></span></pre><pre><span style="color:black">                                   "type": "string"<o:p></o:p></span></pre><pre><span style="color:black">                            },<o:p></o:p></span></pre><pre><span style="color:black">                            "IS": {<o:p></o:p></span></pre><pre><span style="color:black">                                   "$ref": "#/definitions/IS"<o:p></o:p></span></pre><pre><span style="color:black">                            },<o:p></o:p></span></pre></div><p class="MsoNormal"> Here is another I just don’t quite understand. Along with USE, I don’t see the inclusion of IS as notation for Anchor object. For USE, maybe I don’t get the idea of if the USEd instance becomes accessible independently of the DEFd node, or is just a reference to it with no reachable parameters? For the IS, what do I need to know?<o:p></o:p></p><p class="MsoNormal">Thanks, <o:p></o:p></p><p class="MsoNormal">Joe<o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><div style="mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in"><p class="MsoNormal" style="border:none;padding:0in"><b>From: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Saturday, October 30, 2021 11:19 PM<br><b>To: </b><a href="mailto:joedwil@earthlink.net">Joseph D Williams</a>; <a href="mailto:brutzman@nps.edu">Brutzman, Donald (Don) (CIV)</a>; <a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a><br><b>Subject: </b>Re: [x3d-public] JSON Schema meeting minutes</p></div><p class="MsoNormal"><o:p> </o:p></p><p><o:p> </o:p></p><div><p class="MsoNormal">On 10/30/21 17:51, Joseph D Williams wrote:<o:p></o:p></p></div><blockquote style="margin-top:5.0pt;margin-bottom:5.0pt"><p class="MsoNormal">For me, the JSON should be standardized when it can be clearly shown to be an accurate set of rules when transcoding between the XML, the Classic, and the JSON, given the idea that the XML is the defining schema. That is, for a given set of data, equivalent results can be produced to and from equivalent data in other standard forms. <o:p></o:p></p></blockquote><p>Our tools are not yet adequate to test this.  Roundtripping has been done, but we're still investigating XML -> JSON -> XML (via X3DJSAIL).  I personally have done roundtripping and some investigation.  We will need to focus on a few examples instead of the whole archive.</p><p>Here are some changes that I see worthwhile:</p><p><b><span style="font-family:"Courier New";color:#5454FF;background:white"><a href="http://www.web3d.org/x3d/stylesheets">www.web3d.org/x3d/stylesheets</a></span></b><span style="font-family:"Courier New";color:black;background:white">$ svn diff X3dTo*.xslt </span><span style="font-family:"Courier New""><br>Index: X3dToJson.xslt <br>=================================================================== <br>--- X3dToJson.xslt      (revision 32565) <br>+++ X3dToJson.xslt      (working copy) <br>@@ -359,7 +359,7 @@ <br>                                    <xsl:text>&#10;</xsl:text> <br>                                    <xsl:call-template name="print-indent"><xsl:with-param name="indent" select="$indent+4"/></xsl:call-template> <br>                                    <!-- TODO no guidance yet on how to properly mark the governing schema within a JSON file at <a href="http://json-schema.org">http://json-schema.org</a> --> <br>-                                    <xsl:text>"JSON schema":<a href="https://www.web3d.org/specifications/x3d-3.3-JSONSchema.json">"https://www.web3d.org/specifications/x3d-3.3-JSONSchema.json"</a></xsl:text><br>+                                    <xsl:text>"JSON schema":<a href="https://www.web3d.org/specifications/x3d-4.0-JSONSchema.json">"https://www.web3d.org/specifications/x3d-4.0-JSONSchema.json"</a></xsl:text><br>                                    <xsl:text>,</xsl:text> <br>                            </xsl:if> <br> <br>Index: X3dToNodeJS.xslt <br>=================================================================== <br>--- X3dToNodeJS.xslt    (revision 32565) <br>+++ X3dToNodeJS.xslt    (working copy) <br>@@ -299,7 +299,8 @@ <br>       } <br>} <br></xsl:text><!-- class complete --> <br>-<xsl:text>new </xsl:text><xsl:value-of select="$newClassName"/><xsl:text>().main();</xsl:text> <br>+<xsl:text>new </xsl:text><xsl:value-of select="$newClassName"/><xsl:text>().main(); <br>+process.exit(0);</xsl:text> <br> <br> <br>    </xsl:template> <br>@@ -2243,9 +2244,22 @@ <br>                               <xsl:if test="(local-name() = 'class')"> <br>                                       <xsl:text>Css</xsl:text><!-- method prefix --> <br>                               </xsl:if> <br>+                               <xsl:if test="(local-name() = 'style')"> <br>+                                       <xsl:text>Css</xsl:text><!-- method prefix --> <br>+                               </xsl:if> <br>+                               <xsl:if test="(local-name() = 'id')"> <br>+                                       <xsl:text>Html</xsl:text><!-- method prefix --> <br>+                               </xsl:if> <br>                               <!-- upper camel case --> <br>-                               <xsl:value-of select="translate(substring(name(),1,1),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/><br>-                               <xsl:value-of select="substring(name(),2)"/> <br>+                               <xsl:if test="(local-name() = 'id')"> <br>+                                       <xsl:value-of select="translate(substring(name(),1,2),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/><br>+                               </xsl:if> <br>+ <br>+                               <xsl:if test="(local-name() != 'id')"> <br>+                                       <xsl:value-of select="translate(substring(name(),1,1),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/><br>+                                       <xsl:value-of select="substring(name(),2)"/> <br>+                               </xsl:if> <br>+ <br>                               <xsl:text>(</xsl:text> <br> <br>                               <xsl:variable name="nodeNumber"    select="count(../preceding::*) + 1"/></span></p><p><o:p> </o:p></p><p><br><b><span style="font-family:"Courier New";color:#5454FF;background:white"><a href="http://www.web3d.org/x3d/stylesheets">www.web3d.org/x3d/stylesheets</a></span></b><span style="font-family:"Courier New";color:black;background:white">$ svn diff CreateX3dSceneAccessInterfaceJava.xslt  </span><span style="font-family:"Courier New""><br>Index: CreateX3dSceneAccessInterfaceJava.xslt <br>=================================================================== <br>--- CreateX3dSceneAccessInterfaceJava.xslt      (revision 32565) <br>+++ CreateX3dSceneAccessInterfaceJava.xslt      (working copy) <br>@@ -35831,7 +35831,21 @@ <br>                                                                       childElementName.equals("GeoMetadata")    || childElementName.equals("ImageCubeMapTexture") || childElementName.equals("ImageTexture3D") || <br>                                                                       childElementName.equals("ImageTexture")   || childElementName.equals("Inline")              || childElementName.equals("MovieTexture") || <br>                                                                       childElementName.equals("PackagedShader") || childElementName.equals("Script")              || childElementName.equals("ShaderPart") || <br>-                                                                       childElementName.equals("ShaderProgram"))       <br>+                                                                       childElementName.equals("ShaderProgram")<br>+|| childElementName.equals("Anchor") <br>+|| childElementName.equals("Inline") <br>+|| childElementName.equals("DISEntityTypeMapping") <br>+|| childElementName.equals("GeoMetadata") <br>+|| childElementName.equals("AudioClip") <br>+|| childElementName.equals("ImageCubeMapTexture") <br>+|| childElementName.equals("ImageTexture3D") <br>+|| childElementName.equals("ImageTexture") <br>+|| childElementName.equals("MovieTexture") <br>+|| childElementName.equals("Script") <br>+|| childElementName.equals("PackagedShader") <br>+|| childElementName.equals("ShaderPart") <br>+|| childElementName.equals("ShaderProgram") <br>+)       <br>                                                                   && (containerField.equals("children") || containerField.equals("watchList") || containerField.equals("texture") || containerField.equals("programs") ||       <br>                                                                       containerField.equals("parts")    || containerField.equals("mapping")   || containerField.equals("shaders") || containerField.equals("source"))) // children is new <br>name in X3D4, otherwise still a common, unambiguous error <br>                                                                       ((LoadSensor)elementObject).addChildren((X3DNode) childX3dElement); // formerly addWatchList in X3D3</span></p><p class="MsoNormal"><o:p> </o:p></p></div></div></blockquote></body></html>