<div dir="auto">Don, is there anything in the object model for relationships between profiles?   Thanks!<div dir="auto"><br></div><div dir="auto">John</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Aug 31, 2017 3:48 AM, "Don Brutzman" <<a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 8/30/2017 10:23 AM, John Carlson wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Looks okay to me.<br>
</blockquote>
<br>
Thanks for double checks.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="quoted-text">
On Aug 30, 2017 12:47 PM, "Don Brutzman" <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a> <mailto:<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>>> wrote:<br>
<br>
    OK, have amended X3D XML Schema to include allowed nodes under each profile.  Also added allowed X3D statements under Core profile.<br>
<br>
    Documentation at<br></div>
    <a href="http://www.web3d.org/specifications/X3dSchemaDocumentation3.3/x3d-3.3_profileNames.html#LinkDC" rel="noreferrer" target="_blank">http://www.web3d.org/specifica<wbr>tions/X3dSchemaDocumentation3.<wbr>3/x3d-3.3_profileNames.html#<wbr>LinkDC</a> <<a href="http://www.web3d.org/specifications/X3dSchemaDocumentation3.3/x3d-3.3_profileNames.html#LinkDC" rel="noreferrer" target="_blank">http://www.web3d.org/specific<wbr>ations/X3dSchemaDocumentation3<wbr>.3/x3d-3.3_profileNames.html#<wbr>LinkDC</a>><div class="quoted-text"><br>
<br>
    Next: have extracted these node and statement lists for inclusion in the X3D Unified Object Model profile information.<br>
<br></div>
    Result excerpt follows.  Please look at syntax, hope it looks OK.  As this gets integrated, will next apply by generating profile-validation tests in source code for X3DJSAIL.[...]<br>
</blockquote>
<br>
OK have taken the next step: added validation of profile and component information for each node in the respective validate() methods.<br>
<br>
Example excerpt from AnchorObject follows, where Anchor-specific values for profiles/component/level get plugged in from entries in X3DObjectModel-3.3.xml:<br>
<br>
// profile validation test, if connected to full scene<br>
if (findAncestorX3DObject() != null)<br>
{<br>
        String     modelProfile = findAncestorX3DObject().getPro<wbr>file();<br>
        headObject modelHead    = findAncestorX3DObject().getHea<wbr>d();<br>
        ArrayList<componentObject> sceneComponentsList = new ArrayList<>();<br>
        if (modelHead != null)<br>
                sceneComponentsList = modelHead.getComponentList();<br>
        boolean hasSatisfactoryComponent = false;<br>
        for (componentObject nextComponent : sceneComponentsList)<br>
        {<br>
                if ( nextComponent.getName().equals<wbr>("Networking") &&<br>
                        (nextComponent.getLevel() >= 2))<br>
                        hasSatisfactoryComponent = true;<br>
        }<br>
        if (!hasSatisfactoryComponent &&<br>
                !modelProfile.equals("CADInter<wbr>change") &&<br>
                !modelProfile.equals("Interact<wbr>ive") &&<br>
                !modelProfile.equals("Immersiv<wbr>e") &&<br>
                !modelProfile.equals("MedicalI<wbr>nterchange") &&<br>
                !modelProfile.equals("MPEG4Int<wbr>eractive") &&<br>
                !modelProfile.equals("Full"))<br>
        {<br>
                String errorNotice = ConfigurationProperties.ERROR_<wbr>ILLEGAL_VALUE +<br>
                        ": invalid X3D profile='" + getContainerFieldOverride() +<br>
                        "' for parent X3D model, add element <componentInfo name='Networking' level='2'/> or assignment " +<br>
                        "' findAncestorX3DObject().getHea<wbr>d().addComponentInfo(\"Network<wbr>ing\").setLevel(2);";<br>
                validationResult.append(errorN<wbr>otice).append("\n");<br>
                throw new InvalidFieldException(errorNot<wbr>ice); // report error<br>
        }<br>
}<br>
<br>
Tested satisfactorily on HelloWorldProgram.java which indeed self-diagnosed itself to reveal a missing component entry for Layering level 1.<br>
<br>
Test program runs satisfactorily, a few other quirks appear to be adjusted/fixed.  Now running recently released Java JDK version "1.8.0_141".<br>
<br>
Updates now uploading, autogeneration stylesheet changes and smoke tests checked in, this new release should be available in about an hour.<br>
<br>
        <a href="http://www.web3d.org/specifications/java/X3DJSAIL.html" rel="noreferrer" target="_blank">http://www.web3d.org/specifica<wbr>tions/java/X3DJSAIL.html</a><br>
<br>
Looking things over, will probably add class constants for minimum COMPONENT and LEVEL later to simplify programmer access.<div class="elided-text"><br>
<br>
all the best, Don<br>
-- <br>
Don Brutzman  Naval Postgraduate School, Code USW/Br       <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a><br>
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   <a href="tel:%2B1.831.656.2149" value="+18316562149" target="_blank">+1.831.656.2149</a><br>
X3D graphics, virtual worlds, navy robotics <a href="http://faculty.nps.edu/brutzman" rel="noreferrer" target="_blank">http://faculty.nps.edu/brutzma<wbr>n</a><br>
</div></blockquote></div><br></div>