<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">I think this first came up about a
      month ago. The idea of adding brackets around anything that could
      be an array was so that software that was processing the file did
      not either<br>
      1) know the structure of X3D<br>
      <br>
         OR<br>
      <br>
      2) Have to inquire the type of the structure at run-time<br>
      <br>
      <br>
      It appears to me that the above reasoning is being discarded here.
      If I am wrong, please help correct my misunderstanding.<br>
      <br>
      <br>
      Leonard Daly<br>
      <br>
      <br>
      <br>
    </div>
    <blockquote cite="mid:56C6CF79.5040203@nps.edu" type="cite">John,
      during today's X3D Schema/DTD teleconference Roy observed that our
      SFNode child nodes were always wrapped in [array brackets] even
      though there is not an array there.
      <br>
      <br>
      This is contrary to our declared design principle that SFNode is
      always a JSON object.
      <br>
      <br>
          <a class="moz-txt-link-freetext" href="http://www.web3d.org/x3d/stylesheets/X3dToJson.html#values">http://www.web3d.org/x3d/stylesheets/X3dToJson.html#values</a>
      <br>
      <br>
      That definitely appears to be what we want.  No desire to mislead
      JSON authors into thinking that another node might appear.
      <br>
      <br>
      Fortunately this implementation wasn't too difficult.  Here is the
      list of SFNode types that I constructed from
      AllX3dElementsAttributes.3.3.xml
      <br>
      <br>
      <xsl:variable name="SFNodeType" select="
      <br>
          ($fieldName = 'back')               or ($fieldName =
      'bottom')            or ($fieldName = 'front')              or
      <br>
          ($fieldName = 'left')               or ($fieldName =
      'right')             or ($fieldName = 'top')                or
      <br>
          ($fieldName = 'backTexture')        or ($fieldName =
      'bottomTexture')     or ($fieldName = 'frontTexture')       or
      <br>
          ($fieldName = 'leftTexture')        or ($fieldName =
      'rightTexture')      or ($fieldName = 'topTexture')         or
      <br>
          ($fieldName = 'appearance')         or ($fieldName =
      'body1')             or ($fieldName = 'body2')              or
      <br>
          ($fieldName = 'collidable')         or ($fieldName =
      'collider')          or
      <br>
          ($fieldName = 'color')              or ($fieldName =
      'colorRamp')         or ($fieldName = 'coord')              or
      <br>
          ($fieldName = 'controlPoint')       or ($fieldName =
      'controlPoints')     or ($fieldName = 'crossSectionCurve')  or
      <br>
          ($fieldName = 'emitter')            or ($fieldName =
      'fillProperties')    or
      <br>
          ($fieldName = 'fogCoord')           or ($fieldName =
      'fontStyle')         or ($fieldName = 'geoOrigin')          or
      <br>
          ($fieldName = 'geometry')           or ($fieldName =
      'geometry1')         or ($fieldName = 'geometry2')          or
      <br>
          ($fieldName = 'gradients')          or ($fieldName =
      'layout')            or ($fieldName = 'lineProperties')     or
      <br>
          ($fieldName = 'massDensityModel')   or
      <br>
          ($fieldName = 'metadata')           or ($fieldName =
      'normal')            or ($fieldName = 'pickingGeometry')    or
      <br>
          ($fieldName = 'profileCurve')       or ($fieldName =
      'proxy')             or
      <br>
          ($fieldName = 'renderStyle')        or ($fieldName =
      'source')            or
      <br>
          ($fieldName = 'segmentIdentifiers') or ($fieldName =
      'surface')           or ($fieldName = 'surfaceNormals')     or
      <br>
          ($fieldName = 'targetObject')       or ($fieldName =
      'texCoord')          or ($fieldName = 'texCoordRamp')       or
      <br>
          ($fieldName = 'texture')            or ($fieldName =
      'textureProperties') or ($fieldName = 'textureTransform')   or
      <br>
          ($fieldName = 'trajectoryCurve')    or ($fieldName =
      'transferFunction')  or
      <br>
          ($fieldName = 'viewpoint')          or ($fieldName =
      'voxels')            or
      <br>
          ($fieldName = 'weightTransferFunction1') or ($fieldName =
      'weightTransferFunction2') or
      <br>
          ($parentName='CADFace'         and $fieldName = 'shape') or
      <br>
          ($parentName='CollidableShape' and $fieldName = 'shape')"
      />
      <br>
      <br>
      So anyway it appears to be working on the first handful of test
      examples used during development.
      <br>
      <br>
      HelloWorld.json example attached, check out SFNode fields
      -appearance -geometry -material etc.  Output is slightly terser as
      well.
      <br>
      <br>
      No doubt this affects your implementation to but it appears to be
      an important change.
      <br>
      <br>
      Hope this sounds good to you too.  Chalk another win up for Roy's
      JSON schema!
      <br>
      <br>
      Stylesheet modifications checked in.  I'm running the JSON
      Examples build overnight, should be ready for you and Roy in the
      morning.
      <br>
      <br>
<a class="moz-txt-link-freetext" href="http://www.web3d.org/x3d/content/examples/X3dResources.html#Examples">http://www.web3d.org/x3d/content/examples/X3dResources.html#Examples</a>
      <br>
      "Special testing distribution. A comprehensive collection of all
      JSON example scenes is available at
      X3dExampleArchivesJsonScenes.zip (MD5 checksum) plus current
      output from the X3D JSON build process at build.json.out."
      <br>
      <br>
      all the best, Don
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
x3d-public mailing list
<a class="moz-txt-link-abbreviated" href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>
<a class="moz-txt-link-freetext" href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a>
</pre>
    </blockquote>
    <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>
        X3D Co-Chair on Sabbatical<br>
        LA ACM SIGGRAPH Chair<br>
        President, Daly Realism - <i>Creating the Future</i>
      </font></div>
  </body>
</html>