[x3d-public] per X3D working group phone call Friday, what to do with " at beginning and ending of attribute value?

John Carlson yottzumm at gmail.com
Sat Apr 3 14:49:10 PDT 2021


Vince mentioned '"radius"' in phone call Friday as a valid XML 
SFString.   So perhaps I shouldn't strip matching bounding quotes off 
when converting to a DOM structure?

This affects X3DJSONLD.java. I don't think I've coded this into any 
JavaScript at this point. X3DJSONLD.cpp also has issues. (Are there 
users of X3DJSONLD in Java and C++?)

It was kind of a serendipitous find (and amazing that i was on the phone 
call at all)...There are 4 other uses in X3DJSONLD.java that need to be 
investigated.

Thank Don, for pushing me to have a working JSON loader in X3DJSAIL.  If 
Don doesn't go ahead an program loading X3D JSON into X3DJSAIL 
(X3DJSONLD.java's currently in the net.coderextreme package).

I am sorry I have had other pursuits, and have not been spending time on 
JSON.  I agree that this is my primary volunteer responsibility.   I 
will look into issues, if any, on GitHub. Has someone posted an issue on 
github under X3DJSONLD? I don't see any. I just added one.

I wouldn't call either X3DJSONLD.java or X3DJSONLD.cpp sufficiently 
tested, at least beyond Don's X3DJSAIL HelloWorld examples.   Real world 
struggles and stories are welcome.

 From X3DJSONLD.java:

    public String stripQuotes(String value) {
                 if (value.charAt(0) == '"' && 
value.charAt(value.length()-1) == '"') {
                         return value.substring(1, value.length()-1);
                 } else {
                         return value;
                 }
         }
         public void elementSetAttribute(Element element, String key, 
String value) {
                 if (key.equals("SON schema")) {
                         // JSON Schema
                 } else if (key.equals("ncoding")) {
                         // encoding, UTF-8, UTF-16 or UTF-32
                 } else {
                         // System.err.println(key+"= SA "+value);
                         element.setAttribute(key, stripQuotes(value));
                 }
         }

The question becomes, why do I have stripQuotes in X3DJSONLD.java and 
X3DJSONLD.cpp?????  Probably the X3DJSAIL version is more tested than 
X3DJSONLD's version of X3DJSONLD.java.


Here are primary test cases of X3DJSONLD:


/c/x3d-code/www.web3d.org/x3d/stylesheets/java$ grep -l X3DJSONLD 
*/examples/*
nashorn/examples/Java.java
nashorn/examples/Json.js
nashorn/examples/Nashorn.js
nashorn/examples/Node.js
nashorn/examples/Quotes.js
node/examples/Java.java
node/examples/X3Dautoclass.js


(I know the names are bad, apologies).


Here are examples one might use to test, if you can identify SFStrings:


/c/x3d-code/www.web3d.org/x3d/stylesheets/java/examples$ grep -l 
\'\"[^\"]*\"\' *
CleatClamp.py
CleatClamp.x3d
HelloWorldProgram.java
HelloWorldProgramOutputCanonical.x3d
HelloWorldProgramOutputCanonical.xml
HelloWorldProgramOutput_CommandLine.html
HelloWorldProgramOutput_CommandLineUnzipped.x3d
HelloWorldProgramOutput_CommandLine.x3d
HelloWorldProgramOutput_CommandLine.xml
HelloWorldProgramOutput.html
HelloWorldProgramOutputLog.txt
HelloWorldProgramOutput_ReloadedDOM.x3d
HelloWorldProgramOutputTidy_CommandLine.x3d
HelloWorldProgramOutputTidy.x3d
HelloWorldProgramOutput.wrl
HelloWorldProgramOutput.x3d
HelloWorldProgramOutput.x3dv
HelloWorldProgramOutput.xml


/c/x3d-code/www.web3d.org/x3d/stylesheets/java/nashorn/examples$ grep -l 
\'\"[^\"]*\"\' *
HelloWorldProgramOutput.Java.x3d
HelloWorldProgramOutput.Nashorn.js.newPrettyPrint.intermediate.x3d
HelloWorldProgramOutput.Nashorn.js.new.x3d
HelloWorldProgramOutput.x3d
Java.x3d
JsonPrettyPrint.intermediate.x3d
Json.x3d
Nashorn0.x3d
NashornPrettyPrint.intermediate.x3d
Nashorn.x3d
Node0.x3d
Node.x3d
Quotes.x3d

X3d.x3d


/c/x3d-code/www.web3d.org/x3d/stylesheets/java/node/examples$ grep -l 
\'\"[^\"]*\"\' *
HelloWorldProgramOutput.Java.x3d
HelloWorldProgramOutput.x3d
Java.x3d
Json.x3d
Node0.x3d
Node.x3d
Quotes.x3d
X3d.x3d

It was likely that I was struggling over quoting in the nashorn 
examples, but my memory is pretty much non-existent about this until I 
get back into it.


Do people want a typesafe library for loading JavaScript, or something 
more like a DOM-based loader?  I'll make a new message for this.

John




More information about the x3d-public mailing list