<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">A preliminary 4.0 JSON schema has been published here:<div><br></div><div><a href="https://github.com/coderextreme/x3dvalidate">https://github.com/coderextreme/x3dvalidate</a><br></div><div><br></div><div>under the schemas folder.</div><div><br></div><div>Search for x-orderOf for any pain points.</div><div><br></div><div>No validation is done yet, but I've run through some tests to make sure things still work. Note that WinterAndSpring kids fail JSON validation, but that's probably not a surprise? I was kind of surprised.</div><div><br></div><div>Here's a sample error.</div><div><div> keyword: format</div><div> location in document: /X3D/Scene/-children/4/Transform/-children/3/Group/-children/0/HAnimHumanoid/-skin/0/Shape/-appearance/Appearance/-texture/ImageTexture</div><div>/@url/0</div><div> message: must match format "uri-reference"</div><div> params: {"format":"uri-reference"}</div><div> file: examples.bad/Tufani8Final.json</div><div> version: 4.0</div></div><div><br></div><div>That just means that the ImageTexure url does not conform to the Ajv idea of URIs</div><div><br></div><div>Here's the discussion of ordering the head statements. Perhaps someone else could identify where head comes before Scene in the x3d4 spec? Thanks. View3dscene seems to complain about that.</div><div><br></div><div><a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#Organization">https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#Organization</a><br></div><div><br></div><div>So now, I have to patch up the rest of my tools to conform to the spec. Perhaps Hoger could patch x3d-tidy.</div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 31, 2024 at 3:41 PM John Carlson <<a href="mailto:yottzumm@gmail.com">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"><div dir="auto">Purpose: To specify order of X3D and head sub-nodes/statements when converting JSON to XML and back.</div><div dir="auto"><br></div><div dir="auto">FYI, Don, JSON schema is now being self-published. They’ve abandoned the IETF approach.</div><div dir="auto"><br></div><div dir="auto">My JSON schema proposal to Ajv validator:</div><div dir="auto"><br></div><div dir="auto"><div><a href="https://github.com/ajv-validator/ajv/issues/2403" target="_blank">https://github.com/ajv-validator/ajv/issues/2403</a></div><br></div><div dir="auto">I’ll probably be digging into this in the next few weeks. Any assistance with X3DUOM *ContentModel would </div><div dir="auto">be appreciated.</div><div dir="auto"><br></div><div dir="auto">I’m also considering doing some kind of C++ encoding/object notation and I’m getting experience with ANTLR, further developing my VRML parser from X3DUOM…which is where sequential ordering hit me in the face again.</div><div dir="auto"><br></div><div dir="auto">John</div><div dir="auto"><br><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">On Sun, Mar 31, 2024 at 3:02 PM 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"><div dir="auto">Here’s the page for JSON subschemas:</div><div dir="auto"><br></div><div dir="auto"><div><a href="https://json-schema.org/understanding-json-schema/reference/combining" target="_blank">https://json-schema.org/understanding-json-schema/reference/combining</a></div><br></div><div dir="auto">I will be adding “x-inOrder” subschema to our JSON meta schema vocabulary. Typically subschemas contain subschemas and properties. The properties and subschemas will appear sequentially in the JSON files.</div><div dir="auto"><br></div><div dir="auto">Thanks for listening.</div><div dir="auto"><br></div><div dir="auto">John</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 31, 2024 at 2:29 PM 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"><div dir="auto">My thought is to add a sequential subschema to JSON Schema to match the parallel subschemas, “oneOf”, “allOf”, …</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 31, 2024 at 12:03 PM 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"><div dir="auto">In places where order IS important, inside head and X3D elements, the JSON schema is silent. I will probably be using custom schema “stuff” from X3DUOM in JSON schema to specify order, but it will be informative, not binding. That is, you should implement it for interoperability.</div><div dir="auto"><br></div><div dir="auto">Collaboration on design is welcome.</div><div dir="auto"><br></div><div dir="auto">John</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 31, 2024 at 11:04 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"><div dir="auto">It looks like the *ContentModel tags manage order? and occurrence of subnodes. I did wonder what these were. I have not seriously looked at the X3DUOM xsd yet. Is there documentation elsewhere? I’l look at the XML encoding.</div><div dir="auto"><br></div><div dir="auto">Thanks,</div><div dir="auto"><br></div><div dir="auto">Joh</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 31, 2024 at 10:33 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">I am wondering about ordering statements and nodes in X3DUOM (object model). I am well aware of ordering in XML schema…and sorting in stylesheets. This means we have to write ordering for each X3DUOM processor. It might be easiest just to order stuff in X3DUOM, once. I am thinking about ordering head statements, and head vs Scene. There are perhaps, other places in X3D.<div dir="auto"><br></div><div dir="auto">Neither JSON schema nor my upcoming VRML grammar currently bother much about ordering, and that concerns me. I feel like XSLT could provide a better solution, but I’m starting to think about how to accomplish ordering in VRML parsing, without information from X3DUOM.</div><div dir="auto"><br></div><div dir="auto">Thanks for listening,</div><div dir="auto"><br></div><div dir="auto">John </div>
</blockquote></div></div>
</blockquote></div></div>
</blockquote></div></div>
</blockquote></div></div>
</blockquote></div></div>
</blockquote></div>