[x3d-public] hanim name field vs. DEF
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:
> 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
> What, in general, is an x3d browser implementation expected to do with
> the name field, if anything ?
> Thanks for any feedback,
> *Leonard Daly*
> 3D Systems & Cloud Consultant
> LA ACM SIGGRAPH Past Chair
> President, Daly Realism - *Creating the Future*
> x3d-public mailing list
> x3d-public at web3d.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the x3d-public