Foreword |
|
ix | |
|
Foreword |
|
xi | |
|
Preface |
|
xiii | |
|
|
|
|
3 | (5) |
|
|
3 | (1) |
|
Keeping Documents Independent of Applications |
|
|
3 | (1) |
|
Validation Has Many Aspects |
|
|
4 | (1) |
|
The Best Way to Validate XML Document Structures |
|
|
4 | (1) |
|
RELAX NG's Diverse Applications |
|
|
5 | (1) |
|
RELAX NG as a Pivot Format |
|
|
6 | (1) |
|
Why Use Other Schema Languages? |
|
|
7 | (1) |
|
Simple Foundations Are Beautiful |
|
|
8 | (6) |
|
|
8 | (1) |
|
Different Types of Schema Languages |
|
|
9 | (1) |
|
|
10 | (2) |
|
A Strong Mathematical Background |
|
|
12 | (1) |
|
Patterns, and Only Patterns |
|
|
13 | (1) |
|
|
14 | (10) |
|
|
14 | (1) |
|
|
15 | (5) |
|
|
20 | (4) |
|
Introducing the Compact Syntax |
|
|
24 | (7) |
|
|
25 | (3) |
|
|
28 | (1) |
|
|
29 | (2) |
|
Flattening the First Schema |
|
|
31 | (14) |
|
|
33 | (1) |
|
Referencing Named Patterns |
|
|
34 | (1) |
|
The grammar and start Elements |
|
|
35 | (1) |
|
|
36 | (6) |
|
Problems That Never Arise |
|
|
42 | (1) |
|
|
43 | (1) |
|
Escaping Names Pattern Identifiers in the Compact Syntax |
|
|
44 | (1) |
|
|
45 | (17) |
|
|
45 | (1) |
|
|
46 | (2) |
|
|
48 | (1) |
|
|
49 | (1) |
|
Order Variation as a Source of Information |
|
|
50 | (1) |
|
Text and Empty Patterns, Whitespace, and Mixed Content |
|
|
51 | (3) |
|
Why Is It Called interleave? |
|
|
54 | (3) |
|
Mixed Content Models with Order |
|
|
57 | (2) |
|
A Restriction Related to interleave |
|
|
59 | (2) |
|
A Missing Pattern: Unordered Group |
|
|
61 | (1) |
|
|
62 | (18) |
|
|
62 | (1) |
|
Co-Occurrence Constraints |
|
|
62 | (8) |
|
|
70 | (1) |
|
Whitespace and RELAX NG Native Datatypes |
|
|
70 | (2) |
|
Using String Datatypes in Attribute Values |
|
|
72 | (1) |
|
When to Use String Datatypes |
|
|
73 | (1) |
|
Using Different Types in Each Value |
|
|
74 | (1) |
|
|
74 | (2) |
|
|
76 | (2) |
|
|
78 | (2) |
|
|
80 | (24) |
|
W3C XML Schema Type Library |
|
|
80 | (18) |
|
DTD Compatibility Datatypes |
|
|
98 | (3) |
|
Which Library Should Be Used? |
|
|
101 | (3) |
|
Using Regular Expressions to Specify Simple Datatypes |
|
|
104 | (16) |
|
|
104 | (1) |
|
The Simplest Possible Pattern Facets |
|
|
105 | (1) |
|
|
106 | (1) |
|
|
107 | (8) |
|
|
115 | (5) |
|
|
120 | (40) |
|
Using External References |
|
|
120 | (14) |
|
|
134 | (15) |
|
A Real-World Example: XHTML 2.0 |
|
|
149 | (4) |
|
|
153 | (7) |
|
|
160 | (28) |
|
A Ten-Minute Guide to XML Namespaces |
|
|
160 | (5) |
|
The Two Challenges of Namespaces |
|
|
165 | (1) |
|
Declaring Namespaces in Schemas |
|
|
166 | (5) |
|
Accepting Foreign Namespaces |
|
|
171 | (8) |
|
Namespaces, Building Blocks, and Chameleon Design |
|
|
179 | (9) |
|
Writing Extensible Schemas |
|
|
188 | (23) |
|
|
188 | (18) |
|
The Case for Open Schemas |
|
|
206 | (2) |
|
|
208 | (3) |
|
|
211 | (39) |
|
Common Principles for Annotating RELAX NG Schemas |
|
|
211 | (15) |
|
|
226 | (12) |
|
Annotation for Applications |
|
|
238 | (12) |
|
Generating RELAX NG Schemas |
|
|
250 | (25) |
|
Examplotron: Instance Documents as Schemas |
|
|
251 | (7) |
|
|
258 | (6) |
|
|
264 | (6) |
|
|
270 | (5) |
|
Simplification and Restrictions |
|
|
275 | (30) |
|
|
275 | (20) |
|
|
295 | (10) |
|
Determinism and Datatype Assignment |
|
|
305 | (18) |
|
|
305 | (10) |
|
The Downsides of Ambiguous and Nondeterministic Content Models |
|
|
315 | (3) |
|
Some Ideas to Make Disambiguation Easier |
|
|
318 | (5) |
|
|
|
|
323 | (48) |
|
|
371 | (38) |
|
|
409 | (58) |
|
|
|
|
451 | (7) |
|
B. The GNU Free Documentation License |
|
|
458 | (9) |
Glossary |
|
467 | (6) |
Index |
|
473 | |