[x3d-public] X3D Working Group agenda 31 JAN 2020: X3Dv4 issues, XML Metadata containerField, consolidating mismatched field names
vmarchetti at kshell.com
vmarchetti at kshell.com
Fri Jan 31 07:35:37 PST 2020
Some comments on item f of the 31 Jan 2020 WG agenda:
The default value for containerField for the Metadata nodes is defined in the x3d v3.3 DTD as 'metadata' (https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/x3d-3.3.dtd)
-- see ATTLIST element for the individual ELEMENT nodes for MetadataDouble,MetadataFloat, etc.
There is no DTD corresponding to X3D v4 in the github repository, however I do not think the default values recommended in the authoring hints can be expressed in a DTD.
------
The change in the default value for containerField will potentially change the meaning of X3D v3.3 metadata which makes use of the default values to reduce XML verbosity. In this example:
<MetadataSet name="Milestones">
<MetadataString name="approval" value='"2020-01-19"'/>
<MetadataString containerField="value" name="design" value='"2020-03-12"'/>
<MetadataString containerField="value" name="implementation" value='"2020-04-12"'/>
</MetadataSet>
Under X3D v3.3 the approval entry means metadata on the set; perhaps indicating when the set of milestones for a project was approved.
Under X3D v4 , with this same XML, the approval entry would be treated as another element of the set.
-------
One consequence of this change is that in the interim time, between the time the v4 spec is finalized and the time that implementations and users have switched over to v4, we will need to recommend to authors that the containerField XML attribute be explicitly specified for all children of the MetadataSet node; to prevent breaking the file in the crossover to v4.
------------------
Vince Marchetti
>
> f. /XML encoding for Metadata* node containerField/
>
>> d. Regarding XML encoding of Metadata nodes, and issues raised in Vince's email today:
>> * [x3d-public] X3D agenda 24 JAN 2020 (i.e. MetadataSet in XML encoding)
>> http://web3d.org/pipermail/x3d-public_web3d.org/2020-January/011708.html
>> TODO: Don will create an issue to capture and propose simple solution: change default containerField in XML schema to 'value' so that verboseness is reduced. On deck for mailing list post and discussion next week.
>
> X3D Scene AUthoring Hints: Metadata Nodes
> https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Metadata
>
> "Typically the Metadata nodes have default containerField='metadata' except when they are child values of a MetadataSet node, in which case they have containerField='value'".
>
> Recommended improvement:
> - change default containerField to 'value' since this is by far the most common occurrence.
> - XML examples become far terser and more readable.
> - No change in X3D Architecture.
> - No impact on prior content that already had containerField='value' (the common case)
> - Easily noted as a warning in X3D Tooltips, Schematron, Tidy when converting from X3Dv3 -> X3Dv4.
>
> Discussion please, suggest implementation get tested and any troubles reported back.
>
> -----
>
More information about the x3d-public
mailing list