| Effective XML: 50 Specific Ways to Improve Your XML |
| By Elliotte Rusty Harold |
| |
| Publisher | : Addison Wesley |
| Pub Date | : September 22, 2003 |
| ISBN | : 0-321-15040-6 |
| Pages | : 336 |
| |
| Copyright |
| | | Praise for Effective XML |
| | | Effective Software Development Series |
| | | | Titles in the Series |
|
| | | Preface |
| | | | Acknowledgments |
|
| | | Introduction |
| | | | Element versus Tag |
| | | | Attribute versus Attribute Value |
| | | | Entity versus Entity Reference |
| | | | Entity Reference versus Character Reference |
| | | | Children versus Child Elements versus Content |
| | | | Text versus Character Data versus Markup |
| | | | Namespace versus Namespace Name versus Namespace URI |
| | | | XML Document versus XML File |
| | | | XML Application versus XML Software |
| | | | Well-Formed versus Valid |
| | | | DTD versus DOCTYPE |
| | | | XML Declaration versus Processing Instruction |
| | | | Character Set versus Character Encoding |
| | | | URI versus URI Reference versus IRI |
| | | | Schemas versus the W3C XML Schema Language |
|
| | | Part 1: Syntax |
| | | | Item 1. Include an XML Declaration |
| | | | The version Info |
| | | | The encoding Declaration |
| | | | The standalone Declaration |
|
| | | | Item 2. Mark Up with ASCII if Possible |
| | | | Item 3. Stay with XML 1.0 |
| | | | New Characters in XML Names |
| | | | C0 Control Characters |
| | | | C1 Control Characters |
| | | | NEL Used as a Line Break |
| | | | Unicode Normalization |
| | | | Undeclaring Namespace Prefixes |
|
| | | | Item 4. Use Standard Entity References |
| | | | Item 5. Comment DTDs Liberally |
| | | | The Header Comment |
| | | | Declarations |
|
| | | | Item 6. Name Elements with Camel Case |
| | | | Item 7. Parameterize DTDs |
| | | | Parameterizing Attributes |
| | | | Parameterizing Namespaces |
| | | | Full Parameterization |
| | | | Conditional Sections |
|
| | | | Item 8. Modularize DTDs |
| | | | Item 9. Distinguish Text from Markup |
| | | | Item 10. White Space Matters |
| | | | The xml:space Attribute |
| | | | Ignorable White Space |
| | | | Tags and White Space |
| | | | White Space in Attributes |
| | | | Schemas |
|
|
| | | Part 2: Structure |
| | | | Item 11. Make Structure Explicit through Markup |
| | | | Tag Each Unit of Information |
| | | | Avoid Implicit Structure |
| | | | Where to Stop? |
|
| | | | Item 12. Store Metadata in Attributes |
| | | | Item 13. Remember Mixed Content |
| | | | Item 14. Allow All XML Syntax |
| | | | Item 15. Build on Top of Structures, Not Syntax |
| | | | Empty-Element Tags |
| | | | CDATA Sections |
| | | | Character and Entity References |
|
| | | | Item 16. Prefer URLs to Unparsed Entities and Notations |
| | | | Item 17. Use Processing Instructions for Process-Specific Content |
| | | | Style Location |
| | | | Overlapping Markup |
| | | | Page Formatting |
| | | | Out-of-Line Markup |
| | | | Misuse of Processing Instructions |
|
| | | | Item 18. Include All Information in the Instance Document |
| | | | Item 19. Encode Binary Data Using Quoted Printable and/or Base64 |
| | | | Quoted Printable |
| | | | Base64 |
|
| | | | Item 20. Use Namespaces for Modularity and Extensibility |
| | | | Choosing a Namespace URI |
| | | | Validation and Namespaces |
|
| | | | Item 21. Rely on Namespace URIs, Not Prefixes |
| | | | Item 22. Don't Use Namespace Prefixes in Element Content and Attribute Values |
| | | | Item 23. Reuse XHTML for Generic Narrative Content |
| | | | Item 24. Choose the Right Schema Language for the Job |
| | | | The W3C XML Schema Language |
| | | | Document Type Definitions |
| | | | RELAX NG |
| | | | Schematron |
| | | | Java, C#, Python, and Perl |
| | | | Layering Schemas |
|
| | | | Item 25. Pretend There's No Such Thing as the PSVI |
| | | | Item 26. Version Documents, Schemas, and Stylesheets |
| | | | Item 27. Mark Up According to Meaning |
|
| | | Part 3: Semantics |
| | | | Item 28. Use Only What You Need |
| | | | Item 29. Always Use a Parser |
| | | | Item 30. Layer Functionality |
| | | | Item 31. Program to Standard APIs |
| | | | SAX |
| | | | DOM |
| | | | JDOM |
|
| | | | Item 32. Choose SAX for Computer Efficiency |
| | | | Item 33. Choose DOM for Standards Support |
| | | | Item 34. Read the Complete DTD |
| | | | Item 35. Navigate with XPath |
| | | | Item 36. Serialize XML with XML |
| | | | Item 37. Validate Inside Your Program with Schemas |
| | | | Xerces-J |
| | | | DOM Level 3 Validation |
|
|
| | | Part 4: Implementation |
| | | | Item 38. Write in Unicode |
| | | | Choosing an Encoding |
| | | | A char Is Not a Character |
| | | | Normalization Forms |
| | | | Sorting |
|
| | | | Item 39. Parameterize XSLT Stylesheets |
| | | | Item 40. Avoid Vendor Lock-In |
| | | | Item 41. Hang On to Your Relational Database |
| | | | Item 42. Document Namespaces with RDDL |
| | | | Natures |
| | | | Purposes |
|
| | | | Item 43. Preprocess XSLT on the Server Side |
| | | | Servlet-Based Solutions |
| | | | Apache |
| | | | IIS |
|
| | | | Item 44. Serve XML+CSS to the Client |
| | | | Item 45. Pick the Correct MIME Media Type |
| | | | Item 46. Tidy Up Your HTML |
| | | | MIME Type |
| | | | HTML Tidy |
| | | | Older Browsers |
|
| | | | Item 47. Catalog Common Resources |
| | | | Catalog Syntax |
| | | | Using Catalog Files |
|
| | | | Item 48. Verify Documents with XML Digital Signatures |
| | | | Digital Signature Syntax |
| | | | Digital Signature Tools |
|
| | | | Item 49. Hide Confidential Data with XML Encryption |
| | | | Encryption Syntax |
| | | | Encryption Tools |
|
| | | | Item 50. Compress if Space Is a Problem |
|
| | | Recommended Reading |