<div dir="auto">I am realizing I can override the HAnimHumanoid class in my X3Dautoclass.js files, but I don’t know how that might affect X3DJSAIL.  Worth a shot!</div><div dir="auto"><br></div><div dir="auto">Note that this will not affect DOM or XML parsing in X3DJSAIL.  Ideally, I’d have a new node type (ugh!) or be able to do dependency injection/class replacement, like I can for JavaScript or Python.</div><div dir="auto"><br></div><div dir="auto">Another reason why putting a language on top of X3DJSAIL has benefits!  Go node-java/GraalJS/Pyjnius!</div><div dir="auto"><br></div><div dir="auto">This is obviously very experimental right now, and a maintenance headache for most people.</div><div dir="auto"><br></div><div dir="auto">John</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 20, 2024 at 6:02 PM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr">Okay, I am seeing that the stylesheet to use is configurable in the X3DJSAIL.properties file.  Great.  That applies to output.<div><br></div><div>Can I have an X3DJSAIL property for overriding the HAnimHumanoid class? Suggestions?  Or just override one output method through dependency injection?  Can I do dependency injection from the command line?</div><div><br></div><div>I'm guessing alternate stylesheets is the correct approach, but it may not affect XML output?  comments?  Is there a way to set the stylesheets in CommandLine.java command line options?  If I can do that, then I can get rid of my RunSaxon.java  Except RunSaxon.java handles batch requests.  Another thing to do would be to send translated file names to standard output, which I can then process successful conversions through a json2all.js script.</div><div><br></div><div>Should I donate RunSaxon.java to the cause?</div><div><br></div><div>Here it is:</div><div><br></div><div><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/java/net/coderextreme/RunSaxon.java" target="_blank">X3DJSONLD/src/main/java/net/coderextreme/RunSaxon.java at master · coderextreme/X3DJSONLD (github.com)</a><br></div><div><br></div><div>Probably some modifications would be required to pair input with output.  I compute stuff like file names automatically.</div><div><br></div><div>What I'm concerned most about is maintaining both a scene graph and a String in memory as the Strings can get quite large (8GB).  It looks like there may already be streaming input, so the question might be, how is streaming to/from standard input/standard output from a scene graph accomplished?  Similar to tovrml.exe.  Say I want to put CommandLine in a shell or Bun JavaScript pipeline?</div><div><br></div><div>I'll read the X3DJSAIL wish list in a bit.</div><div><br></div><div>Thanks!</div></div></div></div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><br></div><div>John</div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 20, 2024 at 4:53 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Support:<div dir="auto"><br></div><div dir="auto">toWriterXML(Writer w)</div><div dir="auto">toOutputStreamXML(OutputStream os)</div><div dir="auto">fromReaderXML(Reader r)</div><div dir="auto">fromInputStreamXML(InputStream is)</div><div dir="auto"><br></div><div dir="auto">methods in I/O classes or buffering/channel classes (java.nio).  I’ve not used java.nio much.    One can also consider Jackson XML.</div><div dir="auto"><br></div><div dir="auto">Or otherwise support XML Source and Result interfaces, namely:</div><div dir="auto"><br></div><div dir="auto"><div><div style="margin:0px 20px;padding:5px 0px 0px"><div style="margin:5px 0px 0px" dir="auto">javax.xml.transform.Source</div><div style="margin:5px 0px 0px" dir="auto">javax.xml.transform.Result</div></div></div><br></div><div dir="auto">and implementers (preferred over above, I think), Sources can return a Node.</div><div dir="auto"><br></div><div dir="auto">I may do this myself.  Let me know if this is already done.</div><div dir="auto"><br></div><div dir="auto">Comments?</div><div dir="auto"><br></div><div dir="auto">It would be good to do this for Classic VRML and VRML97 as well.</div><div dir="auto"><br></div><div dir="auto">The benefit is that the developer can bring any I/O object classes and any XML i/o they want.  I believe that this can provide for formatting/pretty printing as well, and the user should be able to specify what pretty printing they want, so indenting is not necessary, or can be customized.</div><div dir="auto"><br></div><div dir="auto">What I’m ultimately aiming for is flexibility in field output ordering.   I realize this may not do it, can I bring my own stylesheets to X3DJSAIL?  Suggestions on how to override current methods recommended?  I just want to override the HAnimHumanoid class.  I don’t want to touch X3DJSAIL if I can help it.</div><div dir="auto"><br></div><div dir="auto">Another advantage might be that one doesn’t have to hold the whole document in a String on output.</div><div dir="auto"><br></div><div dir="auto">Breathe Java!</div><div dir="auto"><br></div><div dir="auto">John</div><div dir="auto"><br></div>
</blockquote></div>
</blockquote></div></div>