<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;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        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" style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>Indeed, Saxon-JS 2 and X3dToJson.xslt dropped off a ProtoInstance. Should we go back to java, or try to fix the stylesheet, or provide new stylesheets?</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>If someone could back me up here, I’m not seeing too many files that are translating to JSON properly.</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>John</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>diff -w abox.json abox.json2</p><p class=MsoNormal>56d55</p><p class=MsoNormal><                           {</p><p class=MsoNormal>63d61</p><p class=MsoNormal><                         }</p><p class=MsoNormal>71d68</p><p class=MsoNormal><                       {</p><p class=MsoNormal>81d77</p><p class=MsoNormal><                     }</p><p class=MsoNormal>97d92</p><p class=MsoNormal><                           {</p><p class=MsoNormal>104d98</p><p class=MsoNormal><                         }</p><p class=MsoNormal>112,113c106</p><p class=MsoNormal><                       {</p><p class=MsoNormal><                         "-children":[</p><p class=MsoNormal>---</p><p class=MsoNormal>>                         "-IllegalChildNodeFieldNameNotFound":[</p><p class=MsoNormal>129,150d121</p><p class=MsoNormal><                     }</p><p class=MsoNormal><                   ]</p><p class=MsoNormal><               }</p><p class=MsoNormal><             }</p><p class=MsoNormal><           },</p><p class=MsoNormal><           { "ProtoInstance":</p><p class=MsoNormal><             {</p><p class=MsoNormal><               "@name":"one",</p><p class=MsoNormal><               "fieldValue": [</p><p class=MsoNormal><                 {</p><p class=MsoNormal><                   "@name":"myShape",</p><p class=MsoNormal><                   "-children":[</p><p class=MsoNormal><                     { "Shape":</p><p class=MsoNormal><                       {</p><p class=MsoNormal><                         "-geometry":</p><p class=MsoNormal><                           { "Box":</p><p class=MsoNormal><                             {</p><p class=MsoNormal><                               "@size":[140,140,140]</p><p class=MsoNormal><                             }</p><p class=MsoNormal><                           }</p><p class=MsoNormal><                       }</p><p class=MsoNormal><                     }</p><p class=MsoNormal>153d123</p><p class=MsoNormal><               ]</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>Wednesday, January 6, 2021 9:41 AM<br><b>To: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>RE: X3dToJson.xslt , Saxon-JS 2 (oil and water) which one is at fault?</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Okay here, the block in question where the code drops into.  I think we may need more xsl:when elements above? I’m glad we’re finally getting to this!<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                      <xsl:otherwise><o:p></o:p></p><p class=MsoNormal>                            <!-- Note that this error condition occurs if DTD default attribute values are suppressed before invocation --><o:p></o:p></p><p class=MsoNormal>                            <xsl:text>IllegalChildNodeFieldNameNotFound</xsl:text><o:p></o:p></p><p class=MsoNormal>                            <xsl:message><o:p></o:p></p><p class=MsoNormal>                                <xsl:text>Error: IllegalChildNodeFieldNameNotFound no containerField or field name found for the X3D JSON object. Check spelling of node.</xsl:text><o:p></o:p></p><p class=MsoNormal>                                <xsl:text>&#10;</xsl:text><o:p></o:p></p><p class=MsoNormal>                                <xsl:text>  $elementName=</xsl:text><o:p></o:p></p><p class=MsoNormal>                                <xsl:value-of select="$elementName"/><o:p></o:p></p><p class=MsoNormal>                                <xsl:if test="(string-length(@DEF) > 0)"><o:p></o:p></p><p class=MsoNormal>                                        <xsl:text>, DEF=</xsl:text><o:p></o:p></p><p class=MsoNormal>                                        <xsl:value-of select="@DEF"/><o:p></o:p></p><p class=MsoNormal>                                </xsl:if><o:p></o:p></p><p class=MsoNormal>                                <xsl:if test="(string-length(@USE) > 0)"><o:p></o:p></p><p class=MsoNormal>                                        <xsl:text>, USE=</xsl:text><o:p></o:p></p><p class=MsoNormal>                                        <xsl:value-of select="@USE"/><o:p></o:p></p><p class=MsoNormal>                                </xsl:if><o:p></o:p></p><p class=MsoNormal>                                <xsl:text>, $parentName=</xsl:text><o:p></o:p></p><p class=MsoNormal>                                <xsl:value-of select="$parentName"/><o:p></o:p></p><p class=MsoNormal>                                <xsl:text>&#10;</xsl:text><o:p></o:p></p><p class=MsoNormal>                                <xsl:choose><o:p></o:p></p><p class=MsoNormal>                                        <xsl:when test="not($isTestScene)"><o:p></o:p></p><p class=MsoNormal>                                                <xsl:text>  Please report this error to x3d-public@web3d.org - thanks for your help improving X3D Quality Assurance (QA).</xsl:text><o:p></o:p></p><p class=MsoNormal>                                        </xsl:when><o:p></o:p></p><p class=MsoNormal>                                        <xsl:when test="(string-length(//meta[(@name='title')]/@content) > 0)"><o:p></o:p></p><p class=MsoNormal>                                                <xsl:text>  </xsl:text><o:p></o:p></p><p class=MsoNormal>                                                <xsl:value-of select="//meta[(@name='title')]/@content"/><o:p></o:p></p><p class=MsoNormal>                                                <xsl:text> is a test scene supporting X3D Quality Assurance (QA).</xsl:text><o:p></o:p></p><p class=MsoNormal>                                        </xsl:when><o:p></o:p></p><p class=MsoNormal>                                </xsl:choose><o:p></o:p></p><p class=MsoNormal>                            </xsl:message><o:p></o:p></p><p class=MsoNormal>                        </xsl:otherwise><o:p></o:p></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<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Wednesday, January 6, 2021 9:37 AM<br><b>To: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>X3dToJson.xslt , Saxon-JS 2 (oil and water) which one is at fault?<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Okay, I took all my X3D data files and shoved them through Saxon-JS 2:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>$ npm install -g xslt3<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>$ cat skeleton.sh<o:p></o:p></p><p class=MsoNormal>for i in `ls ../data/*.x3d| grep -v new`<o:p></o:p></p><p class=MsoNormal>do<o:p></o:p></p><p class=MsoNormal>echo ../../../node_modules/.bin/xslt3 -xsl:/c/x3d-code/www.web3d.org/x3d/stylesheets/X3dToJson.xslt -s:$i -o:`dirname $i`/`basename $i .x3d`.json2<o:p></o:p></p><p class=MsoNormal>../../../node_modules/.bin/xslt3 -xsl:/c/x3d-code/www.web3d.org/x3d/stylesheets/X3dToJson.xslt -s:$i -o:`dirname $i`/`basename $i .x3d`.json2<o:p></o:p></p><p class=MsoNormal>Done<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>There are many errors like:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>../../../node_modules/.bin/xslt3 -xsl:/c/x3d-code/www.web3d.org/x3d/stylesheets/X3dToJson.xslt -s:../data/extrusion.x3d -o:../data/extrusion.json2<o:p></o:p></p><p class=MsoNormal>Error: IllegalChildNodeFieldNameNotFound no containerField or field name found for the X3D JSON object. Check spelling of node.<o:p></o:p></p><p class=MsoNormal>  $elementName=Shape, $parentName=Group<o:p></o:p></p><p class=MsoNormal>  Please report this error to x3d-public@web3d.org - thanks for your help improving X3D Quality Assurance (QA).<o:p></o:p></p><p class=MsoNormal>Error: IllegalChildNodeFieldNameNotFound no containerField or field name found for the X3D JSON object. Check spelling of node.<o:p></o:p></p><p class=MsoNormal>  $elementName=Extrusion, DEF=extrusion, $parentName=Shape<o:p></o:p></p><p class=MsoNormal>  Please report this error to x3d-public@web3d.org - thanks for your help improving X3D Quality Assurance (QA).<o:p></o:p></p><p class=MsoNormal>Error: IllegalChildNodeFieldNameNotFound no containerField or field name found for the X3D JSON object. Check spelling of node.<o:p></o:p></p><p class=MsoNormal>  $elementName=Appearance, $parentName=Shape<o:p></o:p></p><p class=MsoNormal>  Please report this error to x3d-public@web3d.org - thanks for your help improving X3D Quality Assurance (QA).<o:p></o:p></p><p class=MsoNormal>Error: IllegalChildNodeFieldNameNotFound no containerField or field name found for the X3D JSON object. Check spelling of node.<o:p></o:p></p><p class=MsoNormal>  $elementName=Material, $parentName=Appearance<o:p></o:p></p><p class=MsoNormal>  Please report this error to x3d-public@web3d.org - thanks for your help improving X3D Quality Assurance (QA).<o:p></o:p></p><p class=MsoNormal>Error: IllegalChildNodeFieldNameNotFound no containerField or field name found for the X3D JSON object. Check spelling of node.<o:p></o:p></p><p class=MsoNormal>  $elementName=TimeSensor, DEF=TourTime, $parentName=Group<o:p></o:p></p><p class=MsoNormal>  Please report this error to x3d-public@web3d.org - thanks for your help improving X3D Quality Assurance (QA).<o:p></o:p></p><p class=MsoNormal>Error: IllegalChildNodeFieldNameNotFound no containerField or field name found for the X3D JSON object. Check spelling of node.<o:p></o:p></p><p class=MsoNormal>  $elementName=Script, DEF=MoveCylinder, $parentName=Group<o:p></o:p></p><p class=MsoNormal>  Please report this error to x3d-public@web3d.org - thanks for your help improving X3D Quality Assurance (QA).<o:p></o:p></p><p class=MsoNormal>Script DEF=MoveCylinder contains CDATA source-code text, copied as "#sourceText" using "strings" mode<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>So either X3dToJson.xslt is not ready for primetime, or it’s Saxon-JS 2.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Here are some of the output files:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>$ grep -l IllegalChild *json2<o:p></o:p></p><p class=MsoNormal>abox.json2<o:p></o:p></p><p class=MsoNormal>app.json2<o:p></o:p></p><p class=MsoNormal>arc.json2<o:p></o:p></p><p class=MsoNormal>arc1.json2<o:p></o:p></p><p class=MsoNormal>arc2.json2<o:p></o:p></p><p class=MsoNormal>arc3.json2<o:p></o:p></p><p class=MsoNormal>arc4.json2<o:p></o:p></p><p class=MsoNormal>ArchHalf.json2<o:p></o:p></p><p class=MsoNormal>ArchPrototype.json2<o:p></o:p></p><p class=MsoNormal>arcold.json2<o:p></o:p></p><p class=MsoNormal>asmallbox.json2<o:p></o:p></p><p class=MsoNormal>ball.json2<o:p></o:p></p><p class=MsoNormal>BoxEm.json2<o:p></o:p></p><p class=MsoNormal>BoxManAnimationPanel.json2<o:p></o:p></p><p class=MsoNormal>bubble.json2<o:p></o:p></p><p class=MsoNormal>bubbles.json2<o:p></o:p></p><p class=MsoNormal>bubs.json2<o:p></o:p></p><p class=MsoNormal>bubs2.json2<o:p></o:p></p><p class=MsoNormal>bubs3.json2<o:p></o:p></p><p class=MsoNormal>CameraShape.json2<o:p></o:p></p><p class=MsoNormal>CoordinateAxes.json2<o:p></o:p></p><p class=MsoNormal>cube.json2<o:p></o:p></p><p class=MsoNormal>extrusion.json2<o:p></o:p></p><p class=MsoNormal>ExtrusionHeart.json2<o:p></o:p></p><p class=MsoNormal>F16.json2<o:p></o:p></p><p class=MsoNormal>flipp.json2<o:p></o:p></p><p class=MsoNormal>flower.json2<o:p></o:p></p><p class=MsoNormal>flower3.json2<o:p></o:p></p><p class=MsoNormal>flowerproto.json2<o:p></o:p></p><p class=MsoNormal>flowers.json2<o:p></o:p></p><p class=MsoNormal>flowers2.json2<o:p></o:p></p><p class=MsoNormal>flowers4.json2<o:p></o:p></p><p class=MsoNormal>force.json2<o:p></o:p></p><p class=MsoNormal>[snip]<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>What I will do next is investigate X3dToJson.xslt<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Ttiab.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>