<div dir="auto">I’m staying away from X3D-Edit. But most people like IDEs. I hear Holger has an X_ITE viewer in VSCode and CGE uses VSCode.  The developer mindshare has gone to VSCode and vim/neovim.   You might be interested in fuzzy find (fzf) for finding files in the terminal, zoxide for changing folders, and of course emacs and neovim/vim have built in file browsing.  One can even run a terminal in vim these days.</div><div dir="auto"><br></div><div dir="auto">In the enterprise, IntelliJ has taken the Java market to Kotlin.  But yeah, Java is the new COBOL, plenty of money to be made.  And the government follows the enterprise, not open source, unless it’s Java. And Oracle has Java in  the database, so you don’t have to run Apache.  Forget 2-tier stuff, it doesn’t make sense.</div><div dir="auto"><br></div><div dir="auto">Now that I have schematron in a terminal, I want results on standard output of course.  What happens if I don’t specify a -tofile?</div><div dir="auto"><br></div><div dir="auto">Note that I have been building Java to batch validate with CommandLines.java.  Sure you can do it with <apply> in ant, but I can’t tab complete an ant target in the terminal.  Or do you know something?</div><div dir="auto"><br></div><div dir="auto">I will foray into NetBeans if something needs to be addressed in X3DJSAIL.  Are there easy ways to make stylesheets?</div><div dir="auto"><br></div><div dir="auto">John </div><div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Wed, Jul 30, 2025 at 12:08 PM Don Brutzman <<a href="mailto:don.brutzman@gmail.com">don.brutzman@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Congratulations on configuring your system to run things differently.<div><br></div><div>I do not expect that anyone else needs such gyrations since the stylesheets are included within the X3DJSAIL.4.0.full.jar file, and all paths are relative there.</div><div><br></div><div>Once again the

X3dSchematronValidityChecks.xslt is quite a large and complex construct - most rules have straightforward logic for what they are checking, but it uses XPath expressions to examine various nodes and fields in an X3D model for logical consistency and correctness.  There is no attempt to duplicate functionality provided by X3D XML Schema and DOCTYPE since they do a good job at validation of legal values already.  Summary of expressive power:</div><div><ul><li>X3D Resources, Quality Assurance (QA)</li></ul><p style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium;display:inline!important"></p><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">X3D Quality Assurance (QA) identifies errors and warnings in order to make X3D scene content more portable and reliable. Improved Quality Assurance (QA) helps achieve intended results in X3D scenes and metadata.<br>This is important. providing high confidence that when 3D modeling errors occur, they can be detected and then corrected. As a result, X3D models can run in many different file formats and programming languages, equivalently and correctly.<ul style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium"><li><a href="https://savage.nps.edu/X3dValidator" target="_blank">X3D Validator</a> (currently only available within X3D-Edit) provides a server-based suite of tests to help ensure the quality of X3D scenes and metadata. Validation tests include:</li></ul><ul><li><a href="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Validation" target="_blank">XML header and DOCTYPE</a> checking for correct document headers</li></ul><ul><li><a href="https://en.wikipedia.org/wiki/XML#Well-formedness_and_error-handling" target="_blank">Well-formed XML</a> checking for syntactic correctness</li></ul><ul><li><a href="https://www.web3d.org/specifications" target="_blank">X3D Specifications: Schema and DOCTYPE Validation</a> checking for valid X3D nodes, fields and values</li></ul><ul><li><a href="https://www.web3d.org/x3d/stylesheets/X3dToVrml97.xslt" target="_blank">X3D to ClassicVRML conversion</a> checks a variety of legal X3D constructs</li></ul><ul><li><a href="https://www.web3d.org/specifications/X3dRegularExpressions.html" target="_blank">Regular expression (regex) checking</a> (<a href="https://www.web3d.org/pipermail/x3d-public_web3d.org/2012-March/001950.html" target="_blank">design discussion</a>) for malformed floating-point numbers and excess leading zeros.</li></ul><ul><li><a href="https://www.web3d.org/x3d/tools/schematron/X3dSchematron.html" target="_blank">X3D Schematron</a> rule checking verifies semantic correctness and completeness, detecting internal-consistency problems to help assure the quality and correctness of X3D scenes</li></ul><ul><li><a href="https://www.web3d.org/x3d/stylesheets/X3dTidy.html" target="_blank">X3D Tidy</a> helps authors automatically correct fixable errors in X3D scenes.</li></ul><ul><li><a href="https://www.web3d.org/x3d/stylesheets/X3dToXhtml.xslt" target="_blank">X3D to XHTML conversion</a> pretty-print listing to check online URL links, document ROUTE connections, and provide node tooltips</li></ul><ul><li>Support for .html/.xhtml pages containing X3DOM support for X3D models. Errors or warnings are provided as appropriate for experimental attributes and interspersed HTML elements.</li></ul><ul><li>X3D Validator is written in Java using <a href="https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/tools/X3dQualityAssurance/X3dValidator" target="_blank">publicly available source code</a>.</li></ul><ul><li>Validation of ClassicVRML (.x3dv) and VRML97 (.wrl) output files can be performed using <a href="https://castle-engine.io/castle-model-converter" target="_blank">castle-model-viewer</a> in command-line mode.</li></ul></blockquote><p></p><ul><li><a href="https://www.web3d.org/x3d/content/examples/X3dResources.html#QualityAssurance" target="_blank">https://www.web3d.org/x3d/content/examples/X3dResources.html#QualityAssurance</a></li></ul><div>Yes the operation of X3D Schematron is relatively slow, since the 1MB ruleset get converted into a (gulp) 91MB stylesheet.</div><div><br></div><div>The X3DJSAIL library is written in Java and uses Saxon for XLST operations, currently bundling the open-source "Home Edition" saxon-he-12.5.jar package.  In addition to Java, Saxon offers support for C#, C++, PHP, Python.</div><div><br></div><div>A few years back, this work was using compiled stylesheets for improved performance.  However that capability got split out into the Saxon Enterprise Edition.  More information on compiled stylesheets is available at</div><div><ul><li>Saxonica > Saxon > Using XSLT > Compiled Stylesheets</li><li><a href="https://www.saxonica.com/documentation12/index.html#!using-xsl/compiling" target="_blank">https://www.saxonica.com/documentation12/index.html#!using-xsl/compiling</a></li><li>"With Saxon-EE it is also possible to export the compiled form of a stylesheet as an XML file (called the stylesheet export file), in much the same way that object code from other languages is saved to filestore, and distributed from developers to users."</li></ul><div>I will not be integrating commercially licensed packages into X3DJSAIL, keeping it a fully open-source package.  You and others are of course welcome to do what you want.</div></div><div><br></div><div>Incidentally have noticed that latest version of Saxon is 12.8.  Will upgrade, this affects a number of projects.</div><div><br></div><div>Have fun with X3D Schematron!</div><div><br></div><div>all the best, Don</div><div><br></div></div></div><br><div class="gmail_quote"></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jul 30, 2025 at 7:26 AM John Carlson via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>> wrote:<br></div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"></blockquote></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Add to your X3DJSAIL.properties file in your CLASSPATH<div><br></div><div>STYLESHEET_X3DSCHEMATRON_SVRLREPORT="../lib/stylesheets/SvrlReportText.xslt";<br>STYLESHEET_X3DSCHEMATRON="../lib/stylesheets/X3dSchematronValidityChecks.xslt";</div><div><br></div><div>Pick the correct paths you wish.</div><div><br></div><div>In CoderSchematron.java</div><div><br></div><div>import org.web3d.x3d.jsail.CommandLine;<br><br>public class CoderSchematron {<br>        public static void main(String args[]) {<br>                for (int a = 0; a < args.length; a++) {<br>                        try {<br>                                String source = args[a];<br>                                org.web3d.x3d.jsail.CommandLine.main(new String[] {<br>                                        "-schematron",<br>                                        source,<br>                                        "-tofile",<br>                                        source+".new.schematron.txt"<br>                                });<br>                        } catch (Exception e) {<br>                                e.printStackTrace();<br>                        }<br>                }<br>        }<br>}</div><div><br></div><div>Compile:</div><div><br></div><div>> javac -cp '.;X3DJSAIL.4.0.jar' CoderSchematron.java   # windows</div><div><br></div><div>run!</div><div><br></div><div>> java -cp '.;X3DJSAIL.4.0.jar' CoderSchematron file1.x3d file2.x3d file3.x3d</div><div><br></div><div>Pickup results in file1.x3d.new.schematron.txt file2.x3d.new.schematron.txt file3.x3d.new.schematron.txt</div><div><br></div><div>Great!  It's still slow as molasses.  Maybe we can try compiled stylesheets?</div><div><br></div><div>Thanks!</div><div><br></div><div>John</div></div></blockquote></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</blockquote></div>
</blockquote></div></div>