[x3d-public] containerField updates planned for X3D Schema, DTD and X3DUOM

Don Brutzman brutzman at nps.edu
Tue Jun 12 10:14:31 PDT 2018


As many of you know, in the X3D XML encoding, each containerField value is the field name from the X3D Specification that indicates a contained node's relationship to its parent node.

Default containerField values for each node are correct in most cases, so the need to override default containerField values is relatively rare.

X3D Scene Authoring Hints: containerField
http://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField

Am feeling reasonably confident that we have isolated all cases where these exist... For further documentation improvements, have just added LoadSensor watchList relationships to the link above, and also to X3D Tooltips.  Excerpts:

=======================================================================
http://www.web3d.org/x3d/tooltips/X3dTooltips.html#LoadSensor
http://www.web3d.org/x3d/tooltips/X3dTooltips.html#LoadSensor.watchList

[watchList accessType inputOutput, type MFNode array, empty list] [X3DUrlObject]
The watchList field monitors one or more USE nodes that contain a valid url field.
Hint: if watchList contains multiple USE nodes, output events are only generated when all children have loaded successfully or at least one node has failed.
Hint: if individual load status information is desired for different nodes, multiple LoadSensor nodes may be used, each with a single watchList element.
Hint: Anchor nodes can be monitored for binding a target Viewpoint, loading a new scene, or loading a new scene in a new window.
=======================================================================
http://www.web3d.org/x3d/tooltips/X3dTooltips.html#Anchor
Anchor Hint: apply containerField='watchList' when parent node is LoadSensor.

http://www.web3d.org/x3d/tooltips/X3dTooltips.html#Anchor.containerField
[containerField type NMTOKEN (children | watchList) "children"]

etc. for other nodes
=======================================================================

At this point, it looks like the various edge cases for containerField are covered.  Of note is that no other values are needed/legal - if different relationships are needed by Script or (Extern)ProtoDeclare or ProtoInstance, then intermediate <field> and <fieldValue> elements handle the definition of parent-child relationship names.

Thus it appears that we might well add these limited alternatives to X3D Schema, X3D DTD and X3D Unified Object Model (X3DUOM) to further ensure quality content in X3D scenes.  If subsequent regression testing of several thousand scenes in X3D Examples Archive reveals any further edge cases, then so much the better.

Am posting this note to alert folks that I'll be working on that forthcoming improvement.  Questions and feedback welcome.

Having fun with even-more-strictly validated X3D!  8)

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