| XML and the ATA Interchange Model | Table of contents | Indexes | AECMA 1000D and IETP : Diverse approach to define IETP from Data-Modules, | |||
Comparing Styling in Layout-driven & Content-driven Documents |
|
Stephen Deach |
| Sr. Computer Scientist |
| Adobe Systems, Inc. 345 Park Avenue — W14-110 San Jose California 95110-2704 USA Email: sdeach@adobe.com Web: www.adobe.com |
Biographical notice: |
Stephen Deach |
At Adobe, he has worked on Illustrator and is currently working on FrameMaker. |
He represents Adobe on theW3C -XSL Working Group |
ABSTRACT: |
Content-Driven Documents DB, Database ![]() DSSSL ![]() Database Publishing ISO ![]() Layout-Driven Documents SGML ![]() Style Sheets W3C ![]() XML ![]() XSL ![]() |
Keywords: Content-Driven Documents, Layout-Driven Documents, Style Sheets, DB, Database Publishing, DSSSL, ISO, SGML, W3C, XML, XSL |
Copyright 1998 — Adobe Systems Incorporated, All Rights Reserved |
Introduction |
|
I expect that much of this audience is familiar with the production of content-driven documents because that is whereSGML has been most successful. |
Documents that are predominantly content-driven include — |
But what about — |
— and the ever painful — |
Then, what about — |
Characteristics of Documents In Each Class |
|
I’m going to summarize the characteristics common to typical content-driven documents, then those of typical layout-driven documents. One should remember that nothing is pure: |
Characteristics of Content-driven Documents |
|
Content-driven documents have a number of common characteristics — |
Characteristics of Layout-driven Documents |
|
Layout-driven documents have a number of common characteristics — |
Production Processes |
|
Production Processes for Content-driven Documents |
|
The steps that one goes through to produce the typical large, content-driven document (somewhat simplified) — |
Production Processes for Layout-driven Documents |
|
I want to start this section with a question — |
When you come to and actually start to think about how you would organize your document and your production processes to do this, I suspect you would do something like the following — |
This is exactly the production strategy of your daily newspaper. |
|
I’ve outlined the general strategy of a newspaper’s production process. Let’s walk through the general workflow — |
There are 3 key points that I identified in this layout-driven process description — |
Specific Formatting Features |
|
Similarities between Content-driven and Layout-driven Documents |
|
There are many similarities in the formatting of content-driven and layout-driven documents. For example, the level of general typography is fairly similar, so controls over the following are fairly similar — |
You may think that some of these style properties differ between content-driven and layout-driven applications — they don’t. What is happening is that you are really comparing products with 2 different levels of service. |
For example, if we take the basic justification properties — |
This span exists on the content side as one moves from basic word processors to high-end book production systems. The same span exists on the layout-driven side as one moves from basic drawing or presentation-graphics applications to high-end ad production products. |
Formatting Features More Common in Content-driven Documents |
|
The primary goal of the content-driven styling process is to minimize the amount of human interaction with the layout process. As much as possible is specified in rules. |
Formatting Features More Common in Layout-driven Documents |
|
The goal of most layout-driven documents is to allow each page to be unique, thus more likely to catch the reader’s attention. |
Software Architectures |
|
Traditionally, documents and applications have fallen into either the content-driven category or the layout-driven category — the Web will change this. Documents presented on the Web have many of the characteristics of layout-driven advertising. However, when you go to print that document, it would be better served by a content-driven presentation. |
Many people have said that they don’t believe one application could be developed to support both layout-driven and content-driven domains. I don’t support that belief. |
In this section, I am going to look at the architectures of existing applications. As I do, I’ll identify areas that limit the use of the products across both domains. In most cases, these limitations involve: |
Software Architecture for Content-driven Documents |
|
Current content-driven applications have been fairly successful at adopting the content/styling/layout split that is necessary to support multipurpose-reuse of the content. |
Early typesetting systems (late 1970’s) had direct/inline/cumulative markup for setting styling, column width, etc.; but layout was done with an X-acto knife. When computer area-composition came along, it was done mostly as a wrapper around the galley composer, rather than by embedding inline markup — so the low-level styling was tightly bound (even intermingled) with the content, but layout was separate. As these systems have aged over the past 20 years, they have been replaced with stronger indirect (style-sheet) systems that break the binding of the low-level styling and the content, thus are much closer to the desired model. |
Word processors have not evolved as far. |
Products like FrameMaker have gone a few steps further. They allow us to split styling from the layout and from the content. |
Finally, products like FrameMaker+SGML go one step further, allowing indirect assignment of these styles based on the context in which an element appears. This is probably the minimum needed to support the needs of hybrid documents, though segregation of the reorganization and synchronization of parallel flows is probably still needed. (The lack of the explicit reorganization capability is one reason that FM+SGML doesn’t handle multi-article SGML documents very well.) |
DSSSL provides an adequate architecture for specifying the content reorganization, style assignment, specification of basic page design, and mapping of content to page areas. DSSSL was designed to support serializable processing of a document in a manner similar to batch book production formatters. It was not designed to handle hybrid or layout-driven documents. In order to support hybrid content-driven/layout-driven documents, I would prefer separation of the layout specification from the flow restructuring/synchronization, and separation of the reorganization from the styling. In addition, (again by intent) the requirements placed on the formatter (and formatting algorithms) are not fully specified and many of the actual decisions needed to perform the pagination and text placement are left to the implementor of the formatter. |
Software Architecture for Layout-driven Documents |
|
We aren’t as lucky here — Tight bindings run rampant. |
Why? ... |
— As a result, there are no "standards-based" specifications for layout-driven document formatting. Illustrator, Pagemaker, and Quark provide the most widely understood proprietary implementations. |
I expect that tools will evolve to support stronger layout-driven models over the next 5 years. HTML -export has forced products in these markets to address the problem of creating structured content representations for individual articles. It is not a large step to allow importing of articles from HTML , as well as import and export of XML and SGML formats. These articles could have the headline blocks and photo assemblies (photo, photo-title, descriptive-caption, & credit) attached or the headline blocks and photos could be carried separately, as required by the content use/reuse. In addition to the content/styling split forced by SGML / XML import, attempts to support reuse will force a similar content/layout split and the associated formalization of layout specification models. |
In most layout-driven environments, content reorganization is less important than it is in content-driven environments (except in areas involving DB publishing). The separation between content-structure-rules, content, styling for area composition, layout specification and the actual pagination/layout will become more critical. |
Architecture to Support Both |
|
Over the next few years, the web and the desire for document re-use/repurposing will cause tools to emerge that can create documents in both the content-driven and layout-driven forms and to convert documents from one to the other. |
To merge the capabilities of content-driven applications and layout-driven applications, it is necessary to divide the styling specification and the formatter implementation into 4 separate domains (though these may be combined into a single style sheet, the conceptual separation is necessary). This is analogous to the DTD /content split in SGML / XML . |
These domains are — |
Why is this separation needed? |
Many of the style assignments are transferable across document types, but change with the target media. However the document restructuring, pagination, and area composition requirements change as one crosses the content-driven/layout-driven line. It also changes among document types or document components within each major class. You want the ability to swap-out only the necessary style specification portions as you move from one document type or presentation type to another, or as you move from component to component within a given document. |
For example, there are separate page design tools for different document and component types — |
|
Similar functionality differences across document types and component types exist in area composition, styling, and reorganization. It is necessary for the formatter (a browser is also a formatter) to handle all the possibilities. Specialized editing tools are required for the different component and document types and for different workflow steps, in order to foster designer, author, editor efficiency. |
Conclusions |
|
I’m going to close this presentation with 2 related predictions — |
| XML and the ATA Interchange Model | Table of contents | Indexes | AECMA 1000D and IETP : Diverse approach to define IETP from Data-Modules, | |||