source: libjibx-java-1.1/trunk/fuentes/docs/index.html @ 4701

Last change on this file since 4701 was 4701, checked in by Juanma, 3 years ago

Port to xenial

File size: 15.9 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2    "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4<head>
5  <title>JiBX: Binding XML to Java Code</title>
6      <style type="text/css">
7        @import url("./style/tigris.css");
8        @import url("./style/maven.css");
9    .dtd-comment {
10      color: #993399;
11      font-weight: bold;
12      </style>
13      <script type="text/javascript">
14        if (document.layers) {
15          document.writeln('<link rel="stylesheet" type="text/css" href="./style/ns4_only.css" media="screen" /><link rel="stylesheet" type="text/css" href="./style/maven_ns4_only.css" media="screen" />')
16        }
17      </script>
18      <link rel="stylesheet" type="text/css" href="./style/print.css" media="print" />
19  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
20</head>
21<body class="composite">
22<div id="banner">
23<table border="0" cellspacing="0" cellpadding="8" width="100%">
24  <tbody>
25    <tr>
26      <td><h1>JiBX: Binding XML to Java Code</h1>
27      </td>
28      <td>
29      <div align="right" id="login"><a href="http://sourceforge.net">
30      <img src="http://sourceforge.net/sflogo.php?group_id=69358&amp;type=5"
31        width="210" height="62" border="0" alt="SourceForge.net Logo"></a></div>
32      </td>
33    </tr>
34  </tbody>
35</table>
36</div>
37<div id="breadcrumbs">
38<table border="0" cellspacing="0" cellpadding="4" width="100%">
39  <tbody>
40    <tr>
41      <td>
42        <div align="right">
43          <a href="./index.html">Home Page</a> |
44          <a href="http://www.sourceforge.net/projects/jibx/">SourceForge Page</a> |
45          <a href="./mail-lists.html">Mailing Lists</a> |
46          <a href="http://wiki.jibx.org">Wiki</a> |
47          <a href="./bugs.html">Bugs</a> |
48          <a href="http://sourceforge.net/project/showfiles.php?group_id=69358">Downloads</a>
49        </div>
50      </td>
51    </tr>
52  </tbody>
53</table>
54</div>
55<table border="0" cellspacing="0" cellpadding="8" width="100%" id="main">
56  <tbody>
57        <tr valign="top">
58          <td id="leftcol" width="20%">
59                <div id="navcolumn">
60
61
62                  <div>
63            <strong>JiBX Basics</strong>
64                              <div>
65            <small>
66                    <span class="menu-selection">Overview</span>
67                  </small>
68                              <div>
69            <small>
70                    <a href="flexibility.html">Flexibility</a>
71                  </small>
72                </div>
73                                    <div>
74            <small>
75                    <a href="performance.html">Performance</a>
76                  </small>
77                </div>
78                                    <div>
79            <small>
80                    <a href="clean-code.html">Clean code</a>
81                  </small>
82                </div>
83                      </div>
84                                    <div>
85            <small>
86                    <a href="status.html">News and Status</a>
87                  </small>
88                </div>
89                                    <div>
90            <small>
91                    <a href="comments.html">User Comments</a>
92                  </small>
93                </div>
94                                    <div>
95            <small>
96                    <a href="sponsors.html">Sponsors</a>
97                  </small>
98                </div>
99                                    <div>
100            <small>
101                    <a href="support.html">Support and Training</a>
102                  </small>
103                </div>
104                                    <div>
105            <small>
106                    <a href="bugs.html">Bugs</a>
107                  </small>
108                </div>
109                                    <div>
110            <small>
111                    <a href="start.html">Getting Started</a>
112                  </small>
113                              <div>
114            <small>
115                    <a href="tutorial/binding-tutorial.html">Binding Tutorial</a>
116                  </small>
117                              <div>
118            <small>
119                    <a href="tutorial/binding-start.html">A basic binding</a>
120                  </small>
121                </div>
122                                    <div>
123            <small>
124                    <a href="tutorial/binding-extras.html">Binding extras</a>
125                  </small>
126                </div>
127                                    <div>
128            <small>
129                    <a href="tutorial/binding-structures.html">Structure mapping</a>
130                  </small>
131                </div>
132                                    <div>
133            <small>
134                    <a href="tutorial/binding-collects.html">Collections and arrays</a>
135                  </small>
136                </div>
137                                    <div>
138            <small>
139                    <a href="tutorial/binding-mappings.html">Using mappings</a>
140                  </small>
141                </div>
142                                    <div>
143            <small>
144                    <a href="tutorial/binding-advanced.html">Advanced binding</a>
145                  </small>
146                </div>
147                                    <div>
148            <small>
149                    <a href="tutorial/binding-extend.html">Method hooks</a>
150                  </small>
151                </div>
152                                    <div>
153            <small>
154                    <a href="tutorial/binding-custom.html">Custom code</a>
155                  </small>
156                </div>
157                      </div>
158                                    <div>
159            <small>
160                    <a href="bindcomp.html">Binding Compiler</a>
161                  </small>
162                </div>
163                                    <div>
164            <small>
165                    <a href="bindonload.html">Binding on Load</a>
166                  </small>
167                </div>
168                                    <div>
169            <small>
170                    <a href="runtime.html">Runtime</a>
171                  </small>
172                </div>
173                                    <div>
174            <small>
175                    <a href="extras.html">JiBX Extras</a>
176                  </small>
177                </div>
178                                    <div>
179            <small>
180                    <a href="building.html">Building JiBX</a>
181                  </small>
182                </div>
183                      </div>
184                                    <div>
185            <small>
186                    <a href="schema.html">Schema Compatibility</a>
187                  </small>
188                </div>
189                                    <div>
190            <small>
191                    <a href="mail-lists.html">Mailing Lists</a>
192                  </small>
193                </div>
194                                    <div>
195            <small>
196                    <a href="faq.html">FAQ</a>
197                  </small>
198                </div>
199                                    <div>
200            <small>
201                    <a href="contributing.html">Contributing</a>
202                  </small>
203                </div>
204                                    <div>
205            <small>
206                    <a href="jibx-license.html">License</a>
207                  </small>
208                </div>
209                      </div>
210                        <div>
211            <strong>Binding Definition</strong>
212                              <div>
213            <small>
214                    <a href="details/binding-overview.html">Definition details</a>
215                  </small>
216                              <div>
217            <small>
218                    <a href="details/contexts.html">Definition contexts</a>
219                  </small>
220                </div>
221                                    <div>
222            <small>
223                    <a href="details/conversions.html">Conversions</a>
224                  </small>
225                </div>
226                                    <div>
227            <small>
228                    <a href="details/xml-summary.html">XML summary</a>
229                  </small>
230                </div>
231                                    <div>
232            <small>
233                    <a href="details/binding-element.html">&lt;binding&gt; element</a>
234                  </small>
235                </div>
236                                    <div>
237            <small>
238                    <a href="details/include-element.html">&lt;include&gt; element</a>
239                  </small>
240                </div>
241                                    <div>
242            <small>
243                    <a href="details/format-element.html">&lt;format&gt; element</a>
244                  </small>
245                </div>
246                                    <div>
247            <small>
248                    <a href="details/namespace-element.html">&lt;namespace&gt; element</a>
249                  </small>
250                </div>
251                                    <div>
252            <small>
253                    <a href="details/mapping-element.html">&lt;mapping&gt; element</a>
254                  </small>
255                </div>
256                                    <div>
257            <small>
258                    <a href="details/value-element.html">&lt;value&gt; element</a>
259                  </small>
260                </div>
261                                    <div>
262            <small>
263                    <a href="details/structure-element.html">&lt;structure&gt; element</a>
264                  </small>
265                </div>
266                                    <div>
267            <small>
268                    <a href="details/collection-element.html">&lt;collection&gt; element</a>
269                  </small>
270                </div>
271                                    <div>
272            <small>
273                    <a href="details/binding-attributes.html">Attribute groups</a>
274                  </small>
275                </div>
276                      </div>
277                      </div>
278                        <div>
279            <strong>Usage API</strong>
280                              <div>
281            <small>
282                    <a href="./api/index.html">Runtime JavaDocs</a>
283                  </small>
284                </div>
285                      </div>
286                        <div>
287            <strong>Subprojects</strong>
288                              <div>
289            <small>
290                    <a href="eclipse/index.html">Eclipse Plug-in</a>
291                  </small>
292                              <div>
293            <small>
294                    <a href="eclipse/index.html">Introduction</a>
295                  </small>
296                </div>
297                                    <div>
298            <small>
299                    <a href="eclipse/install.html">Install</a>
300                  </small>
301                </div>
302                                    <div>
303            <small>
304                    <a href="eclipse/usage.html">Usage</a>
305                  </small>
306                </div>
307                      </div>
308                                    <div>
309            <small>
310                    <a href="jibxtools/index.html">Generator Tools</a>
311                  </small>
312                </div>
313                                    <div>
314            <small>
315                    <a href="axis2/index.html">Axis2 Usage</a>
316                  </small>
317                </div>
318                                    <div>
319            <small>
320                    <a href="jibxsoap/index.html">JibxSoap</a>
321                  </small>
322                </div>
323                                    <div>
324            <small>
325                    <a href="xsd2jibx/index.html">Xsd2Jibx</a>
326                  </small>
327                </div>
328                      </div>
329     
330
331        </div>
332      </td>
333      <td>
334
335
336
337
338
339<div id="bodycol">
340<div class="app">
341<div class="h3">
342<h3><a name="jibx-intro">What is JiBX?</a></h3>
343<p>JiBX is a framework for binding XML data to Java objects. It
344lets you work with data from XML documents using your own class
345structures. The JiBX framework handles all the details of converting
346your data to and from XML based on your instructions. JiBX is designed
347to perform the translation between internal data structures and XML with
348very high efficiency, but still allows you a high degree of control
349over the translation process.</p>
350
351<p>How does it manage this? JiBX uses <a href="tutorial/binding-tutorial.html"><i>binding
352definition</i></a>
353documents to define the rules for how your Java objects are converted to
354or from XML (the <em>binding</em>). At some point after you've compiled
355your source code into class files you execute the first part of the
356JiBX framework, the <a href="bindcomp.html"><i>binding compiler</i></a>. This compiler enhances
357binary class files produced by the Java compiler, adding code to handle
358converting instances of the classes to or from XML. After running the
359binding compiler you can continue the normal steps you take in assembling your
360application (such as building jar files, etc.). You can also skip the binding
361compiler as a separate step and instead bind classes
362<a href="bindonload.html">directly at runtime</a>, though this approach has some
363drawbacks.</p>
364
365<p>The second part of the JiBX framework is the <a href="runtime.html"><i>binding
366runtime</i></a>. The enhanced class files generated by the binding
367compiler use this runtime component both for actually building objects
368from an XML input document (called <i>unmarshalling</i>, in data
369binding terms) and for generating an XML output document from objects
370(called <i>marshalling</i>). The runtime uses a parser implementing
371the XMLPull API for handling input documents, but is otherwise
372self-contained.</p>
373
374<p>This approach gives several important benefits:</p>
375<ol>
376<li><a href="flexibility.html">Flexibility</a> - Use any class structure you want, so long as
377you can tell JiBX how to translate it to and from XML.</li>
378<li><a href="performance.html">Performance</a> - Pull parsing and class file enhancement
379techniques let JiBX build high-performance marshalling and
380unmarshalling code directly into your classes.</li>
381<li><a href="clean-code.html">Clean code</a> - You write the code and JiBX works with it, not
382the other way around!</li>
383</ol>
384
385<p>We're not aware of any recent published performance comparisions between data
386binding frameworks, but you can view some older results from the
387<a href="https://bindmark.dev.java.net/old-index.html">BindMark</a> tests, along
388with a similar study focused around
389<a href="http://webservices.sys-con.com/read/114130.htm">Web services
390performance.</a>. These sets of results are both from late 2005, but to our
391knowledge there haven't been any significant changes in performance since then.</p>
392
393<p>You can also see the
394earlier performance study by JiBX author Dennis Sosnoski,
395<a href="http://www.ibm.com/developerworks/library/x-databdopt2/">Data
396Binding, Part 2: Performance</a>, on the IBM developerWorks XML Zone. Besides
397these performance issues, Dennis has also covered the
398<a href="http://www.ibm.com/developerworks/java/library/j-cwt09065/index.html">JiBX 1.X code generation architecture</a>, and
399several aspects of the JiBX 2.0 design, in his developerWorks
400<a href="http://www.ibm.com/developerworks/views/java/libraryview.jsp?search_by=classworking%20toolkit:">Java
401Classworking Toolkit</a> column.</p>
402
403<p>If you're using JiBX in your development work, check out the
404<a href="http://www.ohloh.net/projects/jibx">JiBX page</a> on the Ohloh
405Open Source networking site and consider listing yourself as a user. Ohloh is a
406great site for tracking the open source software that developers are using, and
407you get to rate the projects based on your experience or even write a review
408that can help out other developers considering a project.</p>
409
410</div>
411</div>
412</div>
413
414
415
416      </td>
417    </tr>
418  </tbody>
419</table>
420<div id="footer">
421<table border="0" cellspacing="0" cellpadding="4">
422  <tbody>
423    <tr>
424      <td> &copy; 2003-2008, Dennis M. Sosnoski (<a href="http://www.sosnoski.com">Sosnoski Software Solutions, Inc.</a>).
425      Licensed to the JiBX Project for free distribution and use. </td>
426    </tr>
427  </tbody>
428</table>
429</div>
430<br>
431</body>
432</html>
Note: See TracBrowser for help on using the repository browser.