Elementary Rules of Usage | |
XML Documents: An Overview | p. 3 |
Unicode Text as the Foundation | p. 4 |
Conformance: Well-formed and Valid Documents | p. 4 |
Inside XML Documents | p. 5 |
A Sample XML Document | p. 5 |
Starting the Document: The Prolog | p. 7 |
The XML Declaration | p. 7 |
The Document Type Declaration | p. 9 |
Foundations: Elements, Attributes, and Namespaces | p. 15 |
"Sculpting" and "Designing" XML | p. 15 |
Elements | p. 16 |
Attributes | p. 18 |
Naming Your Elements and Attributes | p. 19 |
Elements and/vs. Attributes (and Other Alternatives) | p. 20 |
Namespaces | p. 23 |
Documents, "Reality," and Modeling Models | p. 25 |
Structures, Reality, and Back Again | p. 25 |
Top-down or Bottom-up? | p. 26 |
The Document and Data Debate | p. 27 |
How to Proceed? | p. 28 |
Processing Models and Document Structures | p. 29 |
Transformations and Their Importance | p. 29 |
Keeping Information Meaningful | p. 30 |
Middleware Possibilities | p. 32 |
"Terminal" Vocabularies | p. 32 |
Common Document Patterns | p. 35 |
Hierarchies | p. 35 |
Lists | p. 37 |
Tables | p. 39 |
Extended Tables | p. 41 |
Messages | p. 42 |
Objects | p. 42 |
Chaos: "Document Documents" | p. 42 |
Describing Foundations: Element Type Declarations | p. 45 |
Describing Containers | p. 45 |
Basic Syntax | p. 46 |
The EMPTY Content Model | p. 47 |
The ANY Content Model | p. 47 |
Structured-Element Content Models | p. 48 |
Mixed-Content Models | p. 51 |
Data Models | p. 52 |
Describing Foundations: Attribute List Declarations | p. 53 |
Describing Annotation | p. 53 |
Basic Syntax | p. 54 |
Naming Attributes | p. 55 |
Attribute Types | p. 55 |
Attribute Defaults | p. 57 |
Putting It All Together | p. 58 |
Overriding Attribute List Declarations in the Internal Subset (and Elsewhere) | p. 60 |
Extras: Comments, Processing Instructions, and CDATA Sections | p. 63 |
Comments | p. 63 |
Processing Instructions | p. 65 |
CDATA Sections | p. 66 |
White Space | p. 69 |
An Introduction to White Space Handling | p. 69 |
White Space in Declarations and Markup | p. 70 |
White Space in Element Content | p. 71 |
White Space in Mixed Content | p. 72 |
A Way to Sneak in #xD | p. 72 |
xml:space | p. 73 |
White Space in Attribute Content | p. 73 |
White Space on the Fringes: The Prolog and Epilogue | p. 73 |
Implications for Applications and Stylesheets | p. 74 |
Data Typing in XML 1.0 | p. 75 |
Extra Information | p. 75 |
Data Type Descriptors | p. 79 |
Elementary Principles of Composition | |
Using Character References and Predefined Entities | p. 83 |
Identifying Characters--Character References | p. 83 |
Avoiding Collisions with Markup--Predefined Entities | p. 84 |
Multiple Interpretation of Character References | p. 86 |
Using General Entities for Reusable Document Content | p. 87 |
Types of Entities | p. 87 |
Basic Syntax | p. 88 |
Using General Entities | p. 90 |
Including Inclusions | p. 92 |
Using General Entities | p. 93 |
Issues of Inclusion | p. 94 |
Using Parameter Entities for Reusable Declarations | p. 97 |
Basic Syntax | p. 97 |
Using Parameter Entities | p. 100 |
Using Notations and Unparsed Entities | p. 107 |
Basic Syntax | p. 107 |
Using Notations | p. 110 |
Using Unparsed Entities | p. 113 |
Using Conditional Sections: INCLUDE and IGNORE | p. 117 |
Basic Syntax | p. 117 |
Using Conditional Sections | p. 119 |
A Few Matters of Form | |
Types of Markup: Semantic to Application Specific | p. 125 |
Semantics, Semantics, and More Semantics | p. 125 |
Focus on Meaning | p. 127 |
Focus on Structure | p. 129 |
Focus on Applications | p. 131 |
Planning for Transformation and Presentation | p. 135 |
When Transformation is Useful | p. 135 |
Different Kinds of Transformation Tools | p. 136 |
Annotative Presentation | p. 140 |
Transformative Presentation | p. 140 |
Staying Flexible | p. 141 |
Building Modular DTDs | p. 143 |
Manageability vs. Reusability | p. 143 |
Limitations | p. 144 |
Naming Conventions and Namespaces | p. 145 |
Documentation | p. 146 |
Mapping | p. 146 |
Leaving Room for the Future: Extensible DTDs | p. 149 |
Easy Extensions | p. 149 |
Valid XML's Closed World | p. 150 |
Opening the Doors: ANY and Omitted Declarations | p. 150 |
Notes on Notations | p. 151 |
Dependencies and Other Structural Issues | p. 152 |
Documenting Extensibility | p. 153 |
Shrinkability | p. 153 |
Developing for an International Audience | p. 155 |
Unicode 2.0 and ISO10646 | p. 155 |
Beyond Character Encodings: Identifying Languages | p. 159 |
Beyond XML: Style Sheets and More | p. 161 |
The Importance of Documentation | p. 171 |
Documenting DTDs | p. 171 |
Documenting Documents | p. 175 |
Documentation Outside of XML 1.0 | p. 176 |
Documenting for the Machine--PIs as Comments | p. 177 |
Creating Webs of Documents: XLink | p. 179 |
Modeling Relationships | p. 180 |
The XLink Approach | p. 181 |
Simple Links | p. 182 |
Extended Links | p. 184 |
Identifying XML Resource Fragments with XPointer and XPath | p. 189 |
Extended Link Groups | p. 193 |
Limitations | p. 193 |
Tools and Features Commonly Misused | |
Integrating Namespaces with XML 1.0 | p. 197 |
The Problem of Changing Prefixes | p. 197 |
Defaulting (and Declaring) Namespace Declarations | p. 200 |
Disappearing Prefixes | p. 200 |
Validating Qualified Names | p. 201 |
An Argument for Well-Formedness | p. 201 |
Describing Document Types Precisely | p. 203 |
The Hazards of Self-Identifying Documents (DTDs and Namespaces) | p. 203 |
MIME Types and Content Negotiation | p. 205 |
Building Better Packages | p. 207 |
Processing Instructions: Working Outside Content | p. 211 |
Abusing Comments | p. 211 |
Abusing Processing Instructions | p. 214 |
Using Processing Instructions | p. 216 |
Creating Generalized Processing Instructions | p. 218 |
The Need for an Application Framework | p. 219 |
Troubles with Non-validating Parsers | p. 221 |
The Problem | p. 221 |
The Standalone Declaration | p. 223 |
Controlling Your Applications | p. 223 |
Document and Double-Check | p. 225 |
Don't Use the Features | p. 225 |
The Future? Layers of Processing? | p. 226 |
XML Processing Architectures: Trees and Streams | p. 229 |
Reading Event Streams | p. 230 |
Writing (and Modifying) Event Streams | p. 232 |
Reading Trees | p. 232 |
Writing Trees | p. 235 |
Choosing | p. 235 |
Waiting for the Future: XML Schemas and Data Typing | p. 237 |
The Problems | p. 238 |
Examples | p. 239 |
Advanced Features | p. 245 |
Planning the Transition | p. 245 |
An Approach to Style | |
Seeking Consistency | p. 249 |
Consistent Criteria | p. 249 |
Consistent Communications | p. 250 |
Consistent Conventions | p. 252 |
Consistent Decision-Making | p. 253 |
Consistent Application Design | p. 253 |
Building on Past Works | p. 255 |
History Can Be Useful | p. 255 |
Remodeling or Demolition and Rebuilding? | p. 256 |
Providing an Upward (and Downward) Path: Transformations | p. 257 |
Preserving Compatibility | p. 257 |
Thinking Ahead | p. 258 |
Maximizing Information Quantity and Quality | p. 261 |
Including and Excluding Information | p. 261 |
Choosing Conventions | p. 262 |
Working Toward Multiple Purposes | p. 263 |
Document Your Meanings | p. 264 |
Designing for Large-Scale Interchange | p. 265 |
Collecting Input | p. 265 |
Managing Expectations | p. 266 |
Focus on Meaning | p. 267 |
Testing, Testing, Testing | p. 267 |
Communicating Outside XML | p. 268 |
XML and Data Integration | p. 271 |
Documents as Data | p. 271 |
Data as Documents | p. 272 |
Extending XML to Support Data | p. 273 |
Middleware Solutions | p. 273 |
Moving Forward | p. 274 |
Maximizing Flexibility: Radical Extensibility | p. 277 |
Don't Count on Consistency | p. 277 |
Machine Reading | p. 279 |
Plan for Change | p. 280 |
Model Jobs, Not Data | p. 280 |
Build Up Your Toolset | p. 282 |
Moving Toward an Adaptable Web | p. 282 |
Index | p. 285 |
Table of Contents provided by Syndetics. All Rights Reserved. |