■CONTENTS
xix
■CHAPTER 22 Project 3: XML for All Occasions . . . . . . . . . . . . . . . . . . . . . . . . 421
What’s the Problem? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Specific Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
Useful Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
Preparations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
First Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
Creating a Simple Content Handler. . . . . . . . . . . . . . . . . . . . . . . . . . 425
Creating HTML Pages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
Second Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
A Dispatcher Mix-In Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
Factoring Out the Header, Footer, and Default Handling . . . . . . . . 432
Support for Directories. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
The Event Handlers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
What Now? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
■CHAPTER 23 Project 4: In the News . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
What’s the Problem? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Specific Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
Useful Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
Preparations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
First Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Second Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
Further Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
What Now? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
■CHAPTER 24 Project 5: A Virtual Tea Party . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
What’s the Problem? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Specific Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Useful Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
What’s It For? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
Preparations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
First Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
The ChatServer Class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
The ChatSession Class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Putting It Together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
Hetland_519XFront.fm Page xix Tuesday, August 23, 2005 5:04 AM