<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;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
.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 link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>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.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I think that’s right. Corrections are welcome.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Sunday, August 20, 2017 7:12 PM<br><b>To: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a>; <a href="mailto:brutzman@nps.edu">Don Brutzman</a>; <a href="mailto:roy.walmsley@ntlworld.com">Roy Walmsley</a><br><b>Subject: </b>More Object Model Work.</p></div><p class=MsoNormal><o:p> </o:p></p><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><p class=MsoNormal><o:p> </o:p></p></div></body></html>