Designing XML Internet Applications
Authors: Michael Leventhal, David Lewis, and Matthew Fuchs
Designing XML Internet Applications. By Michael Leventhal, David Lewis, and Matthew Fuchs; with contributions from Stuart Culshaw and Gene Kan. The Charles F. Goldfarb Series on Open Information Management. [Subseries:] The Definitive XML Series from Charles F. Goldfarb. Upper Saddle River, NJ: Prentice Hall PTR, [May] 1998. Extent: xxxii + 582 pages, CD-ROM. ISBN: 0-13-616822-1. Price: $44.95 U.S./$63.00 Canada. See also: the main bibliography entry and the Prentice Hall SGML Series Page.
Volume Description
[Provided by the authors.]
Designing XML Internet Applications is divided into five parts.
In the first part we will introduce you to the XML universe. Here you will find a discussion of the role of XML in the internet and a quick-start on the XML recommendation and XML tools. We don't assume prior knowledge of either XML or SGML but our task here is not to provide an extended tutorial or reference on the language syntax. What we do do is develop the perspective of the XML internet application designer and provide any background that is needed to comprehend the subsequent chapters.
The next three parts consist of a series of projects using XML in actual internet applications. Working through the projects the reader will gain concrete experience in the design of XML applications, DTDs, and programming. We also delve into standards related to XML and the internet wherever relevant.
The first project spans five chapters as the construction of several types of components is involved including a bulletin board, forms processing tools, a search engine, and transformation filters.
Most of the work is done in Perl and the approach is less rigorous than that used in subsequent projects. Our intention here is to introduce XML programming in the most simple and "exposed" form possible.
We have chosen to use Perl in this first part for various reasons. It is the closest thing we know of to a lingua franca for internet programmers, it is extremely compact allowing us to construct complete examples in relatively few lines of code, and, most significantly, Perl is the most versatile XML scripting language.
The second project implements SGML/XML email and digs into the topics of entity management, catalogs, MIME, and full- scale SGML/XML parsing. Code is presented in Perl and C++.
Lest the reader think we are Perl bigots the third project plunges us into Java and XML, building an application based on the Document Object Model and making use of a Java XML parser API. Java is the language in which most of the new XML internet infrastructure is being built.
The fifth and final section of the book takes a rigorous, formal look at the role of XML in software architectures and agents based on the paradigm of negotiation.
Full source code for all the projects has been included on the CD-OM as have all the public domain tools used in the book.
Table of Contents
PART I Internets, XML, and Tools Chapter 1 Internets 1.1 Introduction 1.2 Why XML 1.3 Structure of the Book 1.4 Let's Talk: Internets are for Communicating 1.5 The Velocity of Information 1.6 Into the Smart Network 1.7 Current Approaches-Can the Web Help? HTML - Java 1.8 Where the Web Needs Help 1.9 Beyond the Traditional Document 1.10 Toward the Active Document 1.11 Down to the Nitty-Gritty 1.12 What Do We Do with Documents? 1.13 DTDs and Content Specifications-A Short Excursion Search - Retrieve - Store - Send/Receive - Import/Export - Type Transformation - Hyperlinking - Compare - Interpret - Define - Create 1.14 Conclusion Chapter 2 XML, Data, and Documents 2.1 XML-What It Is, What It Does, SGML Ancestry SGML Essential Description - The XML Subset and HTML - How XML Simplifies SGML - Valid versus Well-Formed XML 2.2 XML and Data-Driven Architecture 2.3 XML and Documents Using XML to Deliver Large and Complex Documents Efficiently - Taming the Chaos - Production of Multiple Information Products from a Single Source - Reuse and Preservation - Information Interchange Standards - Cost of Production - Safety, Regulatory, and Other Legal Documentation Requirements, Advanced Hypertext, Collaborative Authoring?, Advanced Information Management-Connecting Databases Chapter 3 XML and SGML Tools 3.1 Tool Information Sources The SGML/XML Web Page - The Whirlwind Guide to SGML & XML Tools and Vendors - SGML Buyer's Guide 3.2 Evolution of SGML and XML Tools 3.3 Software Parsers - Programming Languages - Browsers - Search Engines - Document and Component Management - Authoring - Conversion, Capture, and Export of XML - DTD Design Tools - Down Conversion from XML - HyTime 3.4 DTDs as Development Resources Part II Perl and XML Chapter 4 The Desperate Perl Hacker and Internet Applications: Overview 4.1 Apropos of Perl and the Desperate Perl Hacker Java Versus Perl - Perl and XML Compliance 4.2 System Components Applications - Functionality - Software 4.3 System Operation Chapter 5 An XML Bulletin Board 5.1 Overview 5.2 XML Document Types Messages - Password Docuemnt - User State Documents 5.3 Reading and Writing XML in the Bulletin Board Writing Messages - Reading Messages - Password and User State Documents - Transformation from XML to HTML Chapter 6 An XML Contact Database 6.1 Overview 6.2 XML Data Formats 6.3 Reading and Writing XML in the Customer Database XMLForms - Using an XML Editor and CSS to Create Contact Database Records - Chapter 7 Structure-based Search 7.1 Overview: Structure- and Property-Driven Search Search Tools in Internet Applications 7.2 sgrep's Query Language A Web Interface to sgrep Chapter 8 Type Transformation, Import, and Export 8.1 Overview Import, Type Transformation, Export 8.2 Approaches to Transformation Event Stream, Groves, DSSSL/XSL Transformation 8.3 Event Stream Transformation with Perl Core Routine - Element-in-Context Subroutines? - Generation of Subroutine Stubs - Bulletin Board Type Transformation - Contact Database Type Transformation - Bulletin Board Export to RTF - Delayed Output and Forward References Part III XML/SGML E-mail Chapter 9 XML E-mail 9.1 Overview 9.2 Why XML/SGML is Hard to E-mail 9.3 Entity Catalogs Entity Catalog Structure - Catalog Entry Syntax - Building an E-mail Message from a Catalog 9.4 MIME Parts of a MIME message - Handling MIME Messages 9.5 Building the SGMaiL Agent 9.6 The Sending Agent Modifying SP for "createCatalog" 9.7 Parsing the Catalog and Creating the E-mail Message 9.8 The Receiving Agent 9.9 Conclusion Part IV XML and Java - Parsers and APIs Chapter 10 XML Parsers and Application Programmer Interfaces 10.1 Introduction 10.2 Parser Capabilities and Applications Well-formedness and Validity Verification - Document Instance Decomposition - Parser Applications 10.3 XML Parser Interfaces Command-Line and ESIS Event Stream Interfaces - Event Callback Interfaces - Object Model Interfaces 10.4 Sample XML Parsers NXP XML Parser - AElfred XML Parser 10.5 The SAX Event Callback API 10.6 The W3C Document Object Model andAPI Support and Implementation - Acquiring Specifications - Overview of the W3C's DOM Level-1 Interface 10.7 Sample DOM Implementation DOM Interface Definition - DOM Interface Implementations - Intergrating the DOM Implementation - The XSpecViser Application 10.8 Chapter Summary Part V Future - Agents and all that Chapter 11 Input Gathering and Negotiation using XML 11.1 Introduction The Ubiquitous Problem of Input Gathering - Input Gathering and Negotiation - Negotiation Processes from 20,000 Feet 11.2 Negotiation and Language-Agent Architectures Negotiation Problem Specification - Specification Problems and Language-Agent Architecture - Optimal Specification Environments 11.3 Description of Negotiation Problems Negotiation Problem Output and Structure - Negotiation Problem Output-Agreements - Recurring Negotiation Problems - Output Specification Languages - Constraints on Valid Agreement - Practical Enforcement of Output Constraints - Examples from Current Systems Practice 11.4 Manufacturing Negotiator Behavior Overview of Information Used by a Negotiator - Introductory and Ancillary Information - Information about Negotiable Variables - Negotiation Structure - Output Specification Language and Instance Generation 11.5 Chapter Summary
Information supplied by Michael Leventhal (michael@textscience.com), 12-May-1998.