<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>Now the question is, what’s the quickest way to form a schema or model, period?  How much can a computer take over the role?</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John<o:p></o:p></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><span style='font-size:12.0pt;font-family:"Times New Roman",serif'><o:p> </o:p></span></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">yottzumm@gmail.com</a><br><b>Sent: </b>Thursday, September 22, 2016 8:43 PM<br><b>To: </b><a href="mailto:brutzman@nps.edu">Don Brutzman</a>; <a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Cc: </b><a href="mailto:roy.walmsley@ntlworld.com">Roy Walmsley</a><br><b>Subject: </b>RE: Using X3D Object Model XSD and tools outside of X3D</p></div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman",serif'><o:p> </o:p></span></p><p class=MsoNormal>Okay, I’ve been looking into it some more and it looks like an autogenerated X3D JSON schema would help with generating the models for my API (the schema appears to be very similar to the models).  So I’m going to take the X3D XML Schema and try to produce the X3D JSON Schema (or a model like the OpenAPI Specification has).  After that, I will have to generate resources, codes, etc. in the REST protocol from the Java API example, if it is available.  I know Roy has generation of the X3D JSON Schema in mind, but with a little Java work, I may be able to leapfrog him.  Of course, if I run into any difficulty, I will come running.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Any comments on SOA versus REST?  I was considering REST with XPATH resources.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John</p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10</p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman",serif'><o:p> </o:p></span></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From: </b><a href="mailto:brutzman@nps.edu">Don Brutzman</a><br><b>Sent: </b>Thursday, September 22, 2016 3:09 PM<br><b>To: </b><a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>; <a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Cc: </b><a href="mailto:roy.walmsley@ntlworld.com">Roy Walmsley</a><br><b>Subject: </b>Re: Using X3D Object Model XSD and tools outside of X3D<o:p></o:p></p></div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman",serif'><o:p> </o:p></span></p><p class=MsoNormal>On 9/20/2016 6:11 PM, yottzumm@gmail.com wrote:<o:p></o:p></p><p class=MsoNormal>> What is the potential for using the X3D Object Model XSD, “schema” XML and tools to generate an Object Model and related APIs outside of the context of X3D?  I already sent Don and Roy a skype message.  Currently, we are using swagger.io, but I would like to start from an XML or JSON context instead of a YAML context, so translation or another tool is indicated.  Is there a good tool to translate XML Schema or XML Object Model to swagger YAML, and thus providing the way for a REST API and other artifacts in many languages, without having to write XSLT for all of them?n</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Also, I am interested in generating SQL or NoSQL (ElasticSearch) Schema from the Object Model.</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Just trying to feel out the domain of autogeneration again after years of being away (23 years).</p><p class=MsoNormal>========</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>On 9/22/2016 2:17 AM, John Carlson wrote:</p><p class=MsoNormal>> Don, given I have my own XML schema, how hard or easy is it to generate my own object model and Java API?  How does this compare to the OpenAPI Specification?  (for REST).   Can the networking group leverage any of this work to create a REST API?</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Thanks</p><p class=MsoNormal>========</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Your question is much appreciated John.  (Apologies for delayed response, am attending MTS/IEEE OCEANS 2016 Conference.)</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>It is good to finally begin proceeding with object-oriented code-autogeneration testing of the X3D Object Model.  As testing to date has shown, we think that the interface hierarchy defined in the X3D Abstract Specification will be further shown as viable and correct, with occasional small corrections and refinements to match the rigor of an even-stricter object model.  At the same time, we are being very careful to avoid inserting any constructs that are peculiar to any particular programming language.  Continued testing will help ensure that a language-independent object model is being expressed.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                X3D Part 1: Architecture and base components</p><p class=MsoNormal>                4.4.2.3 Interface hierarchy</p><p class=MsoNormal>                http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#InterfaceHierarchy</p><p class=MsoNormal>                (original Figure 4.2 by Joe Williams)</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>This generality is not a complete surprise, since perhaps two dozen codebases have implemented the X3D/VRML interface hierarchy.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                http://www.web3d.org/x3d/content/examples/X3dResources.html#Applications</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Roy and I have anticipated broader potential usage of the X3D Object Model.  This is why it is expressed in a simple form of XML.  To facilitate conversions, we have also created a simple stylesheet that can be adapted to produce alternate forms.  Reference links and example conversions follow.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                X3D Object Model (autogenerated from X3D XML schema)</p><p class=MsoNormal>                http://www.web3d.org/specifications/X3DObjectModel-3.3.xml</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                http://www.web3d.org/x3d/stylesheets/AllX3dElementsAttributesTextTemplate.xslt</p><p class=MsoNormal>                http://www.web3d.org/x3d/stylesheets/AllX3dElementsAttributes3.3.xml</p><p class=MsoNormal>                http://www.web3d.org/x3d/stylesheets/AllX3dElementsAttributes3.3.txt</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The template above simply marches through the object model and outputs each element and attribute.  So you have a node/field inventory that is easily checked.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Next.  It will be good to learn more about the relevant parts of both YAML and OpenApI, as you think best.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                https://en.wikipedia.org/wiki/YAML</p><p class=MsoNormal>                http://yaml.org</p><p class=MsoNormal>                http://www.yaml.org/start.html</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                https://en.wikipedia.org/wiki/OpenAPI_Specification</p><p class=MsoNormal>                https://openapis.org/specification</p><p class=MsoNormal>                https://openapis.org</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>SQL/NoSQL are further interesting!  I think it will be important in each of these cases to be clear what the focus is: producing X3D documents, producing validation schema, etc. etc.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Looking ahead.  If you can show example syntax of what kinds out outputs you might like from the X3D Object Model, am happy to help adapt the template stylesheet to autogenerate the goal output.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks for considering the possibilities!  Onward we go.  8)</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>all the best, Don</p><p class=MsoNormal>-- </p><p class=MsoNormal>Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman@nps.edu</p><p class=MsoNormal>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149</p><p class=MsoNormal>X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>