[x3d-public] hanim name field vs. DEF

John Carlson yottzumm at gmail.com
Tue Jul 3 09:16:37 PDT 2018

I know X3DJSONLD will only warn, and my x3dschema repository will report
errors if the JSON schema is set up for a limited number of names.

On Tue, Jul 3, 2018, 11:33 AM Leonard Daly <Leonard.Daly at realism.com> wrote:

> Andreas,
> 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 requirements).
>    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*
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20180703/cf7ba4a0/attachment-0001.html>

More information about the x3d-public mailing list