<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">[Comments embedded]<br>
<br>
<br>
</div>
<blockquote type="cite"
cite="mid:007c01d2c987$f8f8f980$eaeaec80$@ntlworld.com">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
<meta name="Generator" content="MS Exchange Server version
rmj.rmm.rup.rpr">
<title>RE: SFString/MFString Proposal [was: Agenda for X3D WG Open
Meeting ...]</title>
<!-- Converted from text/rtf format -->
<p dir="LTR"><span lang="en-gb"><font face="Calibri">Hi,</font></span></p>
<p dir="LTR"><span lang="en-gb"><font face="Calibri">Leonard put
forward a proposal regarding SFString / MFString, during
which he cited an example which I reproduce below:</font></span></p>
<p dir="LTR"><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<MetadataString name='SimpleName' value='Single value'
/></font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<MetadataString name='SimpleName' value="Single value"
/></font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<MetadataString name='SimpleName'></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<value>Single value</value></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
</MetadataString></font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<MetadataString></font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<name>SimpleName</name></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<value>Single value</value></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
</MetadataString></font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<MetadataString></font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<name>SimpleName</name></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<value</font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Courier New">></font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Courier New"><![CDATA[</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">Single
value]]></value></font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
</MetadataString></font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<MetadataString></font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<value</font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Courier New">></font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Courier New"><![CDAT</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">A</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">[First element</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">]]></value></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<name>SimpleName</name></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<value</font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Courier New">></font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Courier New"><![CDATA[Second element</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">]]></value></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
</MetadataString></font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<MetadataString></font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<name><![CDATA["C'mplx \Element]]></name></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<value>Easy String</value</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<value</font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Courier New">></font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Courier New"><![CDAT</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">A</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">[A string with
"'s ''s &'s and <> in it.]]></value></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
</MetadataString></font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><br>
</span><span lang="en-gb"><br>
<font face="Calibri">I'd like to look more closely at each of</font></span><span
lang="en-gb"> <font face="Calibri">this</font></span><span
lang="en-gb"><font face="Calibri"> to gain further insights,
before introducing an example of my own.</font></span><span
lang="en-gb"><font face="Calibri"> But before we start, let's
remind ourselves that in the MetadataString node, the "</font></span><span
lang="en-gb"><font face="Calibri">name" field is of type
SFString, and the "value" field is of type MFString.</font></span><span
lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"><b><u><font face="Calibri">Version</font></u></b></span><span
lang="en-gb"><b><u><font face="Calibri"> 1:</font></u></b></span></p>
<p dir="LTR"><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<MetadataString name='SimpleName' value='Single value'
/></font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><br>
</span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"><font face="Calibri">This is not
valid X3D in accordance with the current standard ISO/IEC
19776-1:2015</font></span><span lang="en-gb"> <font
face="Calibri">for two reasons:</font></span></p>
<p dir="LTR"><span lang="en-gb"> <font face="Calibri">a)
The value for the "name" field does not conform because it
has single quotes.</font></span></p>
</blockquote>
<br>
Actually, it is not valid X3D V3.x because the string value is not
enclosed in double quotes ("). The valid X3D V3.x fragment would be<br>
<br>
<blockquote><tt>name='"SimpleName"'</tt><br>
</blockquote>
See second sentence of
<a class="moz-txt-link-freetext" href="http://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/EncodingOfFields.html#SFString">http://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/EncodingOfFields.html#SFString</a><br>
<br>
<br>
<br>
<blockquote type="cite"
cite="mid:007c01d2c987$f8f8f980$eaeaec80$@ntlworld.com">
<p dir="LTR"><span lang="en-gb"> <font face="Calibri">b)
The value for the "value" field does no</font></span><span
lang="en-gb"><font face="Calibri">t conform because it has
only one set of single quotes.</font></span></p>
<p dir="LTR"><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"><b><u><font face="Calibri">Version</font></u></b></span><span
lang="en-gb"><b><u><font face="Calibri"> 2:</font></u></b></span></p>
<p dir="LTR"><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<MetadataString name='SimpleName' value="Single value"
/></font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><br>
</span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"><font face="Calibri">This is not
valid X3D in accordance with the current standard ISO/IEC
19776-1:2015</font></span><span lang="en-gb"> <font
face="Calibri">for two reasons:</font></span></p>
<p dir="LTR"><span lang="en-gb"> <font face="Calibri">a)
The value for the "name" field does not conform because it
has single quotes.</font></span></p>
</blockquote>
<br>
See above<br>
<br>
<br>
<blockquote type="cite"
cite="mid:007c01d2c987$f8f8f980$eaeaec80$@ntlworld.com">
<p dir="LTR"><span lang="en-gb"> <font face="Calibri">b)
The value for the "value" field does no</font></span><span
lang="en-gb"><font face="Calibri">t conform because it has
only one set of</font></span><span lang="en-gb"> <font
face="Calibri">double</font></span><span lang="en-gb"><font
face="Calibri"> quotes.</font></span></p>
</blockquote>
<br>
Not really. For a single element MFString and SFString look the
same. The value needs to be enclosed in double quotes. This
(double-quoted string) is the value of the attribute, so it needs to
be enclosed in any of the XML quoting characters (even though the
spec is wrong on this point). This additional quoting may cause
characters in the attribute's value to change representation (e.g.,
" to ")<br>
<br>
<br>
<blockquote type="cite"
cite="mid:007c01d2c987$f8f8f980$eaeaec80$@ntlworld.com">
<p dir="LTR"><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"><font face="Calibri">The
divergence</font></span><span lang="en-gb"> <font
face="Calibri">for both of these versions</font></span><span
lang="en-gb"><font face="Calibri"> is simply in the quotation
marks. If we assume that V4.0</font></span><span
lang="en-gb"> <font face="Calibri">is more liberal in
accepting th</font></span><span lang="en-gb"><font
face="Calibri">ese</font></span><span lang="en-gb"><font
face="Calibri"> variation, then</font></span><span
lang="en-gb"> <font face="Calibri">there is no significant
impact on tools an</font></span><span lang="en-gb"><font
face="Calibri">d encoding transformations. We can also ask w</font></span><span
lang="en-gb"><font face="Calibri">hat would the DOM look like
if this was part of an embedded X3D scene in an HTML syntax
web page</font></span><span lang="en-gb"><font
face="Calibri">.</font></span><span lang="en-gb"><font
face="Calibri"> There would be a single MetadataString
element with attributes of “name” a</font></span><span
lang="en-gb"><font face="Calibri">nd “value”.</font></span></p>
<p dir="LTR"><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"><b><u><font face="Calibri">Version</font></u></b></span><span
lang="en-gb"></span><span lang="en-gb"><b><u> <font
face="Calibri">3</font></u></b></span><span lang="en-gb"><b><u><font
face="Calibri">:</font></u></b></span></p>
<p dir="LTR"><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<MetadataString name='SimpleName'></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
<value>Single value</value></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">
</MetadataString></font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><br>
</span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"><font face="Calibri">Now we have a
major divergence from the existing standard. The “value”
field h</font></span><span lang="en-gb"><font face="Calibri">as
been encoded as child content, and not an attribute.</font></span><span
lang="en-gb"> <font face="Calibri">An HTML/XML parser would
expect that both “MetadataString</font></span><span
lang="en-gb"><font face="Calibri">”</font></span><span
lang="en-gb"><font face="Calibri"> and</font></span><span
lang="en-gb"> <font face="Calibri">“value” are to be loaded
as DOM elements. The “MetadataString” element has the</font></span><span
lang="en-gb"> <font face="Calibri">attribute “name”. The
“value” element i</font></span><span lang="en-gb"><font
face="Calibri">s a child element of “MetadataString”. While,
of course, a parser could be written to correctly interpret
the intent, this does complicate it.</font></span></p>
<p dir="LTR"><span lang="en-gb"><font face="Calibri">Now let’s
consider a</font></span><span lang="en-gb"><font
face="Calibri"> validation tool such as the XML schema. Here
is a</font></span><span lang="en-gb"><font face="Calibri">n
extract from V3.3 for the MetadataString node, with <</font></span><span
lang="en-gb"><font face="Calibri">xs:annotation> elements
removed for ease of readability</font></span><span
lang="en-gb"><font face="Calibri">:</font></span></p>
<p dir="LTR"><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"> </span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"> <font size="2" face="Consolas" color="#0000FF"><</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#800000">xs:element</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#FF0000"> name</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">="</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#000000">MetadataString</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">"></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"> </span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"> <font size="2"
face="Consolas" color="#0000FF"><</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#800000">xs:complexType</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"> </span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"> <font size="2"
face="Consolas" color="#0000FF"><</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#800000">xs:complexContent</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"> </span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"> <font size="2"
face="Consolas" color="#0000FF"><</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#800000">xs:extension</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#FF0000"> base</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">="</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#000000">X3DNode</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">"></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb">
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"> <font size="2"
face="Consolas" color="#0000FF"><</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#800000">xs:attribute</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#FF0000"> name</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">="</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#000000">name</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">"</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#FF0000"> type</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">="</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#000000">SFString</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">"/></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb">
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"> <font size="2"
face="Consolas" color="#0000FF"><</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#800000">xs:attribute</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#FF0000"> name</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">="</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#000000">reference</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">"</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#FF0000"> type</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">="</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#000000">SFString</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">"/></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb">
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"> <font size="2"
face="Consolas" color="#0000FF"><</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#800000">xs:attribute</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#FF0000"> name</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">="</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#000000">value</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">"</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#FF0000"> type</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">="</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#000000">MFString</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">"/></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb">
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"> <font size="2"
face="Consolas" color="#0000FF"><</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#800000">xs:attribute</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#FF0000"> name</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">="</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#000000">containerField</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">"</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#FF0000"> type</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">="</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#000000">metadataContainerFieldValues</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">"</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#FF0000"> default</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">="</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#000000">metadata</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">"</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">/</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"> </span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"> <font size="2"
face="Consolas" color="#0000FF"></</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#800000">xs:extension</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"> </span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"> <font size="2"
face="Consolas" color="#0000FF"></</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#800000">xs:complexContent</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"> </span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"> <font size="2"
face="Consolas" color="#0000FF"></</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#800000">xs:complexType</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"> </span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"> <font size="2" face="Consolas" color="#0000FF"></</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#800000">xs:element</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"><font face="Calibri">In this case,
the content model is inherited from X3DNode, so this is also
reproduced:</font></span></p>
<p dir="LTR"><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"> </span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"> <font size="2" face="Consolas" color="#0000FF"><</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#800000">xs:complexType</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#FF0000"> name</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">="</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#000000">X3DNode</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">"</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#FF0000"> abstract</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">="</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#000000">true</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">"></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"> </span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"> <font size="2"
face="Consolas" color="#0000FF"><</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#800000">xs:sequence</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"> </span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"> <font size="2"
face="Consolas" color="#0000FF"><</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#800000">xs:element</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#FF0000"> ref</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">="</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#000000">IS</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">"</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#FF0000"> minOccurs</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">="</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#000000">0</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">"/></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"> </span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"> <font size="2"
face="Consolas" color="#0000FF"><</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#800000">xs:group</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#FF0000"> ref</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">="</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#000000">ChildContentModelCore</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">"</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#FF0000"> minOccurs</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">="</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#000000">0</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">"</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">/</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"> </span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"> <font size="2"
face="Consolas" color="#0000FF"></</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#800000">xs:sequence</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"> </span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"> <font size="2"
face="Consolas" color="#0000FF"><</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#800000">xs:attributeGroup</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#FF0000"> ref</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">="</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#000000">DEF_USE</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">"/></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"> </span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"> <font size="2"
face="Consolas" color="#0000FF"><</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#800000">xs:attributeGroup</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#FF0000"> ref</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">="</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#000000">globalAttributes</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">"/></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"> </span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"> <font size="2" face="Consolas" color="#0000FF"></</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#800000">xs:complexType</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Consolas" color="#0000FF">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"></span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"><font face="Calibri">Consider the
complexity of writing a schema that would not only validate
versions 1 and 2, but also version 3. Version 3 does not
have the attribute</font></span><span lang="en-gb"><font
face="Calibri"> “value”. You will also notice that X3DNode
does not have the attribute “metadata”. In XML terms these
are not attributes.</font></span><span lang="en-gb"> <font
face="Calibri">Instead, the loader has to read the child
content and then, when the node is instantiated, add the
child content to the</font></span><span lang="en-gb"><font
face="Calibri"> appropriate xFNode field, depending on the
“containerField” value for the child node content. Clearly,
this type of approach will cause significant problems</font></span><span
lang="en-gb"><font face="Calibri"> for X3D validation.</font></span></p>
</blockquote>
<br>
While I am not an expert at validation, I don't think this is really
an issue. To illustrate this I wish to point out the W3C validator
for HTML and XHTML. These support the (structured) HTML content for
tables, lists, definitions, and many other nested tags. I fail to
see why making things clearer to read makes it harder to validate. <br>
<br>
<br>
<blockquote type="cite"
cite="mid:007c01d2c987$f8f8f980$eaeaec80$@ntlworld.com">
<p dir="LTR"><span lang="en-gb"><font face="Calibri">Further, how
d</font></span><span lang="en-gb"><font face="Calibri">oes
this approach relate to transformation from, say, the XML
encoding to the Classic VRML encoding? How does it affect
the Compressed binary encoding?</font></span><span
lang="en-gb"> <font face="Calibri">Clearly considerable
further</font></span><span lang="en-gb"><font face="Calibri">
work is needed to consider the feasibility of this alter</font></span><span
lang="en-gb"><font face="Calibri">nate encoding with respect
to the overall X3D product content.</font></span></p>
</blockquote>
<br>
My underlying motivation is that a single-nested structure in XML is
equivalent to an array. This makes the connection between the
human-readable expression of the content (e.g., XML) and its
internal form easier and more obvious. Once stored internally,
exporting to other representations should be as easy (and perhaps
easier) than reading in those other representations.<br>
<br>
<br>
<br>
<br>
<blockquote type="cite"
cite="mid:007c01d2c987$f8f8f980$eaeaec80$@ntlworld.com">
<p dir="LTR"><span lang="en-gb"><b><u><font face="Calibri">Version</font></u></b></span><span
lang="en-gb"></span><span lang="en-gb"><b><u> <font
face="Calibri">4 and subsequent</font></u></b></span><span
lang="en-gb"><b><u><font face="Calibri">:</font></u></b></span></p>
<p dir="LTR"><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"><font face="Calibri">These are
variants of Version 3, so the same general comments apply.</font></span></p>
<p dir="LTR"><span lang="en-gb"><font face="Calibri">Now, I
introduce another</font></span><span lang="en-gb"><font
face="Calibri"> simple</font></span><span lang="en-gb"><font
face="Calibri"> example.</font></span><span lang="en-gb"><font
face="Calibri"> Consider a</font></span><span lang="en-gb"><font
face="Calibri"> Material node, encoded in the style of
version 3.</font></span></p>
<p dir="LTR"><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New"> <</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">Material</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New"> <</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">ambientIntensity</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">0.2</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New"></</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">ambientIntensity</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New"> <</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">diffuseColor</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">>0.</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">8 0.8 0.8</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New"></</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">diffuseColor</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New"> <</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">emissive</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">Color>0 0
0</</font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Courier New">emissive</font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><font size="2"
face="Courier New">Color></font></span><span lang="en-gb"></span><span
lang="en-gb"></span><span lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New"> <</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">shininess</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">0</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">.2</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New"></</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">shininess</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New"> <</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">specular</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">Color</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">0 0 0</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New"></</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">specular</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">Color</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New"> <</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">transparency</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">0</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New"></</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">transparency</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><br>
</span><span lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New"> </</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">Material</font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><font size="2" face="Courier New">></font></span><span
lang="en-gb"></span><span lang="en-gb"></span><span
lang="en-gb"><br>
</span><span lang="en-gb"></span></p>
<p dir="LTR"><span lang="en-gb"><font face="Calibri">If this style
of encoding is to be acceptable for xFString fields,</font></span><span
lang="en-gb"> <font face="Calibri">the presumable it should
also be acceptable for all other field types.</font></span></p>
</blockquote>
<br>
<br>
Note that the discussion topic was specifically for strings. I very
explicitly did not discuss this type of example. While Roy's
reasoning seems reasonable, it can lead to some unpractical examples
(e.g., transparency). I just addressed strings because I feel that
X3D needs to allow the use of CDATA to make things easier to handle.
<br>
<br>
<br>
<blockquote type="cite"
cite="mid:007c01d2c987$f8f8f980$eaeaec80$@ntlworld.com">
<p dir="LTR"><span lang="en-gb"><font face="Calibri">My final
thought for this posting is about CSS</font></span><span
lang="en-gb"><font face="Calibri">, which as a general</font></span><span
lang="en-gb"><font face="Calibri"> topic has not so far
received much attention.</font></span><span lang="en-gb"></span><span
lang="en-gb"> <font face="Calibri">What is the im</font></span><span
lang="en-gb"><font face="Calibri">pact on CSS for this</font></span><span
lang="en-gb"><font face="Calibri"> style of encoding, compared
to</font></span><span lang="en-gb"> <font face="Calibri">the
current style using attributes</font></span><span
lang="en-gb"><font face="Calibri">?</font></span><span
lang="en-gb"></span></p>
</blockquote>
<br>
The concept of CSS is to allow the separation of content from style.
In the example just above, the (existing) fields of a Material node
are separated out into children. It is possible to argue that the
these fields are the content of a Material node. But from the
perspective of a Shape node, all material fields are styles to the
defined geometry. A bit more deeper thinking on this topic before
any decision can be approached.<br>
<br>
<br>
<div class="moz-signature">-- <br>
<font class="tahoma,arial,helvetica san serif" color="#333366">
<font size="+1"><b>Leonard Daly</b></font><br>
3D Systems & Cloud Consultant<br>
LA ACM SIGGRAPH Chair<br>
President, Daly Realism - <i>Creating the Future</i>
</font></div>
</body>
</html>