| Effective XML |
| Part I: Syntax |
| Stay with XML 1.0 |
| Part II: Structure |
| The XML Stack |
| Allow All XML syntax |
| Distinguish text from markup |
| The reverse problem |
| White space matters |
| Make structure explicit through markup |
| Store metadata in attributes |
| Remember mixed content |
| What you really want is this: |
| What people do is this: |
| Prefer URLs to unparsed entities and notations |
| Part III: Semantics |
| Use processing instructions for process-specific content |
| Processing instructions are not appropriate when: |
| Include all information in instance documents |
| Encode binary data using quoted printable and/or Base64 |
| Use namespaces for modularity and extensibility |
| Reuse XHTML for generic narrative content |
| Choose the right schema language for the job |
| Use only what you need |
| Always use a parser |
| Layer Functionality |
| Program to standard APIs |
| Read the complete DTD |
| Navigate with XPath |
| Validate inside your program with schemas |
| Part IV: Implementation |
| Write documents in Unicode |
| Avoid Vendor Lockin; Beware |
| Hang on to your relational database |
| Document Namespaces with RDDL |
| Pick the correct MIME type |
| TagSoup Your HTML |
| Catalog common resources |
| Compress if space is a problem |
| To Learn More |