<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>Note the extra CDATA section in the generated Java and in the X3D (generated from second Java) below compared to the original above.  I need the later code in order to generate JSON in a test.  We will progress from here to the proper encoding of an MFString in Java.  X3D attached.  Let me know if we need the CDATA strings or if we are taking them out.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='color:red'>HelloWorldProgram.java</span><span style='color:red'><o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                colorTypeConversionScript.setSourceCode("ecmascript:" + "\n"</p><p class=MsoNormal>                                + "\n"</p><p class=MsoNormal>                                + "function " + inputColorFieldName + " (eventValue)" + " // Example source code" + "\n"</p><p class=MsoNormal>                                + "{" + "\n"</p><p class=MsoNormal>                                + "   " + outputColorsFieldName + " = new MFColor(eventValue); // assigning value sends output event" + "\n"</p><p class=MsoNormal>                                + "// Browser.print('" + inputColorFieldName + "=' + eventValue + ', " + outputColorsFieldName + "=' + " + outputColorsFieldName + " + '\\n');\n"</p><p class=MsoNormal>                                + "}");</p><p class=MsoNormal>===========================================================================================================================</p><p class=MsoNormal><span style='color:red'>HelloWorldProgramOutput.java<o:p></o:p></span></p><p class=MsoNormal>      .addChild(new ScriptObject("colorTypeConversionScript").setSourceCode(</p><p class=MsoNormal>"<![CDATA[" + "\n" +</p><p class=MsoNormal>"\n" +</p><p class=MsoNormal>"\n" +</p><p class=MsoNormal>"ecmascript:" + "\n" +</p><p class=MsoNormal>"\n" +</p><p class=MsoNormal>"function colorInput (eventValue) // Example source code" + "\n" +</p><p class=MsoNormal>"{" + "\n" +</p><p class=MsoNormal>"   colorsOutput = new MFColor(eventValue); // assigning value sends output event" + "\n" +</p><p class=MsoNormal>"// Browser.print('colorInput=' + eventValue + ', colorsOutput=' + colorsOutput + '\\n');" + "\n" +</p><p class=MsoNormal>"}" + "\n" + "]]>"</p><p class=MsoNormal>)</p><p class=MsoNormal>============================================================================================================================</p><p class=MsoNormal><span style='color:red'>temporaryJsonOutputFilePrettyPrint.intermediate.x3d<o:p></o:p></span></p><p class=MsoNormal>            <Script DEF='colorTypeConversionScript'></p><p class=MsoNormal>                <field name='colorInput' accessType='inputOnly' type='SFColor'/></p><p class=MsoNormal>                <field name='colorsOutput' accessType='outputOnly' type='MFColor'/></p><p class=MsoNormal><![CDATA[</p><p class=MsoNormal><![CDATA[</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>ecmascript:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>function colorInput (eventValue) // Example source code</p><p class=MsoNormal>{</p><p class=MsoNormal>   colorsOutput = new MFColor(eventValue); // assigning value sends output event</p><p class=MsoNormal>// Browser.print('colorInput=' + eventValue + ', colorsOutput=' + colorsOutput + '\n');</p><p class=MsoNormal>}</p><p class=MsoNormal>]]></p><p class=MsoNormal>]]></p><p class=MsoNormal>            </Script></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>============================================================================================================================</p><p class=MsoNormal><span style='color:red'>BUILD ERROR:<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>test-nashorn:</p><p class=MsoNormal>    [javac] Compiling 2 source files to C:\x3d-code\www.web3d.org\x3d\stylesheets\java\classes</p><p class=MsoNormal>     [java] [Fatal Error] temporaryJsonOutputFilePrettyPrint.intermediate.x3d:117:4: The character sequence "]]>" must not appear in content unless used to mark the end of a CDATA section.</p><p class=MsoNormal>     [java] Exception in thread "main" org.web3d.x3d.sai.X3DException: outputFile not writable: C:\x3d-code\www.web3d.org\x3d\stylesheets\temporaryJsonOutputFile.json, org.xml.sax.SAXParseException; systemId: file:/C:/x3d-code/www.web3d.org/x3d/stylesheets/temporaryJsonOutputFilePrettyPrint.intermediate.x3d; lineNumber: 117; columnNumber: 4; The character sequence "]]>" must not appear in content unless used to mark the end of a CDATA section. exception when transforming and creating fileName temporaryJsonOutputFile.json, unable to save result: org.xml.sax.SAXParseException; systemId: file:/C:/x3d-code/www.web3d.org/x3d/stylesheets/temporaryJsonOutputFilePrettyPrint.intermediate.x3d; lineNumber: 117; columnNumber: 4; The character sequence "]]>" must not appear in content unless used to mark the end of a CDATA section.</p><p class=MsoNormal>     [java]     at org.web3d.x3d.jsail.Core.X3DObject.toFileStylesheetConversion(X3DObject.java:955)</p><p class=MsoNormal>     [java]     at org.web3d.x3d.jsail.Core.X3DObject.toFileStylesheetConversion(X3DObject.java:692)</p><p class=MsoNormal>     [java]     at org.web3d.x3d.jsail.Core.X3DObject.toFileJSON(X3DObject.java:1465)</p><p class=MsoNormal>     [java]     at org.web3d.x3d.jsail.Core.X3DObject.toStringJSON(X3DObject.java:1257)</p><p class=MsoNormal>     [java]     at org.web3d.x3d.jsail.Core.X3DObject.toFileJavaScript(X3DObject.java:1352)</p><p class=MsoNormal>     [java]     at org.web3d.x3d.jsail.Core.X3DObject.handleArguments(X3DObject.java:2045)</p><p class=MsoNormal>     [java]     at HelloWorldProgramOutput.main(HelloWorldProgramOutput.java:400)</p><p class=MsoNormal>     [java] Java Result: 1</p><div style='mso-element:para-border-div;border:none;border-bottom:double windowtext 2.25pt;padding:0in 0in 1.0pt 0in'><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p></div><p class=MsoNormal>Potential patch:</p><p class=MsoNormal>$ svn diff X3dToJava.xslt</p><p class=MsoNormal>Index: X3dToJava.xslt</p><p class=MsoNormal>===================================================================</p><p class=MsoNormal>--- X3dToJava.xslt      (revision 26019)</p><p class=MsoNormal>+++ X3dToJava.xslt      (working copy)</p><p class=MsoNormal>@@ -667,12 +667,12 @@</p><p class=MsoNormal>                                          (string-length(normalize-space(text())) > 0)"><!-- TODO restrict to immediate child? --></p><p class=MsoNormal>                        <xsl:text>.setSourceCode(</xsl:text></p><p class=MsoNormal>                        <xsl:text>&#10;</xsl:text></p><p class=MsoNormal>-                       <xsl:text>"&lt;![CDATA[" + "\n" +</xsl:text></p><p class=MsoNormal>+                       <xsl:text></xsl:text></p><p class=MsoNormal>                        <xsl:text>&#10;</xsl:text></p><p class=MsoNormal>                        <xsl:call-template name="stringify-text-lines"></p><p class=MsoNormal>                          <xsl:with-param name="inputString" select="text()"/><!-- TODO restrict to immediate child? might be an issue if field has contained node content and further CDATA text--></p><p class=MsoNormal>                        </xsl:call-template></p><p class=MsoNormal>-                       <xsl:text> + "]]&gt;"</xsl:text><!-- end of CDATA block --></p><p class=MsoNormal>+                       <xsl:text></xsl:text></p><p class=MsoNormal>                        <xsl:text>&#10;</xsl:text></p><p class=MsoNormal>                        <xsl:text>)</xsl:text></p><p class=MsoNormal>                </xsl:if></p></div></body></html>