<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=EN-US><div class=WordSection1><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>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.<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>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.<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>In other words, I  don’t see links between component(+level) and specific profiles in the object model.<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>Perhaps this is intentional?<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>In the XML schema, there is <o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>      <xs:group name="ChildContentModelDIS"><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>        <xs:group name="ChildContentModelFull"><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>        <xs:group name="ChildContentModelGeoSpatial"><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>        <xs:group name="ChildContentModelHumanoidAnimation"><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>        <xs:group name="ChildContentModelImmersive"><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>        <xs:group name="ChildContentModelInteractive"><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>        <xs:group name="ChildContentModelInterchange"><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>        <xs:group name="ChildContentModelNurbs"><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>        <xs:group name="ChildContentModelProtoInstance"><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>And many ref’s.<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>            <xs:group ref="ChildContentModelDIS"/><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>                        <xs:group ref="ChildContentModelFull"/><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>                        <xs:group ref="ChildContentModelGeoSpatial"/><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>                        <xs:group ref="ChildContentModelHumanoidAnimation"/><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>                        <xs:group ref="ChildContentModelImmersive"/><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>                        <xs:group ref="ChildContentModelInteractive"/><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>                        <xs:group ref="ChildContentModelInterchange"/><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>                        <xs:group ref="ChildContentModelNurbs"/><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>                        <xs:group ref="ChildContentModelProtoInstance"/><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>But in the object model, I don’t see the above:<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>$ grep ChildContent X3DObjectModel-3.3.xml |sort -u<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>               <GroupContentModel name="AppearanceChildContentModel"<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>               <GroupContentModel name="ChildContentModel" minOccurs="0" maxOccurs="unbounded"/><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>               <GroupContentModel name="ChildContentModelCore" minOccurs="0" maxOccurs="unbounded"/><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>               <GroupContentModel name="ChildContentModelCore" minOccurs="0"/><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>               <GroupContentModel name="ChildContentModelCore"/><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>               <GroupContentModel name="GroupingNodeChildContentModel"/><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>               <GroupContentModel name="LoadSensorChildContentModel"<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>               <GroupContentModel name="ShapeChildContentModel" minOccurs="0"/><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>               <GroupContentModel name="SoundChildContentModel" minOccurs="0"/><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>               <GroupContentModel name="TextChildContentModel"/><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>               <GroupContentModel name="TextureBackgroundChildContentModel"<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>And I see no reference to ChildContent in the JSON schema:<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>$ grep ChildContent x3d-3.3-JSONSchema.json<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>$<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#515F5C;background:white'>John<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>