Preface | p. xi |
Acknowledgments | p. xiii |
Introduction | p. XV |
Element versus Tag | p. xvi |
Attribute versus Attribute Value | p. xvii |
Entity versus Entity Reference | p. xvii |
Entity Reference versus Character Reference | p. xviii |
Children versus Child Elements versus Content | p. xix |
Text versus Character Data versus Markup | p. xxi |
Namespace versus Namespace Name versus Namespace URI | p. xxii |
XML Document versus XML File | p. xxii |
XML Application versus XML Software | p. xxiii |
Well-Formed versus Valid | p. xxiii |
DTD versus DOCTYPE | p. xxiv |
XML Declaration versus Processing Instruction | p. xxv |
Character Set versus Character Encoding | p. xxvi |
URI versus URI Reference versus IRI | p. xxvii |
Schemas versus the W3C XML Schema Language | p. xxvii |
Syntax | p. 1 |
Include an XML Declaration | p. 1 |
The version Info | p. 2 |
The encoding Declaration | p. 2 |
The standalone Declaration | p. 3 |
Mark Up with ASCII if Possible | p. 5 |
Stay with XML 1.0 | p. 10 |
New Characters in XML Names | p. 11 |
C0 Control Characters | p. 13 |
C1 Control Characters | p. 15 |
NEL Used as a Line Break | p. 16 |
Unicode Normalization | p. 17 |
Undeclaring Namespace Prefixes | p. 18 |
Use Standard Entity References | p. 19 |
Comment DTDs Liberally | p. 21 |
The Header Comment | p. 23 |
Declarations | p. 26 |
Name Elements with Camel Case | p. 29 |
Parameterize DTDs | p. 32 |
Parameterizing Attributes | p. 35 |
Parameterizing Namespaces | p. 35 |
Full Parameterization | p. 37 |
Conditional Sections | p. 39 |
Modularize DTDs | p. 42 |
Distinguish Text from Markup | p. 51 |
White Space Matters | p. 52 |
The xml: space Attribute | p. 53 |
Ignorable White Space | p. 54 |
Tags and White Space | p. 54 |
White Space in Attributes | p. 55 |
Schemas | p. 57 |
Structure | p. 59 |
Make Structure Explicit through Markup | p. 59 |
Tag Each Unit of Information | p. 60 |
Avoid Implicit Structure | p. 63 |
Where to Stop? | p. 67 |
Store Metadata in Attributes | p. 69 |
Remember Mixed Content | p. 75 |
Allow All XML Syntax | p. 79 |
Build on Top of Structures, Not Syntax | p. 82 |
Empty-Element Tags | p. 86 |
CDATA Sections | p. 87 |
Character and Entity References | p. 90 |
Prefer URLs to Unparsed Entities and Notations | p. 91 |
Use Processing Instructions for Process-Specific Content | p. 95 |
Style Location | p. 96 |
Overlapping Markup | p. 98 |
Page Formatting | p. 101 |
Out-of-Line Markup | p. 102 |
Misuse of Processing Instructions | p. 103 |
Include All Information in the Instance Document | p. 104 |
Encode Binary Data Using Quoted Printable and/or Base64 | p. 109 |
Quoted Printable | p. 109 |
Base64 | p. 111 |
Use Namespaces for Modularity and Extensibility | p. 112 |
Choosing a Namespace URI | p. 113 |
Validation and Namespaces | p. 116 |
Rely on Namespace URIs, Not Prefixes | p. 117 |
Don't Use Namespace Prefixes in Element Content and Attribute Values | p. 121 |
Reuse XHTML for Generic Narrative Content | p. 124 |
Choose the Right Schema Language for the Job | p. 130 |
The W3C XML Schema Language | p. 130 |
Document Type Definitions | p. 131 |
RELAX NG | p. 133 |
Schematron | p. 134 |
Java, C#, Python, and Perl | p. 135 |
Layering Schemas | p. 138 |
Pretend There's No Such Thing as the PSVI | p. 139 |
Version Documents, Schemas, and Stylesheets | p. 143 |
Mark Up According to Meaning | p. 149 |
Semantics | p. 155 |
Use Only What You Need | p. 155 |
Always Use a Parser | p. 162 |
Layer Functionality | p. 166 |
Program to Standard APIs | p. 170 |
SAX | p. 171 |
DOM | p. 175 |
JDOM | p. 178 |
Choose SAX for Computer Efficiency | p. 178 |
Choose DOM for Standards Support | p. 183 |
Read the Complete DTD | p. 186 |
Navigate with XPath | p. 192 |
Serialize XML with XML | p. 201 |
Validate Inside Your Program with Schemas | p. 203 |
Xerces-J | p. 206 |
DOM Level 3 Validation | p. 210 |
Implementation | p. 213 |
Write in Unicode | p. 213 |
Choosing an Encoding | p. 214 |
A char Is Not a Character | p. 218 |
Normalization Forms | p. 219 |
Sorting | p. 221 |
Parameterize XSLT Stylesheets | p. 221 |
Avoid Vendor Lock-In | p. 226 |
Hang On to Your Relational Database | p. 230 |
Document Namespaces with RDDL | p. 233 |
Natures | p. 237 |
Purposes | p. 239 |
Preprocess XSLT on the Server Side | p. 241 |
Servlet-Based Solutions | p. 242 |
Apache | p. 244 |
IIS | p. 245 |
Serve XML+CSS to the Client | p. 246 |
Pick the Correct MIME Media Type | p. 249 |
Tidy Up Your HTML | p. 253 |
MIME Type | p. 254 |
HTML Tidy | p. 254 |
Older Browsers | p. 255 |
Catalog Common Resources | p. 257 |
Catalog Syntax | p. 258 |
Using Catalog Files | p. 259 |
Verify Documents with XML Digital Signatures | p. 263 |
Digital Signature Syntax | p. 264 |
Digital Signature Tools | p. 273 |
Hide Confidential Data with XML Encryption | p. 275 |
Encryption Syntax | p. 276 |
Encryption Tools | p. 282 |
Compress if Space Is a Problem | p. 283 |
Recommended Reading | p. 287 |
Index | p. 289 |
Table of Contents provided by Ingram. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.