TABLE OF CONTENTS


Contents

Foreword

Preface

How To Use The CD

1 What Is SGML?                                            1

1.1 Introduction 1  
1.2 What Is a Document? 1
1.3 The Problems with Documents 3
1.4 Some Terminology 5
1.5 SGML in Seven Nutshells 6

2 Structure of an SGML Document                   13

3 Structure of an SGML System 23
3.1 Introduction 23
3.2 Analysis 23
3.3 Design 24
3.4 Origination 25
3.5 Storage 32
3.6 Processing and Publishing 33

4 Publishing SGML Documents                      35

4.1 Introduction 35
4.2 Classifying Formats for Rendered SGML Documents 36
4.3 Non-SGML-Based Formats 37
4.4 SGML-Based Formats 40

5 101 Things To Do with an SGML Document       43

5.1 Introduction 43
5.2 Data and Derived-Data 43
5.3 Some SGML Opportunities 44
5.4 Classification of SGML Usage Strategies 68

6 Elements, Attributes, and Models                  69

6.1 Introduction 69
6.2 The Philosophy of SGML Syntax 69
6.3 Element Type Declarations 71
6.4 Attributes 77
6.5 Some Details 91

7 Entities, Notations, and Marked Sections          97

7.1 Introduction 97
7.2 Logical Storage 98
7.3 System Versus Public Identifiers 98
7.4 Internal Parameter Entities 99
7.5 External Parameter Entities 101
7.6 Internal General Entities 103
7.7 External General Entities 103
7.8 Marked Sections 106
7.9 Some Details 109

8 SGML as a Formal Language                       119

8.1 Introduction 119
8.2 Using Grammars to Describe Languages 119
8.3 Classifying SGML as a Grammar 122
8.4 SGML and Language Grammar Software Tools 123
8.5 Comparing SGML with Programming Languages 124
8.6 References 125

9 Anatomy of an SGML Parser                       127

9.1 Introduction 127
9.2 Bird_s Eye View of an SGML Document 127
9.3 Bird_s Eye View of an SGML Parser 130
9.4 The NSGMLS Parser 132
9.5 Defining the Lexical Structure 135
9.6 Defining the Grammar 136
9.7 Some NSGMLS Command-Line Options 137
9.8 The NSGMLS Catalog Format 138
9.9 Some NSGMLS Examples 138
9.10 Some Common Error Messages 142

10 SGML Processing Paradigms                     145

10.1 Introduction 145
10.2 Abstract Data Structures for SGML Documents 146
10.3 Processing Paradigms 151

11 Three Frameworks for SGML Processing        161

11.1 Introduction 161
11.2 Pipelines 162
11.3 The C++ Framework 163
11.4 The Perl Framework 172
11.5 The Python Framework 177

12 Some Processing Examples                       181

12.1 Synopsis Generation 181
12.2 Simple Text Formatting 184
12.3 Element Context Reporting 185
12.4 Publishing to HTML 186
12.5 Publishing to RTF 189
12.6 Multifile Processing 193

13 A Close Look at Some Subtleties                 199

13.1 Introduction 199
13.2 Tight Versus Loose Content Models 199
13.3 Levels of Semantic Checking 202
13.4 Format-Centric Content Models 204
13.5 Processing Instructions 205
13.6 Records and Entity End Signals 205
13.7 Delimiter Recognition and Recognition Modes 207
13.8 Data Content Variations 209
13.9 Marked Section Variations 215
13.10 Short References 216
13.11 Text Entity Variations 218
13.12 Data Entity Variations 222
13.13 Obfuscatory Entity References 223
13.14 Mixed-Content Models 224
13.15 Record Boundary Handling 226
13.16 Ambiguous-Content Models 228
13.17 Data Attributes 230
13.18 Literal Delimiters 231
13.19 Attribute Value Specifications 232
13.20 Null Declarations 233

14 Optional SGML Features                         235

14.1 Introduction 235
14.2 Multiple DTDs Per Document 235
14.3 The CONCUR Feature 237
14.4 The LINK Feature 237
14.5 The SUBDOC Feature 250
14.6 Markup Minimization Methods 251

15 The HyTime Standard                             257

15.1 Introduction 257
15.2 Some HyTime Concepts 258
15.3 Architectural Forms 259
15.4 Some HyTime Linking and Addressing Mechanisms 262
15.5 Using HyTime 269

16 The DSSSL Standard                             271

16.1 Introduction 271
16.2 DSSSL Architecture 272
16.3 The Expression Language 274
16.4 The Transformation Language 274
16.5 The Style Language 275
16.6 The Query Language 275
16.7 DSSSL Specifications 275
16.8 DSSSL-O 276

A The SGML Declaration                            277

A.1 Overview 277
A.2 Declaring a Character Set 278
A.3 Referencing a Character Set 280
A.4 Details of the SGML Declaration 280
A.5 System Declarations 288
A.6 The Reference Concrete Syntax 289
A.7 The Default SGML Declaration Used by NSGMLS 291

B NSGMLS Output Format Details                       293

B.1 The Origins of ESIS 293
B.2 Escape Sequences 294
B.3 Elements 294
B.4 Attributes 294
B.5 Data Content 295
B.6 Notations 296
B.7 Entity Management 296
B.8 Miscellaneous 297
B.9 Formal System Identifiers 297

C Source Code for the Frameworks                  299

C.1 C++ Framework 299
C.2 Perl Framework 306
C.3 Python Framework 309

D SGML Resources for Developers                  317

D.1 World Wide Web-Based SGML Resource Guides 317
D.2 Software Development Tools 317
D.3 Standards Committees 318
D.4 FTP Sites 318
D.5 Usenet 319
D.6 Some SGML-Related Industry Standards 319
D.7 Rainbow Makers 321
D.8 Organizations 321
D.9 Miscellaneous 322

Index                                                325

License Agreement and Limited Warranty                       343




[About the Book][Table of Contents][Forward]
[Mailing List][PTR Home Page][Ordering Info][Home]



© Prentice-Hall, Inc.
A Simon & Schuster Company
Upper Saddle River, New Jersey 07458

Legal Statement