[x3d-public] ProtoInstance USE without name

John Carlson yottzumm at gmail.com
Sun Nov 22 17:23:19 PST 2020


That's okay if you're generating XML from an authoring tool, but adding
name to the ProtoInstances in the segment, joint and site containerField
HAnim sub-objects by hand would be a pain in the neck (it's already a pain
in the neck to add containerField for every node in XML). So probably, one
shouldn't require a name.  What I can do is look up the name in X3DJSONLD
perhaps, and add the name to the right nodes?   So JSON wouldn't require
names, and X3DOM would be provided with names by X3DJSONLD?  So that would
save X3DOM the lookup?   We'll either have to do the USE->DEF lookup to
find names in either JSONParser.js (X3DJSONLD) or some other place in
X3DOM. What's the best place?  We need to do JSON schema processing in
X3DJSONLD. I believe that there are a few cases where having a USE does not
exclude.

On the other hand, if USE implies the code does not create a duplicate data
structure, why are we worrying about putting in a name when it should be
already present in the node?  Does creating a single node for DEFs and USEs
with the same value mean there's more than one reference to the name in
X3DOM?

Perhaps we should write a real JSON parser for X3DOM instead of translating
to XML/DOM?  Something to think. about, however, perhaps VRML is higher on
the stack of things to do?

John

On Sun, Nov 22, 2020 at 6:46 PM Andreas Plesch <andreasplesch at gmail.com>
wrote:

> Yes. I was saying these are the only Proto examples I came across which do
> have USE without a name. To me it would be clearer and more similar to
> regular nodes if name would be always added, perhaps even required (even
> though not strictly necessary).
>
> Andreas
>
> On Sun, Nov 22, 2020 at 6:21 PM John Carlson <yottzumm at gmail.com> wrote:
>
>> I'm not finding any name's and USE's together in ProtoInstance node in
>> the LOA*.x3d examples from the HAnim 2 part 1 spec.
>>
>> grep ProtoInstance LOA*x3d|grep USE|grep name
>>
>> John
>>
>> On Sun, Nov 22, 2020 at 5:02 PM Andreas Plesch <andreasplesch at gmail.com>
>> wrote:
>>
>>> Looking at why the old Prototypes for HAnim did not work properly for
>>> x3dom, I found that the xml examples typically have a ProtoInstance
>>> statement with a USE attribute but without the corresponding name attribute
>>> defining the actual node type. However, x3dom expects a name attribute with
>>> every ProtoInstance statement, even USE ones, to be able to insert the
>>> appropriate node.
>>>
>>> The xml spec  at
>>>
>>>
>>> https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#ProtoInstanceAndFieldValueStatement
>>>
>>> does not address USE of ProtoInstances but all examples always have a
>>> name attribute.
>>>
>>> Also, in my quite extensive testing of Protos, I did not come across
>>> other examples of ProtoInstance elements without a name attribute.
>>>
>>> To be fair, the name attribute is not strictly necessary for USE
>>> ProtoInstances since the type of the inserted node can be determined from
>>> the referenced DEF node. But having the name attribute makes ProtoInstance
>>> elements more similar to regular nodes. So I think not requiring the name
>>> attribute for USE ProtoInstances should be explicitly allowed in the xml
>>> spec., but still be encouraged.
>>>
>>> I do not think the xml spec. would be otherwise affected by V.4 ?
>>>
>>> Best, Andreas
>>>
>>> --
>>> Andreas Plesch
>>> Waltham, MA 02453
>>> _______________________________________________
>>> x3d-public mailing list
>>> x3d-public at web3d.org
>>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>>
>>
>
> --
> Andreas Plesch
> Waltham, MA 02453
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20201122/049bc51e/attachment.html>


More information about the x3d-public mailing list