Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-release > by-pkgid > 4b613ef39a28aa9afece4551b2ab42b4 > files > 4

ws-jaxme-manual-0.5.2-19.mga7.noarch.rpm

<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Appendix&nbsp;B.&nbsp;FAQ</title><meta content="DocBook XSL Stylesheets Vsnapshot" name="generator"><link rel="home" href="index.html" title="The JaxMe 2 manual"><link rel="up" href="index.html" title="The JaxMe 2 manual"><link rel="prev" href="apa.html" title="Appendix&nbsp;A.&nbsp;License"><link rel="next" href="go01.html" title="Glossary"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Appendix&nbsp;B.&nbsp;FAQ</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="apa.html">Prev</a>&nbsp;</td><th align="center" width="60%">&nbsp;</th><td align="right" width="20%">&nbsp;<a accesskey="n" href="go01.html">Next</a></td></tr></table><hr></div><div class="appendix"><div class="titlepage"><div><div><h1 class="title"><a name="N1062B"></a>Appendix&nbsp;B.&nbsp;FAQ</h1></div></div></div><p>This section contains a list of frequently asked questions. And, of course, their answers. :-)</p><div class="qandaset"><a name="N10630"></a><dl><dt>B.1.  <a href="apb.html#N10632">General questions</a></dt><dd><dl><dt>Q: <a href="apb.html#N10637">What is it?</a></dt><dt>Q: <a href="apb.html#N1063E">Why should I choose JaxMe and not JAXB?</a></dt><dt>Q: <a href="apb.html#N10653">Why the name "JaxMe"?</a></dt><dt>Q: <a href="apb.html#N1065C">Are there any reference projects?</a></dt></dl></dd><dt>B.2.  <a href="apb.html#N1066B">The Generator</a></dt><dd><dl><dt>Q: <a href="apb.html#N10670">What is the supported subset of XML Schema?</a></dt><dt>Q: <a href="apb.html#N1068D">What is the supported subset of JAXB?</a></dt><dt>Q: <a href="apb.html#N1069B">How is the EJB support working?</a></dt><dt>Q: <a href="apb.html#N106A6">What are JaxMe's "find methods" and "list methods"?</a></dt><dt>Q: <a href="apb.html#N106B1">Why are the field names uppercased when using the JaxMeJdbcSG?</a></dt></dl></dd><dt>B.3.  <a href="apb.html#N106BA">The runtime</a></dt><dd><dl><dt>Q: <a href="apb.html#N106BF">How is Tamino supported?</a></dt><dt>Q: <a href="apb.html#N106CF">How is XML:DB supported?</a></dt></dl></dd></dl><table border="0" style="width: 100%;"><colgroup><col align="left" width="1%"><col></colgroup><tbody><tr class="qandadiv"><td colspan="2" valign="top" align="left"><h3 class="title"><a name="N10632"></a>B.1. General questions</h3></td></tr><tr class="toc"><td colspan="2" valign="top" align="left"><dl><dt>Q: <a href="apb.html#N10637">What is it?</a></dt><dt>Q: <a href="apb.html#N1063E">Why should I choose JaxMe and not JAXB?</a></dt><dt>Q: <a href="apb.html#N10653">Why the name "JaxMe"?</a></dt><dt>Q: <a href="apb.html#N1065C">Are there any reference projects?</a></dt></dl></td></tr><tr class="toc"><td colspan="2" valign="top" align="left"><p>This subsection contains questions concerning the whole project as such.</p></td></tr><tr class="question"><td valign="top" align="left"><a name="N10637"></a><a name="N10638"></a><p><b>Q:</b></p></td><td valign="top" align="left"><p>What is it?</p></td></tr><tr class="answer"><td valign="top" align="left"><p><b>A:</b></p></td><td valign="top" align="left"><p>
          JaxMe 2 is an implementation of JAXB, the specification for Java/XML binding. In short you can
          describe JaxMe as a source generator that takes various sources as input (for example, an XML schema,
          a DTD, a Java bean class) and creates sources that allow you to convert a matching XML document into
          a Java object or vice versa, convert the Java object into XML. JaxMe extends JAXB with a lot of features.
          See the next question on that topic.</p></td></tr><tr class="question"><td valign="top" align="left"><a name="N1063E"></a><a name="N1063F"></a><p><b>Q:</b></p></td><td valign="top" align="left"><p>Why should I choose JaxMe and not JAXB?</p></td></tr><tr class="answer"><td valign="top" align="left"><p><b>A:</b></p></td><td valign="top" align="left"><p>That's definitely a question you should ask yourself. The JAXB reference implementation is
            implemented by a team of excellent technicians who have a vision. It is supported by Sun and other
            large vendors.</p><p>On the other hand, you should understand that JAXB has a limited scope. As a reference
            implementation, it has to follow the specification, but can hardly do a step beyond. And in
            some sense the scope can be described as the lowest common denominator of Sun and the other
            vendors. JaxMe is (at least as of this writing) definitely less tested, less stable, less
            mature and all that stuff you don't want. On the other hand, it has some nice features which
            you possibly really want:
            </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">JaxMe is much, much more extensible and customizable than JAXB: It was written
                from the ground up for that. And you have the source. The main problem of source generators
                has always been whether you have the source or not. If you do, then a source generator can
                do everything for you that you want and become really, really useful, grow with your
                abilities and the project. On the other hand, without the source you will almost definitely
                at some point ask yourself why you didn't implement all the stuff manually.</li><li class="listitem"><p>It includes a persistency layer. The persistency layer is a database abstraction
                  and allows you to read XML from a database or store it into the database with just a few
                  instructions. You do not care for the hazzle of low level API's like xml:db or JDBC, you
                  just say "save it" and it does. The most important advantage of a persistency framework
                  is that you become more independent from the database. With JaxMe 1 projects have been
                  developed on an SQL database, for example MySQL and later on moved to Tamino, an XML
                  database. It also happened vice versa, where it makes sense.</p><p>Even more, you aren't restricted to a single database. You can mix data sources,
                  depending on the document type, and choose for any document type whichever suites the
                  most.</p></li><li class="listitem">We definitely recommend the use of an XML database. After all, why not use the
                features that XML gives you? Normalization definitely has its goods and should still be
                applied where it makes sense. However, in the real life, this is not always the case.
                Besides, some of us (in particular the developers) are still stuck in the relational world.
                JaxMe can create a mapping between Java objects and SQL databases for you. The persistency
                layer translates "create", "update", "delete" or "read" operations into a set of SQL
                instructions. These SQL instructions are performed by JaxMe on your demand. There is almost
                no difference (besides the structural limitations, of course) between working with an SQL
                database and an XML database.</li></ol></div></td></tr><tr class="question"><td valign="top" align="left"><a name="N10653"></a><a name="N10654"></a><p><b>Q:</b></p></td><td valign="top" align="left"><p>Why the name "JaxMe"?</p></td></tr><tr class="answer"><td valign="top" align="left"><p><b>A:</b></p></td><td valign="top" align="left"><p>After working with JAXP, JAXB, JAXM and all the other stuff for quite some time I began to
            automatically associate "JAXsomethingE" with anything related to Java and XML. So this is "Me"
            JAX or JaxMe.</p><p>The name is ridiculous. I know. Sometimes we'll probably find something better. (And, who
            knows, perhaps we even find someone changing the sources then ... :-)</p></td></tr><tr class="question"><td valign="top" align="left"><a name="N1065C"></a><a name="N1065D"></a><p><b>Q:</b></p></td><td valign="top" align="left"><p>Are there any reference projects?</p></td></tr><tr class="answer"><td valign="top" align="left"><p><b>A:</b></p></td><td valign="top" align="left"><p>As of this writing, JaxMe 2 isn't sufficiently mature for large projects.
            However, JaxMe 1 has been used for really serious issues:
            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">FleetBoard (http://www.fleetboard.com/) is a telematics and logistics solution.
                Large parts of it are realized with the JaxMe EJB generator and a DB2 database as the
                backend. Other parts are based on a JaxMe predecessor and Tamino.</li><li class="listitem">Justus II (http://www.softwareag.com/germany/referenzen/PDF/CR_Justus_D.pdf) is
                a large XML application running on Tomcat and an Oracle database as the backend. It is
                built from the ground up using JaxMe.</li></ul></div><p>
          </p><p>If you know of other projects, please let us know.</p></td></tr><tr class="qandadiv"><td colspan="2" valign="top" align="left"><h3 class="title"><a name="N1066B"></a>B.2. The Generator</h3></td></tr><tr class="toc"><td colspan="2" valign="top" align="left"><dl><dt>Q: <a href="apb.html#N10670">What is the supported subset of XML Schema?</a></dt><dt>Q: <a href="apb.html#N1068D">What is the supported subset of JAXB?</a></dt><dt>Q: <a href="apb.html#N1069B">How is the EJB support working?</a></dt><dt>Q: <a href="apb.html#N106A6">What are JaxMe's "find methods" and "list methods"?</a></dt><dt>Q: <a href="apb.html#N106B1">Why are the field names uppercased when using the JaxMeJdbcSG?</a></dt></dl></td></tr><tr class="toc"><td colspan="2" valign="top" align="left"><p>The following questions are related to the JaxMe generator</p></td></tr><tr class="question"><td valign="top" align="left"><a name="N10670"></a><a name="N10671"></a><p><b>Q:</b></p></td><td valign="top" align="left"><p>What is the supported subset of XML Schema?</p></td></tr><tr class="answer"><td valign="top" align="left"><p><b>A:</b></p></td><td valign="top" align="left"><p>As of this writing, the following is supported:
            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">All simple datatypes, excluding time intervals (minor issue, some hours work,
                if anyone needs it)</li><li class="listitem">Atomic elements, with and without attributes</li><li class="listitem">Complex elements with content type empty, sequence, choice, or all.</li><li class="listitem">Groups (but not nested groups)</li></ul></div><p>The following is not yet supported:
            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">Complex elements with simple content (minor issue, mainly requires writing a
                test suite)</li><li class="listitem">Mixed content</li><li class="listitem">Wildcards</li><li class="listitem">Key specifications</li><li class="listitem">Recursion (Minor issue, mainly requires writing a test suite)</li></ul></div></td></tr><tr class="question"><td valign="top" align="left"><a name="N1068D"></a><a name="N1068E"></a><p><b>Q:</b></p></td><td valign="top" align="left"><p>What is the supported subset of JAXB?</p></td></tr><tr class="answer"><td valign="top" align="left"><p><b>A:</b></p></td><td valign="top" align="left"><p>Lots of features are missing, in particular:
          </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">External schema binding (requires writing a stylesheet generator)</li><li class="listitem">Model group binding</li><li class="listitem">Mixed content</li></ul></div></td></tr><tr class="question"><td valign="top" align="left"><a name="N1069B"></a><a name="N1069C"></a><p><b>Q:</b></p></td><td valign="top" align="left"><p>How is the EJB support working?</p></td></tr><tr class="answer"><td valign="top" align="left"><p><b>A:</b></p></td><td valign="top" align="left"><p>As of this writing, the following applies for JaxMe 1 only.
            EJB support is not yet included in JaxMe 2. This will hopefully change soon.</p><p>JaxMe 1 contains a generator for entity beans with bean managed persistence.
            In short these can very well be compared with CMP entity beans, only you use JaxMe
            to create it and the query language is unavailable. On the other hand, they are
            typically faster, because they follow the design pattern of value objects.</p><p>The bean generator also supports the generation of stateless session beans that perform
            queries and return XML data. (So called list methods.)</p></td></tr><tr class="question"><td valign="top" align="left"><a name="N106A6"></a><a name="N106A7"></a><p><b>Q:</b></p></td><td valign="top" align="left"><p>What are JaxMe's "find methods" and "list methods"?</p></td></tr><tr class="answer"><td valign="top" align="left"><p><b>A:</b></p></td><td valign="top" align="left"><p>As of this writing, the following applies for JaxMe 1 only.
            EJB support is not yet included in JaxMe 2. This will hopefully change soon.</p><p>You know what an SQL view is? Forgetting updateable views, one could describe them as a
            stored query, that returns some data in a fixed format. In essence this is what JaxMe's find
            and list methods are: You specify a query that is compiled by the source code generator. The
            result are Java sources that can perform the specified query, possibly configured with some
            parameters that you specify as well.</p><p>The difference between find and list methods is that the former return objects which you
            may modify and store back. So find methods are somewhat closer to updateable views, because
            they are bound to a specific table.</p></td></tr><tr class="question"><td valign="top" align="left"><a name="N106B1"></a><a name="N106B2"></a><p><b>Q:</b></p></td><td valign="top" align="left"><p>Why are the field names uppercased when using the JaxMeJdbcSG?</p></td></tr><tr class="answer"><td valign="top" align="left"><p><b>A:</b></p></td><td valign="top" align="left"><p>Field names are built from column names, which are in turn read via JDBC metadata.
            However, most databases are storing column names uppercased internally.</p><p>As a workaround, you may specify an alternative field name. See the IPADDRESS column
            in the Session example for how to do that.</p></td></tr><tr class="qandadiv"><td colspan="2" valign="top" align="left"><h3 class="title"><a name="N106BA"></a>B.3. The runtime</h3></td></tr><tr class="toc"><td colspan="2" valign="top" align="left"><dl><dt>Q: <a href="apb.html#N106BF">How is Tamino supported?</a></dt><dt>Q: <a href="apb.html#N106CF">How is XML:DB supported?</a></dt></dl></td></tr><tr class="toc"><td colspan="2" valign="top" align="left"><p>The following questions are related to the JaxMe runtime.</p></td></tr><tr class="question"><td valign="top" align="left"><a name="N106BF"></a><a name="N106C0"></a><p><b>Q:</b></p></td><td valign="top" align="left"><p>How is Tamino supported?</p></td></tr><tr class="answer"><td valign="top" align="left"><p><b>A:</b></p></td><td valign="top" align="left"><p>Software AG, the vendor of Tamino, is the employer of Jochen Wiedmann (JaxMe's head
            developer). Jochen uses Tamino in his daily work, so support for Tamino is essential. He
            considers work with Tamino as definitely much more fun than using DB2, Oracle, or
            whatsoever.</p><p>The current Tamino manager is a simple thing implementing native HTTP access to Tamino.
            It is a generic manager, not a specific manager per document type. (Working with XML databases
            is much simpler for an XML application than using JDBC.) However, the following is not yet
            supported, although it really should:
            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">Tamino transactions</li><li class="listitem">Find and list methods (truly important for the XQuery language)</li><li class="listitem">Use of the official TaminoAPI4J (the current manager is based on a simple SAX handler)</li></ul></div></td></tr><tr class="question"><td valign="top" align="left"><a name="N106CF"></a><a name="N106D0"></a><p><b>Q:</b></p></td><td valign="top" align="left"><p>How is XML:DB supported?</p></td></tr><tr class="answer"><td valign="top" align="left"><p><b>A:</b></p></td><td valign="top" align="left"><p>There is a generic XmlDbManager, which is tested in a JUnit test against eXist. It
            is a generic manager, not a specific manager per document type. (Working with XML databases
            is much simpler for an XML application than using JDBC.) However, so far no productive use
            is known.</p></td></tr></tbody></table></div></div><div class="navfooter"><hr><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="apa.html">Prev</a>&nbsp;</td><td align="center" width="20%">&nbsp;</td><td align="right" width="40%">&nbsp;<a accesskey="n" href="go01.html">Next</a></td></tr><tr><td valign="top" align="left" width="40%">Appendix&nbsp;A.&nbsp;License&nbsp;</td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td valign="top" align="right" width="40%">&nbsp;Glossary</td></tr></table></div></body></html>