[x3d-public] hanim name field vs. DEF

Leonard Daly Leonard.Daly at realism.com
Tue Jul 3 08:32:11 PDT 2018


Some comments on DEF in general

 1. DEF values are scoped in a single X3D structure (4.4.3) where
    structure is file, prototype, or string (CreateX3DFrom...)
 2. The 19775-1 document makes no reference to allowed characters or
    character sequence in DEF values. It appears that it is possible
    that the string (between ") is legal: "This is = 'Legal' DEF
    value\" (note that various encodings may impose additional
 3. The only restrictive reference I could find on DEF is in the Annexes
    that describe profiles. The total number of DEFs is either limited
    to 50 utf8 octets or that is the minimum required support (or both).
 4. The XML encoding document (19776-1) in [4.3.4] indicates that DEF is
    assigned the XML type ID (not the 'id' attribute). That imposes
    certain character set and pattern limitations. It also states that
    USE is assigned the XML type IDREF, though I cannot find any other
    reference to using IDREF inside an XML document (all references are
    internal to DTDs or Schemas).

As you noted the 'name' field in H-Anim is poorly specified with no 
requirements other than it being a SFString. There is no requirement for 
uniqueness, so I am not sure how a developer would use it to identify 
each HAnimJoint at run-time (see 3rd paragraph of 26.3.3)

Leonard Daly

> The HAnim nodes have a required name field which is subject to certain
> rules depending on the type of node. It is supposed to be used to for
> referencing nodes within an Humanoid to each other.
> For example. segment nodes needs to have names compatible with the
> parent joint node name.
> Another rule is that a global reference to a HAnim node needs to
> consist of a prefix and the name as a suffix.
> Here is where the DEF keyword comes in. In the examples, the DEF value
> is constructed as the global reference to a name. This makes sense but
> seems to be just a convention since I could not find instructions to
> this effect in the abstract x3d spec., the x3d or the vrml encodings.
> The assumption seems to be that the DEF value constitutes the global
> reference in the x3d context.
> Several questions arise:
> Should an implementation care about the relationship with DEF and name
> values ? Presumably yes, in in some way.
> To what extent if any should an implementation enforce the naming
> rules, eg. warn or ignore nodes with non-compliant names ? Perhaps
> only warn.
> Is the DEF value implicitly defined by the name value and the
> Humanoids name value as prefix, if not explicitly provided ? Probably
> not.
> What, in general, is an x3d browser implementation expected to do with
> the name field, if anything ?
> Thanks for any feedback,
> -Andreas

*Leonard Daly*
3D Systems & Cloud Consultant
President, Daly Realism - /Creating the Future/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20180703/1b51b265/attachment.html>

More information about the x3d-public mailing list