<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>Examples, I believe, where USE is not appearing.  See intermediate X3D and new json for missing USE</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:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Monday, March 20, 2017 8:20 AM<br><b>To: </b><a href="mailto:brutzman@nps.edu">Don Brutzman</a><br><b>Subject: </b>Re: X3DJSAIL progress report: quote escapinig, node validation, .jsonimprovements, containerField handling</p></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>Does this update include USE field output?   I will check your TXT file.</p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>John</p></div></div><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>On Mar 19, 2017 5:24 PM, "Don Brutzman" <<a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a>> wrote:</p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><p class=MsoNormal style='margin-bottom:12.0pt'>Further updates now deployed:<br><br>- A  bunch of work for escaping quotes in the X3dToJson.xslt stylesheet<br>- Improved handling of quotation marks and escaping<br>- Validating acceptableNodeTypes for setting nodes<br><br>Now handling most (perhaps all?) containerField values OK.  Related documentation now available at<br><br><a href="http://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" target="_blank">http://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField</a><br>========================================================================<br>X3D Scene Authoring Hints: containerField</p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><p class=MsoNormal> For the XML encoding of .x3d scenes, containerField is the field name indicating a node's field relationship to its parent node.<br><br>For example: <Transform><Shape containerField='children'/></Transform> shows that the Shape node is one of the children of the Transform node.<br><br>    Default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.<br>    Example values include containerField='geometry' for Box node, containerField='children' for Group node, containerField='proxy' for hidden proxy shape within a Collision node, etc.<br>    containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.<br><br>A small number of nodes have more than one field that can accept the same node type. Care must be taken with the following non-default child fields.<br><br>    MetadataSet can have a single X3DMetadataNode node with default containerField='metadata', or multiple other X3DMetadataNode nodes with containerField='value'.<br>    CADFace and CollidableShape can have a single default Shape node with containerField='shape'. CADFace can also accept an LOD or Transform node in this SFNode field.<br>    Collision can contain multiple nodes with default containerField='children', or can have a single unrendered Shape, or X3DGroupingNode with containerField='proxy'.</p></blockquote><p class=MsoNormal><br>========================================================================<br><br>Also rebuilt and uploaded all .json scenes in X3D Examples, see "Special testing distribution" at<br><br>        <a href="http://www.web3d.org/x3d/content/examples/X3dResources.html#Examples" target="_blank">http://www.web3d.org/x3d/content/examples/X3dResources.html#Examples</a><br><br>Test excerpts follow, linked at<br><br>        X3DJSAIL Examples<br>        <a href="http://www.web3d.org/specifications/java/X3DJSAIL.html#Examples" target="_blank">http://www.web3d.org/specifications/java/X3DJSAIL.html#Examples</a><br><br><a href="http://www.web3d.org/specifications/java/examples/HelloWorldProgramOutput.txt" target="_blank">http://www.web3d.org/specifications/java/examples/HelloWorldProgramOutput.txt</a><br>========================================================================<br><Shape><br>        <Appearance><br>                <Material/><br>        </Appearance><br>        <Text string='"X3D Java" "SAI Library" "X3DJSAIL"'><br>                <MetadataSet name='EscapedQuotationMarksMetadataSet'><br>                        <MetadataString name='escapedQuotesTest2' value='"escaped quotation marks example 2: He said, \"Immel did it!\""'/><br>                </MetadataSet><br>                <FontStyle family='"SERIF"' justify='"MIDDLE" "MIDDLE"'/><br>                <!-- escaped quotation marks example 3: He said, \"Immel did it!\" --><br>                <!-- escaped quotation marks example 4: He said, \&quot;Immel did it!\&quot; --><br>        </Text><br></Shape><br><Collision><br>        <!-- test containerField='proxy' --><br>        <Shape DEF='ProxyShape'><br>                <Box/><br>        </Shape><br></Collision><br>========================================================================<br>{ "Shape":<br>  {<br>        "-appearance":<br>          { "Appearance":<br>                {<br>                  "-material":<br>                        { "Material":<br>                          {<br>                          }<br>                        }<br>                }<br>          },<br>        "-geometry":<br>          { "Text":<br>                {<br>                  "@string":["X3D Java","SAI Library","X3DJSAIL"],<br>                  "-metadata":<br>                        { "MetadataSet":<br>                          {<br>                                "@name":"EscapedQuotationMarksMetadataSet",<br>                                "-value":[<br>                                  { "MetadataString":<br>                                        {<br>                                          "@name":"escapedQuotesTest1",<br>                                          "@value":["escaped quotation marks example 1: He said, \\\"Immel did it!\\\""]<br>                                        }<br>                                  },<br>                                  { "MetadataString":<br>                                        {<br>                                          "@name":"escapedQuotesTest2",<br>                                          "@value":["escaped quotation marks example 2: He said, \\\"Immel did it!\\\""]<br>                                        }<br>                                  }<br>                                ]<br>                          }<br>                        },<br>                  "-fontStyle":<br>                        { "FontStyle":<br>                          {<br>                                "@justify":["MIDDLE","MIDDLE"]<br>                          }<br>                        },<br>                  "-children":[<br>                        {<br>                          "#comment":"escaped quotation marks example 3: He said, \\\"Immel did it!\\\""<br>                        },<br>                        {<br>                          "#comment":"escaped quotation marks example 4: He said, \\&quot;Immel did it!\\&quot;"<br>                        }<br>                  ]<br>                }<br>          }<br>  }<br>},<br>{ "Collision":<br>  {<br>        "-children":[<br>          {<br>                "#comment":"test containerField='proxy'"<br>          }<br>        ],<br>        "-proxy":<br>          { "Shape":<br>                {<br>                  "@DEF":"ProxyShape",<br>                  "-geometry":<br>                        { "Box":<br>                          {<br>                          }<br>                        }<br>                }<br>          }<br>  }<br>},<br>========================================================================<br><br>On 3/13/2017 8:38 AM, Don Brutzman wrote:</p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><p class=MsoNormal>A new X3DLoaderObject is now ready that can read .x3d scenes using native Java DOM support, using Java Reflection to then create strongly typed X3DJSAIL scene objects.  Online at<br><br>    X3DLoaderObject: Concrete class for loading an X3D graphics string, file or fragment encoded in XML.<br>    <a href="http://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/X3DLoaderObject.html" target="_blank">http://www.web3d.org/specifications/java//javadoc/org/web3d/x3d/jsail/X3DLoaderObject.html</a><br><br>with methods<br>    getDomDocument() isLoadSuccessful() getValidationResult() getX3dObjectTree()<br>    loadX3DfromFile(x3dFile) toStringX3D(org.w3c.dom.Node node) toX3dObjectTree(<a href="http://org.w3c.dom.No">org.w3c.dom.No</a>de node)<br><br>Example result<br>    <a href="https://svn.code.sf.net/p/x3d/code/www.web3d.org/x3d/stylesheets/java/examples/HelloWorldProgramOutput.Reloaded.x3d" target="_blank">https://svn.code.sf.net/p/x3d/code/www.web3d.org/x3d/stylesheets/java/examples/HelloWorldProgramOutput.Reloaded.x3d</a><br><br>which is a reloaded and serialized output that exactly matches input scene<br>    <a href="https://svn.code.sf.net/p/x3d/code/www.web3d.org/x3d/stylesheets/java/examples/HelloWorldProgramOutput.x3d" target="_blank">https://svn.code.sf.net/p/x3d/code/www.web3d.org/x3d/stylesheets/java/examples/HelloWorldProgramOutput.x3d</a><br><br>This library improvement fixes a significant bug in field types, which are getting more robust.  Also add a variety of .normalize() utility methods and validation checks on negative SFTime/MFTime values.<br>    <a href="http://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/fields/MFColorObject.html" target="_blank">http://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/fields/MFColorObject.html</a><br><br>As ever, demonstration test source available in<br>    <a href="http://www.web3d.org/specifications/java/examples/HelloWorldProgram.java" target="_blank">http://www.web3d.org/specifications/java/examples/HelloWorldProgram.java</a><br><br>Entire build online via<br>    <a href="http://www.web3d.org/specifications/java/X3DJSAIL.html" target="_blank">http://www.web3d.org/specifications/java/X3DJSAIL.html</a></p></blockquote></blockquote></div></div><p class=MsoNormal style='margin-left:4.8pt'><br>Have fun with X3D Java using X3DJSAIL!  8)<br><br>all the best, Don<br>-- <br>Don Brutzman  Naval Postgraduate School, Code USW/Br       <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a><br>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   <a href="tel:%2B1.831.656.2149" target="_blank">+1.831.656.2149</a><br>X3D graphics, virtual worlds, navy robotics <a href="http://faculty.nps.edu/brutzman" target="_blank">http://faculty.nps.edu/brutzman</a></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>