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

John Carlson yottzumm at gmail.com
Sat Sep 2 14:03:52 PDT 2023


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> 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> 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/20230902/81227f70/attachment.html>


More information about the x3d-public mailing list