To present this information on the Web, these database records must be con- verted into HTML text and formatted properly as a table so that they can be viewed in a Web browser. <table border=”1”> <tr> <th>ID</th> <th>Name</th> <th>City</th> <th>St</th> <th>Zip</th> </tr> <tr> <td>100</td> <td>Ray Kinsella</td> <td>Anderson</td> <td>IN</td> <td>46011</td> </tr> <tr> <td>101</td> <td>Rick Blaine</td> <td>Manchester</td> <td>NH</td> <td>02522</td> </tr> </table> Look closely at the above code to see how HTML falls short. I turn meaningful clusters of information into a format that looks good in a browser but isn’t useful for much else. In a database, related fields such as ID, Name, and Address make up a customer record, but after they have been converted to HTML, they’re just row and column formatting instructions and their contents — thus, the concept of a customer is gone. Such a solution would be acceptable if you only want to display information in a Web browser, but many people are discovering needs that go far beyond that. For example, searching for information within an HTML document is very lim- ited. How would I be able to retrieve from my HTML file the names of all of my customers from Indiana who spend over $1,000 annually? That kind of query is far beyond the scope of HTML. And, even if I were to develop some convoluted way to get this information through JavaScript, I’d have to throw all that away if I ever wanted to move my information to another non-HTML environment, such as a Java application, Windows program, or even a cellular phone. Think of HTML as a sort of information blender: Add a dash of data and a pinch of formatting instructions into the pitcher, turn the power on high, and out comes a pureed mixture of the two. Like creating a milkshake by mixing ice 9 Chapter 1: Introducing the X-Team