[x3d-public] Comparing Joe*.* XML files

Joseph D Williams joedwil at earthlink.net
Sun Nov 22 12:42:17 PST 2020


I think the containerfield for skin must be humanoid. whatever, it should be the same as for skeleton.



From: John Carlson
Sent: Saturday, November 21, 2020 2:30 PM
To: X3D Graphics public mailing list; Joe D Williams
Subject: Re: Comparing Joe*.* XML files

Here's some differences in the JSON, again mostly container fields.
Indeed, the processed XML does not contain a skin containerField, even though the input JSON does.   So perhaps we're not seeing the skin because the DOM document does not contain a skin containerField?  Indeed, looking at the intermediate XML produced by X3DJSONLD.js, it appears that the skin containerField is not created! So indeed, Joe's comment about "no skin" is very telling!

So the question is, how do I convert the JSON -skin "containerField"/key into the XML/DOM document?   What bug is there in X3DJSONLD.js for HAnim?   Where should I put the "shim" which adds the skin?

This is not the solution so far, I will work on fidelity of converted JSON to XML more.

John
$ diff -w JoeKick.json JoeProcessedKick.json    
5c5
<     "@xsd:noNamespaceSchemaLocation":"https://www.web3d.org/specifications/x3d-4.0.xsd",
---
>     "@xsd:noNamespaceSchemaLocation":"http://www.web3d.org/specifications/x3d-4.0.xsd",
183c183
<                           "-value":[
---
>                           "-metadata":
191d190
<                           ]
194c193
<                     "-skeleton":[
---
>                     "-children":[
239c238
<                                                               "@point":[0,0,0,1.0,0,0,0,1.0,0,0,0,1.0]
---
>                                                               "@point":[0,0,0,1,0,0,0,1,0,0,0,1]
1210,1212c1209
<                       }
<                     ],
<                     "-skin":[
---
>                       },
1253c1250
<                                       "@point":[0.0,1.77,0.0,0.0,1.665,0.09,-0.033,1.62,0.087,0.033,1.62,0.087,0.0,1.55,0.097,-0.077,1.64,-0.01,-0.0527,1.58,0.015,0.077,1.64,-0.01,0.0527,1.58,0.015,0.0,1.625,-0.0925,-0.03,1.46,0.035,0.0,1.44,0.03,0.03,1.46,0.035,-0.1135,1.318,0.095,0.1135,1.318,0.095,0.0,1.25,0.113,-0.087,1.19,0.09,-0.093

On Sat, Nov 21, 2020 at 3:50 PM John Carlson <yottzumm at gmail.com> wrote:
I get an XML file from the archives, for example JoeKick.x3d, convert to JSON using X3dToJson.xslt and then convert back to XML using X3DJSONLD.  The I used xmldiff.js on the two XML files.  I get:

$ node ../node/xmldiff.js JoeKick.x3d JoeProcessedKick.x3d
================================================================================
C:\Users\coderextreme\X3DJSONLD\src\main\node\xmldiff.js JoeKick.x3d JoeProcessedKick.x3d
@5 /X3D/$/xsd:noNamespaceSchemaLocation
< "https://www.web3d.org/specifications/x3d-4.0.xsd"
@6/X3D/Scene/0/Group/0/HAnimHumanoid/0/MetadataSet/0/$/containerField
>"metadata"
@4 /X3D/Scene/0/Group/0/HAnimHumanoid/0/MetadataSet/0/MetadataString/0/$/containerField
< "value"
@4 /X3D/Scene/0/Group/0/HAnimHumanoid/0/HAnimJoint/0/$/containerField
< "skeleton"
@6/X3D/Scene/0/Group/0/HAnimHumanoid/0/HAnimJoint/0/HAnimSegment/0/HAnimSite/0/Transform/0/S
hape/0/IndexedLineSet/0/$/containerField
>"geometry"
@6/X3D/Scene/0/Group/0/HAnimHumanoid/0/HAnimJoint/0/HAnimSegment/0/HAnimSite/0/Transform/0/S
hape/0/IndexedLineSet/0/Coordinate/0/$/containerField
>"coord"
@4 /X3D/Scene/0/Group/0/HAnimHumanoid/0/Shape/0/$/containerField
< "skin"
@6/X3D/Scene/0/Group/0/HAnimHumanoid/0/Shape/0/Appearance/0/ImageTexture/0/$/containerField
>"texture"
@6/X3D/Scene/0/Group/0/HAnimHumanoid/0/Shape/0/IndexedFaceSet/0/$/containerField
>"geometry"
@6/X3D/Scene/0/Group/0/HAnimHumanoid/0/Shape/0/IndexedFaceSet/0/Coordinate/0/$/containerFiel
d
>"coord"
@6/X3D/Scene/0/Group/0/HAnimHumanoid/0/Shape/0/IndexedFaceSet/0/TextureCoordinate/0/$/contai
nerField
>"texCoord"
@6/X3D/Scene/0/Group/4/Transform/0/Shape/0/Appearance/0/ImageTexture/0/$/containerField
>"texture"
@6/X3D/Scene/0/Group/4/Transform/0/Shape/0/IndexedFaceSet/0/$/containerField
>"geometry"
@6/X3D/Scene/0/Group/4/Transform/0/Shape/0/IndexedFaceSet/0/Coordinate/0/$/containerField
>"coord"
@6/X3D/Scene/0/Group/5/Transform/1/Shape/0/IndexedLineSet/0/$/containerField
>"geometry"
@6/X3D/Scene/0/Group/5/Transform/1/Shape/0/IndexedLineSet/0/Coordinate/0/$/containerField
>"coord"
@6/X3D/Scene/0/Group/5/Transform/2/Shape/0/IndexedLineSet/0/$/containerField
>"geometry"
@6/X3D/Scene/0/Group/5/Transform/3/Shape/0/IndexedLineSet/0/$/containerField
>"geometry"

Note that most of these are new containerFields, but there are perhaps important differences earlier in the files.

The only approach that I see might work would be to include mapToMethod.js in the JSON -> XML conversion. One might argue that containerFields may not be required to render XML. One needs to examine how well mapToMethod.js works in general.

Indeed, how are the JSON files themselves different?




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20201122/e7362c04/attachment.html>


More information about the x3d-public mailing list