<html dir="ltr">
<head>
<!-- converted from text -->
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style>.EmailQuote {
        PADDING-LEFT: 4pt; MARGIN-LEFT: 1pt; BORDER-LEFT: #800000 2px solid
}
</style><style id="owaParaStyle">P {
        MARGIN-BOTTOM: 0px; MARGIN-TOP: 0px
}
</style>
</head>
<body ocsi="0" fpstyle="1">
<div style="color: rgb(0, 0, 0); font-family: Tahoma; font-size: 10pt; direction: ltr;">
<p>Apologies for being relatively quiet.  Thanks for the dialog.</p>
<p> </p>
<p>Here is a Contour2D analysis regarding the XML encoding.  Warning: kinda long (welcome to the wild and wonderful world of DTD/Schema forensics!)</p>
<p> </p>
<p>1.  When Annex 6 says containerField="geometry" it is describing the default value, not a required value.</p>
<p>However this version (official draft but old) document appears to be incorrect; more to follow.</p>
<p><a href="http://www.web3d.org/files/specifications/19776-1/V3.3/Part01/EncodingOfNodes.html#NurbsCurve2D" target="_blank">http://www.web3d.org/files/specifications/19776-1/V3.3/Part01/EncodingOfNodes.html#NurbsCurve2D</a></p>
<p> </p>
<p>2. Mismatched default values are provided by X3D DTD (containerField="trimmingContour") and X3D Schema documentation (<span class="schemaSubData">containerField="children")</span></p>
<p> </p>
<p><a href="http://www.web3d.org/specifications/" target="_blank">http://www.web3d.org/specifications/</a></p>
<p><a href="http://www.web3d.org/specifications/X3dDoctypeDocumentation3.3.html#NurbsCurve2D" target="_blank">http://www.web3d.org/specifications/X3dDoctypeDocumentation3.3.html#NurbsCurve2D</a></p>
<p><a href="http://www.web3d.org/specifications/X3dSchemaDocumentation3.3/x3d-3.3_NurbsCurve2D.html#Link149" target="_blank">http://www.web3d.org/specifications/X3dSchemaDocumentation3.3/x3d-3.3_NurbsCurve2D.html#Link149</a></p>
<p> </p>
<p>A revised version of the Encoding of Nodes document shows containerField="trimmingContour" and is found at</p>
<p><a href="http://www.web3d.org/x3d/stylesheets/EncodingOfNodes.html#Contour2D" target="_blank">http://www.web3d.org/x3d/stylesheets/EncodingOfNodes.html#Contour2D</a></p>
<p> </p>
<p>The X3D Schema documentation is autogenerated using XML Spy.  It appears to be ignoring the override value. I will look into this.</p>
<p> </p>
<p>3.  I looked back through the changelogs but did not find an occasion where these values changed.</p>
<p> </p>
<p>4. Checking the DTD and Schema themselves reveals a default value of containerField="t<font color="#000080" face="Arial" size="2"><font color="#000080" face="Arial" size="2"><font color="#000080" face="Arial" size="2">rimmingContour" for both, consistently.</font></font></font></p>
<p><font color="#000080" face="Arial" size="2"><font color="#000080" face="Arial" size="2"><font color="#000080" face="Arial" size="2"></font></font></font> </p>
<p><font color="#000080" face="Arial" size="2"><font color="#000080" face="Arial" size="2"><font color="#000080" face="Arial" size="2"><a href="http://www.web3d.org/specifications/x3d-3.3.dtd" target="_blank">http://www.web3d.org/specifications/x3d-3.3.dtd</a> line
 2406-7</font></font></font></p>
<p><!ATTLIST Contour2D<br>
 containerField NMTOKEN "trimmingContour"</p>
<p> </p>
<p><font color="#000080" face="Arial" size="2"><font color="#000080" face="Arial" size="2"><font color="#000080" face="Arial" size="2"><a href="http://www.web3d.org/specifications/x3d-3.3.xsd" target="_blank">http://www.web3d.org/specifications/x3d-3.3.xsd</a> line
 9860</font></font></font></p>
<p><font color="#000080" face="Arial" size="2"><font color="#000080" face="Arial" size="2"><font color="#000080" face="Arial" size="2">  <xs:attribute name="containerField" type="xs:NMTOKEN" default="trimmingContour"/></font></font></font></p>
<p><font color="#000080" face="Arial" size="2"><font color="#000080" face="Arial" size="2"><font color="#000080" face="Arial" size="2"></font></font></font> </p>
<p><font color="#000080" face="Arial" size="2"><font color="#000080" face="Arial" size="2"><font color="#000080" face="Arial" size="2">This confirms that there is a bug in the Schema documentation generator.  Or perhaps X3DNode should not get a default containerField,
 requiring it to be set explicitly each time (and thereby avoiding mismatch errors).  Will investigate further.</font></font></font></p>
<p> </p>
<p>5.  Note that XML rules state that specifying default values for an attribute are not required.  Thus each of the following pairs of nodes are equivalent:</p>
<p> </p>
<p>   <Contour2D/></p>
<p>   <Contour2D containerField="<font color="#000080" face="Arial">trimmingContour</font>"/><br>
</p>
<p>   <NurbsCurve2D/><br>
   <NurbsCurve2D containerField="children"/><br>
</p>
<p>Incidentally this whole problem is never an issue in ClassicVRML encoding because field names must always be spelled out in that form</p>
<p>  Appearance Appearance { material Material {} } ) etc.</p>
<p>Don't' get me started /don't get me started on that!  No further discussion needed there.</p>
<p> </p>
<p>6.  What is not (yet) seen.  One could make the case that Contour2D containerField values should be limited to "<font color="#000080" face="Arial" size="2"><font color="#000080" face="Arial" size="2"><font color="#000080" face="Arial" size="2">trimmingContour"
 (and maybe another if found)</font></font></font> since those are the only ones found in the specification.  I originally thought that an author might want a different containerField name when they create a prototype with an SFNode field - but that case is
 handled by ProtoInstance/fieldValue tags.  Similarly a Script/field tags could also contain Contour2D - again ignoring containerField value.  So... we could restrict values to the allowed enumeration value(s) if everyone is satisfied that they are the only
 use cases.  Since that would identify broken content, it is a good idea and consistent with past design.</p>
<p> </p>
<p>7.  What rules:  the X3D Abstract Specification.  We always try to adjust DTD and Schema to most strictly validate what the spec says, to improve content quality, and not prevent the creation of valid content.  If they can be improved further to better match
 the specification, without error, then we do.</p>
<p> </p>
<p>8.  When I check the X3D Abstract Specification, am finding the following parent nodes for Contour2D:</p>
<p><a href="http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/nurbs.html" target="_blank">http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/nurbs.html</a></p>
<p> </p>
<p>- NurbsTrimmedSurface can contain Contour2D as a trimmingContour field</p>
<p>- and no others?</p>
<p> </p>
<p>9.  Section "4.4.2.3 Object hierarchy" diagram shows that Contour2D is an X3DGroupingNode (default containerField="children")</p>
<p><a href="http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/concepts.html#InterfaceHierarchy" target="_blank">http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/concepts.html#InterfaceHierarchy</a></p>
<p> </p>
<p>which is a mismatch to the deciding definition showing Contour2D is an X3DNode
</p>
<p>27.4.1 Contour2D</p>
<p><a href="http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/nurbs.html#Contour2D" target="_blank">http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/nurbs.html#Contour2D</a></p>
<p> </p>
<p>This was probably the primary point of origin for our woes on this particular topic.</p>
<p> </p>
<p>10.  For anyone still following, recommendations:</p>
<p>- Specification bug: change Contour2D node type to X3DNode in the 4.4.2.3 diagram</p>
<p>- Verify whether other containerField child options exist (paragraph 8), then</p>
<p>- Restrict allowed values to only those needed in DTD and Schema,</p>
<p>- I troubleshoot and fix default definitions so that the schema documentation generator matches the specification</p>
<p> </p>
<p>Comments welcome, let's review them on the next X3D weekly teleconference and then we can proceed with fixes.</p>
<p> </p>
<p>p.s. Quote of the day: Winston Churchill.</p>
<p>"Never give in. Never give in. Never, never, never, never—in nothing, great or small, large or petty—never give in, except to convictions of honour and good sense. Never yield to force. Never yield to the apparently overwhelming might of the enemy."<br>
<a href="http://www.winstonchurchill.org/learn/speeches/speeches-of-winston-churchill/103-never-give-in" target="_blank">http://www.winstonchurchill.org/learn/speeches/speeches-of-winston-churchill/103-never-give-in</a></p>
<p><a href="http://www.youtube.com/watch?v=ywDZKfZ-iZA" target="_blank">http://www.youtube.com/watch?v=ywDZKfZ-iZA</a></p>
<p> </p>
<div>
<div style="font-family: Tahoma; font-size: 13px;">all the best, Don<br>
-- <br>
Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman@nps.edu<br>
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149<br>
X3D graphics, virtual worlds, navy robotics <a href="https://webmail.nps.edu/owa/redir.aspx?C=G3Rvfdu1Z0m0CnW8jzwQBCHaiiZ4dNAIOPiX7qnFTuF1i1OfTKg-1pEk4WCkULkqa1xpCoWVd0w.&URL=http%3a%2f%2ffaculty.nps.edu%2fbrutzman" target="_blank">
http://faculty.nps.edu/brutzman</a></div>
</div>
<div>
<hr tabindex="-1">
<div id="x_divRplyFwdMsg"><font color="#000000" size="2"><b>From:</b> X3D-Public [x3d-public-bounces@web3d.org] on behalf of Michalis Kamburelis [michalis.kambi@gmail.com]<br>
<b>Sent:</b> Thursday, August 22, 2013 12:26 PM<br>
<b>To:</b> Vincent Marchetti<br>
<b>Cc:</b> Cad3D working group; X3D Graphics public mailing list<br>
<b>Subject:</b> Re: [X3D-Public] Announcement: view3dscene 3.13.0 - Mac OS X, networking, more<br>
</font><br>
</div>
<div></div>
</div>
<font size="2"><span style="font-size: 10pt;">
<div class="PlainText">Vincent Marchetti wrote:<br>
> <a href="http://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsTrimmedSurface.x3d" target="_blank">
http://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsTrimmedSurface.x3d</a><br>
> When a NurbsTrimmedSurface is loaded, view3dscene generates a warning:<br>
> "Unknown X3D field name (indicated by containerField value) "geometry" by node "NurbsCurve2D" inside node "Contour2D"<br>
> This is spurious, the nodes in the examples follow the v 3.2 specs for the NURBS component:
<a href="http://www.web3d.org/files/specifications/19775-1/V3.2/Part01/components/nurbs.html" target="_blank">
http://www.web3d.org/files/specifications/19775-1/V3.2/Part01/components/nurbs.html</a><br>
><br>
<br>
Wow, many thanks for testing view3dscene, I'm glad you found it good :)<br>
<br>
As for the warning around NurbsCurve2D: view3dscene follows here the <br>
specification to the letter, as far as I see. The fact that nodes <br>
arrangement in <br>
<a href="http://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsTrimmedSurface.x3d" target="_blank">http://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsTrimmedSurface.x3d</a>
<br>
follows the specification doesn't necessarily mean that explicit <br>
containerField="xxx" is not needed. The X3D XML encoding specification <br>
says that NurbsCurve2D by default is looking for a "geometry" field in <br>
parent node:<br>
<br>
- X3D 3.2: <br>
<a href="http://www.web3d.org/files/specifications/19776-1/V3.2/Part01/EncodingOfNodes.html#NurbsCurve2D" target="_blank">http://www.web3d.org/files/specifications/19776-1/V3.2/Part01/EncodingOfNodes.html#NurbsCurve2D</a><br>
- X3D 3.3: <br>
<a href="http://www.web3d.org/files/specifications/19776-1/V3.3/Part01/EncodingOfNodes.html#NurbsCurve2D" target="_blank">http://www.web3d.org/files/specifications/19776-1/V3.3/Part01/EncodingOfNodes.html#NurbsCurve2D</a><br>
<br>
So, if you use NurbsCurve2D and want it to attach to Contour2D.children <br>
field, you really should write it like this in XML:<br>
<br>
<Contour2D><br>
   <NurbsCurve2D containerField="children" ..><br>
   ...<br>
</Contour2D><br>
<br>
So says the specification :)<br>
<br>
It's another matter whether the specification is right. IMHO it would <br>
make sense to change X3D XML encoding spec in X3D 3.4 to say that <br>
NurbsCurve2D.containerField by default is "children". And when this rule <br>
will be added to view3dscene, the warning will disappear :)<br>
<br>
Michalis<br>
<br>
_______________________________________________<br>
X3D-Public mailing list<br>
X3D-Public@web3d.org<br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</div>
</span></font></div>
</body>
</html>