Perhaps you've already thumbed through the book, so you might have noticed that it breaks into three main parts . The first part is composed mostly of text and diagrams; the second features lots of example code; the last displays a number of screenshots. This sequence metaphorically reflects the path that we'll follow from manipulating abstract notions, to writing practical markup and code, to launching and maintaining a final working web site.
Chapter 1 is mostly theoretical; we'll spend some time discussing the basic premises of XML and its applicability to web development. It is recommended that you read this chapter carefully , for its concepts and terminology are used throughout the book. No real harm will be done, however, if you poke into the book's code examples first and return to Chapter 1 later.
The topics of this chapter include the principles behind using XML with web sites, an overview of relevant XML standards, and a classification of the possible ways to set up an XML web site. Special attention is paid to the dynamic web sites and the approaches to combining XML processing with a dynamic engine.
Chapter 2 is dedicated to the foundation of an XML web siteits source definition . This includes schemas for all document types used by the web site's XML source plus all the rules and regulations that may be impossible to express in a schema language but that the source must satisfy in order to smoothly transform into a correct web site.
In this chapter, we'll look at different schema languages and discuss the implementation options for those parts of the source definition that a schema cannot handle. We will also examine the common generic markup constructs, the best approaches to their schematization, and a number of corresponding pitfalls. For instance, in this chapter you'll find insights into the eternal "child elements vs. attributes" dilemma.
Chapter 3 is the practical complement to the previous chapter. Here, we'll use the approaches of Chapter 2 to mark up some real web site source documents. Most common elements of web pages, such as text blocks, headings, links, and images, are considered . In most cases, existing standardized vocabularies that you can borrow from are mentioned.
Some important concepts of the book, such as abbreviating addresses, are introduced in this chapter. This is also the chapter where markup examples start appearing in large numbers , so if you prefer to learn by looking at examples, you might want to start your reading from this chapter. The last section of the chapter presents summary examples of a page document, a master document, and a Schematron schema that validates both types of documents.
Chapter 4 is the first of the two XSLT chapters. It is an introduction aimed at a developer who has had some experience with XSLT 1.0. Here, we'll discuss some of the new stuff that is being introduced in XSLT 2.0 and XPath 2.0 as well as the existing XSLT extensions. A detailed analysis is devoted to the important issue of adapting traditional algorithms to XSLT, which is a functional language without an assignment operator.
Chapter 5 is the core of the bookthe practical XSLT chapter and the largest of all of them. Lots of XSLT code examples show all aspects of an XML-to-HTML transformation, from setting up the environment and building the page layout to low-level text processing. We'll also revisit our Schematron schema to add some exciting new checks made possible by XPath 2.0.
This chapter not only uses but extends XSLT. We'll see how a few simple Java classes may drastically advance the capabilities of an XSLT stylesheet. These extensions are used in Chapter 5 for all kinds of tasks , from generating bitmap images via SVG to batch processing all page documents of a site. Again, a section with complete listings of the stylesheet and related bits of code summarizes this chapter.
Chapter 6 is where the screenshots are. It is devoted to all kinds of software that will help you run your XML web site after the core validation and transformation components are ready. The focus here is not on specific programs but on classifying the functionality of XML software and the approaches to various practical problems.
Sections of this chapter discuss the existing XML authoring paradigms and the principles of converting other formats into XML. Also reviewed are various tools and utilities for handling XML, XSLT, and XPath. The last section explores the use of build tools, such as the make utility, in XML web site projects.
Chapter 7 is concerned with integrating the XML/XSLT system into a web server setup. We'll briefly discuss using an XSLT processor as a servlet, but the bulk of this chapter is devoted to Apache Cocoon, which crowns the chapter and the book. After learning the principles of building Cocoon web sites, we'll revisit our sample web site from previous chapters to see what it takes to adapt it to run under Cocoon.