<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>www_web3d_org/x3d/content/examples/Basic/development/CameraExamples</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:  DEF newValue="Camera.SimpleShotsTest" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.X3DConcreteNode.setConcreteDEF(X3DConcreteNode.java:143)^M</p><p class=MsoNormal>        at org.web3d.x3d.java.Core.ProtoInstanceObject.setDEF(ProtoInstanceObject.java:417)^M</p><p class=MsoNormal>        at www_web3d_org.x3d.content.examples.Basic.development.CameraExamples.main(CameraExamples.java:1064)^M</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='color:red'>meta name: (also setName() in metaObject.java).<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>www_web3d_org/x3d/content/examples/Basic/ChemicalMarkupLanguage/Digitoxigenin</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: meta name newValue="CML version" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.Core.metaObject.setName(metaObject.java:484)^M</p><p class=MsoNormal>        at www_web3d_org.x3d.content.examples.Basic.ChemicalMarkupLanguage.Digitoxigenin.main(Digitoxigenin.java:104)^M</p><p class=MsoNormal>www_web3d_org/x3d/content/examples/Basic/ChemicalMarkupLanguage/DimethylSulfoxide</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: meta name newValue="CML version" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.Core.metaObject.setName(metaObject.java:484)^M</p><p class=MsoNormal>        at www_web3d_org.x3d.content.examples.Basic.ChemicalMarkupLanguage.DimethylSulfoxide.main(DimethylSulfoxide.java:104)^M</p><p class=MsoNormal>www_web3d_org/x3d/content/examples/Basic/ChemicalMarkupLanguage/Ethanol</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: meta name newValue="CML version" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.Core.metaObject.setName(metaObject.java:484)^M</p><p class=MsoNormal>        at www_web3d_org.x3d.content.examples.Basic.ChemicalMarkupLanguage.Ethanol.main(Ethanol.java:104)^M</p><p class=MsoNormal>www_web3d_org/x3d/content/examples/Basic/ChemicalMarkupLanguage/GlycerolDiacetate</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: meta name newValue="CML version" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.Core.metaObject.setName(metaObject.java:484)^M</p><p class=MsoNormal>        at www_web3d_org.x3d.content.examples.Basic.ChemicalMarkupLanguage.GlycerolDiacetate.main(GlycerolDiacetate.java:104)^M</p><p class=MsoNormal>www_web3d_org/x3d/content/examples/Basic/ChemicalMarkupLanguage/Histamine</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: meta name newValue="CML version" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.Core.metaObject.setName(metaObject.java:484)^M</p><p class=MsoNormal>        at www_web3d_org.x3d.content.examples.Basic.ChemicalMarkupLanguage.Histamine.main(Histamine.java:104)^M</p><p class=MsoNormal>www_web3d_org/x3d/content/examples/Basic/ChemicalMarkupLanguage/Oxytocin</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: meta name newValue="CML version" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.Core.metaObject.setName(metaObject.java:484)^M</p><p class=MsoNormal>        at www_web3d_org.x3d.content.examples.Basic.ChemicalMarkupLanguage.Oxytocin.main(Oxytocin.java:104)^M</p><p class=MsoNormal>www_web3d_org/x3d/content/examples/Basic/ChemicalMarkupLanguage/PyruvicAcid</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: meta name newValue="CML version" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.Core.metaObject.setName(metaObject.java:484)^M</p><p class=MsoNormal>        at www_web3d_org.x3d.content.examples.Basic.ChemicalMarkupLanguage.PyruvicAcid.main(PyruvicAcid.java:104)^M</p><p class=MsoNormal>www_web3d_org/x3d/content/examples/Basic/ChemicalMarkupLanguage/Riboflavin</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: meta name newValue="CML version" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.Core.metaObject.setName(metaObject.java:484)^M</p><p class=MsoNormal>        at www_web3d_org.x3d.content.examples.Basic.ChemicalMarkupLanguage.Riboflavin.main(Riboflavin.java:104)^M</p><p class=MsoNormal>www_web3d_org/x3d/content/examples/Basic/ChemicalMarkupLanguage/SomatoStatin</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: meta name newValue="CML version" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.Core.metaObject.setName(metaObject.java:484)^M</p><p class=MsoNormal>        at www_web3d_org.x3d.content.examples.Basic.ChemicalMarkupLanguage.SomatoStatin.main(SomatoStatin.java:104)^M</p><p class=MsoNormal>www_web3d_org/x3d/content/examples/Basic/ChemicalMarkupLanguage/TartaricAcid</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: meta name newValue="CML version" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.Core.metaObject.setName(metaObject.java:484)^M</p><p class=MsoNormal>        at www_web3d_org.x3d.content.examples.Basic.ChemicalMarkupLanguage.TartaricAcid.main(TartaricAcid.java:104)^M</p><p class=MsoNormal>www_web3d_org/x3d/content/examples/Basic/ChemicalMarkupLanguage/Tetrahydrofuran</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: meta name newValue="CML version" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.Core.metaObject.setName(metaObject.java:484)^M</p><p class=MsoNormal>        at www_web3d_org.x3d.content.examples.Basic.ChemicalMarkupLanguage.Tetrahydrofuran.main(Tetrahydrofuran.java:104)^M</p><p class=MsoNormal>www_web3d_org/x3d/content/examples/Basic/ChemicalMarkupLanguage/TransDCE</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: meta name newValue="CML version" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.Core.metaObject.setName(metaObject.java:484)^M</p><p class=MsoNormal>        at www_web3d_org.x3d.content.examples.Basic.ChemicalMarkupLanguage.TransDCE.main(TransDCE.java:104)^M</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>(and more)</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='color:red'>DEFs<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>www_web3d_org/x3d/content/examples/Basic/Geospatial/SriCampus</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:  DEF newValue="LVCS-ORIGIN" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.X3DConcreteNode.setConcreteDEF(X3DConcreteNode.java:143)^M</p><p class=MsoNormal>        at org.web3d.x3d.java.Geospatial.GeoOriginObject.setDEF(GeoOriginObject.java:501)^M</p><p class=MsoNormal>        at www_web3d_org.x3d.content.examples.Basic.Geospatial.SriCampus.main(SriCampus.java:140)^M</p><p class=MsoNormal>www_web3d_org/x3d/content/examples/Basic/Geospatial/SriCampus000</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:  DEF newValue="OBJECT-0-VERTICES" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.X3DConcreteNode.setConcreteDEF(X3DConcreteNode.java:143)^M</p><p class=MsoNormal>        at org.web3d.x3d.java.Rendering.CoordinateObject.setDEF(CoordinateObject.java:324)^M</p><p class=MsoNormal>        at www_web3d_org.x3d.content.examples.Basic.Geospatial.SriCampus000.main(SriCampus000.java:147)^M</p><p class=MsoNormal>www_web3d_org/x3d/content/examples/Basic/Geospatial/SriCampus001</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:  DEF newValue="OBJECT-1-VERTICES" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.X3DConcreteNode.setConcreteDEF(X3DConcreteNode.java:143)^M</p><p class=MsoNormal>        at org.web3d.x3d.java.Rendering.CoordinateObject.setDEF(CoordinateObject.java:324)^M</p><p class=MsoNormal>        at www_web3d_org.x3d.content.examples.Basic.Geospatial.SriCampus001.main(SriCampus001.java:147)^M</p><p class=MsoNormal>www_web3d_org/x3d/content/examples/Basic/Geospatial/SriCampus002</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:  DEF newValue="OBJECT-2-VERTICES" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.X3DConcreteNode.setConcreteDEF(X3DConcreteNode.java:143)^M</p><p class=MsoNormal>        at org.web3d.x3d.java.Rendering.CoordinateObject.setDEF(CoordinateObject.java:324)^M</p><p class=MsoNormal>        at www_web3d_org.x3d.content.examples.Basic.Geospatial.SriCampus002.main(SriCampus002.java:147)^M</p><p class=MsoNormal>www_web3d_org/x3d/content/examples/Basic/Geospatial/SriCampus003</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:  DEF newValue="OBJECT-3-VERTICES" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.X3DConcreteNode.setConcreteDEF(X3DConcreteNode.java:143)^M</p><p class=MsoNormal>        at org.web3d.x3d.java.Rendering.CoordinateObject.setDEF(CoordinateObject.java:324)^M</p><p class=MsoNormal>        at www_web3d_org.x3d.content.examples.Basic.Geospatial.SriCampus003.main(SriCampus003.java:147)^M</p><p class=MsoNormal>www_web3d_org/x3d/content/examples/Basic/Geospatial/SriCampus004</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:  DEF newValue="OBJECT-4-VERTICES" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.X3DConcreteNode.setConcreteDEF(X3DConcreteNode.java:143)^M</p><p class=MsoNormal>        at org.web3d.x3d.java.Rendering.CoordinateObject.setDEF(CoordinateObject.java:324)^M</p><p class=MsoNormal>        at www_web3d_org.x3d.content.examples.Basic.Geospatial.SriCampus004.main(SriCampus004.java:147)^M</p><p class=MsoNormal>www_web3d_org/x3d/content/examples/Basic/Geospatial/SriCampus005</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:  DEF newValue="OBJECT-5-VERTICES" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.X3DConcreteNode.setConcreteDEF(X3DConcreteNode.java:143)^M</p><p class=MsoNormal>        at org.web3d.x3d.java.Rendering.CoordinateObject.setDEF(CoordinateObject.java:324)^M</p><p class=MsoNormal>        at www_web3d_org.x3d.content.examples.Basic.Geospatial.SriCampus005.main(SriCampus005.java:147)^M</p><p class=MsoNormal>www_web3d_org/x3d/content/examples/Basic/Geospatial/SriCampus006</p><p class=MsoNormal>Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:  DEF newValue="OBJECT-6-VERTICES" has illegal value, must use a valid name string.^M</p><p class=MsoNormal>        at org.web3d.x3d.java.X3DConcreteNode.setConcreteDEF(X3DConcreteNode.java:143)^M</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>(and more)</p><p class=MsoNormal><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</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>Thursday, January 26, 2017 1:41 PM<br><b>To: </b><a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>; <a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>; <a href="mailto:roy.walmsley@ntlworld.com">Roy Walmsley</a><br><b>Subject: </b>Re: Major stumbling block in X3DJSAIL. NMTOKEN regexp</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks John.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Please advise, what are some example NMTOKEN values you find failing?  Presumably DEF values...</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>BTW this regex is pretty simple and is based on</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                X3D XML encoding, 4.3.4 DEF and USE attribute syntax</p><p class=MsoNormal>                http://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#DEFAndUSEAttributeSyntax</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                Extensible Markup Language (XML) 1.0 (Fifth Edition), 3.3.1 Attribute Types (specifically NMTOKEN)</p><p class=MsoNormal>                https://www.w3.org/TR/REC-xml/#sec-attribute-types</p><p class=MsoNormal>                and</p><p class=MsoNormal>                3.3.3 Attribute-Value Normalization</p><p class=MsoNormal>                https://www.w3.org/TR/REC-xml/#AVNormalize               </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                X3D Classic VRML encoding, Annex A Grammar, A.2 General</p><p class=MsoNormal>                http://www.web3d.org/documents/specifications/19776-2/V3.3/Part02/grammar.html#General</p><p class=MsoNormal>=======</p><p class=MsoNormal>nodeStatement ::=</p><p class=MsoNormal>     node |</p><p class=MsoNormal>     DEF nodeNameId node |</p><p class=MsoNormal>     USE nodeNameId ;</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>nodeNameId ::=</p><p class=MsoNormal>     Id ;</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Id ::=</p><p class=MsoNormal>     IdFirstChar |</p><p class=MsoNormal>     IdFirstChar IdRestChars ;</p><p class=MsoNormal>IdFirstChar ::=</p><p class=MsoNormal>     Any ISO-10646 character encoded using UTF-8 except: 0x30-0x3a, 0x0-0x20, 0x22, 0x23, 0x27, 0x2b, 0x2c, 0x2d, 0x2e, 0x5b, 0x5c, 0x5d, 0x7b, 0x7d, 0x7f ;</p><p class=MsoNormal>IdRestChars ::=</p><p class=MsoNormal>     Any number of ISO-10646 characters except: 0x0-0x20, 0x22, 0x23, 0x27, 0x2c, 0x2e, 0x3a, 0x5b, 0x5c, 0x5d, 0x7b, 0x7d, 0x7f ;</p><p class=MsoNormal>========</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>and</p><p class=MsoNormal>                X3D Scene Authoring Hints: Naming Conventions</p><p class=MsoNormal>                http://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Yes getting the most precise regex is important.  It can go in schema, which is reflected in X3DJSAIL, and also will help us improve the following preliminary-draft documentation.  Improvements welcome.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                X3D Regular Expressions</p><p class=MsoNormal>                http://www.web3d.org/specifications/X3dRegularExpressions.html</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>If we find that the ClassicVRML constraints don't match XML NMTOKEN constraints, then we will need to align them or else content won't be portable.  In addition to X3D portability, any mismatches would negatively impact internationalization (i18n) and canonicalization/signature/encryption of X3D.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>On 1/26/2017 1:18 AM, yottzumm@gmail.com wrote:</p><p class=MsoNormal>> These regular expression matches are causing a major stumbling block in the debugging of X3DJSAIL.   They should be replaced or fixed with something from X3D Schema (something which matches the standard).  There are more files which pass running in Java, but they fail when the files are diffed against the original.  I will work on creating a report on the diffs at some point (I may have to fix my Java serializer), but for now, we can work on this.</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> CreateX3dSceneAccessInterfaceJava.xslt:17409:                   !newValue.matches("[a-zA-Z_][a-zA-Z_0-9]*")) // NMTOKEN character regex check</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> CreateX3dSceneAccessInterfaceJava.xslt:17427:                   !newValue.matches("[a-zA-Z_][a-zA-Z_0-9]*")) // NMTOKEN character regex check</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> CreateX3dSceneAccessInterfaceJava.xslt:18339:                   !newValue.matches("[a-zA-Z_][a-zA-Z_0-9]*")) // NMTOKEN character regex check</xsl:text></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>