[x3d-public] @channels in HAnimMotion JSON. MFString again

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Sat Sep 2 17:05:44 PDT 2023


John, the authoritative X3dToJson.xslt stylesheet is at

 

*	https://www.web3d.org/x3d/stylesheets/X3dToJson.xslt
*	https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/X3dToJson.xslt

 

Here is an X3D JSON model with several MFString values, three excerpts follow.  Please identify a problem with these MFString values in JSON, if there is one.

 

*	https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter01TechnicalOverview/HelloWorld.json

 

    "WorldInfo": {

        "@info": [

            "Example scene to illustrate a simple X3D model"

        ],

        "@title": "Hello World!"

    }

 

 

    "ImageTexture": {

        "@DEF": "ImageCloudlessEarth",

        "@url": [

            "earth-topo.png",

            "earth-topo.jpg",

            "earth-topo-small.gif",

            "https://www.web3d.org/x3d/content/examples/Basic/earth-topo.png",

            "https://www.web3d.org/x3d/content/examples/Basic/earth-topo.jpg",

            "https://www.web3d.org/x3d/content/examples/Basic/earth-topo-small.gif"

        ]

    }

 

     "Shape": {

            "-geometry": {

                "Text": {

                    "@DEF": "TextMessage",

                    "@string": [

                        "Hello",

                        "world!"

                    ],

                    "-fontStyle": {

                        "FontStyle": {

                            "@justify": [

                                "MIDDLE",

                                "MIDDLE"

                            ]

                        }

                    }

                }

            },

 

all the best, Don

-- 

Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman at nps.edu

Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149

X3D graphics, virtual worlds, navy robotics https://faculty.nps.edu/brutzman

 

From: x3d-public <x3d-public-bounces at web3d.org> On Behalf Of John Carlson
Sent: Saturday, September 2, 2023 2:04 PM
To: X3D Graphics public mailing list <x3d-public at web3d.org>
Subject: Re: [x3d-public] @channels in HAnimMotion JSON. MFString again

 

To clarify:

 

I'm not writing server side code to convert my XML to JSON.   Holger already offers conversions on the web.  I don't want to support a huge web server infrastructure.

 

If someone really wants MFStrings as JSON strings, please by all means, take a copy of X3dToJson.xslt and modify it to your hearts delight!  I can provide Java-based infrastructure, here: https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/java/net/coderextreme/RunSaxon.java

 

This is well tested, but perhaps poorly documented.

 

Here are some examples running it in a pipeline.  The "$@" means a list of X3D XML files.  I am running the conversions on multiple processors with the -P ${PROCESSORS}. So something like xargs -P 8, for example , would run on 8 cores. If you want to distribute, I recommend GNU parallel, but I haven't used it.

 

$ javac -cp "${CLASSPATH}" net/coderextreme/RunSaxon.java

$ ls -d "$@" | grep -v intermediate | grep -v "\.new" | tr '\n' '\0'| xargs -0 -P "$PROCESSORS" java net.coderextreme.RunSaxon --- "${OVERWRITE}" --"${STYLESHEETDIR}/X3dToJson.xslt" -json

 

$ ls -d "$@" | xargs -P $PROCESSORS java net.coderextreme.RunSaxon ---overwrite ---silent --../lib/stylesheets/X3dToNodeJS.xslt -js ---../node/net/x3djsonld/data/

$ ls -d "$@"  | xargs -P $PROCESSORS java net.coderextreme.RunSaxon ---overwrite ---silent --../lib/stylesheets/X3dToJava.xslt -java ---../java/net/x3djsonld/data/

$ ls -d "$@" | xargs -P $PROCESSORS java net.coderextreme.RunSaxon ---overwrite ---silent --../lib/stylesheets/X3dToPython.xslt -py ---../python/net/x3djsonld/data/

 

I will probably add the X3dToES5.xslt in the near future as I'm working with GraalVM.

 

Enjoy!

 

John

 

On Sat, Sep 2, 2023 at 2:37 PM John Carlson <yottzumm at gmail.com <mailto:yottzumm at gmail.com> > wrote:

So no one wants have a frank conversation about this?

 

We need to figure out a solution to MFString in JSON.  We can’t do onesies twosies.

 

My web page now uses Holger’s Browser.toJSONString().  No other solution works half decently on the web for converting XML to JSON in a browser.  X_ITE creates JSON arrays for MFStrings.

 

I have brought up this issue many, many times.  Our current Saxon/XSLT solution does not work in a web client.  The Saxon JavaScript version just isn’t there.  I am not going to write server side code.

 

I am converting XML to JSON over from stylesheets to x3d-tidy, even though Saxon itself works perfectly well in X3D-Edit and in my RunSaxon.java.  Ideally, we could match a web solution with a server-side solution.

 

At this point, I am following Holger’s lead because there’s no Saxon solution for web clients.

 

Are we killing X3D JSON? Then let’s be upfront about it and not talk in smoke-filled rooms.

 

John

 

 

 

On Sat, Sep 2, 2023 at 2:58 AM John Carlson <yottzumm at gmail.com <mailto:yottzumm at gmail.com> > wrote:

 

The @channels field value in the translated JSON appears as a JSON string, not as  a JSON array.  Here we have the MFString problem again.

 

It appears that we have different ideas of what "MF" means.  To me, MF means a JSON array in JSON.  Holger's x3d-tidy tool and X_ITE renders MFStrings as arrays.  I created a special case NavigatorInfo at type.  Can we convert all MFStrings to JSON strings on output, please?  I think that would make everyone happy?

 

If our tools don't agree, that will confuse people.

 

There's could be issues around MFStrings in Text/fontStyle still. and other places, like urls...do you want those rendered as strings or arrays.

 

I'm going to proceed with modifying my schema generator, I'll keep a backup of current stuff.

 

John

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230903/91a1223d/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5464 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230903/91a1223d/attachment-0001.p7s>


More information about the x3d-public mailing list