[x3d-public] Some archive HAnim .x3d models don’t validate with X3DJSAIL.
Don Brutzman
don.brutzman at gmail.com
Tue Jul 15 01:35:29 PDT 2025
John, when I run the X3D Validator from within X3D-Edit on this model, it
reports the following diagnostics in the log appearing below. This is
relatively short, as these things go, which is good. Running the model
shows that it is pretty functional too.
- X3D Example Archives: Humanoid Animation, Specifications, HAnim 1
Specification LOA 3 Animation
-
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim1SpecificationLOA3AnimationIndex.html
Note the presence of the first meta error element in the schematron log,
highlighted by me, which states that this model includes errors under our
HAnim 2.0 tools (since it has been adapted from HAnim 1.0).
That same error notification is also evident from simply inspecting the
model documentation,
-
11
<https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim1SpecificationLOA3Animation.html#11>
<meta name='* error *' content='* Legacy model, not valid as
X3D4 HAnim version 2.0 since HAnim version 1.0 has significant differences
and is no longer directly supported *'/>
-
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim1SpecificationLOA3Animation.html#11
Perhaps fixable in small steps, but please don't be surprised if you
encounter errors as advertised. I do try to be generous in noting errors
and warnings in meta tags for each model, when they occur, to encourage
precise continued troubleshooting.
Your log looks like the same X3DJSAIL internal error repeated many times.
The key to an issue report is conciseness, clarity and repeatability.
Well-defined issues (called "tickets" by SourceForge) are addressed when
possible (concise, clear, repeatable) and maintained online at
- https://sourceforge.net/p/x3d/tickets/
--------- X3D Validator checks commenced for
> HAnim1SpecificationLOA3Invisible.x3d ---------
> Performing well-formed XML check...
> Checking file:/C:/x3d-code/
> www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim1SpecificationLOA3Invisible.x3d.
> ..
> Well-formed XML check: pass
> Performing DOCTYPE check...
> [X3dDoctypeChecker] success: valid XML declaration
> found.[X3dDoctypeChecker] success: final X3D 3.3 DOCTYPE found.
> Performing DTD validation...
> Checking file:/C:/x3d-code/
> www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim1SpecificationLOA3Invisible.x3d.
> ..
> Referenced entity at "
> http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd
> ".
> Referenced entity at "http://www.w3.org/2001/XMLSchema.dtd".
> Referenced entity at
> "jrt:/java.xml/jdk/xml/internal/jdkcatalog/w3c/dtd/schema10/datatypes.dtd".
> XML DTD validation: pass
> Performing X3D schema validation...
> Checking file:/C:/x3d-code/
> www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim1SpecificationLOA3Invisible.x3d.
> ..
> Referenced entity at "
> http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd
> ".
> Referenced entity at "http://www.w3.org/2001/XMLSchema.dtd".
> Referenced entity at
> "jrt:/java.xml/jdk/xml/internal/jdkcatalog/w3c/dtd/schema10/datatypes.dtd".
> XML schema validation: pass
> Performing X3D regular expression (regex) values check...
> X3D regex check: complete
> Performing X3D Schematron check...
> <meta name='error' content='Legacy model, not valid as X3D4 HAnim version
> 2.0 since HAnim version 1.0 has significant differences and is no longer
> directly supported'/> [/X3D/head/meta[6], diagnostic]
> <meta name='TODO' content='move relevant HAnimSite/Viewpoint pairs into
> skeleton at appropriate locations'/> [/X3D/head/meta[14], diagnostic]
> <meta name='TODO' content='insert MetadataInteger nodes indicating LOA for
> each Joint and Segment'/> [/X3D/head/meta[15], diagnostic]
> <Viewpoint DEF=''/> centerOfRotation='0 0.9149 0.0016' has mismatched
> Y-value height of 0.9149 compared to position='2.6 0.8 0' which has Y-value
> height of 0.8[/X3D/Scene/Viewpoint[5], warning]
> <Viewpoint DEF=''/> centerOfRotation='0 0.9149 0.0016' has mismatched
> Y-value height of 0.9149 compared to position='1 0.8 0.5' which has Y-value
> height of 0.8[/X3D/Scene/Viewpoint[6], warning]
> <Viewpoint DEF=''/> centerOfRotation='0 0.9149 0.0016' has mismatched
> Y-value height of 0.9149 compared to position='-1 0.8 0.5' which has
> Y-value height of 0.8[/X3D/Scene/Viewpoint[7], warning]
> <Viewpoint DEF=''/> centerOfRotation='0 0.9149 0.0016' has mismatched
> Y-value height of 0.9149 compared to position='-2.6 0.8 0' which has
> Y-value height of 0.8[/X3D/Scene/Viewpoint[8], warning]
> <HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> version='1.0' with
> X3D version='3.3' [/X3D/Scene/HAnimHumanoid, diagnostic]
>
> ====================================================================================================================
> [/X3D/Scene/HAnimHumanoid, diagnostic]
> <HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> node
> count(HAnimJoint) within skeleton hierarchy =
> 94[/X3D/Scene/HAnimHumanoid, diagnostic]
> <HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> node
> count(HAnimSegment) within skeleton hierarchy =
> 94[/X3D/Scene/HAnimHumanoid, diagnostic]
> <HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> node
> count(HAnimSite) within HAnimHumanoid =
> 95[/X3D/Scene/HAnimHumanoid, diagnostic]
> <HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> node
> count(HAnimSite//Viewpoint) within skeleton hierarchy =
> 4[/X3D/Scene/HAnimHumanoid, diagnostic]
> <HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> node
> count(HAnimDisplacer) within skeleton hierarchy =
> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
> <HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> node
> count(<HAnimJoint USE='*' containerField = 'joints'/>) =
> 94[/X3D/Scene/HAnimHumanoid, diagnostic]
> <HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> node
> count(<HAnimSegment USE='*' containerField = 'segments'/>) =
> 94[/X3D/Scene/HAnimHumanoid, diagnostic]
> <HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> node
> count(<HAnimSite USE='*' containerField = 'sites'/>) =
> 91[/X3D/Scene/HAnimHumanoid, diagnostic]
> <HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> node
> count(<HAnimSite DEF='*' name ends with '_view'/>) =
> 14[/X3D/Scene/HAnimHumanoid, diagnostic]
> <HAnimHumanoid DEF='hanim_humanoid' name='humanoid'/> has mismatched
> HAnimSite node counts, 95 within skeleton hierarchy and 91 USE nodes in
> sites field [/X3D/Scene/HAnimHumanoid, diagnostic]
> ====================================================================================================================
> [/X3D/Scene/HAnimHumanoid, diagnostic]
--------- X3D Validator checks complete for
HAnim1SpecificationLOA3Invisible.x3d ---------
v/r Don
On Mon, Jul 14, 2025 at 9:16 PM John Carlson <yottzumm at gmail.com> wrote:
> Recommendation is to check archive HAnimV2 specification .x3d models by
> validating them with X3DJSAIL. There’s no need to run foreign code, just
> CommandLine.java -validate. See below for one to choose. You should be
> able to search for “Specification” in the email.
>
> I do realize running validation on the whole archive takes a lot of time,
> my archive too, when I’m generating code. I recommend focusing on a single
> model.
>
> For example:
>
> java -cp ~/X3DJSONLD/X3DJSAIL.4.0.full.jar org.web3d.x3d.jsail.CommandLine
> -validate
> HumanoidAnimation/Specifications/HAnim1SpecificationLOA3Invisible.x3d
>
> It would be good to get another set of eyes on this, even if an error
> isn’t reported.
>
> I am adapting my code not to call setContainerFieldOverride().
>
> I do have some good news, I am re-adopting the x3d.py module for testing
> in addition to JRuby and GraalPy for X3DJSAIL. There are a few tweaks I
> had to make, but these were made to:
>
>
> https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/PythonSerializer.js
>
> So I have improved Python code generation. The old
> PythonSerializerX3DJSAIL is now:
>
>
> https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/GraalPySerializer.js
>
> I had to take a break and get some sleep.
>
> Maybe eventually I’ll get to languages like Kotlin and Scala. I’ve only
> played with Kotlin on the command line.
>
> Typically one would use json2all.js:
>
>
> https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/json2all.js
>
> This is tuned to run in X3DJSONLD/src/main/shell
>
>
> John
>
> On Sun, Jul 13, 2025 at 10:45 PM John Carlson <yottzumm at gmail.com> wrote:
>
>> Interestingly enough, I did some X3DJSAIL (recently compiled) against a
>> recent checkout of the HumanoidAnimation archive on sourceforge:
>>
>> x3d / Code / [r37163]
>> /www.web3d.org/x3d/content/examples/HumanoidAnimation
>> <https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/HumanoidAnimation/>
>>
>> I fully realize that I haven't checked the archives elsewhere (which
>> might not be checked in).
>>
>> Looking for something checked in. I'll try X3DJSAIL from the
>> distribution website next.
>>
>> John
>>
>> ~/www.web3d.org/x3d/content/examples/HumanoidAnimation
>> $ for i in */*x3d; do java -cp ~/X3DJSONLD/X3DJSAIL.4.0.full.jar
>> org.web3d.x3d.jsail.CommandLine -validate $i 2>&1|grep "Invalid
>> setContainerFieldOverride" && echo $i; done
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> Legacy/AllenDutton.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> Legacy/BoxMan3.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> Legacy/BoxMan3AnimationPanel.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> Legacy/DiamondManLOA_0.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> Legacy/DiamondManLOA_1.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> Legacy/DiamondManLOA_2.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> Legacy/HAnim1SpecificationLOA3Animation.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> Legacy/HAnim1SpecificationLOA3Illustrated.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> Legacy/HAnim1SpecificationLOA3Invisible.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> Legacy/NancyNativeTags.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> MotionAnimation/BvhConversion1.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> MotionAnimation/BvhConversion1Illustrated.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> MotionAnimation/BvhConversion1Invisible.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> MotionAnimation/Pirouette.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> MotionAnimation/UniversityWisconsionExample1.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> Skin/BoxMan4.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> Skin/BoxMan4AnimationPanel.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> Specifications/HAnim1SpecificationLOA3Animation.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> Specifications/HAnim1SpecificationLOA3Illustrated.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> Specifications/HAnim1SpecificationLOA3Invisible.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> Specifications/HAnim2SpecificationLOA3Illustrated.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> Specifications/HAnim2SpecificationLOA3Invisible.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> Templates/DiamondManLOA0.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> Templates/DiamondManLOA1.x3d
>> Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException:
>> *** Invalid setContainerFieldOverride() value='viewpoints', legal values
>> for HAnimSite are containerField_ALLOWED_VALUES='"children" "sites"
>> "skeleton"'
>> Templates/DiamondManLOA2.x3d
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250715/8536d47e/attachment-0001.html>
More information about the x3d-public
mailing list