[x3d-public] JSON Schema meeting minutes

John Carlson yottzumm at gmail.com
Sun Oct 31 19:23:07 PDT 2021


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.

Sent from my iPad

> On Oct 31, 2021, at 7:26 PM, Joseph D Williams <joedwil at earthlink.net> wrote:
> 
> 
>         "definitions": {
>                "Anchor": {
>                        "type": "object",
>                        "properties": {
>                             "@DEF": {
>                                    "type": "string"
>                             },
>                             "@USE": {
>                                    "type": "string"
>                             },
>                             "IS": {
>                                    "$ref": "#/definitions/IS"
>                             },
> 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?
> Thanks,
> Joe
>  
> From: John Carlson
> Sent: Saturday, October 30, 2021 11:19 PM
> To: Joseph D Williams; Brutzman, Donald (Don) (CIV); x3d-public at web3d.org
> Subject: Re: [x3d-public] JSON Schema meeting minutes
>  
>  
> 
> On 10/30/21 17:51, Joseph D Williams wrote:
> 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.
> 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.
> 
> Here are some changes that I see worthwhile:
> 
> www.web3d.org/x3d/stylesheets$ svn diff X3dTo*.xslt 
> Index: X3dToJson.xslt 
> =================================================================== 
> --- X3dToJson.xslt      (revision 32565) 
> +++ X3dToJson.xslt      (working copy) 
> @@ -359,7 +359,7 @@ 
>                                     <xsl:text>
</xsl:text> 
>                                     <xsl:call-template name="print-indent"><xsl:with-param name="indent" select="$indent+4"/></xsl:call-template> 
>                                     <!-- TODO no guidance yet on how to properly mark the governing schema within a JSON file at http://json-schema.org --> 
> -                                    <xsl:text>"JSON schema":"https://www.web3d.org/specifications/x3d-3.3-JSONSchema.json"</xsl:text>
> +                                    <xsl:text>"JSON schema":"https://www.web3d.org/specifications/x3d-4.0-JSONSchema.json"</xsl:text>
>                                     <xsl:text>,</xsl:text> 
>                             </xsl:if> 
>  
> Index: X3dToNodeJS.xslt 
> =================================================================== 
> --- X3dToNodeJS.xslt    (revision 32565) 
> +++ X3dToNodeJS.xslt    (working copy) 
> @@ -299,7 +299,8 @@ 
>        } 
> } 
> </xsl:text><!-- class complete --> 
> -<xsl:text>new </xsl:text><xsl:value-of select="$newClassName"/><xsl:text>().main();</xsl:text> 
> +<xsl:text>new </xsl:text><xsl:value-of select="$newClassName"/><xsl:text>().main(); 
> +process.exit(0);</xsl:text> 
>  
>  
>     </xsl:template> 
> @@ -2243,9 +2244,22 @@ 
>                                <xsl:if test="(local-name() = 'class')"> 
>                                        <xsl:text>Css</xsl:text><!-- method prefix --> 
>                                </xsl:if> 
> +                               <xsl:if test="(local-name() = 'style')"> 
> +                                       <xsl:text>Css</xsl:text><!-- method prefix --> 
> +                               </xsl:if> 
> +                               <xsl:if test="(local-name() = 'id')"> 
> +                                       <xsl:text>Html</xsl:text><!-- method prefix --> 
> +                               </xsl:if> 
>                                <!-- upper camel case --> 
> -                               <xsl:value-of select="translate(substring(name(),1,1),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
> -                               <xsl:value-of select="substring(name(),2)"/> 
> +                               <xsl:if test="(local-name() = 'id')"> 
> +                                       <xsl:value-of select="translate(substring(name(),1,2),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
> +                               </xsl:if> 
> + 
> +                               <xsl:if test="(local-name() != 'id')"> 
> +                                       <xsl:value-of select="translate(substring(name(),1,1),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
> +                                       <xsl:value-of select="substring(name(),2)"/> 
> +                               </xsl:if> 
> + 
>                                <xsl:text>(</xsl:text> 
>  
>                                <xsl:variable name="nodeNumber"    select="count(../preceding::*) + 1"/>
> 
>  
> 
> 
> www.web3d.org/x3d/stylesheets$ svn diff CreateX3dSceneAccessInterfaceJava.xslt  
> Index: CreateX3dSceneAccessInterfaceJava.xslt 
> =================================================================== 
> --- CreateX3dSceneAccessInterfaceJava.xslt      (revision 32565)
> +++ CreateX3dSceneAccessInterfaceJava.xslt      (working copy) 
> @@ -35831,7 +35831,21 @@ 
>                                                                        childElementName.equals("GeoMetadata")    || childElementName.equals("ImageCubeMapTexture") || childElementName.equals("ImageTexture3D") || 
>                                                                        childElementName.equals("ImageTexture")   || childElementName.equals("Inline")              || childElementName.equals("MovieTexture") || 
>                                                                        childElementName.equals("PackagedShader") || childElementName.equals("Script")              || childElementName.equals("ShaderPart") || 
> -                                                                       childElementName.equals("ShaderProgram"))       
> +                                                                       childElementName.equals("ShaderProgram")
> +|| childElementName.equals("Anchor") 
> +|| childElementName.equals("Inline") 
> +|| childElementName.equals("DISEntityTypeMapping") 
> +|| childElementName.equals("GeoMetadata") 
> +|| childElementName.equals("AudioClip") 
> +|| childElementName.equals("ImageCubeMapTexture") 
> +|| childElementName.equals("ImageTexture3D") 
> +|| childElementName.equals("ImageTexture") 
> +|| childElementName.equals("MovieTexture") 
> +|| childElementName.equals("Script") 
> +|| childElementName.equals("PackagedShader") 
> +|| childElementName.equals("ShaderPart") 
> +|| childElementName.equals("ShaderProgram") 
> +)       
>                                                                    && (containerField.equals("children") || containerField.equals("watchList") || containerField.equals("texture") || containerField.equals("programs") ||       
>                                                                        containerField.equals("parts")    || containerField.equals("mapping")   || containerField.equals("shaders") || containerField.equals("source"))) // children is new 
> name in X3D4, otherwise still a common, unambiguous error 
>                                                                        ((LoadSensor)elementObject).addChildren((X3DNode) childX3dElement); // formerly addWatchList in X3D3
> 
>  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20211031/02e26998/attachment-0001.html>


More information about the x3d-public mailing list