<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>Don, I am directly comparing the results of RunSaxon.java (which uses X3dToJson.xslt) with xslt3 (which uses X3dToJson.xslt).</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I will get back to you on this.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I’ll visit your HelloWorld.x3d.</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>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:brutzman@nps.edu">Don Brutzman</a><br><b>Sent: </b>Wednesday, January 6, 2021 1:36 PM<br><b>To: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a>; <a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: [x3d-public] 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>Hi John.  A good practice is to compare with possible errors in original content in order to isolate the cause of difficulties.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>* X3D Resources, Examples: Scene Archives for X3D</p><p class=MsoNormal>   https://www.web3d.org/x3d/content/examples/X3dResources.html#Examples</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Most of the following relationships are demonstrated in</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>* X3D Example Archives: X3D4AM, X3D for Advanced Modeling, Hello World Scenes, Hello World</p><p class=MsoNormal>   https://x3dgraphics.com/examples/X3dForAdvancedModeling/HelloWorldScenes/HelloWorldIndex.html</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>* https://x3dgraphics.com/examples/X3dForAdvancedModeling/HelloWorldScenes/HelloWorld.json</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>which has been successfully converted from HelloWorld.x3d by X3dToJson.xslt</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>On 1/6/2021 7:37 AM, John Carlson wrote:</p><p class=MsoNormal>> </p><p class=MsoNormal>> Okay, I took all my X3D data files and shoved them through Saxon-JS 2:</p><p class=MsoNormal>> </p><p class=MsoNormal>> $ npm install -g xslt3</p><p class=MsoNormal>> </p><p class=MsoNormal>> $ cat skeleton.sh</p><p class=MsoNormal>> </p><p class=MsoNormal>> for i in `ls ../data/*.x3d| grep -v new`</p><p class=MsoNormal>> </p><p class=MsoNormal>> do</p><p class=MsoNormal>> </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</p><p class=MsoNormal>> </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</p><p class=MsoNormal>> </p><p class=MsoNormal>> Done</p><p class=MsoNormal>> </p><p class=MsoNormal>> There are many errors like:</p><p class=MsoNormal>> </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</p><p class=MsoNormal>> </p><p class=MsoNormal>> Error: IllegalChildNodeFieldNameNotFound no containerField or field name found for the X3D JSON object. Check spelling of node.</p><p class=MsoNormal>> </p><p class=MsoNormal>>    $elementName=Shape, $parentName=Group</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>expected value for parent-child relationship is containerField='children'</p><p class=MsoNormal><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).</p><p class=MsoNormal>> </p><p class=MsoNormal>> Error: IllegalChildNodeFieldNameNotFound no containerField or field name found for the X3D JSON object. Check spelling of node.</p><p class=MsoNormal>> </p><p class=MsoNormal>>    $elementName=Extrusion, DEF=extrusion, $parentName=Shape</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>expected value for parent-child relationship is containerField='geometry'</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><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).</p><p class=MsoNormal>> </p><p class=MsoNormal>> Error: IllegalChildNodeFieldNameNotFound no containerField or field name found for the X3D JSON object. Check spelling of node.</p><p class=MsoNormal>> </p><p class=MsoNormal>>    $elementName=Appearance, $parentName=Shape</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>expected value for parent-child relationship is containerField='appearance'</p><p class=MsoNormal><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).</p><p class=MsoNormal>> </p><p class=MsoNormal>> Error: IllegalChildNodeFieldNameNotFound no containerField or field name found for the X3D JSON object. Check spelling of node.</p><p class=MsoNormal>> </p><p class=MsoNormal>>    $elementName=Material, $parentName=Appearance</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>expected value for parent-child relationship is containerField='material'</p><p class=MsoNormal><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).</p><p class=MsoNormal>> </p><p class=MsoNormal>> Error: IllegalChildNodeFieldNameNotFound no containerField or field name found for the X3D JSON object. Check spelling of node.</p><p class=MsoNormal>> </p><p class=MsoNormal>>    $elementName=TimeSensor, DEF=TourTime, $parentName=Group</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>expected value for parent-child relationship is containerField='children'</p><p class=MsoNormal><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).</p><p class=MsoNormal>> </p><p class=MsoNormal>> Error: IllegalChildNodeFieldNameNotFound no containerField or field name found for the X3D JSON object. Check spelling of node.</p><p class=MsoNormal>> </p><p class=MsoNormal>>    $elementName=Script, DEF=MoveCylinder, $parentName=Group</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>expected value for parent-child relationship is containerField='children'</p><p class=MsoNormal><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).</p><p class=MsoNormal>> </p><p class=MsoNormal>> Script DEF=MoveCylinder contains CDATA source-code text, copied as "#sourceText" using "strings" mode</p><p class=MsoNormal>> </p><p class=MsoNormal>> So either X3dToJson.xslt is not ready for primetime, or it’s Saxon-JS 2.</p><p class=MsoNormal>> </p><p class=MsoNormal>> Here are some of the output files:</p><p class=MsoNormal>> </p><p class=MsoNormal>> $ grep -l IllegalChild *json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> abox.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> app.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> arc.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> arc1.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> arc2.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> arc3.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> arc4.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> ArchHalf.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> ArchPrototype.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> arcold.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> asmallbox.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> ball.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> BoxEm.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> BoxManAnimationPanel.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> bubble.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> bubbles.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> bubs.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> bubs2.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> bubs3.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> CameraShape.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> CoordinateAxes.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> cube.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> extrusion.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> ExtrusionHeart.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> F16.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> flipp.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> flower.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> flower3.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> flowerproto.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> flowers.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> flowers2.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> flowers4.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> force.json2</p><p class=MsoNormal>> </p><p class=MsoNormal>> [snip]</p><p class=MsoNormal>> </p><p class=MsoNormal>> What I will do next is investigate X3dToJson.xslt</p><p class=MsoNormal>> </p><p class=MsoNormal>> Ttiab.</p><p class=MsoNormal>> </p><p class=MsoNormal>> John</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Wondering if your scenes have DOCTYPE (DTD) declarations in them? Is it correct?</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>* X3D Scene Authoring Hints, Validation of X3D Scenes using DTD and XML Schema</p><p class=MsoNormal>   https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Validation</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I think that the retrieved DOCTYPE is where saxon gets default containerField values from in the X3D Examples build.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>If you (or other authors) don't want to include DOCTYPE, that is understandable (and of course allowed).  If this is the cause of the problem, then maybe we need to add containerField default values directly in this stylesheet (as well as a number of others).  Or maybe you want to add a local reference to DOCTYPE as part of your invocation.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>all the best, Don</p><p class=MsoNormal>-- </p><p class=MsoNormal>Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman@nps.edu</p><p class=MsoNormal>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149</p><p class=MsoNormal>X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman</p><p class=MsoNormal><o:p> </o:p></p></div></body></html>