<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">This is what pops out when I run X3DJSAIL against the conformance tests:</div><div dir="ltr"><br></div><div dir="ltr">Summary:</div><div dir="ltr"><br></div><div dir="ltr"><div>Support in X3DJSAIL for an X3D.isValid() boolean method that returns a boolean is requested to reduce output.</div><div></div><div><br></div><div><div> [apply]</div><div> [apply] WARNING:avoid duplicating a built-in X3D node name as model title, <meta name='title' content='indexedlineset.x3d'/>Validation report for C:\x3d-code\<a href="http://www.web3d.org" target="_blank">www.web3d.org</a>\x3d\content\examples\ConformanceNist\Appearance\Material\indexedlineset.x3d</div><div> [apply] org.web3d.x3d.sai.InvalidFieldException: IndexedLineSet containing Coordinate node with 102 values must also include coordIndex field</div><div> [apply] at org.web3d.x3d.jsail.Rendering.IndexedLineSet.validate(IndexedLineSet.java:2781)</div><div> [apply] at org.web3d.x3d.jsail.Shape.Shape.validate(Shape.java:2074)</div><div> [apply] at org.web3d.x3d.jsail.Core.Scene.validate(Scene.java:881)</div><div> [apply] at org.web3d.x3d.jsail.Core.X3D.validate(X3D.java:4563)</div><div> [apply] at org.web3d.x3d.jsail.Core.X3D.validationReport(X3D.java:3625)</div><div> [apply] at Validate.main(Unknown Source)</div><div> [apply] <meta content='Correct definition and compliance of this conformance scene is maintained by the X3D Working Group, <a href="https://www.web3d.org/working-groups/x3d" target="_blank">https://www.web3d.org/working-groups/x3d</a>' name='info'/></div><div> [apply]</div><div> [apply] *** exception occurred during validation: IndexedLineSet containing Coordinate node with 102 values must also include coordIndex field</div><div> [apply] [X3DLoaderDOM] <meta name='info' content='Correct definition and compliance of this conformance scene is maintained by the X3D Working Group, <a href="https://www.web3d.org/working-groups/x3d'/" target="_blank">https://www.web3d.org/working-groups/x3d'/</a>></div><div> [apply] Validation report for C:\x3d-code\<a href="http://www.web3d.org" target="_blank">www.web3d.org</a>\x3d\content\examples\ConformanceNist\Appearance\Material\indexedlineset_color_first.x3d</div><div> [apply] org.web3d.x3d.sai.InvalidFieldException: IndexedLineSet containing Coordinate node with 102 values must also include coordIndex field</div><div> [apply] at org.web3d.x3d.jsail.Rendering.IndexedLineSet.validate(IndexedLineSet.java:2781)</div><div> [apply] at org.web3d.x3d.jsail.Shape.Shape.validate(Shape.java:2074)</div><div> [apply] at org.web3d.x3d.jsail.Core.Scene.validate(Scene.java:881)</div><div> [apply] at org.web3d.x3d.jsail.Core.X3D.validate(X3D.java:4563)</div><div> [apply] at org.web3d.x3d.jsail.Core.X3D.validationReport(X3D.java:3625)</div><div> [apply] at Validate.main(Unknown Source)</div><div> [apply] <meta content='Correct definition and compliance of this conformance scene is maintained by the X3D Working Group, <a href="https://www.web3d.org/working-groups/x3d" target="_blank">https://www.web3d.org/working-groups/x3d</a>' name='info'/></div><div> [apply]</div><div> [apply] *** exception occurred during validation: IndexedLineSet containing Coordinate node with 102 values must also include coordIndex field</div><div> [apply] [X3DLoaderDOM] <meta name='info' content='Correct definition and compliance of this conformance scene is maintained by the X3D Working Group, <a href="https://www.web3d.org/working-groups/x3d" target="_blank">https://www.web3d.org/working-groups/x3d</a>'</div></div><div><br></div><div>There are several of these. I can report more if necessary. I'm guessing these are negative tests.</div><div><br></div><div>There's also more negative tests:</div><div><br></div><div><div>[apply] Validation report for C:\x3d-code\<a href="http://www.web3d.org" target="_blank">www.web3d.org</a>\x3d\content\examples\ConformanceNist\Geometry\Cone\texture.x3d</div><div> [apply] <meta content='Correct definition and compliance of this conformance scene is maintained by the X3D Working Group, <a href="https://www.web3d.org/working-groups/x3d" target="_blank">https://www.web3d.org/working-groups/x3d</a>' name='info'/></div><div> [apply]</div><div> [apply] WARNING_MESSAGE: duplicate statement found: <meta name='Image' content='texture-front.jpg'/></div><div> [apply] WARNING_MESSAGE: duplicate statement found: <meta name='Image' content='texture-rear.jpg'/></div><div> [apply] WARNING_MESSAGE: duplicate statement found: <meta name='Image' content='texture-top.jpg'/></div><div> [apply] WARNING_MESSAGE: duplicate statement found: <meta name='Image' content='texture-bottom.jpg'/></div><div> [apply] WARNING_MESSAGE: duplicate statement found: <meta name='Image' content='texture-left.jpg'/></div><div> [apply] WARNING_MESSAGE: duplicate statement found: <meta name='Image' content='texture-right.jpg'/></div><div> [apply] <meta content='Correct definition and compliance of this conformance scene is maintained by the X3D Working Group, <a href="https://www.web3d.org/working-groups/x3d" target="_blank">https://www.web3d.org/working-groups/x3d</a>' name='info'/></div><div> [apply] [X3DLoaderDOM] <meta name='info' content='Correct definition and compliance of this conformance scene is maintained by the X3D Working Group, <a href="https://www.web3d.org/working-groups/x3d'/" target="_blank">https://www.web3d.org/working-groups/x3d'/</a>></div></div><div><br></div><div>Here's my driver program in Java, you'll have to remove the JSON specific stuff: Full environment is here (see build.xml for target batchx3d): <a href="https://github.com/coderextreme/x3dschema">https://github.com/coderextreme/x3dschema</a></div><div><br></div><div><br></div><div><div>/**</div><div> * Copyright (c) 2022. John Carlson</div><div>All rights reserved.</div><div><br></div><div>Redistribution and use in source and binary forms, with or without</div><div>modification, are permitted provided that the following conditions are met:</div><div><br></div><div>* Redistributions of source code must retain the above copyright notice, this</div><div> list of conditions and the following disclaimer.</div><div><br></div><div>* Redistributions in binary form must reproduce the above copyright notice,</div><div> this list of conditions and the following disclaimer in the documentation</div><div> and/or other materials provided with the distribution.</div><div><br></div><div>* Neither the name of content nor the names of its</div><div> contributors may be used to endorse or promote products derived from</div><div> this software without specific prior written permission.</div><div><br></div><div>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"</div><div>AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div>IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE</div><div>DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE</div><div>FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</div><div>DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR</div><div>SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER</div><div>CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,</div><div>OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</div><div>OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE</div><div><br></div><div>*/</div><div>import org.w3c.dom.Document;</div><div>import javax.json.JsonObject;</div><div>import java.io.File;</div><div>import java.io.FileWriter;</div><div>import org.web3d.x3d.jsail.X3DLoaderDOM;</div><div>import org.web3d.x3d.jsail.Core.X3D;</div><div>import javax.xml.parsers.DocumentBuilder;</div><div>import javax.xml.parsers.DocumentBuilderFactory;</div><div><br></div><div>public class Validate {</div><div> public static void main(String [] args) throws Exception {</div><div><br></div><div> DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();</div><div> DocumentBuilder db = dbf.newDocumentBuilder();</div><div> for (int i = 0; i < args.length; i++) {</div><div> try {</div><div> X3DLoaderDOM xmlLoader = new X3DLoaderDOM();</div><div> Document document;</div><div> File f = new File(args[i]);</div><div> if (args[i].endsWith(".json") || args[i].endsWith(".x3dj")) {</div><div> X3DJSONLD loader = new X3DJSONLD();</div><div> JsonObject jsobj = loader.readJsonFile(f);</div><div> document = loader.loadJsonIntoDocument(jsobj);</div><div> FileWriter fw = new FileWriter(args[i].substring(0, args[i].lastIndexOf("."))+".xml");</div><div> fw.write((loader.serializeDOM(loader.getX3DVersion(jsobj), document)));</div><div> fw.close();</div><div> } else {</div><div> document = db.parse(f);</div><div> }</div><div> X3D X3D0 = (X3D)xmlLoader.toX3dModelInstance(document);</div><div> String validationResults = X3D0.validationReport();</div><div> if (validationResults.startsWith("\n")) {</div><div> System.out.println("Validation report for "+args[i]);</div><div> System.err.println(validationResults.trim());</div><div> } else {</div><div> System.out.println("Valid "+args[i]);</div><div> }</div><div> } catch (Exception e) {</div><div> System.out.println("Invalid "+args[i]);</div><div> e.printStackTrace();</div><div> }</div><div> }</div><div> }</div><div>}</div></div></div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Sep 23, 2023 at 3:19 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Is conformance testing done only on x3d browsers? Can I use the tests on my versions of X3DJSAIL? I will work on my X3DJSAIL-based batch XML validation tester sometime tonight. I will also work on developing a batch validation of VRML with tovrmlx3d, but AFAIK, it only does onesies, not batch. Michalis?<div dir="auto"><br></div><div dir="auto">Then, I’ll introduce my own XML and X3DJSAIL. I don’t expect any differences.</div><div dir="auto"><br></div><div dir="auto">I’m actually testing the conformance tests, not X3DJSAIL. Do the tests distinguish between MFFloat and SFString (of floats) Probably not in XML land . This is critical for conformance testing of VRML (and eventually JSON, that’s why I’m on board) browsers and libraries. So it would be good to test X3dToVrml*.xslt which I haven’t ever tried.</div><div dir="auto"><br></div><div dir="auto">Recommendations for batch VRML validation welcome.</div><div dir="auto"><br></div><div dir="auto"><div dir="auto"><div dir="auto">Wish me luck!</div><div dir="auto"><br></div><div dir="auto">John</div></div></div>
</blockquote></div>