<html xmlns:v="urn:schemas-microsoft-com:vml" 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=us-ascii"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@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.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-ligatures:standardcontextual;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri",sans-serif;}
span.element
        {mso-style-name:element;}
span.attribute
        {mso-style-name:attribute;}
span.value
        {mso-style-name:value;}
span.plain
        {mso-style-name:plain;}
.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;}
/* List Definitions */
@list l0
        {mso-list-id:287513451;
        mso-list-type:hybrid;
        mso-list-template-ids:-919854076 -892036226 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-start-at:16;
        mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link="#0563C1" vlink="#954F72" style='word-wrap:break-word'><div class=WordSection1><p class=MsoPlainText>Thanks for helpful report Andreas.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>I almost went ahead and changed it, but am having some second thoughts.  The actual text characters in the description meta tag found in points2500.x3d are<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><ul style='margin-top:0in' type=disc><li class=MsoPlainText style='mso-list:l0 level1 lfo1'><span style='font-size:9.0pt;font-family:"Courier New"'><meta content='This test attempts to draw an Extrusion using the minimum required number of points. The number of points in crossSection * number of points in spine &lt;= 2500 (100 * 25 = 2500). The test should generate a "U" shaped like extrusion.' name='description'/><o:p></o:p></span></li></ul><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>When authoring an .x3d file, using an escape character like <span style='font-size:9.0pt;font-family:"Courier New"'>&lt;</span> is an appropriate form in XML encoding to include a less-than sign in SFString text.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>So we could rephrase this troublesome text in the above description, but instead probably should look at addressing the root cause.  Other examples of legally escaped characters will certainly occur in other X3D fields and files; we also strive for consistently correct convertibility across different formats.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Depending on how you are parsing, one fix might be to keep SFString/MFString values unescaped.  No doubt you are already doing something like that in Script CDATA blocks or url inline code, since less-than sign is quite common in ECMAscript source.  This also has the merit of not modifying author inputs when not necessary.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>So, following that approach, your transcribed result in the HTML would look similar to what is above in .x3d, namely:<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><ul style='margin-top:0in' type=disc><li class=MsoPlainText style='mso-list:l0 level1 lfo1'><span style='font-size:9.0pt;font-family:"Courier New"'><span class="webfont">This test attempts to draw an Extrusion using the minimum required number of points. The number of points in crossSection * number of points in spine &lt;= 2500 (100 * 25 = 2500). The test should generate a "U" shaped like extrusion.</span><o:p></o:p></span></li></ul><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Confirmation check: this indeed looks like what the X3dToXhtml.xslt stylesheet did.  There was a lot of other character escaping going on for satisfactory HTML presentation too.  (Fingers crossed that the following excerpts are not mangled by mailers.)<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><ul style='margin-top:0in' type=disc><li class=MsoPlainText style='mso-list:l0 level1 lfo1'>view-source:https://www.web3d.org/x3d/content/examples/ConformanceNist/Geometry/Extrusion/points2500.html<o:p></o:p></li><li class=MsoPlainText style='mso-list:l0 level1 lfo1'><span style='font-size:9.0pt;font-family:"Courier New"'><span title="meta 'description' provides summary overview describing this resource">&lt;<span class="element">meta</span>&#160;<span class="attribute">name</span>='<span class="value">description</span>'&#160;<span class="attribute">content</span>='<span class="plain">This test attempts to draw an Extrusion using the minimum required number of points. The number of points in crossSection * number of points in spine &lt;= 2500 (100 * 25 = 2500). The test should generate a &quot;U&quot; shaped like extrusion.</span>'/&gt;<o:p></o:p></span></li></ul><p class=MsoPlainText><span style='font-size:9.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><ul style='margin-top:0in' type=disc><li class=MsoPlainText style='mso-list:l0 level1 lfo1'>https://www.web3d.org/x3d/content/examples/ConformanceNist/Geometry/Extrusion/points2500.html<o:p></o:p></li><li class=MsoPlainText style='mso-list:l0 level1 lfo1'><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:black'><</span><span class=element><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:navy'>meta</span></span><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:black'> </span><span class=attribute><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:green'>name</span></span><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:black'>='</span><span class=value><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:teal'>description</span></span><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:black'>' </span><span class=attribute><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:green'>content</span></span><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:black'>='<span class=plain>This test attempts to draw an Extrusion using the minimum required number of points. The number of points in crossSection * number of points in spine <= 2500 (100 * 25 = 2500). The test should generate a "U" shaped like extrusion.</span>'/></span><o:p></o:p></li></ul><p class=MsoPlainText><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:black'><o:p> </o:p></span></p><p class=MsoPlainText><span style='font-family:"Times New Roman",serif;color:black'>Hmm, am finally finding a different culprit, probably what you were trying to get me to understand in the first place:<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Times New Roman",serif;color:black'><o:p> </o:p></span></p><ul style='margin-top:0in' type=disc><li class=MsoPlainText style='mso-list:l0 level1 lfo1'>https://www.web3d.org/x3d/content/examples/ConformanceNist/Geometry/Extrusion/points2500X3dom.xhtml<span style='font-size:9.0pt'><o:p></o:p></span></li><li class=MsoPlainText style='mso-list:l0 level1 lfo1'><span style='font-size:9.0pt;font-family:"Courier New"'><p><o:p></o:p></span></li><li class=MsoPlainText style='mso-list:l0 level1 lfo1'><span style='font-size:9.0pt;font-family:"Courier New"'>   <span class="webfont">This test attempts to draw an Extrusion using the minimum required number of points. The number of points in crossSection * number of points in spine <= 2500 (100 * 25 = 2500). The test should generate a "U" shaped like extrusion.</span><o:p></o:p></span></li><li class=MsoPlainText style='mso-list:l0 level1 lfo1'><span style='font-size:9.0pt;font-family:"Courier New"'></p><o:p></o:p></span></li></ul><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>I found and modified the output from X3dToX3domX_ITE.xslt stylesheet to handle this.  Now seems to work, leaving <span style='font-size:9.0pt;font-family:"Courier New"'>&lt;</span><span style='font-size:9.0pt'> </span>unchanged in description text.  Applying this conversion change to all examples, will upload all revised copies once full build completes.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Hope this helps, further scrutiny and improvements are always welcome.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>p.s. for anyone watching, and recently reaffirmed by Mike McCann at SIGGRAPH 2023 Cartographic BOF: “View Source” capabilities are a critical feature for how the Web keeps getting better.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Have fun with X3D!  8)<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>all the best, Don<o:p></o:p></p><p class=MsoPlainText><span style='font-size:9.0pt;font-family:"Courier New"'>-- <o:p></o:p></span></p><p class=MsoPlainText><span style='font-size:9.0pt;font-family:"Courier New"'>Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman@nps.edu<o:p></o:p></span></p><p class=MsoPlainText><span style='font-size:9.0pt;font-family:"Courier New"'>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<o:p></o:p></span></p><p class=MsoPlainText><span style='font-size:9.0pt;font-family:"Courier New"'>X3D graphics, virtual worlds, navy robotics https://faculty.nps.edu/brutzman<o:p></o:p></span></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>-----Original Message-----<br>From: x3d-public <x3d-public-bounces@web3d.org> On Behalf Of Andreas Plesch<br>Sent: Friday, August 25, 2023 6:47 AM<br>To: X3D Graphics public mailing list <x3d-public@web3d.org><br>Subject: [x3d-public] xhtml example not escaping "<"</p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><a href="https://www.web3d.org/x3d/content/examples/ConformanceNist/Geometry/Extrusion/points2500X3dom.xhtml"><span style='color:windowtext;text-decoration:none'>https://www.web3d.org/x3d/content/examples/ConformanceNist/Geometry/Extrusion/points2500X3dom.xhtml</span></a><o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>is the x3dom version linked from<o:p></o:p></p><p class=MsoPlainText><a href="https://www.web3d.org/x3d/content/examples/ConformanceNist/Geometry/Extrusion/points2500Index.html"><span style='color:windowtext;text-decoration:none'>https://www.web3d.org/x3d/content/examples/ConformanceNist/Geometry/Extrusion/points2500Index.html</span></a><o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>There is a parsing error because the description contains a "<" character:<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>                  <span class="webfont">This test attempts to draw an Extrusion using the minimum required number of points. The number of points in crossSection * number of points in spine <= 2500 (100 * 25 = 2500). The test should generate a "U" shaped like extrusion.</span><o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>This "<" character would need to be replaced with an XML character entity &lt;<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>The documentation html for the iframe does use the character entity for the description:<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><a href="https://www.web3d.org/x3d/content/examples/ConformanceNist/Geometry/Extrusion/points2500.html"><span style='color:windowtext;text-decoration:none'>https://www.web3d.org/x3d/content/examples/ConformanceNist/Geometry/Extrusion/points2500.html</span></a><o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>There may be other example descriptions with "<" or ">" characters.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>-Andreas<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>--<o:p></o:p></p><p class=MsoPlainText>Andreas Plesch<o:p></o:p></p><p class=MsoPlainText>Waltham, MA 02453<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>_______________________________________________<o:p></o:p></p><p class=MsoPlainText>x3d-public mailing list<o:p></o:p></p><p class=MsoPlainText><a href="mailto:x3d-public@web3d.org"><span style='color:windowtext;text-decoration:none'>x3d-public@web3d.org</span></a><o:p></o:p></p><p class=MsoPlainText><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org"><span style='color:windowtext;text-decoration:none'>http://web3d.org/mailman/listinfo/x3d-public_web3d.org</span></a><o:p></o:p></p></div></body></html>