Apr 21, 2008

Effective XML: 50 Specific Ways to Improve Your XML


Table of content "Effective XML: 50 Specific Ways to Improve Your XML"

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


Download Effective XML: 50 Specific Ways to Improve Your XML

0 comments: