[x3d-public] [x3d] X3DUOM and validation of dangling references?

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Sat Sep 29 09:21:48 PDT 2018


Aha, excellent.  You have found a logical inconsistency in some of the earlier X3D XML schemas, the annotations for some notes are referring to fields that are not yet available in X3D.

I have added a test when producing the X3DUOM .xml file for this situation.  Rather than silently adding an unavailable node to acceptableNodeTypes, it reports an error so that the erroneous schema annotation can be removed.

This enables fixing the problem thoroughly, which will be in next schema release.

Example output follows; similar or pristine results expected in the other X3D XML schemas.  Thanks John for your continuing testing and detection of this subtle problem.

=====================================
ant -f C:\\x3d-code\\www.web3d.org\\x3d\\stylesheets BuildX3dUnifiedObjectModel.saxon.v3.0
BuildX3dUnifiedObjectModel.saxon.v3.0:
Build X3D Unified Object Model (X3DUOM) version 3.0
Saxon-HE 9.7.0.13J from Saxonica
Java version 1.8.0_181
Stylesheet compilation time: 726.127822ms
Processing file:/C:/x3d-code/www.web3d.org/specifications/x3d-3.0.xsd
Using parser com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser
Building tree for file:/C:/x3d-code/www.web3d.org/specifications/x3d-3.0.xsd using class net.sf.saxon.tree.tiny.TinyBuilder
Tree built in 38.49809ms
Tree size: 21427 nodes, 56959 characters, 9074 attributes
X3DObjectModel.xml:  process X3D schema version 3.0 using BuildObjectModelXmlFile.xslt
Writing to file:/C:/x3d-code/www.web3d.org/x3d/stylesheets/X3dUnifiedObjectModel-3.0.xml
*** X3DComposedGeometryNode refers to unknown acceptableNodeType X3DVertexAttributeNode in xs:element name='attrib type='MFNode fixed='inputOutputField default='X3DVertexAttributeNode', check and fix X3D Schema
*** X3DComposedGeometryNode refers to unknown acceptableNodeType FogCoordinate in xs:element name='fogCoord type='SFNode fixed='inputOutputField default='FogCoordinate', check and fix X3D Schema
*** IndexedFaceSet refers to unknown acceptableNodeType X3DVertexAttributeNode in xs:element name='attrib type='MFNode fixed='inputOutputField default='X3DVertexAttributeNode', check and fix X3D Schema
*** IndexedFaceSet refers to unknown acceptableNodeType FogCoordinate in xs:element name='fogCoord type='SFNode fixed='inputOutputField default='FogCoordinate', check and fix X3D Schema
*** IndexedLineSet refers to unknown acceptableNodeType X3DVertexAttributeNode in xs:element name='attrib type='MFNode fixed='inputOutputField default='X3DVertexAttributeNode', check and fix X3D Schema
*** IndexedLineSet refers to unknown acceptableNodeType FogCoordinate in xs:element name='fogCoord type='SFNode fixed='inputOutputField default='FogCoordinate', check and fix X3D Schema
*** IndexedTriangleFanSet refers to unknown acceptableNodeType X3DVertexAttributeNode in xs:element name='attrib type='MFNode fixed='inputOutputField default='X3DVertexAttributeNode', check and fix X3D Schema
*** IndexedTriangleFanSet refers to unknown acceptableNodeType FogCoordinate in xs:element name='fogCoord type='SFNode fixed='inputOutputField default='FogCoordinate', check and fix X3D Schema
*** IndexedTriangleSet refers to unknown acceptableNodeType X3DVertexAttributeNode in xs:element name='attrib type='MFNode fixed='inputOutputField default='X3DVertexAttributeNode', check and fix X3D Schema
*** IndexedTriangleSet refers to unknown acceptableNodeType FogCoordinate in xs:element name='fogCoord type='SFNode fixed='inputOutputField default='FogCoordinate', check and fix X3D Schema
*** IndexedTriangleStripSet refers to unknown acceptableNodeType X3DVertexAttributeNode in xs:element name='attrib type='MFNode fixed='inputOutputField default='X3DVertexAttributeNode', check and fix X3D Schema
*** IndexedTriangleStripSet refers to unknown acceptableNodeType FogCoordinate in xs:element name='fogCoord type='SFNode fixed='inputOutputField default='FogCoordinate', check and fix X3D Schema
*** PointSet refers to unknown acceptableNodeType X3DVertexAttributeNode in xs:element name='attrib type='MFNode fixed='inputOutputField default='X3DVertexAttributeNode', check and fix X3D Schema
*** PointSet refers to unknown acceptableNodeType FogCoordinate in xs:element name='fogCoord type='SFNode fixed='inputOutputField default='FogCoordinate', check and fix X3D Schema
*** TriangleFanSet refers to unknown acceptableNodeType X3DVertexAttributeNode in xs:element name='attrib type='MFNode fixed='inputOutputField default='X3DVertexAttributeNode', check and fix X3D Schema
*** TriangleFanSet refers to unknown acceptableNodeType FogCoordinate in xs:element name='fogCoord type='SFNode fixed='inputOutputField default='FogCoordinate', check and fix X3D Schema
*** TriangleSet refers to unknown acceptableNodeType X3DVertexAttributeNode in xs:element name='attrib type='MFNode fixed='inputOutputField default='X3DVertexAttributeNode', check and fix X3D Schema
*** TriangleSet refers to unknown acceptableNodeType FogCoordinate in xs:element name='fogCoord type='SFNode fixed='inputOutputField default='FogCoordinate', check and fix X3D Schema
*** TriangleStripSet refers to unknown acceptableNodeType X3DVertexAttributeNode in xs:element name='attrib type='MFNode fixed='inputOutputField default='X3DVertexAttributeNode', check and fix X3D Schema
*** TriangleStripSet refers to unknown acceptableNodeType FogCoordinate in xs:element name='fogCoord type='SFNode fixed='inputOutputField default='FogCoordinate', check and fix X3D Schema
Execution time: 37.254883s (37254.883326ms)
Memory used: 108253856
Copying 1 file to C:\x3d-code\www.web3d.org\specifications
Copying C:\x3d-code\www.web3d.org\x3d\stylesheets\X3dUnifiedObjectModel-3.0.xml to C:\x3d-code\www.web3d.org\specifications\X3dUnifiedObjectModel-3.0.xml
BUILD SUCCESSFUL (total time: 38 seconds)
=====================================

On 9/28/2018 6:49 PM, John Carlson wrote:
> More explanation: These reference in V3.0 of X3DUOM refer to nothing present:
> 
> Thanks for any clarification.
> 
> $ egrep 'X3DVertexAttributeNode|FogCoordinate' X3dUnifiedObjectModel-3.0.xml|grep acceptable
> 
>                     acceptableNodeTypes="X3DVertexAttributeNode"/>
> 
>                     acceptableNodeTypes="FogCoordinate"/>
> 
>                     acceptableNodeTypes="X3DVertexAttributeNode"
> 
>                     acceptableNodeTypes="FogCoordinate"
> 
>                     acceptableNodeTypes="X3DVertexAttributeNode"/>
> 
>                     acceptableNodeTypes="FogCoordinate"/>
> 
>                     acceptableNodeTypes="X3DVertexAttributeNode"
> 
>                     acceptableNodeTypes="FogCoordinate"
> 
>                     acceptableNodeTypes="X3DVertexAttributeNode"
> 
>                     acceptableNodeTypes="FogCoordinate"
> 
>                     acceptableNodeTypes="X3DVertexAttributeNode"
> 
>                     acceptableNodeTypes="FogCoordinate"
> 
>                     acceptableNodeTypes="X3DVertexAttributeNode"/>
> 
>                     acceptableNodeTypes="FogCoordinate"/>
> 
>                     acceptableNodeTypes="X3DVertexAttributeNode"
> 
>                     acceptableNodeTypes="FogCoordinate"
> 
>                     acceptableNodeTypes="X3DVertexAttributeNode"
> 
>                     acceptableNodeTypes="FogCoordinate"
> 
>                     acceptableNodeTypes="X3DVertexAttributeNode"
> 
>                     acceptableNodeTypes="FogCoordinate"
> 
> Maybe these could be added without fields to X3DUOM?
> 
> $ svn diff œ| egrep FogCoordinate"|"X3DVertexAttributeNode
> 
> +      <AbstractNodeType name="X3DVertexAttributeNode">
> 
> +         <InterfaceDefinition specificationUrl="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/shaders.html#X3DVertexAttributeNode"
> 
> +      <ConcreteNode name="FogCoordinate">
> 
> +         <InterfaceDefinition specificationUrl="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/enveffects.html#FogCoordinate">Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10
> 
> We could discuss adding parameters for version.  Did we already discuss this?
> 
> John
> 
> *From: *John Carlson <mailto:yottzumm at gmail.com>
> *Sent: *Friday, September 28, 2018 5:43 PM
> *To: *Brutzman, Donald (Don) (CIV) <mailto:brutzman at nps.edu>
> *Cc: *X3D Graphics Working Group <mailto:x3d at web3d.org>; X3D Graphics public mailing list <mailto:x3d-public at web3d.org>
> *Subject: *Re: [x3d] X3DUOM and validation of dangling references?
> 
> Sorry I wasn’t clear, the problem is the acceptableNodeTypes attribute in X3DUOM.
> 
> John
> 
> On Fri, Sep 28, 2018 at 7:52 AM John Carlson <yottzumm at gmail.com <mailto:yottzumm at gmail.com>> wrote:
> 
>     X3DVertexAttributeNode and
> 
>     FogCoordinate are used, but not defined in V3.0.
> 
>     These are referred to by acceptableNodeTypes in many areas, but do not appear in the model as
> 
>     Types.
> 
>     I believe the fix may be to remove the acceptableNodeTypes, but not sure.
> 
>     John
> 
>     Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10
> 
>     *From: *Brutzman, Donald (Don) (CIV) <mailto:brutzman at nps.edu>
>     *Sent: *Friday, September 28, 2018 7:47 AM
>     *To: *John Carlson <mailto:yottzumm at gmail.com>
>     *Cc: *X3D Graphics Working Group <mailto:x3d at web3d.org>; X3D Graphics public mailing list <mailto:x3d-public at web3d.org>
>     *Subject: *Re: [x3d] X3DUOM and validation of dangling references?
> 
>     On 9/27/2018 10:45 AM, John Carlson wrote:
> 
>      > Don, my suggested changes to v3.0 unified object model haven’t bee accepted yet?  We need validation on the object model where there are dangling references.
> 
>     Sorry John but am not familiar with this issue.  Was there a prior email, or can you advise further?  Good topic for today's X3D Working Group teleconference if you can attend.
> 
>                      X3D Unified Object Model (X3DUOM)
> 
>     http://www.web3d.org/specifications/X3DUOM.html
> 
>     http://www.web3d.org/specifications/X3dUnifiedObjectModel-4.0.xml
> 
>     all the best, Don
> 
>     -- 
> 
>     Don Brutzman  Naval Postgraduate School, Code USW/Br brutzman at nps.edu <mailto:brutzman at nps.edu>
> 
>     Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
> 
>     X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman
> 


all the best, Don
-- 
Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman at nps.edu
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman


More information about the x3d-public mailing list