<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";
        color:black;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Because X3D JSON is very different from X3D XML.  They don’t map well with standard methods.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Yes, it will take a little more work to handle circular dependencies, and all the extra variables in DOM.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Are you proposing JSON.stringify(xmlDom)?  I think that would generate way to much data, and XMLSerializer would work better, but XMLSerializer produces XML.  But that’s essentially what DOM2JSONSerializer is, serializes DOM to X3D JSON.  Duh!</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The revolution here is that I can do it client side.  I already had X3dToJson.xslt to do it server side. X3dToJson.xslt doesn’t work client side, last I checked.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I don’t think you’ve found the golden egg yet, Leonard, but see below.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I encourage you to propose an X3D JSON standard based on this to see if it will fly.  Send some PROTO examples to the mailing list—believe me, I tried.  The first step is to standardize X3D JSON, not find an XML to JSON converter.  But to finalize the X3D JSON standard, we need two implementations.  Now we have 2 implementations.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Please proposed an X3D JSON standard that is simpler, PLEASE????</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks!</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:Leonard.Daly@realism.com">Leonard Daly</a><br><b>Sent: </b>Tuesday, March 20, 2018 11:30 AM<br><b>To: </b><a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a><br><b>Subject: </b>Re: [x3d-public] X3DJSONLD ... converts XML to JSON client side!</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'><span style='color:black'>John,<br><br>I am wondering how this might differ from the following built-in capabilities described below. What does your code do differently than these built-in methods?<br><br><br>XD is an (string) XML fragment, then this fragment can be inserted into the DOM (either as part of the document of a separate sub-tree) using<br><br>var parser = new DOMParser();<br>var xmlDom = parser.parserFromString (XD, 'application/xml');<br><br>[Ref: <a href="https://developer.mozilla.org/en-US/docs/Web/API/DOMParser">https://developer.mozilla.org/en-US/docs/Web/API/DOMParser</a>]<br><br>At this point xmlDom is a DOM tree, but not inserted into the HTML document DOM.<br><br>It is possible to go back to XML string using<br><br>var S = new XMLSerializer();<br>var xmlString = s.serializeToString (xmlDom);<br><br>[Ref: <a href="https://developer.mozilla.org/en-US/docs/Web/API/XMLSerializer">https://developer.mozilla.org/en-US/docs/Web/API/XMLSerializer</a>]<br><br>There is the JSON.stringify method <br><br>[Ref: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify</a> and <a href="https://stackoverflow.com/questions/46880822/how-to-json-stringify-a-dom-element">https://stackoverflow.com/questions/46880822/how-to-json-stringify-a-dom-element</a> - answer 1]<br><br>There is at least one other GItHub project (<a href="https://gist.github.com/sstur/7379870">https://gist.github.com/sstur/7379870</a>) that converts to/from JSON and strings/DOM.<br><br>Going from an internal object to JSON takes a little careful work to make sure the tree is correctly handled and the code does not follow the circular loops that are present in DOM.<br><br><br>Leonard Daly<br><br><br><br><o:p></o:p></span></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span style='color:black'>The X3D JSON Loader now converts XML to JSON client-side, for your nefarious purposes!<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'><a href="https://coderextreme.net/X3DJSONLD/src/main/html/index.html">https://coderextreme.net/X3DJSONLD/src/main/html/index.html</a><o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>Enjoy loading!<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>John<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'><br><br><br><o:p></o:p></span></p><pre>_______________________________________________</pre><pre>x3d-public mailing list</pre><pre><a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a></pre><pre><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></pre></blockquote><p><o:p> </o:p></p><p class=MsoNormal><span style='color:black'>-- <br></span><b><span style='font-size:13.5pt;color:#333366'>Leonard Daly</span></b><span style='color:#333366'><br>3D Systems & Cloud Consultant<br>LA ACM SIGGRAPH Past Chair<br>President, Daly Realism - <i>Creating the Future</i> </span><span style='color:black'><o:p></o:p></span></p><p class=MsoNormal><span style='color:black'><o:p> </o:p></span></p></div></body></html>