The attached files show these errors when validating. As you can see, there are over 460 false flag errors reported. This really messes up my attempt to validate the files.
$ grep -l IndexedFaceSet ../data/*.go.x3d| xargs -L 1 java -cp "../java;../../../X3DJSAIL.4.0.full.jar" org.web3d.x3d.jsail.CommandLine -validate 2>&1 |sort |uniq -c |sort -n|grep brutzman
1 [error] X3DLoaderDOM: Parent-child node relationship not found! (parent IndexedFaceSet, child Normal, containerField='') Please report this problem to don.brutzman@gmail.com
462 [error] X3DLoaderDOM: Parent-child node relationship not found! (parent Shape, child IndexedFaceSet, containerField='') Please report this problem to don.brutzman@gmail.com
As you can see from the below log, many of them validate with CommandLine:
$ grep -l IndexedFaceSet ../data/*.go.x3d| xargs -L 1 java -cp "../java;../../../X3DJSAIL.4.0.full.jar" org.web3d.x3d.jsail.CommandLine -validate 2>&1|egrep '^validate|^parameter'
parameter: source file ArchHalf.new.go.x3d filesize 4805 bytes
validate results: success, no problems noted
parameter: source file ArchPrototype.new.go.x3d filesize 6762 bytes
validate results:
parameter: source file Bushes.new.go.x3d filesize 131691 bytes
validate results: success, no problems noted
parameter: source file InlineSoundSource.new.go.x3d filesize 4217 bytes
validate results: success, no problems noted
parameter: source file Marine.new.go.x3d filesize 82964 bytes
validate results: success, no problems noted
parameter: source file Pathway.new.go.x3d filesize 603733 bytes
validate results: success, no problems noted
parameter: source file Size2tExample_revision2.new.go.x3d filesize 2785187 bytes
validate results: success, no problems noted
parameter: source file flowers4.new.go.x3d filesize 5778 bytes
validate results:
Apparently, these 460+ errors were caused by a missing XML and DOCTYPE/Schema headers. That would be better information to provide than numerous confusing ones.
Diff:
Diff:
Please provide a single simple example illustrating the problem. Possible add a second scene that is almost identical but avoids the problem, if possible. TIA.
Apparently, my attachment didn't make it through. I now provide 2 zips. One with files that are broken, without a DOCTYPE/Schema and XML header, and a Fixed zip with the header. Please unpack in separate folders, or try them separately, it just may be confusing.
Here are the copy/paste commands to test the files in both zips:
java -cp ~/Downloads/X3DJSAIL.4.0.full.jar org.web3d.x3d.jsail.CommandLine -validate data/ArchHalf.new.go.x3d
java -cp ~/Downloads/X3DJSAIL.4.0.full.jar org.web3d.x3d.jsail.CommandLine -validate data/ArchPrototype.new.go.x3d
java -cp ~/Downloads/X3DJSAIL.4.0.full.jar org.web3d.x3d.jsail.CommandLine -validate data/Bushes.new.go.x3d
java -cp ~/Downloads/X3DJSAIL.4.0.full.jar org.web3d.x3d.jsail.CommandLine -validate data/InlineSoundSource.new.go.x3d
java -cp ~/Downloads/X3DJSAIL.4.0.full.jar org.web3d.x3d.jsail.CommandLine -validate data/Marine.new.go.x3d
java -cp ~/Downloads/X3DJSAIL.4.0.full.jar org.web3d.x3d.jsail.CommandLine -validate data/Pathway.new.go.x3d
java -cp ~/Downloads/X3DJSAIL.4.0.full.jar org.web3d.x3d.jsail.CommandLine -validate data/Size2tExample_revision2.new.go.x3d
java -cp ~/Downloads/X3DJSAIL.4.0.full.jar org.web3d.x3d.jsail.CommandLine -validate data/flowers4.new.go.x3d
Here's one case of testing in each zip:
$ jar -xf IndexedFaceSetX3DLoaderDOM.zip
$ java -cp ~/Downloads/X3DJSAIL.4.0.full.jar org.web3d.x3d.jsail.CommandLine -validate data/ArchHalf.new.go.x3d
CommandLine parameter: "-validate" for model validation
parameter: source file ArchHalf.new.go.x3d filesize 4805 bytes
Parsing using Document Object Model (DOM) based X3DLoaderDOM...
[error] X3DLoaderDOM: Parent-child node relationship not found! (parent Shape, child IndexedFaceSet, containerField='') Please report this problem to don.brutzman@gmail.com
[error] X3DLoaderDOM: Incorrectly handled X3DJSAIL object construction, current elementObject=Shape (Shape), child="IndexedFaceSet", containerField="", java.lang.ClassCastException: class org.web3d.x3d.jsail.Shape.Shape cannot be cast to class org.web3d.x3d.sai.Grouping.X3DGroupingNode (org.web3d.x3d.jsail.Shape.Shape and org.web3d.x3d.sai.Grouping.X3DGroupingNode are in unnamed module of loader 'app')
This error can be caused by incorrect parent-child node relationships or incorrect containerField values.
X3D node typing is strict, check or validate your scene graph!
This error can also be caused by X3DLoaderDOM DOM omissions in X3DJSAIL. Please report mysterious problems, thank you.
java.lang.ClassCastException: class org.web3d.x3d.jsail.Shape.Shape cannot be cast to class org.web3d.x3d.sai.Grouping.X3DGroupingNode (org.web3d.x3d.jsail.Shape.Shape and org.web3d.x3d.sai.Grouping.X3DGroupingNode are in unnamed module of loader 'app')
at org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:1356)
at org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:621)
at org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:621)
at org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:492)
at org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:455)
at org.web3d.x3d.jsail.X3DLoaderDOM.loadModelFromFileX3D(X3DLoaderDOM.java:249)
at org.web3d.x3d.jsail.X3DLoaderDOM.loadModelFromFileX3D(X3DLoaderDOM.java:233)
at org.web3d.x3d.jsail.X3DLoaderDOM.loadModelFromFileX3D(X3DLoaderDOM.java:207)
at org.web3d.x3d.jsail.CommandLine.run(CommandLine.java:966)
at org.web3d.x3d.jsail.CommandLine.main(CommandLine.java:244)
validate results: success, no problems noted
$ jar -xf IndexedFaceSetX3DLoaderDOMFixed.zip
$ java -cp ~/Downloads/X3DJSAIL.4.0.full.jar org.web3d.x3d.jsail.CommandLine -validate data/ArchHalf.new.go.x3d
CommandLine parameter: "-validate" for model validation
parameter: source file ArchHalf.new.go.x3d filesize 4945 bytes
Parsing using Document Object Model (DOM) based X3DLoaderDOM...
validate results: success, no problems noted
=====================================================================
Comparing broken and fixed:
Last edit: John W Carlson 2025-09-08
Please provide a single simple X3D model example that illustrates the problem. It feels like this issue is providing a haystack and asking me to fix needle...
For example, I provided a diff between a working file and a non-working
file:
$ diff data/ArchHalf.new.go.x3d ../data/ArchHalf.new.go.x3d
1c1< <x3d profile="Interchange" version="4.0"></x3d>
The files are in the zips. There’s no haystack, all is laid out.
Yes, you will have to unpack zips in separate folders. Yes, you will have
to type in long java commands to repeat what I’ve done. You will have to
type in the long Java command to validate the fix anyway.
Pointing out that the file example is bad is not solving the problem. I’m
trying to get the error messages more accurate, so people stop reporting
errors that have your email address on them. For me, I can’t always
remember how to fix an issue. Yes, I realize X3D-Edit is not in my
workflow. If you have batch testing in X3D-Edit, please tell me the ant
target, so I don’t have to go searching through a haystack.
John
On Wed, Nov 19, 2025 at 1:49 AM Don Brutzman brutzman@users.sourceforge.net
wrote:
Related
Tickets:
#70The diff command below does not do my email justice. There aren’t closed
tags in the original.
On Wed, Nov 19, 2025 at 11:50 AM John W Carlson yottzumm3@users.sourceforge.net wrote:
Related
Tickets:
#70If you have an XML file (which I think I provided), try deleting the XML
header or the DOCTYPE header. From below:
“Apparently, these 460+ errors were caused by a missing XML and
DOCTYPE/Schema headers. That would be better information to provide than
numerous confusing ones.”
All I’m asking for is a better error message when the XML header or DOCTYPE
header is missing, otherwise, I go chasing error messages for issues that
don’t exist. I realize X3D-Edit solves this, but not for batch jobs.
Perhaps the real solution is to run schematron.
I will check the attachments now.
John
On Wed, Nov 19, 2025 at 1:49 AM Don Brutzman brutzman@users.sourceforge.net
wrote:
Related
Tickets:
#70If an issue does not have a single repeatable example that demonstrates the problem, it will be closed.
Last edit: Don Brutzman 2025-11-19
If I provide you a single X3D file, I’m afraid you will dismiss it as
invalid. What I’m trying to get at is the error message is not helpful,
and one must go into X3D-Edit to find the correct issue.
X3D-Edit reports the issue correctly, X3DJSAIL doesn’t.
I will try to address new X3DJSAIL today, but I’m not currently at my desk.
John
On Wed, Nov 19, 2025 at 12:28 PM Don Brutzman brutzman@users.sourceforge.net wrote:
Related
Tickets:
#70Sorry but this ticket is too complex, and still does not identify a specific problem that can be pursued.
It’s summarized at the bottom of the ticket. There was a missing DOCTYPE,
potentially caused by network errors and blocking on XML Schema on
non-web3d sites.
I believe the missing DOCTYPE has been fixed, but potential for network
blocking when running batch tests still exists.
Recommendation is to host all files locally, if possible.
John
On Sun, Dec 28, 2025 at 10:58 PM Don Brutzman brutzman@users.sourceforge.net wrote:
Related
Tickets:
#70