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

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


Updated specs, stylesheets, Korean specification models.  In prep for
meeting. Deleted Doug's annexDA.x3d from my test cases, since it's an
instance of Korean model.

John

On Thu, May 14, 2020 at 2:35 PM John Carlson <yottzumm at gmail.com> wrote:

> 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/a492c197/attachment-0001.html>


More information about the x3d-public mailing list