<div dir="ltr">We don't need a JSON Schema validator to validate JSON documents when we have X3DJSONLD.java and X3DJSAIL:<div><br></div><div>See:</div><div><br></div><div><a href="https://sourceforge.net/p/x3d/tickets/18/">https://sourceforge.net/p/x3d/tickets/18/</a><br></div><div><br></div><div>You may use the code with the Apache 2.0 license. I have already given you the rights to use X3DJSONLD.java, and you suggested that you would rename the file, which is OK!</div><div><br></div><div>I'm not seeing other dependencies beyond JDK (JSON library?)</div><div><br></div><div>So can we drop X3D JSON schema, except for X3DJSONLD website?</div><div><br></div><div>Anyone skilled at creating Java validators (which all the Java examples that I know of in the X3D examples archives are) should be able to craft this code into a JSON validator.   I don't know how to do ant/build.xml that well.  I can help with the Java, but I would direct you do any Java example in the archive as an example of a validator, a snippet included below from Hello, World:</div><div><br></div><div><pre style="box-sizing:inherit;margin-top:0px;margin-bottom:0px;padding:15px;border:0px;outline:0px;font-size:14px;vertical-align:baseline;background:0px 0px;font-family:monospace,sans-serif;overflow:auto;color:rgb(85,85,85)"><div id="gmail-l19" class="gmail-code_block" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px;width:980.438px">               <span class="gmail-n" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px">X3DJSONLD</span> <span class="gmail-n" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px">loader</span> <span class="gmail-o" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px;color:rgb(102,102,102)">=</span> <span class="gmail-k" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px;color:green;font-weight:700">new</span> <span class="gmail-n" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px">X3DJSONLD</span><span class="gmail-p" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px">();</span></div><div id="gmail-l21" class="gmail-code_block" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px;width:980.438px">           <span class="gmail-n" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px">JsonObject</span> <span class="gmail-n" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px">jsobj</span> <span class="gmail-o" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px;color:rgb(102,102,102)">=</span> <span class="gmail-n" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px">loader</span><span class="gmail-p" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px">.</span><span class="gmail-na" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px;color:rgb(125,144,41)">readJsonFile</span><span class="gmail-p" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px">(</span><span class="gmail-k" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px;color:green;font-weight:700">new</span> <span class="gmail-n" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px">File</span><span class="gmail-p" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px">(</span><span class="gmail-s" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px;color:rgb(186,33,33)">"examples/HelloWorldProgramOutput.json"</span><span class="gmail-p" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px">));</span>
</div><div id="gmail-l22" class="gmail-code_block" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px;width:980.438px">               <span class="gmail-n" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px">Document</span> <span class="gmail-n" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px">document</span> <span class="gmail-o" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px;color:rgb(102,102,102)">=</span> <span class="gmail-n" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px">loader</span><span class="gmail-p" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px">.</span><span class="gmail-na" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px;color:rgb(125,144,41)">loadJsonIntoDocument</span><span class="gmail-p" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px">(</span><span class="gmail-n" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px">jsobj</span><span class="gmail-p" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px">);</span>
</div><div id="gmail-l23" class="gmail-code_block" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px;width:980.438px"><span style="background-color:initial">                </span><span class="gmail-n" style="background:0px 0px;box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline">X3DLoaderDOM</span><span style="background-color:initial">  </span><span class="gmail-n" style="background:0px 0px;box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline">xmlLoader</span><span style="background-color:initial"> </span><span class="gmail-o" style="background:0px 0px;box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;color:rgb(102,102,102)">=</span><span style="background-color:initial"> </span><span class="gmail-k" style="background:0px 0px;box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;color:green;font-weight:700">new</span><span style="background-color:initial"> </span><span class="gmail-n" style="background:0px 0px;box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline">X3DLoaderDOM</span><span class="gmail-p" style="background:0px 0px;box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline">();</span><br></div><div id="gmail-l24" class="gmail-code_block" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px;width:980.438px"><span style="background-color:initial">           </span><span class="gmail-n" style="background:0px 0px;box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline">X3D</span><span style="background-color:initial"> </span><span class="gmail-n" style="background:0px 0px;box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline">X3D0</span><span style="background-color:initial"> </span><span class="gmail-o" style="background:0px 0px;box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;color:rgb(102,102,102)">=</span><span style="background-color:initial"> </span><span class="gmail-p" style="background:0px 0px;box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline">(</span><span class="gmail-n" style="background:0px 0px;box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline">X3D</span><span class="gmail-p" style="background:0px 0px;box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline">)</span><span class="gmail-n" style="background:0px 0px;box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline">xmlLoader</span><span class="gmail-p" style="background:0px 0px;box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline">.</span><span class="gmail-na" style="background:0px 0px;box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;color:rgb(125,144,41)">toX3dModelInstance</span><span class="gmail-p" style="background:0px 0px;box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline">(</span><span class="gmail-n" style="background:0px 0px;box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline">document</span><span class="gmail-p" style="background:0px 0px;box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline">);</span></div><div id="gmail-l26" class="gmail-code_block" style="box-sizing:inherit;margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;background:0px 0px;width:980.438px"><pre style="color:rgb(0,0,0);white-space:pre-wrap">          String validationResults = X3D0.validationReport();
                if (validationResults.startsWith("\n")) {
                        System.out.println();
                        System.out.println(validationResults.trim());
                }</pre><pre style="color:rgb(0,0,0);white-space:pre-wrap"><br></pre><pre style="color:rgb(0,0,0);white-space:pre-wrap">I'm hopefully going to leave the rest of the details to you (passing command line args), but I will help as needed!</pre><pre style="color:rgb(0,0,0);white-space:pre-wrap"><br></pre><pre style="color:rgb(0,0,0);white-space:pre-wrap">No more bitching about "No JSON schema draft," please!</pre></div></pre></div><div><br></div><div>John</div></div>