[x3d-public] HAnim Quality Assurance (QA) and regression testing

John Carlson yottzumm at gmail.com
Thu May 14 12:35:14 PDT 2020


Looks like great progress Don.  I am considering making a master script to
build X3DJSONLD, including a maven clean, install, running donlocal.sh,
local.sh, svn checkout, copying files from /c/x3d-code/www.web3d.org.  Etc.
Etc.

On Mon, May 11, 2020 at 1:34 AM Don Brutzman <brutzman at nps.edu> wrote:

> [corrected title, continued thread]
>
> For those who don't get enough minimum daily debugging, of especial note
> in prior message is the following diagnostic.
>
> > check schema validation of X3dTidy form
> > C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation\Specifications\KoreanCharacterMotionAnnexD01Jin.Tidy.x3d:353:138049:
> Attribute "elapsedTime" must be declared for element type "HAnimMotion".
> > C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation\Specifications\KoreanCharacterMotionAnnexD01Jin.Tidy.x3d:353:138049:
> Attribute "frameCount" must be declared for element type "HAnimMotion".
> > C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation\Specifications\KoreanCharacterMotionAnnexD01Jin.Tidy.x3d:353:138049:
> cvc-complex-type.3.2.2: Attribute 'elapsedTime' is not allowed to appear in
> element 'HAnimMotion'.
> > C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation\Specifications\KoreanCharacterMotionAnnexD01Jin.Tidy.x3d:353:138049:
> cvc-complex-type.3.2.2: Attribute 'frameCount' is not allowed to appear in
> element 'HAnimMotion'.
> > C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation\Specifications\KoreanCharacterMotionAnnexD01Jin.Tidy.x3d:354:11:
> The content of element type "Scene" must match
> "(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance|GeoPositionInterpolator|GeoTouchSensor|GeoProximitySensor|HAnimDisplacer|NurbsPositionInterpolator|NurbsOrientationInterpolator|NurbsSurfaceInterpolator|BooleanFilter|BooleanSequencer|BooleanToggle|BooleanTrigger|IntegerSequencer|IntegerTrigger|TimeTrigger|ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|CylinderSensor|KeySensor|LoadSensor|LocalFog|NormalInterpolator|OrientationInterpolator|PlaneSensor|PositionInterpolator|PositionInterpolator2D|ProximitySensor|ScalarInterpolator|Script|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor|GeoViewpoint|Background|Fog|NavigationInfo|TextureBackground|Viewpoint|OrthoViewpoint|EspduTransform|SignalPdu|ReceiverPdu|TransmitterPdu|DISEntityManager|GeoLocation|GeoLOD|GeoTransform|HAnimJoint|HAnimSegment|HAnimSite|HAnimHumanoid|CADAssembly|CADLayer|CADPart|CollidableShape|CollisionSensor|RigidBodyCollection|Anchor|Billboard|Collision|Group|Inline|LOD|StaticGroup|Switch|Transform|DirectionalLight|SpotLight|PointLight|IsoSurfaceVolumeData|SegmentedVolumeData|VolumeData|Shape|Sound|GeoMetadata|WorldInfo|ColorChaser|ColorDamper|CoordinateChaser|CoordinateDamper|OrientationChaser|OrientationDamper|PositionChaser|PositionChaser2D|PositionDamper|PositionDamper2D|ScalarChaser|ScalarDamper|TexCoordChaser2D|TexCoordDamper2D|ClipPlane|TransformSensor|ViewpointGroup|LinePickSensor|PointPickSensor|PrimitivePickSensor|VolumePickSensor|PickableGroup|EaseInEaseOut|SplinePositionInterpolator|SplinePositionInterpolator2D|SplineScalarInterpolator|SquadOrientationInterpolator|ProtoDeclare|ExternProtoDeclare|ROUTE|EXPORT|IMPORT|ProtoInstance|LayerSet)*".
> > C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation\Specifications\KoreanCharacterMotionAnnexD01Jin.Tidy.x3d
> is not a valid XML document
>
> Careful reading reveals that validation errors occur simultaneously for a
> pair of fields that simultaneously 'must be declared' and 'is not allowed
> to appear' - huh?
>
> Contradictory to be sure!   :0
>
> Close inspection of example X3D, schema and DTD together reveals that
>
> a. elapsedTime has accessType inputOnly and so that attribute should not
> have been in the scene model.  Now removed, added diagnostic to X3D
> Schematron, considering whether (or how best) to add such a rule for all
> inputOnly and outputOnly fields, since existing diagnostics for this type
> of error can be so mysterious.
>
> b. field frameCount had accessType inputOnly which is incorrect.  Now
> changed to inputOutput, deployed in X3D Schema, DTD, Tooltips and X3DUOM,
> further ripples to X3DJSAIL X3DPSAIL and X3D Ontology follow in due course.
>
> https://www.web3d.org/x3d/content/X3dTooltips.html#HAnimMotion (offers
> links to related documentation)
> https://www.web3d.org/x3d/content/X3dTooltips.html#HAnimMotion.elapsedTime
> https://www.web3d.org/x3d/content/X3dTooltips.html#HAnimMotion.frameCount
>
> And so, fixed.  This underlines the points in the rest of this thread:
> step by step, one model at a time.
>
> Onward we go.  Have fun with X3D HAnim!  8)
>
>
> On 5/10/2020 10:00 PM, Brutzman, Donald (Don) (CIV) wrote:
> > [was: Don, following patch should be applied to X3D4 schema]
> > [added HAnim]
> >
> > See attached prior message below for status report.
> >
> > Here are two examples showing progress. These are only intended to show
> the level of detail going on as part of Quality Assurance (QA) efforts,
> many tools are being tested at once.  Mutual reinforcement and
> cross-checking is very helpful.
> >
> > Getting good examples avoids Garbage In Garbage Out (GIGO) risks for
> implementers.
> >
> > Expecting to have more progress and another great regular meeting with
> Joe later in the week.  Onward we go.
> >
> >
> https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/HumanoidAnimation/
>
> >
> > ===================================================================
> > test.oneScene.saxon:
> > C:\x3d-code\www.web3d.org\x3d\content\examples/HumanoidAnimation/Specifications/KoreanCharacterMotionAnnexC01Jin.x3d
> conversion, new style:
> > Saxon-HE 9.7.0.20J from Saxonica
> > Java version 14
> > Stylesheet compilation time: 6.913318s (6913.3187ms)
> > Processingfile:/C:/x3d-code/
> www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/KoreanCharacterMotionAnnexC01Jin.x3d
> > Using parser
> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser
> > Building tree forfile:/C:/x3d-code/
> www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/KoreanCharacterMotionAnnexC01Jin.x3d
> using class net.sf.saxon.tree.tiny.TinyBuilder
> > Tree built in 774.014ms
> > Tree size: 270 nodes, 0 characters, 1468 attributes
> > Execution time: 1.154904s (1154.9045ms)
> > Memory used: 331913568
> > Saxon-HE 9.7.0.20J from Saxonica
> > Java version 14
> > Stylesheet compilation time: 346.615ms
> > Processingfile:/C:/x3d-code/
> www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/_schematron/KoreanCharacterMotionAnnexC01Jin.svrl
> > Using parser
> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser
> > Building tree forfile:/C:/x3d-code/
> www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/_schematron/KoreanCharacterMotionAnnexC01Jin.svrl
> using class net.sf.saxon.tree.tiny.TinyBuilder
> > Tree built in 17.9932ms
> > Tree size: 685 nodes, 2690 characters, 319 attributes
> > Execution time: 67.7157ms
> > Memory used: 10340768
> > KoreanCharacterMotionAnnexC01Jin.svrl.txt result:
> > X3D version 4.0 is experimental and under development, focused on
> HTML5/DOM interoperabiliity. [/X3D, diagnostic]
> >
> ==================================================================================================================================[/X3D/Scene/HAnimHumanoid,
> diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexC01Jin' name='AnnexC01Jin'/> node
> count(HAnimJoint)           within skeleton hierarchy        =
> 18[/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexC01Jin' name='AnnexC01Jin'/> node
> count(HAnimJoint)           within skeleton hierarchy        =
> 18[/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexC01Jin' name='AnnexC01Jin'/> node
> count(HAnimSegment)         within skeleton hierarchy        =
> 18[/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexC01Jin' name='AnnexC01Jin'/> node
> count(HAnimSite)            within HAnimHumanoid             =
> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexC01Jin' name='AnnexC01Jin'/> node
> count(HAnimSite/Viewpoint)  within skeleton hierarchy        =
> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexC01Jin' name='AnnexC01Jin'/> node
> count(HAnimDisplacer)       within skeleton hierarchy        =
> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexC01Jin' name='AnnexC01Jin'/> node
> count(<HAnimJoint   USE='*' containerField = 'joints'/>      =
> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexC01Jin' name='AnnexC01Jin'/> node
> count(<HAnimSegment USE='*' containerField = 'segments'/>    =
> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexC01Jin' name='AnnexC01Jin'/> node
> count(<HAnimSite    USE='*' containerField = 'sites'/>       =
> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexC01Jin' name='AnnexC01Jin'/> node
> count(<HAnimSite    DEF='*' containerField = 'viewpoints'/>  =
> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexC01Jin' name='AnnexC01Jin'/> has
> mismatched HAnimJoint    node counts, 18 within skeleton hierarchy and 0
> USE nodes in joints field [/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexC01Jin' name='AnnexC01Jin'/> has
> mismatched HAnimSegment  node counts, 18 within skeleton hierarchy and 0
> USE nodes in segments field [/X3D/Scene/HAnimHumanoid, diagnostic]
> >
> ==================================================================================================================================[/X3D/Scene/HAnimHumanoid,
> diagnostic]
> > <OrientationInterpolator DEF='Keyframe_l_metatarsophalangeal'/> is
> missing ROUTE to send output events, for example <ROUTE
> fromNode='Keyframe_l_metatarsophalangeal' fromField='value_changed'
> toNode='SomeTargetDEFname' toField='set_something'/>
> [/X3D/Scene/Group/OrientationInterpolator[14], warning]
> > <OrientationInterpolator DEF='Keyframe_r_talocrural'/> is missing ROUTE
> to send output events, for example <ROUTE fromNode='Keyframe_r_talocrural'
> fromField='value_changed' toNode='SomeTargetDEFname'
> toField='set_something'/> [/X3D/Scene/Group/OrientationInterpolator[17],
> warning]
> > <OrientationInterpolator DEF='Keyframe_r_metatarsophalangeal'/> is
> missing ROUTE to send output events, for example <ROUTE
> fromNode='Keyframe_r_metatarsophalangeal' fromField='value_changed'
> toNode='SomeTargetDEFname' toField='set_something'/>
> [/X3D/Scene/Group/OrientationInterpolator[18], warning]
> > Processing C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation\Specifications\KoreanCharacterMotionAnnexC01Jin.x3d
> to C:\x3d-code\www.web3d.org
> \x3d\content\examples\HumanoidAnimation\Specifications\KoreanCharacterMotionAnnexC01Jin.Tidy.x3d
> > Loading stylesheet C:\x3d-code\www.web3d.org
> \x3d\stylesheets\X3dTidy.xslt
> > *** revision: <meta name='modified' content='10 May 2020'/>
> > *** prepend <WorldInfo
> title='KoreanCharacterMotionAnnexC01Jin.x3d'/>
> > *** error: no top-level <HAnimJoint USE='hanim_HumanoidRoot'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_sacroiliac'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_l_hip'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_l_knee'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_l_talocrural'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_l_metatarsophalangeal'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_r_hip'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_r_knee'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_r_talocrural'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_r_metatarsophalangeal'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_vl5'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_skullbase'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_l_shoulder'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_l_elbow'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_l_radiocarpal'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_r_shoulder'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_r_elbow'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_r_radiocarpal'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_sacrum'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_pelvis'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_l_thigh'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_l_calf'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_l_hindfoot'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_l_middistal'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_r_thigh'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_r_calf'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_r_hindfoot'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_r_middistal'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_l5'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_skull'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_l_upperarm'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_l_forearm'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_l_hand'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_r_upperarm'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_r_forearm'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_r_hand'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexC01Jin'/>
> > expected output: C:\x3d-code\www.web3d.org
> \x3d\content\examples/HumanoidAnimation/Specifications/KoreanCharacterMotionAnnexC01Jin.Tidy.x3d
> > check well-formedness of X3dTidy form
> > 1 file(s) have been successfully validated.
> > check DTD validation  of X3dTidy form
> > 1 file(s) have been successfully validated.
> > check schema validation of X3dTidy form
> > BUILD SUCCESSFUL (total time: 21 seconds)
> >
> >
> > ===================================================================
> > test.oneScene.saxon:
> > C:\x3d-code\www.web3d.org\x3d\content\examples/HumanoidAnimation/Specifications/KoreanCharacterMotionAnnexD01Jin.x3d
> conversion, new style:
> > Saxon-HE 9.7.0.20J from Saxonica
> > Java version 14
> > Stylesheet compilation time: 10.167586s (10167.5864ms)
> > Processingfile:/C:/x3d-code/
> www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/KoreanCharacterMotionAnnexD01Jin.x3d
> > Using parser
> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser
> > Building tree forfile:/C:/x3d-code/
> www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/KoreanCharacterMotionAnnexD01Jin.x3d
> using class net.sf.saxon.tree.tiny.TinyBuilder
> > Tree built in 1.530369s (1530.3699ms)
> > Tree size: 207 nodes, 0 characters, 1239 attributes
> > Execution time: 1.860191s (1860.1917ms)
> > Memory used: 354190160
> > Saxon-HE 9.7.0.20J from Saxonica
> > Java version 14
> > Stylesheet compilation time: 425.5882ms
> > Processingfile:/C:/x3d-code/
> www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/_schematron/KoreanCharacterMotionAnnexD01Jin.svrl
> > Using parser
> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser
> > Building tree forfile:/C:/x3d-code/
> www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/_schematron/KoreanCharacterMotionAnnexD01Jin.svrl
> using class net.sf.saxon.tree.tiny.TinyBuilder
> > Tree built in 16.3066ms
> > Tree size: 547 nodes, 2021 characters, 255 attributes
> > Execution time: 82.568ms
> > Memory used: 9992184
> > KoreanCharacterMotionAnnexD01Jin.svrl.txt result:
> > X3D version 4.0 is experimental and under development, focused on
> HTML5/DOM interoperabiliity. [/X3D, diagnostic]
> >
> ==================================================================================================================================[/X3D/Scene/HAnimHumanoid,
> diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexD01Jin' name='AnnexD01Jin'/> node
> count(HAnimJoint)           within skeleton hierarchy        =
> 18[/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexD01Jin' name='AnnexD01Jin'/> node
> count(HAnimJoint)           within skeleton hierarchy        =
> 18[/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexD01Jin' name='AnnexD01Jin'/> node
> count(HAnimSegment)         within skeleton hierarchy        =
> 18[/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexD01Jin' name='AnnexD01Jin'/> node
> count(HAnimSite)            within HAnimHumanoid             =
> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexD01Jin' name='AnnexD01Jin'/> node
> count(HAnimSite/Viewpoint)  within skeleton hierarchy        =
> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexD01Jin' name='AnnexD01Jin'/> node
> count(HAnimDisplacer)       within skeleton hierarchy        =
> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexD01Jin' name='AnnexD01Jin'/> node
> count(<HAnimJoint   USE='*' containerField = 'joints'/>      =
> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexD01Jin' name='AnnexD01Jin'/> node
> count(<HAnimSegment USE='*' containerField = 'segments'/>    =
> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexD01Jin' name='AnnexD01Jin'/> node
> count(<HAnimSite    USE='*' containerField = 'sites'/>       =
> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexD01Jin' name='AnnexD01Jin'/> node
> count(<HAnimSite    DEF='*' containerField = 'viewpoints'/>  =
> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexD01Jin' name='AnnexD01Jin'/> has
> mismatched HAnimJoint    node counts, 18 within skeleton hierarchy and 0
> USE nodes in joints field [/X3D/Scene/HAnimHumanoid, diagnostic]
> > <HAnimHumanoid DEF='hanim_AnnexD01Jin' name='AnnexD01Jin'/> has
> mismatched HAnimSegment  node counts, 18 within skeleton hierarchy and 0
> USE nodes in segments field [/X3D/Scene/HAnimHumanoid, diagnostic]
> >
> ==================================================================================================================================[/X3D/Scene/HAnimHumanoid,
> diagnostic]
> > <HAnimMotion DEF=''/> name field is required [/X3D/Scene/HAnimMotion,
> error]
> > Processing C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation\Specifications\KoreanCharacterMotionAnnexD01Jin.x3d
> to C:\x3d-code\www.web3d.org
> \x3d\content\examples\HumanoidAnimation\Specifications\KoreanCharacterMotionAnnexD01Jin.Tidy.x3d
> > Loading stylesheet C:\x3d-code\www.web3d.org
> \x3d\stylesheets\X3dTidy.xslt
> > *** revision: <meta name='modified' content='10 May 2020'/>
> > *** prepend <WorldInfo
> title='KoreanCharacterMotionAnnexD01Jin.x3d'/>
> > *** error: no top-level <HAnimJoint USE='hanim_HumanoidRoot'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_sacroiliac'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_l_hip'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_l_knee'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_l_talocrural'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_l_metatarsophalangeal'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_r_hip'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_r_knee'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_r_talocrural'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_r_metatarsophalangeal'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_vl5'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_skullbase'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_l_shoulder'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_l_elbow'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_l_radiocarpal'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_r_shoulder'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_r_elbow'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimJoint USE='hanim_r_radiocarpal'
> containerField='joints'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_sacrum'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_pelvis'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_l_thigh'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_l_calf'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_l_hindfoot'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_l_middistal'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_r_thigh'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_r_calf'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_r_hindfoot'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_r_middistal'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_l5'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_skull'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_l_upperarm'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_l_forearm'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_l_hand'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_r_upperarm'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_r_forearm'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > *** error: no top-level <HAnimSegment USE='hanim_r_hand'
> containerField='segments'/> was found, need to add it to ancestor
> <HAnimHumanoid name='AnnexD01Jin'/>
> > expected output: C:\x3d-code\www.web3d.org
> \x3d\content\examples/HumanoidAnimation/Specifications/KoreanCharacterMotionAnnexD01Jin.Tidy.x3d
> > check well-formedness of X3dTidy form
> > 1 file(s) have been successfully validated.
> > check DTD validation  of X3dTidy form
> > C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation\Specifications\KoreanCharacterMotionAnnexD01Jin.Tidy.x3d:353:138049:
> Attribute "elapsedTime" must be declared for element type "HAnimMotion".
> > C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation\Specifications\KoreanCharacterMotionAnnexD01Jin.Tidy.x3d:353:138049:
> Attribute "frameCount" must be declared for element type "HAnimMotion".
> > C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation\Specifications\KoreanCharacterMotionAnnexD01Jin.Tidy.x3d:354:11:
> The content of element type "Scene" must match
> "(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance|GeoPositionInterpolator|GeoTouchSensor|GeoProximitySensor|HAnimDisplacer|NurbsPositionInterpolator|NurbsOrientationInterpolator|NurbsSurfaceInterpolator|BooleanFilter|BooleanSequencer|BooleanToggle|BooleanTrigger|IntegerSequencer|IntegerTrigger|TimeTrigger|ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|CylinderSensor|KeySensor|LoadSensor|LocalFog|NormalInterpolator|OrientationInterpolator|PlaneSensor|PositionInterpolator|PositionInterpolator2D|ProximitySensor|ScalarInterpolator|Script|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor|GeoViewpoint|Background|Fog|NavigationInfo|TextureBackground|Viewpoint|OrthoViewpoint|EspduTransform|SignalPdu|ReceiverPdu|TransmitterPdu|DISEntityManager|GeoLocation|GeoLOD|GeoTransform|HAnimJoint|HAnimSegment|HAnimSite|HAnimHumanoid|CADAssembly|CADLayer|CADPart|CollidableShape|CollisionSensor|RigidBodyCollection|Anchor|Billboard|Collision|Group|Inline|LOD|StaticGroup|Switch|Transform|DirectionalLight|SpotLight|PointLight|IsoSurfaceVolumeData|SegmentedVolumeData|VolumeData|Shape|Sound|GeoMetadata|WorldInfo|ColorChaser|ColorDamper|CoordinateChaser|CoordinateDamper|OrientationChaser|OrientationDamper|PositionChaser|PositionChaser2D|PositionDamper|PositionDamper2D|ScalarChaser|ScalarDamper|TexCoordChaser2D|TexCoordDamper2D|ClipPlane|TransformSensor|ViewpointGroup|LinePickSensor|PointPickSensor|PrimitivePickSensor|VolumePickSensor|PickableGroup|EaseInEaseOut|SplinePositionInterpolator|SplinePositionInterpolator2D|SplineScalarInterpolator|SquadOrientationInterpolator|ProtoDeclare|ExternProtoDeclare|ROUTE|EXPORT|IMPORT|ProtoInstance|LayerSet)*".
> > C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation\Specifications\KoreanCharacterMotionAnnexD01Jin.Tidy.x3d
> is not a valid XML document
> > 1 file(s) have been successfully validated.
> > check schema validation of X3dTidy form
> > C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation\Specifications\KoreanCharacterMotionAnnexD01Jin.Tidy.x3d:353:138049:
> Attribute "elapsedTime" must be declared for element type "HAnimMotion".
> > C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation\Specifications\KoreanCharacterMotionAnnexD01Jin.Tidy.x3d:353:138049:
> Attribute "frameCount" must be declared for element type "HAnimMotion".
> > C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation\Specifications\KoreanCharacterMotionAnnexD01Jin.Tidy.x3d:353:138049:
> cvc-complex-type.3.2.2: Attribute 'elapsedTime' is not allowed to appear in
> element 'HAnimMotion'.
> > C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation\Specifications\KoreanCharacterMotionAnnexD01Jin.Tidy.x3d:353:138049:
> cvc-complex-type.3.2.2: Attribute 'frameCount' is not allowed to appear in
> element 'HAnimMotion'.
> > C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation\Specifications\KoreanCharacterMotionAnnexD01Jin.Tidy.x3d:354:11:
> The content of element type "Scene" must match
> "(MetadataBoolean|MetadataDouble|MetadataFloat|MetadataInteger|MetadataSet|MetadataString|ProtoInstance|GeoPositionInterpolator|GeoTouchSensor|GeoProximitySensor|HAnimDisplacer|NurbsPositionInterpolator|NurbsOrientationInterpolator|NurbsSurfaceInterpolator|BooleanFilter|BooleanSequencer|BooleanToggle|BooleanTrigger|IntegerSequencer|IntegerTrigger|TimeTrigger|ColorInterpolator|CoordinateInterpolator|CoordinateInterpolator2D|CylinderSensor|KeySensor|LoadSensor|LocalFog|NormalInterpolator|OrientationInterpolator|PlaneSensor|PositionInterpolator|PositionInterpolator2D|ProximitySensor|ScalarInterpolator|Script|SphereSensor|StringSensor|TimeSensor|TouchSensor|VisibilitySensor|GeoViewpoint|Background|Fog|NavigationInfo|TextureBackground|Viewpoint|OrthoViewpoint|EspduTransform|SignalPdu|ReceiverPdu|TransmitterPdu|DISEntityManager|GeoLocation|GeoLOD|GeoTransform|HAnimJoint|HAnimSegment|HAnimSite|HAnimHumanoid|CADAssembly|CADLayer|CADPart|CollidableShape|CollisionSensor|RigidBodyCollection|Anchor|Billboard|Collision|Group|Inline|LOD|StaticGroup|Switch|Transform|DirectionalLight|SpotLight|PointLight|IsoSurfaceVolumeData|SegmentedVolumeData|VolumeData|Shape|Sound|GeoMetadata|WorldInfo|ColorChaser|ColorDamper|CoordinateChaser|CoordinateDamper|OrientationChaser|OrientationDamper|PositionChaser|PositionChaser2D|PositionDamper|PositionDamper2D|ScalarChaser|ScalarDamper|TexCoordChaser2D|TexCoordDamper2D|ClipPlane|TransformSensor|ViewpointGroup|LinePickSensor|PointPickSensor|PrimitivePickSensor|VolumePickSensor|PickableGroup|EaseInEaseOut|SplinePositionInterpolator|SplinePositionInterpolator2D|SplineScalarInterpolator|SquadOrientationInterpolator|ProtoDeclare|ExternProtoDeclare|ROUTE|EXPORT|IMPORT|ProtoInstance|LayerSet)*".
> > C:\x3d-code\www.web3d.org\x3d\content\examples\HumanoidAnimation\Specifications\KoreanCharacterMotionAnnexD01Jin.Tidy.x3d
> is not a valid XML document
> > ===================================================================
>
> On 5/10/2020 9:09 PM, Don Brutzman wrote:
> > John, would be happy to consider integrating this schema modification
> but can't clearly tell what problem you are fixing.
> >
> > Meanwhile am happy to report contemporary progress:
> >
> > - Joe and I had an excellent session last Thursday working on
> HumanoidAnimation Examples Archive.
> > - Details reported separately.
> > - Of note is that all prior examples are flawed since the HAnim version
> numbers changed (1.0 and 2.0 only, no 1.1).
> > - I have checked in further scene refinements this weekend.
> > - I have the catalog building properly now, but have not deployed it.
> > - I have improved quality assurance (QA) testing of XML Schema, XML DTD,
> X3D Schematron and X3D-Tidy.
> > - Regression testing, debugging and improvements continue.
> >
> > I am only making changes to the QA tools when they are justified by
> actual examples in our archives.
> >
> > So we are on the brink of a new plateau for testing and improvement,
> hopefully following this week's session.  Results will include a
> build.all.log.txt file capturing console output showing what works and what
> doesn't.
> >
> > I'd be happy to offer you a job or two out of this set of tasks, but
> they are all intertwined using the current tools.
> >
> > There are ~99 models in there.  We will incrementally fix them, one by
> one, and offer valid examples to implementers.
> >
> > This is our familiar step-by-step methodology.  One model and one set of
> fixes at a time.
> >
> > Work-in-progress examples to follow.
> >
> >
> > On 5/10/2020 7:47 AM, John Carlson wrote:
> >> To make it agree with the standard Motion interface.
> >>
> >> Thanks,
> >>
> >> John
> >>
> >> Index: x3d-4.0.xsd
> >> ===================================================================
> >> --- x3d-4.0.xsd (revision 30305)
> >> +++ x3d-4.0.xsd (working copy)
> >> @@ -17061,7 +17061,7 @@
> >>                  <xs:complexType>
> >>                          <xs:complexContent>
> >>                                  <xs:extension base="X3DChildNode">
> >> -                                       <xs:attribute name="channels"
> type="MFString"/>
> >> +                                       <xs:attribute name="channels"
> type="SFString"/>
> >>                                          <xs:attribute
> name="channelsEnabled" type="MFBool"/>
> >>                                          <xs:attribute
> name="description" type="SFString"/>
> >>                                          <xs:attribute name="enabled"
> type="SFBool" default="false"/>
> >> @@ -17094,7 +17094,7 @@
> >>
> </xs:restriction>
> >>                                                  </xs:simpleType>
> >>                                          </xs:attribute>
> >> -                                       <xs:attribute name="joints"
> type="MFString"/>
> >> +                                       <xs:attribute name="joints"
> type="SFString"/>
> >>                                          <xs:attribute name="loa"
> type="loaType" default="-1"/>
> >>                                          <xs:attribute name="loop"
> type="SFBool" default="false"/>
> >>                                          <xs:attribute name="values"
> type="MFFloat"/>
> >
> >
> > all the best, Don
>
> all the best, Don
> --
> Don Brutzman  Naval Postgraduate School, Code USW/Br
> brutzman at nps.edu
> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
> X3D graphics, virtual worlds, navy robotics
> http://faculty.nps.edu/brutzman
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20200514/8f5b6395/attachment-0001.html>


More information about the x3d-public mailing list