<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">So I've been working on X3DJSONLD.java JSON to XML conversion.  Since there are many additions through the use of X3dToJson.xslt, namely @ulimit and and @llimit properties which have default values, I cannot properly diff my XML HAnim output against the original XML X3D. I can delete these defaults X3DJSONLD.java and X3DJSONLD.js, but that seems like it's adding some complexity, which perhaps is unnecessary.</div><div dir="ltr"><br></div><div dir="ltr">So I thought, maybe I can use the X3d Tidy spreadsheet to remove these defaults.  Maybe not..</div><div dir="ltr"><br></div><div dir="ltr">Here is the X3d Tidy spreadsheet running against the original KoreanCharacterMotionAnnexD01Jin.x3d, which I believe is here:</div><div dir="ltr"><br></div><div dir="ltr"><a href="https://www.web3d.org/x3d-resources/content/examples/HumanoidAnimation/Specifications/KoreanCharacterMotionAnnexD01JinIndex.html" target="_blank">https://www.web3d.org/x3d-resources/content/examples/HumanoidAnimation/Specifications/KoreanCharacterMotionAnnexD01JinIndex.html</a></div><div dir="ltr"><br></div><div dir="ltr">I discovered all these ulimit and llimit fields being added to my tidied output! See attached original and tidied XML output. See below for false flags announcing that ulimit and llimit are omitted, when they are not.</div><div dir="ltr"><br></div><div dir="ltr">See:</div><div dir="ltr"><br></div><div dir="ltr"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimJoint">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimJoint</a></div><div dir="ltr"><br></div><div dir="ltr">For ulimit and llimit defaults.</div><div dir="ltr"><br></div><div>I am using Saxon as packaged with X3DJSAIL.  I am not testing with the latest X3DJSAIL jar, but I'll download that now.</div><div dir="ltr"><br></div><div dir="ltr">Thanks!</div><div dir="ltr"><br></div><div dir="ltr">John<br><div><br></div><div><div>batchtidy:</div><div>     [echo] Run tidy:</div><div>    [apply] outdir</div><div>    [apply] BEGIN C:\Users\john\x3dschema\examples\KoreanCharacterMotionAnnexD01Jin.x3d</div><div>    [apply] out C:\Users\john\x3dschema\examples\KoreanCharacterMotionAnnexD01Jin.tidy.new.xml</div><div>    [apply] *** HAnimJoint USE='hanim_humanoid_root' containerField='joints' has disallowed attribute llimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_humanoid_root' containerField='joints' has disallowed attribute ulimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_sacroiliac' containerField='joints' has disallowed attribute llimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_sacroiliac' containerField='joints' has disallowed attribute ulimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_vl5' containerField='joints' has disallowed attribute llimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_vl5' containerField='joints' has disallowed attribute ulimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_skullbase' containerField='joints' has disallowed attribute llimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_skullbase' containerField='joints' has disallowed attribute ulimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_l_elbow' containerField='joints' has disallowed attribute llimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_l_elbow' containerField='joints' has disallowed attribute ulimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_r_elbow' containerField='joints' has disallowed attribute llimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_r_elbow' containerField='joints' has disallowed attribute ulimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_l_hip' containerField='joints' has disallowed attribute llimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_l_hip' containerField='joints' has disallowed attribute ulimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_r_hip' containerField='joints' has disallowed attribute llimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_r_hip' containerField='joints' has disallowed attribute ulimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_l_knee' containerField='joints' has disallowed attribute llimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_l_knee' containerField='joints' has disallowed attribute ulimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_r_knee' containerField='joints' has disallowed attribute llimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_r_knee' containerField='joints' has disallowed attribute ulimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_l_metatarsophalangeal_2' containerField='joints' has disallowed attribute llimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_l_metatarsophalangeal_2' containerField='joints' has disallowed attribute ulimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_r_metatarsophalangeal_2' containerField='joints' has disallowed attribute llimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_r_metatarsophalangeal_2' containerField='joints' has disallowed attribute ulimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_l_radiocarpal' containerField='joints' has disallowed attribute llimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_l_radiocarpal' containerField='joints' has disallowed attribute ulimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_r_radiocarpal' containerField='joints' has disallowed attribute llimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_r_radiocarpal' containerField='joints' has disallowed attribute ulimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_l_shoulder' containerField='joints' has disallowed attribute llimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_l_shoulder' containerField='joints' has disallowed attribute ulimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_r_shoulder' containerField='joints' has disallowed attribute llimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_r_shoulder' containerField='joints' has disallowed attribute ulimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_l_talocrural' containerField='joints' has disallowed attribute llimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_l_talocrural' containerField='joints' has disallowed attribute ulimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_r_talocrural' containerField='joints' has disallowed attribute llimit='0 0 0', now omitted</div><div>    [apply] *** HAnimJoint USE='hanim_r_talocrural' containerField='joints' has disallowed attribute ulimit='0 0 0', now omitted</div><div>    [apply] *** containerField mismatch - found it #3 containerField DEF='' containerField='segments' expectedContainerField='segments'</div><div>    [apply] *** containerField mismatch - found it #3 containerField DEF='' containerField='segments' expectedContainerField='segments'</div><div>    [apply] *** containerField mismatch - found it #3 containerField DEF='' containerField='segments' expectedContainerField='segments'</div><div>    [apply] *** containerField mismatch - found it #3 containerField DEF='' containerField='segments' expectedContainerField='segments'</div><div>    [apply] *** containerField mismatch - found it #3 containerField DEF='' containerField='segments' expectedContainerField='segments'</div><div>    [apply] C:\Users\john\x3dschema\examples\KoreanCharacterMotionAnnexD01Jin.tidy.new.xml</div><div>    [apply] *** containerField mismatch - found it #3 containerField DEF='' containerField='segments' expectedContainerField='segments'</div><div>    [apply] *** containerField mismatch - found it #3 containerField DEF='' containerField='segments' expectedContainerField='segments'</div><div>    [apply] *** containerField mismatch - found it #3 containerField DEF='' containerField='segments' expectedContainerField='segments'</div><div>    [apply] *** containerField mismatch - found it #3 containerField DEF='' containerField='segments' expectedContainerField='segments'</div><div>    [apply] *** containerField mismatch - found it #3 containerField DEF='' containerField='segments' expectedContainerField='segments'</div><div>    [apply] *** containerField mismatch - found it #3 containerField DEF='' containerField='segments' expectedContainerField='segments'</div><div>    [apply] *** containerField mismatch - found it #3 containerField DEF='' containerField='segments' expectedContainerField='segments'</div><div>    [apply] *** containerField mismatch - found it #3 containerField DEF='' containerField='segments' expectedContainerField='segments'</div><div>    [apply] *** containerField mismatch - found it #3 containerField DEF='' containerField='segments' expectedContainerField='segments'</div><div>    [apply] *** containerField mismatch - found it #3 containerField DEF='' containerField='segments' expectedContainerField='segments'</div><div>    [apply] *** containerField mismatch - found it #3 containerField DEF='' containerField='segments' expectedContainerField='segments'</div><div>    [apply] *** containerField mismatch - found it #3 containerField DEF='' containerField='segments' expectedContainerField='segments'</div><div>    [apply] *** containerField mismatch - found it #3 containerField DEF='' containerField='segments' expectedContainerField='segments'</div><div>    [apply] =======================================================================================================</div><div>    [apply] HAnimHumanoid skeleton holds X3D4 HAnim2 triplets, HAnimJoint (18) : HAnimSegment (18) : HAnimSite (0)</div><div>    [apply] =======================================================================================================</div><div>    [apply] HAnimHumanoid DEF='hanim_AnnexD01Jin name='AnnexD01Jin' loa='-1'</div><div>    [apply]   humanoid_root : sacrum</div><div>    [apply]     sacroiliac : pelvis</div><div>    [apply]       l_hip : l_thigh</div><div>    [apply]       | l_knee : l_calf</div><div>    [apply]       |   l_talocrural : l_talus</div><div>    [apply]       |     l_metatarsophalangeal_2 : l_tarsal_proximal_phalanx_2</div><div>    [apply]       r_hip : r_thigh</div><div>    [apply]       | r_knee : r_calf</div><div>    [apply]       |   r_talocrural : r_talus</div><div>    [apply]       |     r_metatarsophalangeal_2 : r_tarsal_proximal_phalanx_2</div><div>    [apply]       vl5 : l5</div><div>    [apply]         skullbase : skull</div><div>    [apply]         l_shoulder : l_upperarm</div><div>    [apply]         | l_elbow : l_forearm</div><div>    [apply]         |   l_radiocarpal : l_carpal</div><div>    [apply]         r_shoulder : r_upperarm</div><div>    [apply]           r_elbow : r_forearm</div><div>    [apply]             r_radiocarpal : r_carpal</div><div>    [apply] =======================================================================================================</div><div>    [apply] END C:\Users\john\x3dschema\examples\KoreanCharacterMotionAnnexD01Jin.x3d</div><div><br></div><div>BUILD SUCCESSFUL</div><div>Total time: 3 seconds</div></div></div></div></div></div></div>