[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