The Cover PagesThe OASIS Cover Pages: The Online Resource for Markup Language Technologies
Advanced Search
Site Map
CP RSS Channel
Contact Us
Sponsoring CP
About Our Sponsors

Cover Stories
Articles & Papers
Press Releases

XML Query

XML Applications
General Apps
Government Apps
Academic Apps

Technology and Society
Tech Topics
Related Standards
Last modified: July 15, 1998
XML: Designing XML Internet Applications

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 -
    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
	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 -
	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
  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
    9.4  MIME
	       Parts of a MIME message - Handling MIME
	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
	9.8  The Receiving Agent
	9.9  Conclusion
Part IV  XML and Java - Parsers and APIs
  Chapter 10  XML Parsers and Application Programmer
	10.1 Introduction
	10.2 Parser Capabilities and Applications
	       Well-formedness and Validity Verification -
		   Document Instance Decomposition - Parser
    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 
	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
	11.5 Chapter Summary

Information supplied by Michael Leventhal (, 12-May-1998.

Hosted By
OASIS - Organization for the Advancement of Structured Information Standards

Sponsored By

IBM Corporation
ISIS Papyrus
Microsoft Corporation
Oracle Corporation


XML Daily Newslink
Receive daily news updates from Managing Editor, Robin Cover.

 Newsletter Subscription
 Newsletter Archives
Globe Image

Document URI:  —  Legal stuff
Robin Cover, Editor: