<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;}
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;}
.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>This was successfully fixed.  I reverted my comments back to strings, and comparing X3dToJson.xslt and DOM2JSONSerializer.json output, they are similar, except for #sourceText, which Don needs to fix in X3dToJson.xslt.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>So I am announcing the immediate availability of DOM2JSONSerializer.js, the first DOM to X3D JSON converter which works in web browsers!</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/DOM2JSONSerializer.js</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>usage:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>cd X3DJSONLD/src/main/node</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>node xml2all.js ../data/file1.x3d ../data/file2.x3d …</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>output should be in .../data/file1.json ../data/file2.json …</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>Note that I have changed my Prototype Expander and different files succeed/fail  I will work on that next.</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:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Monday, March 19, 2018 7:05 AM<br><b>To: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>Fixing DOM2JSONSerializer.js</p></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>So I've been trying to think how to solve the fieldValue type (arrays, booleans being treated like SFStrings) problems in DOM2JSON Serializer.   I know I have to find the type in the field declaration.  Which is stored in the ProtoDeclare and ExternProtoDeclare.   So it should be easy to find the Protos by name, except in the case where there's a USE in a prototype instance, in that case, I have to look for a DEF first.   And I have to handle scoping.   This seems like a job for the ProtoExpander, but I'm pretty sure I don't want the whole thing.</p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Any thoughts about making it inline versus a postprocess?</p></div><div><p class=MsoNormal><o:p> </o:p></p></div></div><p class=MsoNormal>John</p><p class=MsoNormal><o:p> </o:p></p></div></body></html>