Click here to start

Table of contents

Effective XML

Part I: Syntax

Item 1: Include an XML declaration

Item 3: Stay with XML 1.0

Part II: Structure

The XML Stack

Item 14: Allow All XML syntax

Item 9: Distinguish text from markup

The reverse problem.

Item 10: White space matters

Item 11: Make structure explicit through markup

Item 12: Store metadata in attributes

Item 13: Remember mixed content

What you really want is this:

What people do is this:

Item 16: Prefer URLs to unparsed entities and notations

Part III: Semantics

Item 17: Use processing instructions for process-specific content

Processing instructions are not appropriate when:

Item 18: Include all information in instance documents

Item 19: Encode binary data using quoted printable and/or Base64

Item 20-22: Use namespaces for modularity and extensibility

Item 23: Reuse XHTML for generic narrative content

Item 24: Choose the right schema language for the job

Item 25: Pretend there's no such thing as the PSVI

Item 27: Markup according to meaning

Item 28: Use only what you need

Item 29: Always use a parser

Item 30: Layer Functionality

Item 31: Program to standard APIs

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

Part IV:Implementation

Item 38: Write documents in Unicode

Item 40: Avoid Vendor Lockin; Beware

Item 41: Hang on to your relational database

Item 42: Document Namespaces with RDDL

Preprocess XSLT on the server side

Part IV: Implementation

Item 44: Serve XML+CSS to the client

Item 45: Pick the correct MIME media type

Item 46: Tidy Up Your HTML

Item 47: Catalog common resources

Item 48: Verify documents with XML digital signatures

Item 49: Hide confidential data with XML encryption

Item 50: Compress if space is a problem

To Learn More

Author: Elliotte Rusty Harold

E-mail: elharo@metalab.unc.edu

Homepage: http://www.elharo.com/