Menu

#119 split RigidBodyCollection.joints field produces error.

X3D4
open
None
2026-07-26
2026-07-26
No

I'm not sure why I can't put BallJoint inside RigidBodyCollection. See attached. Is it because the RigidBodyCollection.joints field is split? Indeed, when RigidBodyCollections.joints isn't split, the BallJoint error goes away.

Performing well-formed XML check...
Checking file:/C:/Users/jcarl/HAnimUtilityKit/RigidJin.x3d...
Well-formed XML check: pass

Performing DOCTYPE check...
[X3dDoctypeChecker] success: valid XML declaration found.[X3dDoctypeChecker] success: final X3D 4.0 DOCTYPE found.

Performing DTD validation...
Checking file:/C:/Users/jcarl/HAnimUtilityKit/RigidJin.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".
cvc-complex-type.2.4.a: Invalid content was found starting with element 'BallJoint'. One of '{RigidBody, CollisionCollection, ProtoInstance}' is expected.
XML DTD validation: fail!

Performing X3D schema validation...
Checking file:/C:/Users/jcarl/HAnimUtilityKit/RigidJin.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".
cvc-complex-type.2.4.a: Invalid content was found starting with element 'BallJoint'. One of '{RigidBody, CollisionCollection, ProtoInstance}' is expected.
XML schema validation: fail!

Performing X3D regular expression (regex) values check...
X3D regex check: complete

Performing X3D Schematron check...
X3D version 4.0 was approved by Web3D Consortium and ISO in 2023.[/X3D, diagnostic]
X3D version 4.0 offers many new features including interoperability with HTML5, glTF 2.0 Physically Based Rendering (PBR), and Web Audio API.[/X3D, diagnostic]
<rigidbody use="hanim_sacrum"> found USE node that precedes matching DEF node, count(following::*[@DEF=$USE])=1[/X3D/Scene/RigidBodyCollection/SingleAxisHingeJoint[1]/RigidBody[2], error]</rigidbody>

1 Attachments

Discussion

  • John W Carlson

    John W Carlson - 2026-07-26

    Here's a smaller file to play with. Try putting the RigidBodyCollection.bodies field between the two joints.

     
  • Don Brutzman

    Don Brutzman - 2026-07-26

    multiple errors are reported above, also note incorrect capitalization of RigidBody as rigidbody.

    i recommend keeping DEF before USE until we know that various X3D browsers support that relaxation.

    it is essential to remove errors. X3D XML Schema documentation, X3D DTD documentation, and X3D Tooltips offer further guidance.

     

    Last edit: Don Brutzman 2026-07-26
    • John W Carlson

      John W Carlson - 2026-07-26

      multiple errors are reported above, also not miscapitalization of
      RigidBody as rigidbody.

      Yes, I understood most of the other reported errors. I don’t know if
      miscapitalization was done by sourceforge, I think sometimes, it gets super
      eager on pasted stuff without appropriate bracketing.

      i recommend keeping DEF before USE until we know that various X3D browsers
      support that relaxation.

      Understood. I didn’t try DEF before USE, but listing the bodies field
      before the joints field solved that. So, two birds killed with one stone.
      Further exploration would put a joint before bodies field and others after
      with proper DEF/USE ordering. I went for low hanging fruit.

      it is essential to remove errors. X3D XML Schema documentation, X3D DTD
      documentation, and X3D Tooltips offer further guidance.

      I probably will delist the leading joint before the bodies field.
      Something to do another day. I want to do more work on JinLOA1.x3d first.
      That’s the next priority.

       

Log in to post a comment.