[x3d-public] announce: update releases for X3D Schematron and the X3DJSAIL Java library
Don Brutzman
don.brutzman at gmail.com
Sun Jul 27 11:35:23 PDT 2025
Further work over the past few weeks has resulted in update releases of two
valuable open-source tools.
1. X3D Schematron rule set has been updated online, complementing X3D
validation to detect and diagnose X3D model problems.
- *X3D Schematron Validation and Quality Assurance (QA)*
- X3D Schematron helps authors by providing quality assurance to ensure
intended results in X3D scenes and metadata.
- https://www.web3d.org/x3d/tools/schematron/X3dSchematron.html
Summary of capabilities:
- XML Schematron is a language for making assertions about the presence
or absence of patterns in linked XML documents.
- X3D Schematron provides an additional form of XML validation for X3D
scenes. Authors can use X3D Schematron reports to verify semantic
correctness and detect internal-consistency problems.
- X3D Schematron validation rules have greater expressive power than
DOCTYPE and Schema constraints, and are most effective when applied
following initial DOCTYPE and Schema validation.
A comprehensive test of X3D Schematron has been applied to all models in
the X3D Example Models Archive. This was a big job, providing
comprehensive diagnostics across multiple big libraries. Lots of model
refinements await!
- X3D Resources, Examples: Scene Archives for X3D
- The X3D Examples Archives demonstrate how X3D nodes and scenes work.
Thousands of scenes are provided in all X3D encodings. You can browse them
individually online or download fully complete, separately installable .zip
archives.
- X3D for Web Authors, X3D for Advanced Modeling, Basic, Conformance
Nist, Humanoid Animation (HAnim), VRML 2 Sourcebook
- https://www.web3d.org/x3d/content/examples/X3dResources.html#Examples
X3D Schematron build log:
-
https://www.web3d.org/x3d/content/examples/build.validate.schematron.all.txt
- 5MB. 5,108 minutes = 85 hours = 3 days 13 hours
More information on validation testing can be found at
- X3D Resources: Quality Assurance (QA)
-
https://www.web3d.org/x3d/content/examples/X3dResources.html#QualityAssurance
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - -
2. *X3DJSAIL, the X3D Java Scene Access Interface Library (X3DJSAIL)*
- X3D Java Scene Access Interface Library (X3DJSAIL) supports
programmers with standards-based X3D Java interfaces and objects, all as
open source.
- https://www.web3d.org/specifications/java/X3DJSAIL.html
X3DJSAIL is designed to make it easy for Java programmers to create
high-quality X3D models, perform conversions, launch tools. The combined
strictness of Java, XML, and the X3D architecture means it is actually
quite difficult to create an invalid X3D model.
Multiple improvements are included in this X3DJSAIL release, with the most
notable addition being built-in support for X3D Schematron diagnostics.
Now running latest openjdk Java 24.0.2 and building with latest NetBeans
26.
- Note recent changes to Java have led to much stricter handling of XML
documents with many character-entity definitions... X3D is a big modeling
language, so there are several such files. Configuration details for
building X3DJSAIL and other Java tools can be found at
- *X3D Developers Guide* (see sections for Java
<https://www.web3d.org/x3d/content/examples/X3dDevelopersGuide.html#Java>
and NetBeans
<https://www.web3d.org/x3d/content/examples/X3dDevelopersGuide.html#NetBeans>
)
- The X3D Developers Guide describes system configuration and setup
recommendations that support various software projects supporting the
Extensible 3D (X3D) Graphics International Standards.
- https://www.web3d.org/x3d/content/examples/X3dDevelopersGuide.html
- This page is directly derived from the original NPS Savage Developers
Guide.
Every model in the X3D Examples Archives includes a corresponding Java
version that is autogenerated from the .x3d (XML) originals, compiled and
executed to run a self test.
The comprehensive log file that tests X3DJSAIL against all of the examples
is online as follows. It is always a good idea to check a model for
warnings or errors prior to running it in an X3D player or another modeling
tool. Improvements are ongoing.
- https://www.web3d.org/x3d/content/examples/build.all.log.txt
- 2501 minutes = 41.7 hours, 99MB
Documentation and changes:
- X3DJSAIL API Javadoc
- https://www.web3d.org/specifications/java/javadoc
- *Complete.* Add per-model capabilities for X3D Schematron Validation
and Quality Assurance (QA)
<https://www.web3d.org/x3d/tools/schematron/X3dSchematron.html> using
diagnostics ruleset X3dSchematronValidityChecks.sch
<https://www.web3d.org/x3d/tools/schematron/X3dSchematronValidityChecks.sch>
with X3dSchematronValidityChecks.xslt
<https://www.web3d.org/specifications/java/lib/stylesheets/X3dSchematronValidityChecks.xslt>
and SvrlReportText.xslt
<https://www.web3d.org/specifications/java/lib/stylesheets/SvrlReportText.xslt>
stylesheets.
- *Complete*. Added utility methods setFieldOfView(SFVec4f newValue)
<https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Navigation/OrthoViewpoint.html#setFieldOfView(org.web3d.x3d.jsail.fields.SFVec4f)>
and setFieldOfView(float minimum_x, float minimum_y, float maximum_x,
float maximum_y)
<https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Navigation/OrthoViewpoint.html#setFieldOfView(float,float,float,float)>.
Nevertheless, multiple counterintuitive *MFFloat* accessor methods also
appear... Probably need to change *fieldOfView* field to type *SFVec4f*,
for programmer clarity when handling the *fieldOfView* field, as
recommended by Mantis 1398 <https://mantis.web3d.org/view.php?id=1398>.
- *Considered but not possible.* Cannot add convenience methods for
variable-length arguments (varargs
<https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html>)
since they get converted into an array of primitives by the compiler; such
array methods are already supported in X3DJSAIL.
- *Complete*. Corrected emergent errors detected during unit testing by
fixing implementations of .equals() method for MF types (example
<https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/fields/MFInt32.html#equals(org.web3d.x3d.jsail.fields.MFInt32)>).
Added missing .toString() method for types SFNode
<https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/fields/SFNode.html>
and MFNode
<https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/fields/MFNode.html>
.
- *Continuing.* Checks for optional/required MFString enumeration pairs
are much improved, for examples see source for fields Layout.align
<https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Layout/Layout.html#setAlign(java.lang.String%5B%5D)>
(tooltip
<https://www.web3d.org/x3d/content/X3dTooltips.html#Layout.align>) and
NavigationInfo.type
<https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Navigation/NavigationInfo.html#setType(java.lang.String%5B%5D)>
(tooltip
<https://www.web3d.org/x3d/content/X3dTooltips.html#NavigationInfo.type>).
Further checking continues to ensure that all allowed values (such as
singletons) are included in X3D XML Schema and X3DUOM.
- Web3D Consortium provides issue tracking for X3DJSAIL at SourceForge
X3D Tickets <https://sourceforge.net/p/x3d/tickets>.
- It is always interesting to consider adding additional utility
methods, as needed. Suggestions are welcome!
Thanks to Web3D Consortium for sustained support of these open-source
libraries under version control in SourceForge. License information:
- Web3D Consortium Open Source License
- https://www.web3d.org/x3d/content/examples/license.txt
- https://www.web3d.org/x3d/content/examples/license.html
- X3D Resources: License Support
- https://www.web3d.org/x3d/content/examples/X3dResources.html#license
Have fun with X3d using Schematron and X3DJSAIL Java! 😀👍
all the best, Don
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250727/8a571150/attachment.html>
More information about the x3d-public
mailing list