[x3d-public] X3D JSON Schema: NOT NEEDED ANY MORE! actually yes needed by Web3D, YMMV

John Carlson yottzumm at gmail.com
Thu Feb 17 16:57:12 PST 2022


If we want to work on one thing, this would have the most impact:   See
NullPointerException below.  Date on JSON file is 1/27/2022 10PM.  I will
work on the "X3D comment replacing" (not sure what's happening there, may
have to check for equality).  I will work on a patch to X3DJSAIL.
Attaching JSON.

     [echo] Validate
C:\x3d-code\www.web3d.org\x3d\content\examples\Basic\CAD\CadGeometryExternPrototypes.json
with classpath .:/x3d-code/
www.web3d.org/x3d/stylesheets/java/jars/X3DJSAIL.4.0.full.jar
     [java] Validating C:\x3d-code\www.web3d.org
\x3d\content\examples\Basic\CAD\CadGeometryExternPrototypes.json
     [java] X3DJSONLD comment replacing
"==========================================="
     [java] with
"==========================================="
     [java] X3DJSONLD comment replacing
"========================================"
     [java] with
"========================================"
     [java] X3DJSONLD comment replacing
"========================================"
     [java] with
"========================================"
     [java] X3DJSONLD comment replacing
"========================================"
     [java] with
"========================================"
     [java] X3DJSONLD comment replacing
"========================================"
     [java] with
"========================================"
     [java] X3DJSONLD comment replacing
"========================================"
     [java] with
"========================================"
     [java] X3DJSONLD comment replacing
"========================================"
     [java] with
"========================================"
     [java] X3DJSONLD comment replacing "Silence scene warnings by
providing ordered ProtoInstance examples. Note warning above that this
scene is for developmental use. The ProtoInstance form of the CAD nodes
should not be used, native X3D encoding should be used instead."
     [java] with                         "Silence scene warnings by
providing ordered ProtoInstance examples. Note warning above that this
scene is for developmental use. The ProtoInstance form of the CAD nodes
should not be used, native X3D encoding should be used instead."
     [java] java.lang.NullPointerException: Cannot invoke
"String.contains(java.lang.CharSequence)" because the return value of
"java.lang.reflect.InvocationTargetException.getMessage()" is null
     [java]     at
org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:1590)
     [java]     at
org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:619)
     [java]     at
org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:619)
     [java]     at
org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:619)
     [java]     at
org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:490)
     [java]     at
org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:453)
     [java]     at Validate.main(Validate.java:18)
     [java]     at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
     [java]     at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
     [java]     at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     [java]     at
java.base/java.lang.reflect.Method.invoke(Method.java:568)
     [java]     at
org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:218)
     [java]     at
org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:155)
     [java]     at org.apache.tools.ant.taskdefs.Java.run(Java.java:891)
     [java]     at
org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:231)
     [java]     at
org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:135)
     [java]     at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108)
     [java]     at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:299)
     [java]     at
jdk.internal.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
     [java]     at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     [java]     at
java.base/java.lang.reflect.Method.invoke(Method.java:568)
     [java]     at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
     [java]     at org.apache.tools.ant.Task.perform(Task.java:350)
     [java]     at org.apache.tools.ant.Target.execute(Target.java:449)
     [java]     at org.apache.tools.ant.Target.performTasks(Target.java:470)
     [java]     at
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1401)
     [java]     at
org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:36)
     [java]     at
org.apache.tools.ant.Project.executeTargets(Project.java:1264)
     [java]     at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:437)
     [java]     at
org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:106)
     [java]     at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
     [java]     at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
     [java]     at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     [java]     at
java.base/java.lang.reflect.Method.invoke(Method.java:568)
     [java]     at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
     [java]     at org.apache.tools.ant.Task.perform(Task.java:350)
     [java]     at java.base/java.util.Vector.forEach(Vector.java:1359)
     [java]     at
org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:67)
     [java]     at
net.sf.antcontrib.logic.ForEach.executeSequential(ForEach.java:178)
     [java]     at net.sf.antcontrib.logic.ForEach.execute(ForEach.java:254)
     [java]     at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:299)
     [java]     at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
     [java]     at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
     [java]     at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     [java]     at
java.base/java.lang.reflect.Method.invoke(Method.java:568)
     [java]     at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
     [java]     at org.apache.tools.ant.Task.perform(Task.java:350)
     [java]     at org.apache.tools.ant.Target.execute(Target.java:449)
     [java]     at org.apache.tools.ant.Target.performTasks(Target.java:470)
     [java]     at
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1401)
     [java]     at
org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:36)
     [java]     at
org.apache.tools.ant.Project.executeTargets(Project.java:1264)
     [java]     at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:437)
     [java]     at
org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:106)
     [java]     at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:299)
     [java]     at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
     [java]     at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
     [java]     at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     [java]     at
java.base/java.lang.reflect.Method.invoke(Method.java:568)
     [java]     at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
     [java]     at org.apache.tools.ant.Task.perform(Task.java:350)
     [java]     at org.apache.tools.ant.Target.execute(Target.java:449)
     [java]     at org.apache.tools.ant.Target.performTasks(Target.java:470)
     [java]     at
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1401)
     [java]     at
org.apache.tools.ant.Project.executeTarget(Project.java:1374)
     [java]     at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
     [java]     at
org.apache.tools.ant.Project.executeTargets(Project.java:1264)
     [java]     at org.apache.tools.ant.Main.runBuild(Main.java:818)
     [java]     at org.apache.tools.ant.Main.startAnt(Main.java:223)
     [java]     at
org.apache.tools.ant.launch.Launcher.run(Launcher.java:284)
     [java]     at
org.apache.tools.ant.launch.Launcher.main(Launcher.java:101)

On Thu, Feb 17, 2022 at 6:21 PM John Carlson <yottzumm at gmail.com> wrote:

> I am trying to push X3D JSON through standardization without JSON schema.
> This has been a goal for some time now.  I realize I need to collaborate.
>
> Thanks for the vote.
>
> I would like to collaborate with you on getting you a better way of
> validating X3D JSON, since you want to stay with Java.
>
> That is what I worked on with ticket #18.
>
> I will put up a log on my website after cake.
>
> John
>
> On Thu, Feb 17, 2022 at 6:03 PM Brutzman, Donald (Don) (CIV) <
> brutzman at nps.edu> wrote:
>
>> You already have my vote John – step 4, otherwise premature.  Not sure
>> what you are hoping to accomplish.
>>
>>
>>
>> all the best, Don
>>
>> --
>>
>> Don Brutzman  Naval Postgraduate School, Code USW/Br
>> brutzman at nps.edu
>>
>> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA
>> +1.831.656.2149
>>
>> X3D graphics, virtual worlds, Navy robotics https://
>> faculty.nps.edu/brutzman
>>
>>
>>
>> *From:* John Carlson <yottzumm at gmail.com>
>> *Sent:* Thursday, February 17, 2022 3:44 PM
>> *To:* Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
>> *Subject:* Re: X3D JSON Schema: NOT NEEDED ANY MORE! actually yes needed
>> by Web3D, YMMV
>>
>>
>>
>> NPS WARNING: *external sender* verify before acting.
>>
>>
>>
>> Does anyone want me to create XML schema from X3DUOM and Python?
>>
>>
>>
>> Yes or No?
>>
>>
>>
>> John
>>
>>
>>
>> On Thu, Feb 17, 2022 at 5:36 PM Brutzman, Donald (Don) (CIV) <
>> brutzman at nps.edu> wrote:
>>
>> Please see “XML” on the chart
>>
>>
>>
>>
>>
>> all the best, Don
>>
>> --
>>
>> Don Brutzman  Naval Postgraduate School, Code USW/Br
>> brutzman at nps.edu
>>
>> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA
>> +1.831.656.2149
>>
>> X3D graphics, virtual worlds, Navy robotics https://
>> faculty.nps.edu/brutzman
>>
>>
>>
>> *From:* John Carlson <yottzumm at gmail.com>
>> *Sent:* Thursday, February 17, 2022 3:11 PM
>> *To:* Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
>> *Cc:* X3D Graphics member mailing list <x3d at web3d.org>
>> *Subject:* Re: X3D JSON Schema: NOT NEEDED ANY MORE! actually yes needed
>> by Web3D, YMMV
>>
>>
>>
>> NPS WARNING: *external sender* verify before acting.
>>
>>
>>
>> I have to laugh, Don.  I don’t see XML schema on the referenced .png
>> below.  Maybe my vision is bad?
>>
>>
>>
>> On Thu, Feb 17, 2022 at 12:04 PM Brutzman, Donald (Don) (CIV) <
>> brutzman at nps.edu> wrote:
>>
>> Hi John.  This would have been good to bring up Monday when I called you
>> for weekly discussion.
>>
>>
>>
>> There is nothing wrong with any of the new directions you are thinking
>> about… go go go… but the huge variety of possible external applications
>> using X3D, such as those you are listing, are each a worthy task for others
>> to pursue.  They are not a specific task for Web3D standardization.
>>
>>
>>
>> Validation of X3D content in JSON provides independent confidence to
>> browser implementers and model authors and end users.
>>
>>
>>
>> JSON Schema is informational part of future specification, and also
>> crucial because it validates correctness of content.  Since JSON Schema is
>> an IETF draft, and Internet Engineering Task Force (IETF) is another
>> Standards Development Organization (SDO), Web3D Consortium and
>> International Standards Organization can formally reference.
>>
>>
>>
>> If anyone has questions about what is planned for standardization, please
>> see the following consensus diagram which describes Web3D and ISO
>> intentions in complete detail.  Pretty detailed, reflecting X3D
>> interoperability.  Questions always welcome.
>>
>>
>>
>>    - X3D Graphics Standards Relationships
>>    -
>>    https://www.web3d.org/specifications/X3dSpecificationRelationships.png
>>
>>
>>
>> Our specific shared tasks regarding JSON Schema remain straightforward
>> and unchanged:
>>
>>    1. Keep tuning your version
>>    2. Automate testing using Java/Ant invocation for X3D Examples
>>    Archives
>>    3. Adjust your schema, or X3dToJson example versions to achieve
>>    correct validation
>>    4. Autogenerate a match to your schema using X3DUOM for strict
>>    correctness/repeatability throughout
>>    5. Add as informative annex to forthcoming ISO/IEC 19776-5 X3D JSON
>>    specification
>>
>>
>>
>> These steps follow our proven success with XML and ClassicVRML and Turtle
>> encodings, as well as Java and Python programming languages.  They are also
>> the same pattern we will follow for X3D in Python, C, C++ and C#.
>>
>>
>>
>> May I respectfully suggest that our group doing those specifications and
>> implementations well provides the best possible path to encourage all of
>> the other dozens of possibilities that you describe.
>>
>>
>>
>> Onward we go, have fun with valid X3D!   8)
>>
>>
>>
>> all the best, Don
>>
>> --
>>
>> Don Brutzman  Naval Postgraduate School, Code USW/Br
>> brutzman at nps.edu
>>
>> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA
>> +1.831.656.2149
>>
>> X3D graphics, virtual worlds, Navy robotics https://
>> faculty.nps.edu/brutzman
>>
>>
>>
>> *From:* John Carlson <yottzumm at gmail.com>
>> *Sent:* Wednesday, February 16, 2022 12:25 AM
>> *To:* Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
>> *Cc:* X3D Graphics member mailing list <x3d at web3d.org>
>> *Subject:* X3D JSON Schema: NOT NEEDED ANY MORE!
>>
>>
>>
>> Suggestion, read only the last paragraph.   That’s my member confidential
>> information.   Please don’t share the last paragraph.
>>
>>
>>
>> Don,
>>
>>
>>
>> I have been working to get typesafe (way beyond schema) JSON into various
>> packages. I have developed X3DJSONLD.java which loads a DOM document, which
>> can then be loaded and validated using X3DJSAIL.   This Java code has not
>> really been accepted into the X3DJSAIL libraries.   I can help you write a
>> way to validate JSON with X3DJSAIL.   Which you can plug into ant.  Would
>> this help with the acceptance of X3D JSON by the Web3d community?  It’s
>> pretty much a very simple task at this stage of maturity.   I’m waiting for
>> you to get on board!  Just search some my node examples on sourceforge for
>> X3DJSONLD and convert to Java!  Simple!  I probably even have a Java
>> example!
>>
>>
>>
>> Recent efforts include creating x3dinput.py, the beginnings of a JSON
>> loader for x3d.py, and x3djsonld.py which produces typesafe python.
>>
>>
>>
>> Well?  We don’t need no stinking JSON schema!   I know I have not been
>> advertising the above projects much.   Do you see the value in them, that
>> they are the replacement for JSON Schema?
>>
>>
>>
>> JSON schema is only a low barrier of protection, for products that don’t
>> validate XML.  That is, a website like X3DJSONLD.   While I still try to
>> keep the site working, to show the value and feasibility of X3D JSON in
>> legacy libraries, it has not been my top priority. I have been only
>> updating JSON schema based on changes requested by you!
>>
>>
>>
>> I appreciate Roy’s work on X3D JSON Schema for the working draft and to
>> debug the primary way (only?) to get as fast as possible from XML to JSON,
>> namely: X3dToJson.xslt.   Thank you for making X3D JSON possible, Roy and
>> Don!
>>
>>
>>
>> I suggest we make JSON validation, with our own pre-existing code
>> libraries, a top priority for our JSON efforts.  NOT PRODUCING JSON SCHEMA
>> DOCUMENTATION!  I didn’t want to do that!   I will very rapidly delete such
>> documentation because it is pretty useless!   Can you believe how much time
>> has been wasted going from draft07 to draft2020-12.   Only to produce
>> broken Java and slow python validators?   What was the value proposition
>> for draft2020-12?
>>
>>
>>
>> No, I don’t want to create yet another SAI for JavaScript!   ES6 or
>> TypeScript, maybe!  C/C++/C#?   What’s wrong with Coin3D and FreeWRL?
>>
>>
>>
>> What’s the likelihood of Babylon Native and  Three.js Native?   I think
>> that PlayCanvas is already targeting smartphones.   And Unity and   Unreal
>> are targeting the web.
>>
>>
>>
>> Where does X3D fit in the above? Can we really afford to compete at a
>> low-level library level?  Would a declarative level above all these
>> libraries be more successful?  What are PROTOs for and why aren’t we
>> standardizing them?
>>
>>
>>
>> What if there was something that generated code for all of the popular
>> game engines? A 4D compiler of sorts.   What if I could write JSON and
>> target all 4D engines?   All animation libraries?  Wouldn’t that be the
>> JPEG of 4D?   What is the Open Inventor for today?   If you want to help me
>> write JSON Schema or X3DUOM for that, you are welcome!  glTF is a compiler
>> target, not a competitor.   If you’re interested, send me a note.
>>
>>
>>
>> John
>>
>>
>>
>> On Tue, Feb 15, 2022 at 11:59 PM John Carlson <yottzumm at gmail.com> wrote:
>>
>> TL;DR
>>
>>
>>
>> Understood that you want to pursue a Java course.   Would running
>> JavaScript inside Java be acceptable?   Running against a 4000+ example
>> archive is a challenge, and below is my collected wisdom.
>>
>>
>>
>> Python solutions for draft2020-12 are as slow as molasses.   I suggest we
>> step backwards to draft07 if we pursue a python solution.   Then we can use
>> the fastjsonschema package.
>>
>>
>>
>> Ajv is a very fast solution and is my go to solution for JSON schema
>> validation.   It is my most common approach for validating the sourceforge
>> archive and Savage.   Ajv supports most of the draft JSON standards.   Ajv
>> solicits funds for support with my encouragement.  I am just a happy
>> customer!
>>
>>
>>
>> Draft07 has the advantage of providing many, many implementations across
>> a variety of languages.   We will probably not see that much maturity for
>> many years for any potential upcoming standard.  I thought we had a good
>> Java solution with Everit and Draft07, but you were wary of it.
>>
>>
>>
>> Thus, my solution for most people would be to allow them to validate one
>> JSON document at a time, probably with python or JavaScript at this point.
>>   I will continue to support the x3dschema and x3dvalidate projects for
>> projects with a lot of files, or even one-offs with x3dvalidate.
>>
>>
>>
>> I am working to enhance the JSON schema client/server solution, but
>> running Ajv as is done currently on the browser will require running
>> JavaScript interpreter on the client.   If running something like CEF
>> (headless chrome) is acceptable, we can work on that.   But if you’re
>> running Chrome, why not Node.js/V8/Deno?   There are alternatives to npm.
>> With Deno, security comes by default, and you know which websites you are
>> downloading modules from, pretty much like the web.  Npm is deprecated with
>> Deno.   Deno also supports TypeScript natively.   These take many question
>> marks out of the equation for running TypeScript and JavaScript.
>>
>>
>>
>> There’s commercial solutions with XMLSpy.   If XMLSpy provided production
>> validators for a license fee less than their editors, that would be greatly
>> appreciated.
>>
>>
>>
>> I will monitor the jsonschemafriend Java project until it reaches a
>> mature solution for draft2020-12.
>>
>>
>>
>> It seems like there’s room for a JSON schema to Java compiler in the mix.
>>   I’m not sure why we haven’t seen this?
>>
>>
>>
>> John
>>
>>
>>
>> On Tue, Feb 15, 2022 at 10:27 PM Brutzman, Donald (Don) (CIV) <
>> brutzman at nps.edu> wrote:
>>
>> John, I can replace the schema in the official repository, but we still
>> have a severe difficulty in that there is no build process to check it
>> against X3D Examples scenes.  As ever, using Java latest and Ant build
>> tasks will be the path to mainstreaming.  We have been blocked by that for
>> several years, and JSON Schema is still in draft status.
>>
>>
>>
>> Don’t want to sound discouraging, seems like you are close, but these are
>> the final hurdles to get past.
>>
>>
>>
>> Recent update found on json schema page indicates that they are still
>> draft and still progressing.
>>
>>
>>
>>    - http://json-schema.org
>>    <https://nam10.safelinks.protection.outlook.com/?url=http%3A%2F%2Fjson-schema.org%2F&data=04%7C01%7Cbrutzman%40nps.edu%7Ca120d58cdefc4bf71be408d9f26f6009%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637807382560352259%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=W0k09Zc54brQ4ET571DbNhJ8m5wROu5HY2SNXbvwLXw%3D&reserved=0>
>>
>>
>>
>> all the best, Don
>>
>> --
>>
>> Don Brutzman  Naval Postgraduate School, Code USW/Br
>> brutzman at nps.edu
>>
>> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA
>> +1.831.656.2149
>>
>> X3D graphics, virtual worlds, Navy robotics https://
>> faculty.nps.edu/brutzman
>>
>>
>>
>> *From:* John Carlson <yottzumm at gmail.com>
>> *Sent:* Wednesday, February 9, 2022 10:43 PM
>> *To:* Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>; X3D Graphics
>> public mailing list <x3d-public at web3d.org>
>> *Subject:* Re: [x3d-public] X3D JSON Schema updated for axis++ defaults
>>
>>
>>
>> NPS WARNING: *external sender* verify before acting.
>>
>>
>>
>> See attached JSON schema to get #comment next to USE (practically
>> everywhere in the schema).  Shortened versions of the schema welcome.  I'm
>> not quite sure what to do.
>>
>>
>>
>> This adds about 3660 lines to the schema.
>>
>>
>>
>> If you can suggest a better JSON encoding or X3D JSON schema, that would
>> be welcome at this point.
>>
>>
>>
>> On Thu, Feb 10, 2022 at 12:29 AM John Carlson <yottzumm at gmail.com> wrote:
>>
>> Please confirm that you want me to accept @USE with sibling -children
>> fields, as shown in recently mentioned Trebuchet.json.
>>
>>
>>
>> See below snippet of X3D JSON schema, that I will add back in *many*
>> places.  The code to be added is embolden.
>>
>>
>>
>> Thanks!
>>
>>
>>
>> John
>>
>>
>>
>> On Sat, Feb 5, 2022 at 9:06 AM Brutzman, Donald (Don) (CIV) <
>> brutzman at nps.edu> wrote:
>>
>>
>>
>> 2. Saw a documentation problem:  USE nodes can’t indicate anything
>> besides the @USE value (except for containerField value for relevant
>> parent-child relationship in XML encoding).  So your following guidance
>> about comments is not portable outside of JSON.
>>
>>     "RigidBody": {
>>
>>       "type": "object",
>>
>>       "oneOf": [
>>
>>         {
>>
>>           "type": "object",
>>
>>           "properties": {
>>
>>             "@class": {
>>
>>               "type": "string"
>>
>>             },
>>
>>             "@USE": {
>>
>>               "type": "string"
>>
>> *            },*
>>
>> *            "-children": {*
>>
>> *              "type": "array",*
>>
>> *              "minItems": 1,*
>>
>> *              "items": {*
>>
>> *                "type": "object",*
>>
>> *                "properties": {*
>>
>> *                  "#comment": {*
>>
>> *                    "type": "string",*
>>
>> *                    "$comment": "#comment statements are the only
>> allowed in -children node when using a USE field"*
>>
>> *                  }*
>>
>> *                },*
>>
>> *                "additionalProperties": false*
>>
>>               }
>>
>>             }
>>
>>          },
>>
>>           "required": [
>>
>>             "@USE"
>>
>>           ],
>>
>>           "additionalProperties": false
>>
>>         },
>>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> x3d-public mailing list
>> x3d-public at web3d.org
>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20220217/e08104bd/attachment-0001.html>


More information about the x3d-public mailing list