[x3d-public] More Object Model Work.

John Carlson yottzumm at gmail.com
Sun Aug 20 17:02:12 PDT 2017


So all levels of a component up to the profile supported level can go into it’s profile jar under the same named packages (perhaps numbered, but modules themselves aren’t supposed to have versions). Profile jars cannot be mixed unless they contain separate packages.  We might have to give packages a level number, which would be unfortunate, but clearer.

I think that’s right. Corrections are welcome.

John

Sent from Mail for Windows 10

From: John Carlson
Sent: Sunday, August 20, 2017 7:12 PM
To: X3D Graphics public mailing list; Don Brutzman; Roy Walmsley
Subject: More Object Model Work.

One problem with CreateX3dSceneAccessInterfaceJava.xslt currently is that it generates code for all of the XML schema AFAIK.  Options to only include various profiles, (X3D) components and levels might be desirable in X3DJSAIL, perhaps by splitting out different jars. I guess we can wait until Java 9 modules.  We might want to think about how to generate Java 9 module-info.java’s from the object model for various profiles. [ exercise left to the reader ]. Note: packages cannot be split between modules, last I heard.

We also might want to think about how to have JSON schemas for the various profiles, and reject nodes and statements which don’t match the profile.

In other words, I  don’t see links between component(+level) and specific profiles in the object model.

Perhaps this is intentional?

In the XML schema, there is 

      <xs:group name="ChildContentModelDIS">
        <xs:group name="ChildContentModelFull">
        <xs:group name="ChildContentModelGeoSpatial">
        <xs:group name="ChildContentModelHumanoidAnimation">
        <xs:group name="ChildContentModelImmersive">
        <xs:group name="ChildContentModelInteractive">
        <xs:group name="ChildContentModelInterchange">
        <xs:group name="ChildContentModelNurbs">
        <xs:group name="ChildContentModelProtoInstance">

And many ref’s.
            <xs:group ref="ChildContentModelDIS"/>
                        <xs:group ref="ChildContentModelFull"/>
                        <xs:group ref="ChildContentModelGeoSpatial"/>
                        <xs:group ref="ChildContentModelHumanoidAnimation"/>
                        <xs:group ref="ChildContentModelImmersive"/>
                        <xs:group ref="ChildContentModelInteractive"/>
                        <xs:group ref="ChildContentModelInterchange"/>
                        <xs:group ref="ChildContentModelNurbs"/>
                        <xs:group ref="ChildContentModelProtoInstance"/>
But in the object model, I don’t see the above:

$ grep ChildContent X3DObjectModel-3.3.xml |sort -u
               <GroupContentModel name="AppearanceChildContentModel"
               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0" maxOccurs="unbounded"/>
               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/>
               <GroupContentModel name="ChildContentModelCore"/>
               <GroupContentModel name="GroupingNodeChildContentModel"/>
               <GroupContentModel name="LoadSensorChildContentModel"
               <GroupContentModel name="ShapeChildContentModel" minOccurs="0"/>
               <GroupContentModel name="SoundChildContentModel" minOccurs="0"/>
               <GroupContentModel name="TextChildContentModel"/>
               <GroupContentModel name="TextureBackgroundChildContentModel"

And I see no reference to ChildContent in the JSON schema:

$ grep ChildContent x3d-3.3-JSONSchema.json
$

John



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20170820/e6ad2823/attachment-0001.html>


More information about the x3d-public mailing list