Introduction |
|
1 | (1) |
|
How This Book Is Structured |
|
|
2 | (1) |
|
|
3 | (1) |
|
|
4 | (3) |
|
|
|
Hour 1: Getting to Know XML |
|
|
7 | (14) |
|
|
8 | (5) |
|
|
13 | (2) |
|
|
15 | (6) |
|
Hour 2: Creating XML Documents |
|
|
21 | (22) |
|
|
21 | (8) |
|
|
29 | (3) |
|
Constructing Your First XML Document |
|
|
32 | (3) |
|
Viewing Your XML Document |
|
|
35 | (8) |
|
Part II: Defining XML Data |
|
|
|
Hour 3: Defining Data with DTD Schemas |
|
|
43 | (28) |
|
Creating Your Own Markup Languages |
|
|
43 | (2) |
|
Schemas and XML Data Modeling |
|
|
45 | (4) |
|
Comparing Schema Technologies |
|
|
49 | (1) |
|
The Importance of Document Validation |
|
|
50 | (1) |
|
|
51 | (4) |
|
Digging Deeper into Elements |
|
|
55 | (6) |
|
Putting Attributes to Work |
|
|
61 | (3) |
|
|
64 | (7) |
|
Hour 4: Digging Deeper into XML Documents |
|
|
71 | (18) |
|
Leaving a Trail with Comments |
|
|
71 | (1) |
|
Characters of Text in XML |
|
|
72 | (3) |
|
The Wonderful World of Entities |
|
|
75 | (6) |
|
The Significance of Notations |
|
|
81 | (2) |
|
|
83 | (1) |
|
Using XML to Create an Online Radio |
|
|
83 | (6) |
|
Hour 5: Putting Namespaces to Use |
|
|
89 | (12) |
|
|
89 | (2) |
|
|
91 | (2) |
|
Declaring and Using Namespaces |
|
|
93 | (8) |
|
Hour 6: Using SVG to Draw Scalable Graphics |
|
|
101 | (28) |
|
|
102 | (1) |
|
SVG and Related Technologies |
|
|
103 | (2) |
|
|
105 | (1) |
|
|
106 | (18) |
|
Embedding an SVG Drawing in a Web Page |
|
|
124 | (5) |
|
|
129 | (28) |
|
XML Schema Construction Basics |
|
|
129 | (4) |
|
Working with Simple Types |
|
|
133 | (10) |
|
Digging into Complex Types |
|
|
143 | (7) |
|
Namespaces and XSD Schemas |
|
|
150 | (1) |
|
A Complete XML Schema Example |
|
|
151 | (3) |
|
RELAX NG and the Future of XML Schema |
|
|
154 | (3) |
|
Hour 8: Validating XML Documents |
|
|
157 | (16) |
|
Document Validation Revisited |
|
|
157 | (2) |
|
|
159 | (6) |
|
Repairing Invalid Documents |
|
|
165 | (8) |
|
Part III: Formatting and Displaying XML Documents |
|
|
|
Hour 9: XML Formatting Strategies |
|
|
173 | (16) |
|
Style Sheets and XML Formatting |
|
|
173 | (6) |
|
Leveraging CSS, XSLT, and XSL-FO |
|
|
179 | (1) |
|
|
180 | (9) |
|
Hour 10: Styling XML Content with CSS |
|
|
189 | (34) |
|
|
189 | (8) |
|
Wiring a Style Sheet to an XML Document |
|
|
197 | (1) |
|
Your First CSS Style Sheet |
|
|
198 | (3) |
|
|
201 | (11) |
|
The Ins and Outs of Text Formatting |
|
|
212 | (5) |
|
Your Second Complete Style Sheet |
|
|
217 | (6) |
|
Hour 11: Getting Started with XSL |
|
|
223 | (22) |
|
|
223 | (3) |
|
The Pieces and Parts of XSL |
|
|
226 | (4) |
|
|
230 | (6) |
|
Wiring an XSL Style Sheet to an XML Document |
|
|
236 | (1) |
|
Your First XSLT Style Sheet |
|
|
237 | (8) |
|
Hour 12: Transforming XML with XSLT |
|
|
245 | (26) |
|
|
245 | (7) |
|
|
252 | (2) |
|
Putting Expressions to Work |
|
|
254 | (3) |
|
|
257 | (3) |
|
|
260 | (11) |
|
Hour 13: Access Your iTunes Music Library via XML |
|
|
271 | (16) |
|
The Role of XML in iTunes |
|
|
271 | (2) |
|
Digging Into the iTunes Library File |
|
|
273 | (2) |
|
Linking to Tracks in the iTunes Store |
|
|
275 | (3) |
|
Building an iTunes Web Viewer |
|
|
278 | (9) |
|
Hour 14: Formatting XML with XSL-FO |
|
|
287 | (18) |
|
|
287 | (2) |
|
Working with the XSL-FO Language |
|
|
289 | (8) |
|
Validating an XSL-FO Document |
|
|
297 | (1) |
|
Converting an XSL-FO Document to PDF |
|
|
297 | (2) |
|
A More Complete XSL-FO Example |
|
|
299 | (6) |
|
Hour 15: Using XML to Hack Google Maps |
|
|
305 | (24) |
|
Getting to Know Google Maps |
|
|
305 | (4) |
|
Google Maps Customization Basics |
|
|
309 | (4) |
|
Brainstorming a Custom Mapping Application |
|
|
313 | (2) |
|
Developing a Custom Map Document |
|
|
315 | (2) |
|
Hacking Together a Custom Google Map |
|
|
317 | (12) |
|
Part IV: Processing and Managing XML Data |
|
|
|
Hour 16: Parsing XML with the DOM |
|
|
329 | (20) |
|
|
329 | (1) |
|
|
330 | (3) |
|
|
333 | (1) |
|
Binding XML Data to a Web Page |
|
|
334 | (2) |
|
Using the DOM to Access XML Data |
|
|
336 | (6) |
|
|
342 | (2) |
|
|
344 | (5) |
|
Hour 17: SAX: The Simple API for XML |
|
|
349 | (18) |
|
|
349 | (3) |
|
Writing Programs That Use SAX Parsers |
|
|
352 | (1) |
|
|
352 | (2) |
|
|
354 | (2) |
|
Inside the SAX Sample Program |
|
|
356 | (11) |
|
Hour 18: Querying XML Data with XQuery |
|
|
367 | (16) |
|
|
367 | (1) |
|
|
368 | (5) |
|
Processing XQuery Results |
|
|
373 | (1) |
|
|
374 | (2) |
|
Practical XML Querying with XQuery and Saxon |
|
|
376 | (7) |
|
Hour 19: Using XML with Databases |
|
|
383 | (18) |
|
A Quick Relational Database Primer |
|
|
383 | (2) |
|
The World's Shortest Guide to SQL |
|
|
385 | (5) |
|
|
390 | (2) |
|
Exporting an XML Document from a Database |
|
|
392 | (2) |
|
Accessing Data from a Database as XML |
|
|
394 | (7) |
|
Hour 20: Using XML to Assist Search Engines |
|
|
401 | (20) |
|
|
402 | (1) |
|
Getting to Know Google Sitemaps |
|
|
403 | (2) |
|
Inside the Google Sitemap Protocol |
|
|
405 | (3) |
|
Creating Your Own Sitemap |
|
|
408 | (2) |
|
|
410 | (2) |
|
Submitting Your Sitemap to Google |
|
|
412 | (2) |
|
Using an Automated Sitemap Tool |
|
|
414 | (7) |
|
Part V: XML's Impact on HTML |
|
|
|
Hour 21: Adding Structure to the Web with XHTML |
|
|
421 | (18) |
|
|
421 | (2) |
|
|
423 | (1) |
|
Creating and Validating XHTML Documents |
|
|
424 | (6) |
|
|
430 | (9) |
|
Hour 22: Addressing and Linking XML Documents |
|
|
439 | (32) |
|
|
440 | (2) |
|
Navigating a Document with XPath Patterns |
|
|
442 | (4) |
|
|
446 | (3) |
|
|
449 | (1) |
|
|
450 | (6) |
|
|
456 | (3) |
|
|
459 | (6) |
|
|
465 | (6) |
|
Hour 23: Going Wireless with WML and XHTML Mobile |
|
|
471 | (28) |
|
|
472 | (2) |
|
|
474 | (2) |
|
|
476 | (17) |
|
Blending WML with XHTML Mobile |
|
|
493 | (6) |
|
Hour 24: Syndicating the Web with RSS News Feeds |
|
|
499 | (20) |
|
|
500 | (2) |
|
Using an RSS News Aggregator |
|
|
502 | (2) |
|
Inside the RSS 2.0 Language |
|
|
504 | (3) |
|
Creating and Validating a News Feed |
|
|
507 | (2) |
|
|
509 | (10) |
|
|
|
APPENDIX A: XML Resources |
|
|
519 | (6) |
|
|
519 | (1) |
|
|
520 | (1) |
|
|
521 | (1) |
|
|
522 | (3) |
Index |
|
525 | |