FINAL
DSSSL Survey
and
Assessment Report

for the

DOD CALS IDE PROJECT

An MVP Joint Venture

March 1997

Submitted by
ManTech Advanced Technology Systems
West Virginia Technology Applications Operations Center
1000 Technology Drive, Suite 3310
Fairmont, West Virginia 26554

In support of
Contract DAAB10-94-D-0503-0048
and in compliance with
CDRL Sequence Number A009



______________________
______________________
Robert S. Kidwell
Jack G. Richman
Technical Director
Executive Director
DoD CALS IDE Project
DoD CALS IDE Project



TABLE OF CONTENTS

   
[ Next ]           [ Home ]

LIST OF FIGURES
LIST OF TABLES
ABSTRACT
1.0  DOCUMENT STRUCTURE
2.0  HISTORY
3.0  OVERVIEW OF SPECIFICATIONS
    3.1  MIL-PRF-28001C Output Specification
    3.2  Document Style Semantics and Specification Language (DSSSL)
        3.2.1  DSSSL-Online
4.0  DSSSL VS 28001 OS CHARACTERISTICS EVALUATION
    4.1  Summary of Output Specification Characteristics
        4.1.1  Resource Description
        4.1.2  Security Description
        4.1.3  Page Models and Pagination Characteristics
        4.1.4  Style Description
        4.1.5  Graphics Description
        4.1.6  Table Description
        4.1.7  Footnote Description
    4.2  Document Style Semantics and Specification Language Characteristics
    4.3  DSSSL-Online Characteristics
    4.4  Comparison Matrix
    4.5  Comments on Matrix
    4.6  Internet DART
    4.7  MIL-M-38784C Formatting Requirements of Technical Manuals
5.0  SUMMARY SECTION
APPENDIX A:  MIL-PRF-28001C / OUTPUT SPECIFICATION CHARACTERISTICS
APPENDIX B:  DSSSL CHARACTERISTICS TABLE
APPENDIX C:  MIL-M-38784C REQUIREMENTS ADDRESSED BY DSSSL AND OS
APPENDIX D:  REFERENCES
APPENDIX E:  ABBREVIATION AND ACRONYM LIST

LIST OF FIGURES


      
[ Previous ]           [ Next ]           [ Home ]

Figure 2.0-1  Procedural Markup
Figure 2.0-2  Descriptive Markup
Figure 3.1-1  FOSI Context Diagram
Figure 3.2-1  DSSSL's Transformation Language Flow Diagram
Figure 3.2-2  DSSSL's Style Language Flow Diagram
Figure 4.0-1  Venn Diagram Characteristics Evaluation
Figure 4.1.3-1  Page Parameter Areas
Figure 4.2-1  Inline and Display Area
Figure 4.6-1  MOREplus System Architecture
Figure 4.6-2  Sample DART Page

LIST OF TABLES


      
[ Previous ]           [ Next ]           [ Home ]

Table 4.4-1  DSSSL Output Specification Comparison Matrix

ABSTRACT


      
[ Previous ]           [ Next ]           [ Home ]

The emergence of the International Organization for Standardization (ISO) standard known as the Document Style Semantics and Specification Language (DSSSL) is expected by many to be the long awaited solution to providing an internationally standardized method for formatting style and applying transformations steps to Standard Generalized Markup Language (SGML); (ISO 8879). In the Continuous Acquisition and Life-Cycle Support (CALS) domain with SGML defined by MIL-PRF-28001C, the Output Specification (OS) was created to provide users with the ability to format their SGML documents in a standardized and interchangeable manner, first for printed output and second for electronic presentation and delivery.

This report will discuss both of the specifications and will attempt to functionally correlate the features offered by them. This report will assess the capabilities, benefits, and limitations of the emerging DSSSL standard for the display of technical information in a platform independent manner and compare it to the capabilities, benefits, and limitations of the current OS in MIL­PRF­28001C. A key part of this report will be to identify the technical issues associated with the OS and the DSSSL standard and then assess the gaps that exist in both of the standards with respect to the formatting of technical manual data. Functionality and characteristics matrices will be established for each of the standards. The matrices method opens the door for an objective and impartial analysis and will identify the overlapping and isolated features in the two specifications. Armed with this information, the user will have an independent, universal set of formatting requirements for technical manuals to identify the features not addressed by either of the specifications.

Active participation from the vendor community is vital for the development and progress of either of the specifications. In our research, we have identified only a limited number of vendors supporting the Output Specification targeted to specific program implementations. Furthermore, it was discovered that the different vendors have not interpreted all aspects of the OS in the same way, resulting in Formatting Output Specification Instances (FOSIs) that are not directly interchangeable. With the recent release for publication of the DSSSL standard, products conforming to DSSSL are still in their infancy and are expected to establish themselves in early 1997. The report will introduce some of the vendor plans for DSSSL implementations and their time schedules. In addition to the DSSSL standard, a DSSSL-Online Specification, whose objective is to specify a subset of DSSSL as the basis for electronic delivery of documents, is being developed. The DSSSL-Online subset is also included in the scope of this report and is assessed with the OS.

Technical manuals are publications that contain instructions for the installation, operation, maintenance, training, and support for weapon systems, weapon systems components, and support equipment. MIL-M-38784C is a military specification titled Manuals, Technical: General Style and Format Requirements. The specification covers the general style and format requirements for the preparation of technical manuals and changes to standard technical manuals. The formatting requirements and style for technical manuals given in this specification are taken and a matrix that marks the requirements addressed by the MIL-PRF-28001 OS and DSSSL is also studied in this report.

1.0  DOCUMENT STRUCTURE


      
[ Previous ]           [ Next ]           [ Home ]

This report will first give a brief history of the requirement for the formatting of SGML information and the techniques currently available for doing so. An in-depth introduction to the Output Specification, followed by a discussion of DSSSL, its uses and versatility will follow. It will provide detailed introductions to the Output Specification in MIL-PRF-28001 C and the Document Style Semantics and Specification Language. A methodology for the assessment of the features and characteristics will be provided as the underlying approach to the task of comparing the formatting features addressed by the two specifications.

To arrive upon a set of formatting requirements for the comparison of the MIL-PRF-28001 Output Specification and DSSSL, it is necessary to carefully study the characteristics of each of these standards as well as those characteristics not covered by each of these specifications and develop a matrix of comparison criteria. This generic set of criteria must be able to expose the features that both of the specifications address and those they do not. This falls in line with our development of an Independent Universal Set of formatting requirements for technical manuals. This analysis between the two specifications results in the formation of a comparison matrix within the scope of this report.

The second matrix given in the appendix of this report concentrates on the formatting requirements specified in MIL-38784: Manuals, Technical: General Style and Format Requirements. Using the criteria specified in this military specification, the requirements of formatting for technical manuals are marked against the features addressed by the Output Specification and DSSSL. This matrix will identify the features not offered by the two specifications and could be a starting point for possible future enhancement of either specification. We anticipate that this matrix will help identify a possible migration path between implementations using the Output Specification towards the DSSSL specification.

A summary and conclusion section will discuss the findings in this comparison study. Detailed matrices consisting of the MIL-PRF-28001 Output Specification and DSSSL characteristics will be given in the appendices.

2.0  HISTORY


      
[ Previous ]           [ Next ]           [ Home ]

SGML is an international standard for the description of marked-up electronic text. More exactly, SGML is a metalanguage, that is, a means of formally describing a language, in this case, a markup language. Historically, the word markup has been used to describe annotation or other marks within a text intended to instruct a compositor or typist how a particular passage should be printed or laid out. Examples include wavy underlining to indicate boldface, special symbols for passages to be omitted or printed in a particular font, and so forth. As the formatting and printing of texts was automated, the term was extended to cover all sorts of special markup codes inserted into electronic texts to govern formatting, printing, or other processing.

By markup language we mean a set of markup conventions used together for encoding texts. At a banal level, all printed texts are encoded in this sense: punctuation marks, use of capitalization, disposition of letters around the page, even the spaces between words, might be regarded as a kind of markup, the function of which is to help the human reader determine where one word ends and another begins, or how to identify gross structural features such as headings or simple syntactic units such as dependent clauses or sentences. A markup language must specify what markup is allowed, what markup is required, and how markup is to be distinguished from text. SGML provides the means to satiate these requirements. Markup is everything in a document that is not content. Markup originally referred to the handwritten notations that a designer would add to typewritten text; these notations contained instructions to a typesetter about how to lay out the copy and what typeface to use. This kind of markup is known as "procedural markup." Most electronic publishing systems today, such as word processing software and desktop publishing software, use procedural markup. Procedural markup is typically unique to a specific software package such as Microsoft Word and Quark XPress. Each has its own set of markup codes that make sense; only to itself. This markup usually takes the form of formatting codes that are mixed in with the text of the document. Procedural markup codes apply to a single way of presenting the information, such as a printed page, and provide no capability to define appearance for other media, such as Compact Disk with Read Only Memory (CD-ROM) or for publishing across the Internet.

Descriptive markup, also known as "generic markup," describes the purpose of the text in a document, rather than its physical appearance on the page. The basic concept of descriptive markup is that the content of a document should remain separate from its style. Descriptive markup is based on the structure of a document and identifies elements within that structure--such as a chapter, a section, or a table of contents--using notations that describe what the element is, not how it appears. By separating presentation information (i.e., style) from the structure, descriptive markup allows for multiple presentations of the same information. For example, you can publish on paper, on-line, on CD-ROM, and on the World Wide Web (Internet), all from one set of source files.


Figure 2.0-1  Procedural Markup


Figure 2.0-2  Descriptive Markup

A typical document consists of three layers: structure, content, and style. SGML separates these three aspects, but deals mainly with the relationship between structure and content. At the heart of an SGML application is a file called the Document Type Definition (DTD). The DTD describes the structure of a document, much like a database schema describes the types of information it handles and the relationships between the fields. A DTD provides a framework for the elements (such as chapters and chapter headings, sections, and topics) that constitute a document. A DTD also specifies rules for the relationships between elements; for example, "a chapter heading must be the first element after the start of a chapter." These rules, which the DTD defines, help ensure that documents have a consistent, logical structure. A DTD accompanies a document wherever it goes. A "document instance" is a document whose content has been tagged in conformance with a particular DTD. Content is the information itself: content includes titles, paragraphs, lists, tables, graphics, and audio. The method for identifying the content's position within the DTD structure is called "tagging." Creating an SGML document involves inserting tags around content. These tags mark the beginning and end of each part of the structure. The structure of a particular document is revealed by the nesting of tags. Fortunately, human beings usually do not have to deal with manually typing in tags and checking to make sure all the tags are there. Some SGML-based authoring software programs make it easy to enter tags by clicking on pull-down menus that list only those tags that are valid at the cursor's current position in the document. These programs rely on a software module called a "parser" that verifies that the document follows the rules of the DTD. (The parser also verifies that the DTD itself is structurally correct.)

Three characteristics of SGML distinguish it from other markup languages: its emphasis on descriptive rather than procedural markup; its document type concept; and its independence of any one system for representing the script in which a text is written. A descriptive markup system uses markup codes that simply provide names to categorize parts of a document. By contrast, a procedural markup system defines what processing is to be carried out at particular points in a document. In SGML, the instructions needed to process a document for some particular purpose (for example, to format it) are sharply distinguished from the descriptive markup that occurs within the document. Usually, they are collected outside the document in separate procedures or programs.

With descriptive instead of procedural markup, the same document can readily be processed by many different pieces of software. Each of these can apply different processing instructions to those parts of it which are considered relevant. For example, a content analysis program might disregard entirely the footnotes embedded in an annotated text, while a formatting program might extract and collect them all together for printing at the end of each chapter. Different sorts of processing instructions can be associated with the same parts of the file. For example, one program might extract names of persons and places from a document to create an index or database, while another, operating on the same text, might print names of persons and places in a distinctive typeface. Secondly, SGML introduces the notion of a document type, and hence a DTD. Documents are regarded as having types, just as other objects processed by computers do. The type of a document is formally defined by its constituent parts and their structure. If documents are of known types, a special purpose program (called a parser) can be used to process a document claiming to be of a particular type and check that all the elements required for that document type are indeed present and correctly ordered. More significantly, different documents of the same type can be processed in a uniform way. Programs can be written to take advantage of the knowledge encapsulated in the document structure information, and can thus behave in a more intelligent fashion.

It should be stressed that the SGML standard is entirely unconcerned with the semantics of textual elements. The semantic considerations are application dependent. Standardized markup using the SGML is the most powerful and flexible means of encoding the structure of textual information that exists today. Markup defined using SGML can be efficient and extremely portable. SGML encoded text can be versatile and can be interpreted into typeset printed products or electronic applications. SGML was developed to address the problems of information exchange and management challenges associated with electronic printed output and exchange of textual information. ISO participated in the development of the SGML standard and adopted it in 1986 as ISO 8879. This standard completely defines the terms and syntax to specify the structure and content of a document. Because ISO 8879 does not provide functionality for specifying appearance, formatting requirements, or standards for style, most systems still rely on proprietary methods. With SGML being independent from presentation, some means of describing presentation to a document composition system was needed. Unfortunately, the language that the international standards community was developing to satisfy this requirement, called the Document Style Semantics and Specification Language (DSSSL), was first published in draft form in late 1994, and was published as an official ISO standard in late 1995 - eight years after the CALS requirement was identified. During that time, the Department of Defense (DoD) elected to establish an interim capability for CALS, based upon SGML, that addressed composition. The first version of the DoD's MIL­M­28001 Output Specification (March 25, 1987) applied this in a limited manner by focusing on paper output.

The OS is in the form of a particular DTD that allows the user to create a FOSI, that is well suited to printed output. A FOSI is essentially a powerful style sheet that specifies the formatting for each tag in a DTD. A FOSI, the document instance, and the DTD constitute a complete interchange package for printed documents. In a DSSSL domain, a complete interchange package would also be constituted by the document instance, the DTD, and the DSSSL specification.

3.0  OVERVIEW OF SPECIFICATIONS


      
[ Previous ]           [ Next ]           [ Home ]

This section gives a broad overview of the Output Specification and the DSSSL. The introductions are followed by general discussion of the methodology that we employed in the comparison of both of these specifications as well as an in-depth look at their features and characteristics.

3.1  MIL-PRF-28001C Output Specification

The DoD application of SGML is specified in MIL­PRF­28001C. ISO 8879 defines SGML as a meta-language. Many different SGML languages satisfying the grammar and syntax specified in ISO 8879 can be obtained by choosing from among different features and options afforded by ISO 8879. MIL­PRF­28001C specifies the DoD CALS SGML implementation by choosing certain SGML features and setting certain parameters. MIL­PRF­28001C also uses SGML to provide a capability for specifying the formatting of CALS SGML documents.

An ISO 8879 SGML document contains three parts: the SGML declaration, the Document Type Definition (DTD), and the Document Instance. A CALS SGML document contains these parts and may also contain a Formatting Output Specification Instance (FOSI) for paper delivery or a Formatting Presentation Specification Instance (FPSI) for electronic delivery (Revision C). The SGML declaration defines what characters will be allowed in the rest of the document and how they will be encoded. The SGML declaration also specifies how certain characters are to be interpreted along with other special rules and definitions. The DTD defines the content and structure of a document. It refers to how the information in a class of documents such as technical manuals, books, memos, etc., is related, and defines any dependencies. Markup of a document provides an unambiguous definition of its structure and content, allowing automated data processing software to process the document in a predictable manner. Also defined in the DTD are entity declarations. The document instance is the information content of the document, marked up in accordance with a DTD. This markup may include declarations, tags, and entity references. The FOSI specifies the desired appearance of the information content of the document. This output formatting description capability is not contained in ISO 8879, but is found in MIL­PRF­28001C. MIL­PRF­28001C contains an Output Specification (OS) DTD that defines how FOSIs are to be developed and interpreted.

The goal of the OS is to allow for the interchange of style and formatting information between all types of publishing systems. It describes a method for interchanging formatting requirements for documents whose source files are tagged according to DTDs. The OS DTD describes the rules that must be followed to develop a FOSI. The FOSI specifies layout characteristics for page models, and style characteristics for graphics, tables, and all other elements. The categories of format and style characteristics are represented in the OS DTD as elements. Individual characteristics are represented as attributes on those elements. A FOSI is the set of characteristics and values chosen from the OS DTD to represent the formatting requirements for a particular type of document.

Characteristics are descriptions of the format of a document, rather than commands that tell a formatting system what to do. A FOSI is intended to specify how a particular group of documents should be formatted. The FOSI for that class of documents should be used any time data need to be presented. If the same information needs to be used for another purpose (it falls under a different class of documents), a different FOSI would be used to present the data in the appropriate format. A FOSI author must have a background in typographic design and a working knowledge of SGML. The most important qualification, however, is an intimate familiarity with the requirements of the formatting and style specifications for the class of documents that are to be represented through the FOSI.

The figure below outlines the context of a FOSI analogous to the DTD and the SGML document instance. In an SGML system, both the DTD and the SGML document (and instance of the DTD), can be parsed by an SGML validating parser. Similarly, the Output Specification DTD and the FOSI ( an instance of the OD DTD) can be parsed. A formatting engine would take the FOSI and the SGML instance to produce the required formatted document.


Figure 3.1-1  FOSI Context Diagram

From the diagram above, it can be seen that the FOSI is also an SGML document, and specifies how another SGML file is to be formatted. In certain contexts FOSIs provide a device-independent way to specify semantic information. The FOSIs can be read by a typesetter creating paper or a browser rendering characters on a graphical device. It is up to the application utilizing the FOSI to provide the system-specific information required to render the font and style information. Although the FOSI provides the important service of separating the formatting information from a specific output device, it is limited in some aspects. It is sometimes necessary to insert certain pre-processing steps in front of the SGML data file that utilizes the FOSI. Further discussion of some of these matters will be in the sections following the characteristics and comparison sections that follow.

3.2  Document Style Semantics and Specification Language (DSSSL)

As mentioned earlier, in any generalized markup scheme, there must be a method for associating processing specifications with the SGML markup. This method of association allows the information to be attached to specific instances of elements as well as to general classes of element types. The primary goal of DSSSL is to provide a standardized framework and methods for associating processing information with the markup of SGML documents or portions of documents. DSSSL is intended for use with documents structured as a hierarchy of elements. The main objective of this international standard is to provide a language for expressing formatting and other document processing specifications in a formal and rigorous manner so that these specifications may be processed by a broad range of formatters, either natively or using a translation mechanism. The Document Style Semantics and Specification Language (DSSSL) is used to specify the formatting and transformation of SGML documents. The initial focus of DSSSL is on formatting for both paper and electronic media and on the transformation of SGML documents marked up according to different DTDs. DSSSL may be used with any SGML documents without requiring modifications or constraining the document type definitions.

DSSSL enables formatting and other processing specifications to be associated with elements in a source SGML file to produce a formatted document for presentation. DSSSL consists of two main components: a transformation language and a style language. The transformation language is used to specify structural transformations on SGML source files. For example, all the references quoted in a book's chapter may be transformed with the transformation specification, to appear at the end of a chapter rather than in the footnote of a page. The transformation language also can be used to specify the merging of two or more documents, the generation of indices, tables of content, and other such applications. While the transformation language is a powerful tool for gaining the maximum use from document bases, the focus in early vendor implementations as well as the focus of our work will be upon the style language component. The figure shown below represents the steps involved in the transformation process. The output of the transformation process is a transformed resultant SGML file. During the DSSSL transformation process, formatting information may be added to the result of the transformation. This information may be represented as SGML attributes. These, in turn, may be used by the style language to create formatting characteristics with specific value.



Figure 3.2-1  DSSSL's Transformation Language Flow Diagram

Figure 3.2-1 shown above illustrates the processes involved in the transformation process. In the Grove Building process, the input SGML document or subdocument is parsed and is represented by a collection of nodes called a grove. A grove is similar to an element tree, but may include other subtrees, for example, a subtree of attribute values. Relationships in a grove are expressed in terms of properties. The input to the transformation process includes the SGML document as created during the grove building step and the transformation-specification. The transformation-specification consists of a collection of associations. Each association specifies the transformation of like objects in the source document into objects in the result grove. Key to this transformation is that not only can each object be mapped to an explicit location in the result grove, but also it can be mapped to a location using the result of transforming some other source object as a reference point. The output of the transformation process is the result grove. The transformation process may operate on multiple SGML documents as input to the process, and likewise may transform them into multiple SGML documents. The transformation process produces a grove that must be converted to an SGML document for interchange, validation, and input to the formatting process. The SGML generator is used for this purpose. The output of the SGML generator shall be a valid SGML document.

The style language is a part of the areas of standardization offered by DSSSL and is used for specifying the application of formatting characteristics onto an SGML document. The process that applies formatting and other formatting-related processing characteristics to an SGML document is called the formatting process. The term "formatting" is used to specify the process that applies presentation styles to source document content and determines its position on the presentation medium, the selection, and reordering of content in the result document with respect to its position in the input document, the inclusion of material not explicitly present in the input document, such as the generation of new material, and the exclusion of material from the input document in the result document. The objective of DSSSL is to provide a formal and rigorous means of expressing the range of document production specifications, including high-quality typography required by the graphics arts industry. It supports SGML applications by providing a standardized architecture for the formatting specifications because many users require a standardized approach for interchanging the formatting and other processing information. DSSSL also can be used for the extraction of information from SGML documents for loading into databases. In other words, DSSSL defines a standard way of describing the external appearance of SGML documents.

This process is controlled by the style-language-specification. It is important to note that for the DSSSL style language and the associated formatting process, DSSSL does not standardize the process itself, but merely standardizes the form and semantics of the style language controlling a portion of the process. The remaining formatting functions, such as line-breaking, column-breaking, page-breaking, and other aspects of whitespace distribution, are not standardized and are under control of the formatter. Figure 3.2-2 shown below outlines the formatting specified by the style specification.


Figure 3.2-2  DSSSL's Style Language Flow Diagram

DSSSL defines the visual appearance of a formatted document in terms of formatting characteristics attached to an intermediate tree called the flow object tree. DSSSL allows enough flexibility in the specification so that it is not tied to a set of composition or formatting algorithms (i.e., line-breaking, page-breaking, or whitespace distribution algorithms, used by any particular formatting system). These aspects of the layout process are specific to individual implementations. In this international standard, line-breaking and page-breaking rules may be expressed in terms of constraints and other formatting characteristics that govern the formatting process. The output of the formatter, undefined in this international standard, is a formatted document suitable for printing or imaging.

The conceptual processes that constitute the formatting process are building a grove from the SGML document, application of construction rules to the objects in the source grove to create the flow object tree, definition of page and column geometry, and composition and lay out of the content based on the rules specified by the semantics of the flow object classes and the values of the characteristics associated with those objects.

The formatting process uses the same grove building step as the transformation process to convert the SGML document into a grove of hierarchically structured objects. The grove is then further processed, using the construction rules, to create a flow object tree consisting of flow objects with the appropriate formatting and page-layout characteristics. Each flow object (except an atomic flow object) has one or more sequences of flow object children. Each sequence of flow object children is attached to a point of a flow object called a port. Either the port is the principal port of the flow object, or it may be named. A flow object class defines a set of formatting characteristics that apply to some category of flow objects. Each flow object class also defines a set of port names. The class of a child flow object shall be compatible with the class and port name of the port to which it is attached. In constructing the flow object tree, the Standard Document Query Language (SDQL) may be used to identify portions of the SGML document that have specific formatting characteristics as well as those that can be treated together for purposes of flowing onto the same column or page. The content that is flowed together is placed as a sequence of flow objects in a port of the parent in the flow tree. The flow object classes and the characteristics that apply to them define the formatting appearance and behavior of the contents of the document.

A complete package for publishing using DSSSL would contain the SGML source, corresponding to the structure of the source DTD, the DTD corresponding to the virtual intermediate document that is the result of the general language transformation, and the DSSSL specification, which associates semantics to each logical element according to the DSSSL document architecture.

As is the case with SGML, software is required to process the information contained in DSSSL documents. A DSSSL formatter will be able to generate the specification automatically and read and apply them to conforming SGML documents. The instance of "page" layout can be input for a text formatter, output in PostScript, or generate an Standard Page Description Language (SPDL) instance.

3.2.1  DSSSL-Online

DSSSL-Online is an application profile of DSSSL designed for the formatting specification requirements of on-line SGML browsers and editors. DSSSL-Online supports the basic features needed to provide publisher-oriented formatting control of on-line displays and a minimum set of page-oriented features needed to provide utility printouts from browsers and editors.

Within the style language, it is possible to identify a number of capabilities that for one reason or another should be considered optional for early implementations. Recognizing this, the designers of DSSSL designated certain features of the style language as optional to make limited implementations possible. There is no particular subset of the style language component within the standard. This has been left to industry organizations and standards bodies. DSSSL-Online is the first of such application profiles.

This report will also address issues pertaining to DSSSL-Online in the analysis and comparison matrices with the OS and the DSSSL.

4.0  DSSSL VS 28001 OS CHARACTERISTICS EVALUATION


      
[ Previous ]           [ Next ]           [ Home ]

The main goal of this study is to independently assess the capabilities of the DSSSL standard and present a comparative study of the formatting features offered by DSSSL to the Output Specification in MIL­M­28001C for Department of Defense needs. On initial survey of the two specifications, it was found that both had a great deal of commonality but had definitive differences both in the approach taken to formatting and in the way they are structured to perform the formatting function. For these reasons, it was decided to independently perform a characteristics evaluation of both of the specifications. This exercise would yield a set of formatting features and attributes that both the specifications contain. This study and evaluation will restrict itself to a discussion of the formatting features outlined in the style language component of DSSSL.

The technique being employed in this report generates a global/universal set of formatting requirements. The set will consist of the formatting features necessary for the publishing of technical manuals. The components of this set have been derived by considering all the formatting features offered by five different composition WYSIWYG systems. Also included in the formatting requirements are the features addressed by the MIL­PRF­28001C OS and DSSSL.

To arrive upon a set of formatting requirements to compare the MIL­PRF­28001 Output Specification and DSSSL, we must carefully study the characteristics of each of these standards and develop a matrix of comparison criteria. This generic set of criteria must be able to expose the features that both of the specifications address. This falls in line with our development of an independent universal set of formatting requirements for technical manuals. This analysis between the two specifications results in the formation of a comparison matrix between the two specifications. The Venn Diagram graphically illustrates the methodology being employed in our comparison matrix. The matrix will yield the different regions of the Venn Diagram and possibly lend ideas for the implementation of a migration plan between the two specifications. For the sake of brevity in the flowing text of this report, detailed discussions of the individual attributes are omitted. Only the main sections and their descriptions are used. A comprehensive list of the characteristics and the attributes is given in Appendix A for the Output Specification and for DSSSL in Appendix B.


Figure 4.0-1  Venn Diagram Characteristics Evaluation


4.1  Summary of Output Specification Characteristics

The goal of the OS is to allow for the interchange of style and formatting information between all types of publishing systems. It describes a method for interchanging formatting requirements for documents whose source files are tagged according to DTDs. A FOSI is the set of characteristics and values chosen from the OS DTD to represent the formatting requirements for a particular type of document. Characteristics are descriptions of the format of a document, rather than commands that tell a formatting system what to do. The information about the content/structure of the document should already be rigorously described in a DTD. The DTD defines the element types, the possible content/structure the document can have using these element types, and the attributes that can be associated with each element type. Formatting information may be contained in a single functional specification or may appear in a combination of specifications or other documents. A FOSI is intended to specify, in general, how a particular class of documents should be formatted. It does not specify with precise fidelity how any particular document was actually formatted; this level of precision is not required and is beyond the purpose of a FOSI. Characteristics are, in general, descriptions of the format of a document, rather than commands that tell a formatting system what to do. For example, if a FOSI has a value of 10 for the font size (size) characteristic for element type A, this should be interpreted as follows: however your formatting system works, make sure that font size 10 is used to process element A. The FOSI should not be interpreted as saying: when you see a start­tag for element A, call a command that changes the font size and give it a value of 10. This is a subtle, but extremely important, distinction. The first interpretation allows any system (including a human) to create the desired end result, while the second interpretation allows for only systems with a specific command language to easily create the desired result. In this way, the OS does not presume to direct how a formatting system should behave in order to accomplish the desired result.

The basic unit of data within the source document identified within a FOSI is an element (qualified by its context and occurrence). Additionally, attribute values associated with the element can be identified. Once identified, an element is treated as whole. The characteristics associated with the element through the FOSI apply to all the content of that element. Every relevant element and attribute in the source DTD should have an entry in the FOSI describing how it is to be formatted. In processing a FOSI, there should be no assumptions made about the source data.

This section will discuss the characteristics offered by MIL­PRF­28001. To completely specify all the formatting features offered by the OS, we must look at all the characteristics, elements, attributes, and the values those attributes can assume from the Output Specification Document Type Definition. This section will detail the features offered by each of the main sub section descriptions of the OS DTD. These are

4.1.1  Resource Description

The resource description (rsrcdesc) gives document-wide hyphenation rules (hyphrule), as well as descriptions of character fills (charfill), counters (counter), strings (stringdecl), and floats (floatloc) that will be used throughout the FOSI. The attributes and the values associated with them are listed in Appendix A. The hyphenation rule category provides for setting various parameters for the hyphenation process that will be used throughout the document. The character fill category provides for describing literals that can be used to fill a space horizontally or vertically. The counter construct is used in the resource description to specify the properties of a counter that will be associated with one or more Elements In Context (e­i­cs) using the enumeration (enumerat) category. The string construct is used in the resource description to specify the properties of a text variable that will be associated with one or more e-i-cs using the savetext or usetext characteristic. The float construct is used in the resource description to specify that an e-i-c's content should float to some place in the output instance other than the next available location in the Flowing Text Area.

4.1.2  Security Description

The security description is used to specify security text in a document. In the security description (secdesc), the strings are established to be automatically generated for the security text identified in the header and footer. To set up these strings, the user must know the possible values for the security attribute in the source DTD. Style and positioning characteristics are specified for the string through the sectext portion of the header and footer specification.

4.1.3  Page Models and Pagination Characteristics

A description (pagedesc) specifies how the pages are to look (the page model) and can be set up independently of the content that goes on them. It describes the placement and relationship of the areas in which the content is to be placed. Development of the FOSI requires an analysis of the formatting specifications for page layout to determine the sizes of these areas and specification of the characteristics that control how and when these areas are created on the page. The following formatting requirements and their characteristics/features are listed below.

Page sets (pageset) provide the means to specify automatic relationships between recto, verso, recto with blank back, verso with blank front, and automatically generated blank pages.

Page parameters provide layout areas within the page such as width and depth of the page, the left and right margin, widths, width of the flow text (though the flow text width is not explicitly specified), different number of columns that are possible in the flow text (flowtext) of a given page specification (pagespec), the individual column widths for that number of columns, gutter area width, top and bottom margins, nominal and maximum depths for headers and footers, and finally change markings (chgmark) area. Figure 4.1.3-1 shown below illustrates the various parameters that can be set for a given page.

Page references are a shortcut for specifying a page model when the only difference from another page model is the header and footer information. Each page model can be assigned an unique identifier through the page id (pgid) attribute. A page reference then refers to this page model through the page id reference (pgidref) attribute, and any header and footer information additionally supplied overrides the header and footer information in the referenced page model.

Headers and Footers typically contain text that is dependent on document content, such as the technical manual identification number and the chapter title. The headers and footers may be specified to allow variable depth.

Positioning and Style of text placed in the header and footers are determined by the subcharacteristics (subchar) specified for puttext and usetext and the vertical quadding (vquad) additionally specified within the header or footer. For simple cases, where the text is anticipated to be a single line, the quadding values are right, left, center, in, and out for horizontal positioning, and the vertical quadding values of top, middle, and bottom for vertical positioning are used. This allows for nine positions relative to the header or footer area.

For more precise positioning and handling of multiple­line text, a box is formed using prespace (presp) to specify the distance from the top edge of the area, postspace (postsp) to specify the distance from the bottom edge of the area, left indent (leftind) to specify the distance from the left edge of the area, and right indent (rightind) to specify the distance from the right edge of the area. Quadding can then be used to specify how the lines are positioned within the box.

Security Classifications may be necessary in headers and footers, which may vary depending on the content of the page or sheet. This text is identified within the headers and footers as security text (sectext). This text is special because it is automatically generated based on the specifications within the security description (secdesc).


Figure 4.1.3-1  Page Parameter Areas

Page Numbers are generated using the enumerate specification in the page resource (pageres).

Footnote Areas can appear at the bottom of each column or span the Flowing Text Area. This part of the page model characteristics can specify the maximum amount of space that the footnotes can take up within the column, the fixed amount of space that should always appear between the text and the footnotes, length and thickness, whether footnotes can break across pages, and whether footnotes stay attached to the footer or the flowing text when a floating figure or table appears at the bottom of the page.

Floating Elements, such as tables and figures, are thought of as floating elements because they may appear in the resulting formatted documents in a different position than where they occurred in the source documents. Proper control of floating elements greatly improves usability of information. The following are a few of the situations that may arise for floating elements. The OS is capable of handling such situations. Although these are by no means the exhaustive list, they may be considered as representative.

  1. Floating figure - title at top of figure.
  2. Floating figure - title at bottom of figure.
  3. Multi-sheet figure - title at top of figure.
  4. Inline figure - title at bottom of figure.

    Note: An inline figure or table appears in the output in the same relative location as it is in the source document instance. It cannot be floated past other material to a place that might be more convenient in facilitating dense page layout.

  5. Figure on same page with associated text - title at top of figure.
  6. Figure on facing page with associated text - title at bottom of figure.
  7. Figure on same sheet with associated text - title at bottom of figure.
  8. All figures placed in a separate section.

4.1.4  Style Description

The Style Description is used to specify formatting characteristics for every element that may appear in the document. A common approach is to look at the formatting specification and determine the overall general requirements of formatting. These requirements can be specified for the document description, thereby providing document­wide defaults. Common sets of requirements also can be specified for certain named environments, for example, for front, body, and rear matter. The style description allows for the unique requirements for element types in specific contexts and specification for the e­i­cs for each.

The style description in the OS is very detailed and is governed by various rules and formatting attributes. The purpose of this study is to bring out the formatting requirements that the OS caters to and compare it on an even plane with those offered by DSSSL.

The following are the major categories of the style description that are presented in MIL­PRF­28001.

Document Defaults are used to specify formatting characteristics for every element that may appear in the document. One approach is to look at the formatting specification and determine the overall general requirements. These requirements can be specified for the document description, providing document­wide defaults.

Environments are useful when some set of characteristics is common to many elements. Environments can be referred to by any e­i­c, and then only the differing characteristics for that e­i­c need to be specified.

Charsubsets are used if a group of characteristics (e.g., font, leading, wordspace) is used together often. One might want to define a characteristic list subset (charsubset) with the appropriate values and then refer to it by name in a charlist. This subset would merge with the rest of the charlist.

Font is used to specify the style for text. It is possible to specify the general style of the font. The font styles are proportionally­spaced serif (serif), proportionally­spaced sans serif (sanserif), monospaced serif (monoser), and monospaced sans serif (monosans). In addition, it is possible to specify the name of an actual font (famname) that the formatting system can optionally select. Characteristics of the font include posture, weight, proportionate width, upright, medium, and regular, respectively. Another characteristic is a value for size, typically in points. How the formatting system actually chooses a font is based on the algorithms within the system. While the specification describes font as a style modified by characteristics, it is common for font libraries to include different actual fonts for upright and italic versions. A detailed list of the characteristics and attributes is given in Appendix A.

Leading is directly related to the font size. In this specification, leading is measured from text baseline to text baseline. Therefore, the value for leading should be at least as large as the value for the font size, and is typically slightly larger.

Hyphenation must be specified for each e­i­c. If it applies, the hyphenation characteristics specified in the document description apply. The only characteristic that can be overridden is the hyphenation zone.

Word spacing and Letter spacing are generally set up for the document description and are rarely changed for a particular element. Typically, word and letter spacing values are specified with em (unit of size/distance) spaces. This allows word and letter spacing to vary with the font in use.

Kerning is to be used by the composition system to specify letter spacing. Pair kerning specifies an approach whereby kerning pairs are looked up in a kerning table. Track kerning is a methodology for placing the same amount of space between characters in a line. Sector kerning is an algorithmic approach for placing space between characters depending on the characters in the line.

Indents establish margins against which text can be positioned. Specify the indents relative to the column area boundaries, or specify indents relative to the text margins of the parent, for example, in the case of nested paragraphs.

Quadding values of left, right, center, and justify represent typical typographic positioning techniques. The values in and out work exactly the same as left and right but leave the actual determination of which side to the formatter based on the bind edge. In and out are most commonly used in headers and footers.

Highlighting attributes like scoring, score weight (scorewt), and score offset (scoreoff) are used for underlining, overbars, and strike­throughs. Reverse, color, and screens are used for special effects.

Change marks specify that either a bar or literal string appears in the change mark area to denote changed text. Font and highlight characteristics can be specified for the string; there is no leading. The change mark literal fits on one line with no line wrapping.

Prespace and postspace specify the space before and after an element, respectively. Note that consecutive prespaces and/or postspaces generally combine in such a fashion that only the highest priority spacing (or, in the case of equal priorities, the largest dimension) in a series takes effect. Some planning for prespace and postspace values will ensure that the FOSI reflects the formatting requirements.

Keeps should be used with discretion because it is very easy to specify unrealistic expectations for the formatter. Because the content of the document is unknown, such a requirement may be impossible to fulfill. Keep is turned on for elements that fit on a single page. A more common formatting requirement is to keep some pieces of adjoining elements together on a page, for example, to keep a title with the first two lines of the following paragraph. This type of requirement can be specified with keep next, keep previous (prev), widow count (widowct), and orphan count (orphanct).

Vertical justification parameters are used in performing vertical justification where the formatter may need to make some adjustments in order to balance the text in the columns. In general, a formatter should attempt to honor all specifications for an element's prespace, postspace, and keeps.

Text breaks (textbrk) typically include a formatting specification that explicitly states requirements for starting text on new columns or pages, such as starting chapters on a new page. This can be specified with start column (startcol) and start page (startpg). In addition, the page model (e.g., foldout pages) to be used when starting on a new page can be specified. The OS makes no assumptions about whether or not elements start on a new line. This information must be explicitly specified for each element that starts on a new line.

Spans are used to specify that text normally placed within a single column in the Flowing Text Area should span all the columns. Note that tables, footnotes, and graphics have special characteristics for specifying their width.

Borders that always appear on a particular type of page should be specified in the page specification (pagespec). In addition, the occurrence of certain elements on a page may trigger the appearance of a border as, for example, with emergency information. Border patterns are specified with a name, which is described in the declaration subset of the FOSI.

Rules are used for inline rules within paragraph text, for example, as in a signature line. Multiple rules can be specified on a single e­i­c; each specification draws one rule.

Character fills are used mainly for leader dots. Character fill patterns are specified in the resource description to set up how the fill string looks and to assign the string a unique name.

Automatic numbering is typically specified for structural elements such as chapters, sections, paragraphs, and steps, as well as tables, figures, and footnotes. In a FOSI, counters are set up that can be referenced by an e­i­c such that the actual value is maintained by the formatter. The counter element in the resource description (rsrcdesc) is used to set up each counter.

Suppressing text is used for text that is marked up in the source document that is intended to be used for some purpose other than in the normal text flow. Typically, the text is saved with a savetext so that it can be used elsewhere.

Puttext is used when the formatting specification requires the generation of a standard piece of text with each occurrence of an element as, for example, with the note heading for a note. This text does not appear in the source document itself; however, by specifying it in the FOSI, the use can be ensured that it is consistent throughout the document.

Putgraph is used when graphics appear in the document that are not part of figures, such as the DoD seal. Putgraph allows identification of these graphics and specifies how they appear in running text.

Savetext allows for saving the content of an element for use elsewhere in the document, for example in the header, footer, or table of contents. The content also still appears in the Flowing Text Area in its normal sequence (unless inhibited by use of the suppress category). Savetext can be used to save combinations of other saved text, saved counters, pseudo­elements, and literals. Usetext is used to retrieve the saved text and specify how it is used.

String construct is used to specify the properties of a string that will be associated with one or more e-i-cs using the savetext or usetext category. All variables that are time independent (i.e., have the same value regardless of when they are used) must be specified with their time status attribute set to "1". The scope attribute can be used to indicate an element name after which all uses of the string should be resolved.

4.1.5  Graphics Description

The graphics description is used to specify various characteristics and attributes for the formatting of graphic elements in an SGML instance. The various characteristics can be grouped as shown below:

Reproduction area dimensions,
Graphic sizing,
Text block, and
Placement.

Reproduction area dimensions give information about the size of the reproduction area (the area on the presentation media) in which the graphic is to be placed. The characteristics are width and depth.

Graphic sizing gives information concerning constraints on how to modify the size or view of graphics to be placed in the reproduction area. The following characteristics apply: Graphic Name, Horizontal Scaling, Vertical Scaling, Scale to Fit, Lower Left Coordinates, and Upper Right Coordinates.

Text block gives information concerning the size and reference point of a text block (textblock). The attributes are Text Block Width, Text Block Depth, Horizontal Reference Point, and Vertical Reference Point.

Placement specifies information concerning constraints on where and how to place graphics or text blocks with respect to the reproduction area. The attributes are Horizontal Placement, Vertical Placement, Start Coordinates, End Coordinates, and Rotation.

4.1.6  Table Description

A table is a rectangular, two-dimensional grid. Its horizontal and vertical dimensions may or may not have uniform measures; they may be determined from the source document instance, the FOSI, or both. The objects within a table are table subset groups, table subsets, columns, rows, and cells. A table is the entire rectangle that takes up space in the Flowing Text Area. Characteristics of the table control the frame. A table subset group (tgroup) is a set of table subsets containing an optional heading subset, an optional footing subset, and one or more body subsets. A table subset is a set of contiguous rows within a table such as the header, footer, or body of a tgroup. There is no space between table subsets in a table. There are three types of table subsets - heading, footing, and body subsets.

Tables present unique formatting characteristics. Tables are important in technical manuals because they contain and present a large amount of data in a format that shows relationships among the data. The characteristics for tables allow for robust and discretionary access and manipulation of data contained within tables, and facilitate exchange with, and use within, databases. The table description is used to describe the organization and formatting of an actual table, that is, data organized into a two-dimensional grid. Any associated information, such as title, is described in the style description.

A cell is the intersection of a column and row and forms the basic area into which table content is placed. Characteristics of the cell control the column and row separators, margins, and alignment.

Two aspects of specifying the style of a table are geometric and text composition. The geometric aspect includes the number of columns, rulings, and margins. The text composition aspect includes font, positioning of text within cells, and generally those characteristics that can be applied to text. Both of these kinds of characteristics can be specified in the FOSI. Special table characteristics are provided to control the style of the table itself. Composition characteristics are used to specify the style of the content.

In general, there is a unique set of characteristics for each table object. In addition, there is a set of standard cell characteristics (stdcellatts) that control the characteristics of a cell but can be specified on any table object. These characteristics include column and row separators, margins, and alignment.

Table characteristics, listed below, are unique to tables, and may be used in conjunction with composition characteristics to fully specify the output of tables. Characteristics that apply specifically to the table element are as follows:

Table Style,
Width Type,
Specific Width,
Relative Width,
Frame List,
Frame Thickness, and
Frame Style.

Cell characteristics apply to cells. They may be specified on any table object and apply to the cells within the scope of that object.

Column Separator On,
Row Separator On,
Column Separator Width,
Row Separator Width,
Column Separator Style,
Row Separator Style,
Left Margin,
Right Margin,
Top Margin,
Bottom Margin,
Horizontal Alignment,
Vertical Alignment,
Alignment Character,
Alignment Character Offset,
Reverse,
Background Color,
Shading,
Rotation, and
Text Width.

Table subset characteristics apply specifically to table subsets.

Number of Columns,
Keep,
Boundary, and
Subset Type.

Column Characteristics apply specifically to table columns.

Column Width,
Column Number,
Column Name,
Span Name,
Start Column Name, and
End Column Name.

Row characteristics apply specifically to table rows.

Break Row.

4.1.7  Footnote Description

In the footnote description, the e­i­cs that describe the elements (or pseudo­elements) will cause their contents to be placed in the footnote area of the page on which these elements are used. Associated with each e­i­c in the ftndesc is a set of footnote attributes that contains a charlist (minus keeps and span) that specifies the formatting of the footnote content itself. More precisely, the contents (e.g., the charlist) of the e­i­c in the ftndesc determine the characteristics for what gets placed in the Flowing Text Area when this e­i­c instance is encountered.

4.2  Document Style Semantics and Specification Language Characteristics

DSSSL enables formatting and other processing specifications to be associated with these elements to produce a formatted document for presentation. The style language is a part of the areas of standardization offered by DSSSL and is used for specifying the application of formatting characteristics onto an SGML document. The process that applies formatting and other formatting-related processing characteristics to an SGML document is called the formatting process. This process is controlled by the style-language-specification. It is important to note that for the DSSSL style language and the associated formatting process, DSSSL does not standardize the process itself, but merely standardizes the form and semantics of the style language controlling a portion of the process.

DSSSL defines the visual appearance of a formatted document in terms of formatting characteristics attached to an intermediate tree called the flow object tree. DSSSL allows enough flexibility in the specification so that it is not tied to a set of composition or formatting algorithms (i.e., line-breaking, page-breaking, or whitespace distribution algorithms) used by any particular formatting system. The conceptual processes that constitute the formatting process are building a grove from an input SGML document, application of construction rules to the objects in the source grove to create the flow object tree, a definition of page and column geometry, and finally the composition and layout of the content based on the rules specified by the semantics of the flow object classes and the values of the characteristics associated with those objects. Each flow object (an instance of a flow object class) is finally formatted to produce a sequence of areas having explicit dimensions and positioned by a parent in the flow object tree.

The concept of an area is used to give semantics to flow objects. The result of formatting a flow object other than the root flow object is a sequence of areas. The nature of these areas is not fully specified by this international standard. An area is a rectangular box with a fixed width and height. An area is also a specification of a set of marks that can be imaged on a presentation medium. An area may contain other areas. In particular, an area may contain a glyph. Information may be attached to areas depending on the flow object that produced the area and the context in which it is to be used. Areas are of two types: display areas and inline areas. Display areas are areas that are not directly parts of lines. A display area has an inherent absolute orientation. Inline areas are areas that are parts of lines. Each type of area is placed in a different way. For an illustration of the concept of displayed and inlined areas, please see Figure 4.2-1.

Figure 4.2-1  Inline and Display Area

A flow object class defines a set of formatting characteristics that apply to some category of flow objects. Each flow object class also defines a set of port names. The class of a child flow object shall be compatible with the class and port name of the port to which it is attached. The flow object classes and the characteristics that apply to them define the formatting appearance and behavior of the contents of the document. An in-depth look at the required and optional flow object classes defined by the DSSSL will yield a matrix of formatting capabilities offered by this standard. The characteristics associated by each flow object class define clearly the various options and functionality that each flow object offers toward formatting.

To study the formatting requirements offered by DSSSL and to stay within the scope of the comparison with the Output Specification, we must look at the capabilities of DSSSL for various types of formatting. The optimum way of achieving this is to restrict the scope of formatting requirements in DSSSL to the style language process and extract all the flow object classes that DSSSL addresses. These can be used to form the comparison matrix with the MIL­PRF­28001 Output Specification.

The following are the flow object classes defined by DSSSL along with their descriptions.

Sequence flow object class is formatted to produce the concatenation of the sequence areas produced by each of its children.

Display-group flow object class is formatted to produce the concatenation of the display areas produced by each of its children. It has a single principal port. Its children shall all be displayed, and it is itself displayed.

Simple-page-sequence flow object class is formatted to produce a sequence of page areas. The simple-page-sequence flow object is intended for systems that wish to provide a very simple page layout facility. More complex page layouts can be obtained with the page-sequence and column-set-sequence flow object classes. A simple-page-sequence may have a single-line header and footer containing text that is constant except for a page number. A document can contain multiple simple-page-sequences.

Page-sequence flow object class is formatted to produce a sequence of page areas. The structure and positioning of the page areas shall be controlled by page-models. A few of the types of pages that DSSSL is capable of formatting are shown in the below figures.

Column-set-sequence flow object class is formatted to produce a sequence of column-set areas. A column-set area is a display area. A column-set area is produced by creating and filling an area container. A column-set area contains a set of parallel columns. Typically, column-set areas may be used to fill page-regions; however, column-set areas may also be used to fill other column-set areas. The structure and positioning of each column-set area shall be controlled by the column-set-model to which it conforms.

Paragraph flow object represents a paragraph. The contents of this port may be either inlined or displayed. Inline flow objects are formatted to produce line areas. Displayed flow objects implicitly specify a break, and their areas shall be added to the resulting sequence of areas. A paragraph flow object may only be displayed .

Paragraph-break flow object class can be used to make a paragraph flow object represent a sequence of paragraphs. The paragraphs are separated by paragraph-break flow objects, which are atomic. Paragraph-break flow objects are allowed only in paragraph flow objects. The characteristics of a paragraph-break flow object determine how the portion of the content of the paragraph flow object following that paragraph-break flow object up to the next paragraph-break flow object, if any, is formatted.

Line-field flow object class is inlined and has inline content. It produces a single inline area. The width of this area is equal to the value of the field-width: characteristic. If the content of a line-field area cannot fit in this width, then the area grows to accommodate the content, and if the line-field occurs in a paragraph, there shall be a break after the line-field.

Sideline flow object class is used to contain flow objects that have an attachment area consisting of a line parallel to the placement direction. A sideline flow object has a single principal port that can contain both inlined and displayed flow objects. For each display area produced by its content, the sideline flow object adds an attachment. For each inline area produced by its content, the sideline flow object annotates that area so as to cause the paragraph in which the flow object occurs to add an attachment area to the line in which that inline area occurs.

Anchor flow object class serves in a flow object to be synchronized.

Character flow object class is comprised of character flow objects that are atomic. Flow objects of this class can only be inlined.

Leader flow object class has a single principal port containing the inline flow objects to be repeated.

Embedded-text flow object class is used for embedding right-to-left text within left-to-right text or vice-versa.

Rule flow object class is used to specify a straight line. Rules may be inlined or displayed.

External-graphic flow object class is used for graphics contained in an external entity. Flow objects of this class may be inlined or displayed.

Included-container-area flow object class results in a sequence of one or more areas, each of which is specified as an area container. The size of the container shall be fixed in the direction perpendicular to the area container's filling-direction.

Score flow object class consists of a single port whose contents are scored.

Box flow object class may be used to put a box around a sequence of flow objects. The box flow object is either displayed or inlined depending on the value of the display?: characteristic. If the box is displayed, then the port shall accept any displayed flow objects. If the box is inlined, then the port shall accept any inlined flow objects.

Side-by-side flow object class requires the side-by-side feature. A side-by-side-item flow object is always displayed. It has a single principal port whose contents are displayed. The display-size of the content is the same as the display-size of the side-by-side.

Glyph-annotation flow object class is mainly used for characters, words, or phrases that have an associated description of their meaning or pronunciation. The annotation is placed on the before side in the line-progression direction of the annotated glyphs. A glyph-annotation flow object that has more than one annotated glyph shall not be broken between lines.

Alignment-point flow object class specifies an explicit alignment point for paragraphs with a first-line-align characteristic being true.

Aligned-column flow object class is used for grouping together externally aligned paragraphs. An aligned-column is displayed. It has a single principal port that may contain any displayed flow objects. Displayed flow objects in the port that are not externally aligned paragraphs shall be formatted normally.

Multi-line-inline-note flow object class is used for placing a note inline. A multi-line-inline-note consists of an open parenthesis in approximately the same size as the glyphs before the note, two lines placed one before the other in the line-progression direction with the contents in a smaller size than the surrounding glyphs, and a close parenthesis in the same size as the open parenthesis.

Emphasizing-mark flow object class is used for emphasizing characters, words, or phrases. Each emphasizing-mark shall be placed on a path that is perpendicular to the line-progression direction and that lies before the placement path in the line-progression direction. This path is called the emphasizing-mark placement path.

Flow object classes for mathematical formulae are math-sequence, unmath, subscript, superscript, script, mark, fence, fraction, radical, math-operator, and grid. These flow objects may also be used for "linear" chemical formulae. Character flow objects are used for characters in mathematical formulae; there is no special flow object class for this. Characteristics such as font-size: or font-posture: are determined in the usual way by the characteristics of the character flow object.

Flow object classes for tables are used for specifications for tabular formatting. They make use of the following flow object classes: table, table-part, table-column, table-row, table-cell and table-border.

Flow object classes for on-line display are used for the specification of formatting in electronic delivery.

4.3  DSSSL-Online Characteristics

DSSSL-Online is an application profile of DSSSL designed for the formatting specification requirements of on-line SGML browsers and editors. DSSSL-Online supports the basic features needed to provide publisher-oriented formatting control of on-line displays and a minimum set of page-oriented features needed to provide utility printouts from browsers and editors.

This section summarizes the features and flow object classes that must be supported by a minimally conformant DSSSL-Online application. Because DSSSL-Online is an application profile and because many flow object classes are optional in DSSSL, the comparison matrix is constructed making certain assumptions. DSSSL-Online is considered to contain only the Core DSSSL components and those options that are deemed necessary for on-line electronic delivery. A discussion of the flow object classes and their characteristics is avoided because they have been discussed already in the DSSSL section and are detailed in the Appendix.

Basic Flow Object Classes

DSSSL Options Required in DSSSL-Online

DSSSL Options Not Required in DSSSL-Online



4.4  Comparison Matrix

As mentioned earlier, the construction of a comparison matrix requires a set of comparison criteria against which features offered by DSSSL and the Output Specification will be evaluated. Using the information presented so far in the preceding sections and the detailed set of characteristics in Appendices A and B, we have derived the following set of criteria for evaluation. The criteria are intended not to be too detailed so that this matrix is not cluttered with detailed attributes and their values. The matrix will also attempt to highlight the areas covered by one specification over the other. Key formatting requirements are discussed in a section following the matrix.

Table 4.4-1  DSSSL Output Specification Comparison Matrix
Format Requirement Area
Output Specification
DSSSL
DSSSL

On-line
General Document Wide Formatting
Hyphenation
X
X
X
Counters
X
X
X
Floating Locations
X
X
X
Security Text
Partial
Word and Letter Spacing
X
X
X
Kerning
X
X
X
Indents
X
X
X
Quadding
X
X
X
Highlighting
X
X
X
Keeps
X
X
X
Spanning
X
X
X
Borders
X
X
X
AutoNumbering
X
X
X
String
X
X
X
Change Package Functions
Minimal
Security Classifications
Partial
Page Layout Formatting
Page sizes
X
X
Top and Bottom Margins
X
X
Left and Right Margins
X
X
Columns
X
X
Page Numbers
X
X
Headers
X
X
Footers
X
X
Title Pages
X
X
Justification
X
X
Orientation
X
Blank/Recto/Verso
X
X
Change Markings
Partial
Security Text
X
Flowing Text
X
X
X
Gutter Area
X
X
Border Area
X
X
Binding Edges
X
X
Paragraph Formatting
Named Styles
X
X
X
Top and Bottom Margins
X
X
X
Left and Right Margins
X
X
X
Indentation (left, right, in, and out)
X
X
X
Default Character Style
X
X
X
Line Spacing
X
X
X
Align (left, right, and center)
X
X
X
Page Breaks
X
X
X
Word Spacing Control
X
X
X
Tabs
X
X
X
AutoNumbering
X
Line Numbering
X
X
Shading
X
X
Hyphenation Control
X
X
X
Quadding
X
X
X
Prespace/Postspace
X
X
X
Line Wrapping Control
X
X
X
Line Truncate Control
X
X
X
Widow-Count
X
X
Orphan-Count
X
X
Language
X
Country
X
Writing-Mode
X
Paragraph Breaks
X
X
Character Formatting
Named Character Styles
X
X
X
Font Name
X
X
X
Font Size
X
X
X
Bold/Underline/Strike
X
X
X
Bold Weights
X
X
X
Italic/Other Angles
X
X
X
Dotted Underline
X
X
Overbar
X
X
Revision Marking
X
Pair/Track Kerning
X
X
X
Color
X
X
X
All Capitals
X
X
X
Shadow
X
X
X
Math-Font-Posture
X
X
Hyphenation Control
X
X
White Spaces
X
X
Ligatures
X
X
Math-Classes
X
Language
X
Country
X
Table Formatting
Named Table Styles
X
Page Breaks (before, after, and with)
X
X
X
Force Page/Column Break
X
X
X
Column Width
X
X
X
Top and Bottom Margins
X
X
X
Left and Right Margins
X
X
X
Align (left, right, and center)
X
X
X
Widow-Orphan Control
X
X
Header/ Footer Rows
X
X
X
Table Border Rules
X
X
X
Border Style
X
X
X
Table Auto Width
X
X
Border Rounded Corners
X
X
Table Part Formatting
X
X
Table Row Formatting
Page Break
X
X
X
Force Page/Column Break
X
X
X
Table Column Formatting
Column Number
X
X
Spanned Columns
X
X
X
Alignment
X
X
X
Indents
X
X
X
Table Cell Formatting
Ruling (left, right, top, and bottom)
X
X
X
Straddling
X
X
X
Margins in Cells
X
X
X
Shading
X
X
X
Orientation of Text
X
X
Background Color
X
X
X
Line Patterns
X
X
X
Line Thickness
X
X
X
Float Out Marginalia
X
X
Graphics Formatting
Displayed/Inlined
X
X
X
Dimensions
X
X
X
Horizontal Graphic Scaling
X
X
X
Vertical Graphic Scaling
X
X
X
Scale to Fit
X
X
X
Coordinates
X
X
X
Text Block Width
X
X
X
Text Block Depth
X
X
X
Horizontal Placement
X
X
X
Vertical Placement
X
X
X
Security Text
Headers
X
Footers
X
Embedded Text
Direction
X
Line Breaks
X
Box Formatting
Display/Inlined
X
X
Color
X
X
X
Corners Rounded
X
X
Line Types
X
X
X
Side By Side Items
X
Glyph Annotation
Placement
X
Style
X
Notes
X
X
X
Layout Driven Generated Text
X
X
X
Asian Language Options
X
Footnotes
Single Column
X
X
Multiple Column
X
X
For Each Text Column
X
X
Anchoring
X
X
Tables in footnotes
X
X
Mathematical Formulae
Superscript
X
Subscript
X
Alignment
X
Mark
X
Fence
X
Fraction
X
Radical
X
Math Operator
X
Grid
X
Grid Cell
X
Interactive Electronic Delivery
Vertical Scroll
X
X
Filling Direction
X
X
Multimode Presentation
X
X
Link
X
X
Marginalia
X
X

4.5  Comments on Matrix

One of the salient points of difference between the two specifications lies in the support for mathematical elements. The MIL-PRF-28001 OS and Presentation Specification (PS) do not support the specification of formatting characteristics for mathematical elements. When creating an SGML-tagged source file tagged for a specific document or contract, mathematical elements must be handled in one of four ways:

For additional information on tagging of mathematical notation, see MIL­HDBK­28001.

Other salient features not addressed completely by the Output Specification include

In the August 1995 meeting of the Output Specification Committee of the CALS Industry Steering Group (ISG) Electronic Publishing Committee (EPC), discussions were held on the direction of the Output Specification. There is a possibility of the development of four separate OSs. They would be the current OS, an OS to support Electronic Technical Manuals (ETMs) and Interactive Electronic Technical Manuals (IETMs), an OS to support change processing, and one for a series of simple subsets. In its current version, under the draft MIL­PRF­28001C however, it is our understanding that these subsets are not being added. Some members of the committee feel that the OS should retain its current form with security enhancements and ETM (without IETM capability) and move ahead. The justification for this is that a FOSI is capable of doing 80% of the processing needed for a technical manual, which is more than most users expect out a formatting mechanism.

While on the same topic, it is necessary to point out that neither DSSSL nor DSSSL-Online addresses the problem of change processing as applied to technical manuals. It is of the opinion that the issue is one of formatting and not really one relevant in a structured formatting specification as DSSSL.

Support for other languages is one aspect that the Output Specification does not address. DSSSL on the other hand addresses this issue quite well and lends support for features like right-to-writing mode, Asian languages, etc. It is probably felt that such a capability is really not of great importance in the DoD realm, but it is a feature of DSSSL not reflected in the OS.

The following features of DSSSL that are not a requirement in DSSSL-Online are complex typographic feature, bidi options, Asian language options, complex SGML options, and mathematical options.

4.6  Internet DART

DART is acronym that stands for DSSSL Assessment Repository Tool. DART uses the above matrix (Table 4.4-1) organized into the specific characteristics of the OS and flow object classes of DSSSL. Under each characteristic or flow object class subset, a concise set of information known as metadata is displayed. This metadata includes a hyperlink that displays information about the particular feature or flow object class characteristic in the other specification. The information repository is constructed atop a hypertext transport protocol server so that it may be accessed by anyone over the Internet. We have used a product called MOREplus for the design and implementation of this repository.

MOREplus is an information management tool consisting of a set of user interface executables that operate in conjunction with hypertext servers to provide access to a relational database. It can best be described as the core component of corporate or project information systems. The MOREplus user interface, from browsing and searching to presenting and organizing stored information, is provided by World Wide Web browser clients. The system administration, functionality necessary to add and update information, users, and other administrators, is also accessed through common browsers. Look and feel can be customized to include company or division logos through a TCL (Tool Command Language) layer that is manipulated without recompilation. Information can be organized to meet a variety of classification needs. Access to data is achieved through hypertext links that take the user to database records or to sites maintained on the Web for information not physically stored within the database. Access to proprietary or sensitive data can be restricted to designated groups of users and administrators. MOREplus offers both natural language and pattern match searches as well as hierarchical and alphabetical classification browsers.

Figure 4.6-1  MOREplus System Architecture

MOREplus is a commercial spin-off of the Multimedia-Oriented Reuse Environment (MORE), which was designed and built under the Repository-Based Software Engineering Program. MORE's design and continuing evolution focuses on the needs of software reuse libraries and exists as a research and development platform.

Figure 4.6-2 shows a Netscape 2.0 browser displaying a list of collections available under the MIL­PRF­28001C part of the repository. The DART tool can be accessed over the Internet towards the end of May 1996. The Uniform Resource Locator (URL) address is http://www.mantech-wva.com/MP10b1/. The repository is established as a part of the Defense CALS Network/International CALS Network (DCN/ICN) and also can be accessed from the DCN/ICN site.

4.7  MIL-M-38784C Formatting Requirements of Technical Manuals

MIL­M­38784C is a military specification titled Manuals, Technical: General Style and Format Requirements. The specification covers the general style and format requirements for the preparation of technical manuals and changes to standard technical manuals. In addition to paper delivery, electronic delivery of documents via a specific DTD is detailed in its appendix.

Technical manuals are publications that contain instructions for the installation, operation, maintenance, training, and support for weapon systems, weapon systems components and support equipment. Three types of technical manuals are addressed by MIL­M­38784C. These are Review Draft Copy, Preliminary Technical Manuals, and Final Reproducible Copy. MIL­M­38784C explains the formatting requirements for these three forms of technical manuals. Detailed descriptions of these requirements can be found in MIL­M­38784C and have therefore been omitted. The headings used in MIL­M­38784C have been retained for easy reference to the detailed formatting characteristics. A comparison matrix that considers the requirements of technical manuals and addresses them against MIL­PRF­28001C and DSSSL is given in Appendix C. The matrix is a result of carefully looking at the formatting requirements and analyzing whether the OS or DSSSL can handle them.

Figure 4.6-2  Sample DART Page

5.0  SUMMARY SECTION


      
[ Previous ]           [ Next ]           [ Home ]

The original selection of documentation standards for use by DoD's CALS initiative included the SGML and was based upon the work the Air Force had completed in support of technical manual requirements (MIL­M­38784). SGML was chosen because it is a powerful meta-language that is independent of any one application, but can be used to strictly specify one through the use of an SGML Document Type Definition. Perhaps its (SGML) most attractive feature is that text coded in SGML can be used in many different ways without conversion or manual intervention with the data. A variety of output requirements can be overlaid on the logically structured document to serve the most diverse needs. However, because SGML is independent from presentation, some means of describing presentation to a document composition system was needed. Unfortunately, the language that the international standards community was developing to satisfy this requirement, called the Document Style Semantics and Specification Language (DSSSL), was first published in draft form in late 1994, and was published as an official ISO standard in late 1995 - eight years after the CALS requirement was identified. During that time, the DoD elected to establish an interim capability for CALS, based upon SGML, that addressed composition. The first version of the DoD's MIL­M­28001 SGML standard (March 25, 1987) applied this in a limited manner by focusing on paper output.

The evolution of this composition specification was driven by the DoD infrastructure program Joint Continuous Acquisition and Life-Cycle Support (JCALS), and by the need in JCALS to compose SGML encoded documents. The JCALS program in particular was important, because the first application area it targeted for implementation was technical manuals. The OS was used to create a Formatting Output Specification Instance (FOSI), which along with the SGML, provided an encoded document that could be processed by a composer.

The continued development of the MIL­M­28001 specification from that early draft in 1987 was supported by a joint industry, government, and vendor team that included DoD, the Industry Steering Group's (ISG's) Electronic Publishing Committee (EPC) within the ISG Standards Division, and the SGML documentation vendors supporting the JCALS program. Concurrently the DSSSL language also evolved, and the DoD/ISG team made every effort to remain aligned with the DSSSL work to ensure the eventual migration from the OS/FOSI to DSSSL. This was problematic, however, because the DSSSL committee changed its technical approach and the OS and DSSSL diverged-the OS because of implementation requirements, and DSSSL because of technical evolution. Due to the dynamics of the changes within DSSSL, the schedule for its release was significantly prolonged, as evidenced by its eventual publication in 1995. This had several effects. First, the JCALS program needed to become operational and based its first implementation on the CALS OS. Second, the JCALS vendors were required to implement the OS within their products. Third, other vendors were reluctant to support the OS in anticipation of the eventual publication of DSSSL. The result of this situation was that the CALS OS was being implemented only in the DoD environment via a military specification.

Subsequently, the DoD and ISG jointly developed a CALS Standards Management Plan (CSMP) as a working management tool for management of the standardization documents and the eventual migration of the CALS standards profiles and requirements into the official international standards. The CSMP was first drafted in June 1994 and remains in use today.

In the development of publishing and distribution systems, simply using open standards is not enough. SGML does not, in and of itself, provide a solution for the standardized printing, publishing, and distribution of either paper or electronic documents. Instead, it provides a mechanism for creating a solution based on an open standard (ISO 8879). In simplistic terms, an SGML document that is created and published with one software package is not likely to look (and in the dynamic case, act) the same when viewed with another software package. This is true even for the case of simple, static, page-oriented publications, because the development and support of stylesheet standards has not yet matured within the vendor community. Specifically, the Output Specification in MIL­PRF­28001 was never widely implemented in the vendor community (two well-known vendors that support the OS are ArborText and Datalogics), and the ISO DSSSL standard has only recently been approved (on the positive side, however, a number of SGML vendors have expressed their commitment to implement DSSSL).

Active participation from the vendor community is vital for the successful development and implementation of publishing projects with either the OS or DSSSL. The Output Specification in MIL­PRF­28001 was designed to be a stopgap temporary arrangement for the publishing of technical data manuals in the CALS domain, while the rest of the community waited eagerly for DSSSL. Furthermore, it was discovered that the different vendors have not interpreted all aspects of the OS in the same way, resulting in FOSIs that are not directly interchangeable. With only the recent release for publication of the DSSSL standard, products conforming to DSSSL are still in their infancy and are expected to establish themselves in the later part of this year. Our study has shown the major vendors of SGML products have a definite commitment to developing DSSSL translators, formatters, and style language interpreters. A DSSSL conforming formatter will be able to generate the style specification for publishing automatically and apply it to conforming SGML documents. The final rendering of "page" layout can be output to a variety of forms like a text formatter, Postscript, PDF or even generate an SPDL instance. It is our belief that the tremendous interest and anticipation for DSSSL in the SGML arena is not without reason, and we expect DSSSL to be the undisputed (likely and logical) specification of choice in SGML publishing for either paper or electronic delivery.

APPENDIX A:  MIL-PRF-28001C / OUTPUT SPECIFICATION CHARACTERISTICS


      
[ Previous ]           [ Next ]           [ Home ]

MIL­PRF­28001C/Output Specification Characteristics
Heading
Section
Characteristic
Description
Resource Description
The resource description gives document wide hyphenation rules, establishes strings, and provides descriptions of character fills, counters, and floating locations that will be used throughout the FOSI.
Hyphenation Rules
The process of breaking a word at the end of a line of text for purposes of line justification.
Language
Using the language attribute and the language characteristic, any element-in-context can refer to a particular one of multiple hyphenation rules, thereby allowing the user to change hyphenation schemes within a document.
Dictionary
The dictionary attribute allows one to specify a (non-exception) dictionary, since with multiple hyphrules, there can be multiple (non-exception) dictionaries. Exactly how this dictionary is accessed and what its format may be depends on the value of the hyphenation type characteristic and the output system.
Word Break Exceptions
A specification for preferred hyphenation points.
Unbreakable Words
A specification for words with no allowable hyphenation points.
Break Characters
Characters which can be broken before or after without inserting a hyphenation character.
Break Before Characters
Characters which can be broken before a hyphenation character.
No-break Characters
Characters before or after which it is not legal to break.
Hyphenation Type
Specification of the method for making hyphenation decisions.
Hyphenation Zone
Specifies the amount of space from the margin that can be left by choosing not to hyphenate.
Ladder
The number of consecutive lines in a column that can end with a hyphenation.
Minimum Characters Left on a Line
An integer specifying the minimum characters that may be left on a line.
Minimum Characters Pushed to Next Line
An integer that specifies the minimum characters required to be pushed onto the next line in a hyphenated line.
Hyphenation Across Columns Allowed
A Boolean that specifies whether hyphenation is allowed across columns.
Hyphenation Across Pages Allowed
A Boolean that specifies whether hyphenation is allowed across pages.
Character Fill
Describes a literal used to fill a space horizontally or vertically. The literal specifies the character (or string of characters) that will be repeated some number of times (depending partly on other character fill characteristics) to fill the available space in the current constrained area in the output. It is allowable, and often useful, for the literal to be a space.
Character Fill Literal
A string specifying the character literal.
Orientation
Specifies the direction of the fill. Vertical fill is down from the baseline while a horizontal fill is to the right of the cursor.
Type
Symbols Ragged Left, Ragged Right, Ragged Left/Flush Right, Flush Left/Flush Right, and Flush Left/Ragged Right. This characteristic determines where the literal begins and ends. Ragged specifies that the literal begins and/or ends immediately after and/or before the text it abuts. Flush specifies that all literals begin and/or end at a margin determined by the longest text before and/or after the literal.
Space Before
A length specifying the minimum spacing before the first occurrence of the specified literal in the fill.
Space After
A length specifying the spacing after the last occurrence of the specified literal in the fill.
Padding
A length specifying the spacing between occurrences of the specified literal.
Truncation
A Boolean specifying whether the last copy of the literal string can be truncated.
Suppression Rules
An integer that specifies if a fill is to be applied if less than this number of literal strings occur.
Alignment
A Boolean that specifies the vertical alignment of the fill literal.
Character Fill ID
A unique name for the character fill.
Minimum Count
Minimum number of the copies of the literal to fill.
Break
Symbols none, before, within, beforewithin, withinafter, beforeafter, and any, that specify where line breaks are permitted. The Break characteristic determines where line breaks are permitted with respect to the charfill. If Break is After, then any necessary line break should occur immediately after the charfill. If Break is Before, then any necessary line break should occur immediately before the charfill. If Break is Within, then any necessary line break should occur within the charfill subject to the constraints put on it by the Minimum Count characteristic. If Break is of BeforeAfter, BeforeWithin, or WithinAfter, then line breaks are allowed in either of the two locations indicated by the characteristic value's name. If Break is None, then the charfill is unbreakable and breaks are disallowed both immediately before and after it (though if this over-constrains the composition process, the results are output system dependent). If Break is Any, then a break may occur anywhere before, within, or after the charfill.
Counter
The counter is a construct used to specify the properties of a counter that will be associated with one or more elements-in-context using the enumerate category.
Initial
The initialized value of the counter.
Style
Styles (Arabic, Roman Upper, Roman Lower, Alpha Upper, Alpha Lower, and User Definer) in which the counter is to be displayed.
Specified Style
A user defined list of characters or symbols in order of precedence.
Sequence
Used to describe the sequence for alphabetic display of counters exceeding 26.
Padding Length
Used to describe the minimum number of characters in the string resulting from the conversion of a counter into Arabic style. This is a positive integer giving the desired final length in characters of the string that gets placed in the output stream whenever the counter is used in a usetext source.
Exceptions
Used to list any excretions to the style or sequence.
Counter-ID
A unique name assigned to a counter.
String
Used to specify the properties of a string that will be associated with one or more elements-in-context using the savetext or usetext categories.
Savetext Name
A unique name for the saved text. The savetext name follows the same rules as that for the savetext category.
Literal
The initial string value. The Literal follows the same rules as that for the Puttext category.
Time Status
Indicates whether this variable is time dependent (0) or time independent (I).
Scope
Export
Indicates whether the Savetext Name's saved text will be "exportable."
Floating Locations
A float location (floatloc) is similar to a layout area in a page model. Elements float into a float location at the time the float category is encountered.
Float ID
A unique ID for this floating location.
Float Type
Indicates the kind of float emission behavior.
Maximum Depth
The maximum extent to which the sum of all areas associated with this floatloc can grow on any given output page.
Minimum
The least amount of space that can appear.
Nominal
The preferred amount of space (what should appear).
Maximum
The greatest amount of space that can appear.
Security Description
The security description (secdesc) establishes the strings that the composition system will be automatically generated for the "security text" (sectext) element that may be placed in the header and/or footer.
Security Description (secdesc)
Defines the security levels and the priority order of the levels.
Attribute Specification
Identifies the attribute in the source document used to indicate the security levels.
Security Order
The security order characteristic is used to list the priority order of the security levels in descending order, for example "s c u", where "s" indicates the highest level and "u" indicates the lowest level.
Security Token

(sectoken)
Defines the security markings that appear in the header and footer as specified by the "sectext" element.
Security Value
For each value specified in the security order characteristic of the secdesc element, a corresponding security. Text string can be specified.
Security Text
When a security text (sectext) element occurs in a header or footer, the highest level of security occurring on the page is computed and the security text associated with that value is placed into the output stream in place of "sectext" element.
Page Models and Pagination Characteristics
This section describes general rules for creating Page Models and describes the pagination characteristics.
Page Set (pageset)
A page set contains information that applies to a particular Page Area.
Page Model ID
Defines a unique ID for the pageset which is referenced via the pageid attribute on the textbrk category.
Recto/Verso
The recto/verso characteristic works in conjunction with the Bind Margin characteristic defined for the recto page in the Page Set.
Blank Page
If the Page Set defines a blank page model, then when a blank page is generated, the blank page model for the Page Set is used unless the Blank Page characteristic is turned off.
Orientation
The standard page orientation is Portrait.
Media Information
The Media Information (mediainfo) characteristic is a string that specifies a logical name that identifies any special processing to be performed on this page/pages by the output device.
Page Area
The Page Area is defined as the total physical page area.
Width
The width characteristic specifies the width of the Page Area.
Nominal Depth
The Nominal Depth specifies the depth of the Page Area.
In (bind) Margin
This refers to the page edge that would be toward the binding or spine of the document if this document were bound as in a book.
Change Mark Width
The Change Mark Width (chgmkwid) specifies the width of the Change Mark area.
Change Mark Placement
The Change Mark Placement characteristic on the Flowing Text Area takes precedence over that on page area.
Top Float
The top float is used to specify those floats that are allowed to appear in the top of the flowtext area.
Bottom Float
The bottom float is used to specify those floats that are allowed to appear in the bottom of the flowtext area.
Page Specification
The page specification (pagespec) is used to specify the geometry of the subordinate layout areas.
Page ID
The pgid specifies a unique ID that can be referenced via the pgidref attribute of the pageref element.
Top Margin Area
This is defined as the area between the edge of the Page Area and the top edge of the Header Area and runs the width of the Page Area.
Nominal Depth
The nomdepth characteristic specifies the depth of the top margin.
Bottom Margin Area
The bottom margin area is defined as the area between the bottom edge of the Page Area and the bottom edge of the Footer Area and runs the width of the Page Area.
Nominal Depth
This characteristic specifies the depth of the bottom margin.
Left Margin Area
The left margin is defined as the area between the left edge of the Page Area and left edge of the Flowing Text Area and runs the depth of the Page Area.
Width
This characteristic specifies the width of the left margin.
Right Margin Area
This is defined as the area between the right edge of the Page Area and right edge of the Flowing Text Area and runs the depth of the Page Area.
Width
The width characteristic specifies the width of the right margin.
Change Mark Area
This is defined as an area whose boundaries are within the Left or Right or gutter areas and runs the extent of the Flowing Text Area plus the Header and Footer Areas.
Header and Footer Area
The header area is defined as the area immediately below the Top margin and above the Flowing Text Area. The Footer Area is defined as the area immediately above the Bottom Margin Area and below the Flowing Text Area.
Nominal Depth
The nomdepth specifies the depth that the composition system should strive for in all cases.
Maximum Depth
The maxdepth should never be exceeded.
Space Flow
The spaceflow characteristic on the header and footer gives a vertical amount to contribute immediately following the Header Area or immediately preceding the Footer Area respectively.
Vertical Quadding and Text Flow in Headers and Footers
This category is contained in the content model for the header and footer elements.
Vertical Quadding
This is used to specify the positioning of groups of elements placed in the Header and Footer Area of the page.
Security Text
The sectext element is used to indicate the positioning of the security classification indication in the header and footer of the page.
Scope
This defines the boundaries for consideration when determining the highest security level used.
Flowing Text Area
These characteristics apply to Flowing Text Areas.
Number of Columns
Numcols specifies the number of columns.
Top Floats
An ordered list of float location ID references.
Bottom Floats
An ordered list of float location ID references.
Balance
Change Mark Placement
The chgmkplc on flowtext takes precedence over chgmkplc specified on a rectopg, versopg, or blankpg.
Column area
It is used to define the columns of the Flowing Text Area.
Width
The width characteristic specifies the width of any single column.
Tolerance
This characteristic specifies the maximum amount of space that can occur between the bottom of a column and the bottom of the Flowing Text Area when columns are balanced.
Vjprior
Vertical justification priority characteristic specifies which set of characteristic values has precedence for purposes of vertical justification.
Top floats
An ordered list of float location ID references.
Bottom floats
An ordered list of Float location ID references.
Gutter Area
This area is the space between column areas.
Rlthick
Ruleclr
This specifies the color of the gutter rule.
Rulepct
The integer value for rule percent is specified as a percentage.
Footnote Area
This is a sub-area of the Flowing Text Area.
Width
This specifies whether the footnote area is the width of a column or the Flowing Text Area.
Maximum Depth
The maxdepth specifies the maximum depth the footnote area can have.
Footnote Separator Thickness
Footnote separator ruling is disabled by supplying a value of zero to the footnote separator thickness.
Footnote Separator Length
This specifies the length of the footnote separator ruling.
Footnote Breaking
When this characteristic is turned on, footnotes may be continued across columns or pages.
Footnote Continue Separator Thickness
Footnote Continue Separator Length
This specifies the length of the footnote continue separator.
Footnote Continue String
This value is specified using the same syntax described for savetext construction rule.
Space Above
This determines the vertical space in between the footnote area and the Flowing Text Area.
Footnote Float
When this is turned on, the footnote area appears closest to text preceding any float location areas.
Border Specification
This associates a name for a border used within a FOSI with an external entity that contains the actual border graphic.
Border Indicator
Name of the border.
Border Entity
The identifier of the border entity.
Precedence
Precedence is used to specify the order for placing borders when more than one border is to appear on the page.
Style Description
Font
A collection of (character) images having the same basic design.
Inherit
Style
Family Name
Size
Only positive values are allowed for the size characteristic.
Posture
Weight
Proportionate Width
Small Caps
Baseline Offset
A positive value for the Baseline Offset indicates a distance above the text baseline; a negative value indicates a distance below.
Leading
The amount of space between the baselines of text lines in a single element.
Inherit
Leading
Only non-negative values are allowed for leading. Leading applies to all lines of text including the first line of an element.
Force Leading
Hyphenation
The process of breaking a word at the end of a line of text for purposes of line justification.
Inherit
Language Hyphenation - Disallowed (0) or Allowed (1)
Hyphenation Zone - Ragged Right Amount
This specifies the amount of space from the margin that can be left by choosing not to hyphenate.
Wordspace
The white space between words that may be adjusted for readability and line justification.
Inherit
Minimum
The least amount of space that can appear.
Nominal
The preferred amount of space.
Maximum
The greatest amount of space that can appear.
Sentence Space
Inherit
Minimum
The least amount of extra space that can appear.
Nominal
The preferred amount of extra space.
Maximum
The greatest amount of extra space that can appear.
Letter Space
White spaces between letters in a word which may be adjusted for readability and line justification.
Inherit
Minimum
The least amount of space that can appear.
Nominal
The preferred amount of space.
Maximum
The greatest amount of space that can appear.
Kerntype
Allowed types of kerning.
Kerning Pairs
Specification of table of kerning pairs.
Indent
Positioning along the writing direction.
Left Indent
Placement of a text margin relative to the left boundary of the current layout area.
Right Indent
Placement of a text margin relative to the right boundary of the current layout area.
First Line
Special left indent value for first line of content.
Horizontal Quadding
The horizontal alignment of text lines within an element with respect to the layout area boundaries.
Inherit
Horizontal Quadding
Lastline
How to align the last text line of the element.
Highlight
Special presentation characteristics for text.
Inherit
Foreground/ Background
Reverse color.
Scoring
Overlay rules on the text line.
Score Weight
Weight of the rule.
Score Offset
Offset of the base of the rule to the text baseline.
Score Character
Character to be overlaid on the text.
Background Color
Color of the area between text baselines.
Foreground Color
Color of the text characters.
Background Screen
Shading of the area between text baselines.
Foreground Screen
Shading of the text characters.
All Caps
Score Spaces
Whether spaces should be scored/overlaid.
Change Mark
The data that appears in the change mark area, triggered by the occurrence of a particular element.
Literal
A literal that should appear instead of a bar.
Bar Thickness
The thickness of the change bar.
Join
Join bars of contiguous lines of marked text.
Type
Whether this element starts, ends, or contains the region to be marked.
Prespace
The amount of space in the vertical direction added before an element.
Minimum
The least amount of space that can appear.
Nominal
The preferred amount of space.
Maximum
The greatest amount of space that can appear.
Conditional
Indicates whether to keep or discard space at a column or page break.
Adjacency Priority
Indicates a preference for choosing one element's spacing requirements over another's.
Postspace
The amount of space in the vertical direction added at the completion of an element.
Minimum
The least amount of space that can appear.
Nominal
The preferred amount of space.
Maximum
The greatest amount of space that can appear.
Conditional
Indicates whether to keep or discard space at a column or page break.
Adjacency Priority
Indicates a preference for choosing one element's spacing requirements over an other's.
Keeps
Conditions for controlling or disallowing the breaking of elements over column or page boundaries.
Keep
Keep the whole element content together within the column, page, or line boundary.
Scope
The scope in which to keep the element together.
Widow Count
The number of lines to keep at the top of a column.
Orphan Count
The number of lines to keep at the bottom of a column.
Keep Next
Keep with next element.
Keep Previous
Keep with previous element.
Keep Floats Out
Specifies what category of floats should not be permitted to interrupt the pagination of the current elements.
Vertical Justification
The priority information for each characteristic necessary for making decisions for purposes of vertical justification.
Inherit
Prespace Priority
Postspace Priority
Keep Priority
Textbreak
Characteristics for allowing controlled interruptions of normal text flow.
Start Column
Start at beginning of new column.
Start Page
Start at the beginning of a new page.
Resume Page
The type of page with which to resume the previous page model.
Page Model ID
The page model to use when starting the page.
New Page Model
Use at beginning of a new line.
End Line
At the end of the current element, prepare to start on a new line.
Span
Positioning of an element across columns on a page.
Span
Specifies the number of columns into which to format the flowtext.
Border
The pattern that appears along page boundaries, triggered by the occurrence of a particular element.
Border Name
Name of the border.
Float
Float Location ID Reference
Width
The width to which to compose the floated material.
Widow Height
Minimum height of part of breakable float in the last floatloc area in which this float appears.
Orphan Height
Minimum height of part of breakable float in the first floatloc area in which this float appears.
Scope
The ancestral elements that scope the current float.
Page Type
The page relative to the current page, to which this material should float.
Multi-reference Name
An identifier to distinguish this multi-reference float.
Alignment Group
Allows for placing potentially multi-line elements horizontally next to each other in the output data stream.
Reference Point
Vertical alignment point.
Postspace
Space under wrapped elements.
Suppress
Suppressing text from the output data stream.
Suppress
Boxing
The drawing of a box.
Top Offset
Bottom Offset
Left Offset
Right Offset
Top Offset Origin
The method for determining the zero position for Top Offset.
Bottom Offset Origin
The method for determining the zero position for Bottom Offset.
Side Offset Origin
The method for determining the zero position for Side Offset.
Left Gap
Additional space between boxed material and box's left side.
Right Gap
Additional space between boxed material and box's right side.
Thickness
Top Rule Type
Bottom Rule Type
Left Rule Type
Right Rule Type
Outline Color
Color of the outline rules.
Outline Screen
Shading of the outline rules.
Interior Color
Color of the area within the outline rules.
Interior Screen
Shading of the area within the outline rules.
Reset
The resetting of counters and string variables declared in the resource description.
Reset Control
The list of unique counter IDs or Savetext Names to be reset to the initialized value of the corresponding variable or Float Location IDs whose contents should be flushed.
Ruling
The drawing of a horizontal rule.
Thickness
The thickness of the rule.
Length Type
The method for prescribing the length of the rule.
Specific Length
The measure of the rule. A specific length indicates a known measure.
Relative Length
The length of the rule relative to a layout area.
Vertical Offset
A vertical adjustment from the baseline.
Placement
Placement of the rule before or after the element content.
Rule Color
Color of the rule.
Rule Percent
Percent giving color density of the rule.
Type
Enumeration
The ordering of like elements.
Increment
The number by which to increment the counter for the element before using it this time.
Counter ID
A unique name assigned to a counter. The counter ID string is interrupted as the name of a counter FOSI variable.
Set Value
A toggle indicating whether the counter is reset to zero before the increment value is applied.
Puttext
Describes system-generated text that appears in the output data stream
Puttext Literal
The string that appears. This characteristic is used to specify a string of text that is generated by the system and is put into the text stream.
Placement
Whether to place the Puttext Literal before or after the content of the element.
Putgraph
Describes system-generated graphics that appear in the output data stream.
Graphic Name
A reference to the graphic that is to appear. This characteristic is used to specify graphics that are placed within running text, for example a symbol.
Width
The width of the graphic.
Depth
The depth of the graphic.
Placement
Whether to place the graphic before or after the content of element.
Scale to Fit
This characteristic allows the graphic to be scaled as needed to fit the size of the bounding box.
Horizontal Scaling
This characteristic takes precedence when they have values other than zero.
Vertical Scaling
This characteristic takes precedence when they have values other than zero.
Horizontal Offset
This is not subject to scaling. This does not move the bounding box; it shifts the graphic image within the bounding box.
Vertical Offset
This is not subject to scaling. This does not move the bounding box; this shifts the graphic image within the bounding box.
Rotation
Savetext
Describes text content to be saved for use elsewhere.
Savetext Name
A unique name for the saved text. This characteristic used specifically for saving portions of the text for use by the Usetext characteristic for other purposes.
Construction Rule
Rules for specifying the construction of saved text. The string may contain an indicator for the element content, literals, and unique names of other saved text and counters.
Placement
Whether to save the text before or after the content of the element is processed.
Append
Indicates whether the text to be saved should replace text already saved to this savetext name or append itself onto the text currently saved to this savetext name.
Usetext
Describes what to do with text saved from some part of the document.
Source
Reference to saved data. This category is used to output saved data.
Placement
Whether to place the text before or after the content of the element.
Usage Rule
Describes what to do with saved text.
Usage Parameter
Modifies the operation of the specified usage rule. This is used to provide parameters to the specified userule.
Table Description
This section describes the characteristics necessary for the composition of tables.
Table Element Characteristics
Characteristics that apply to the table as a whole.
Width Type
This indicates whether the width of the table is a specified value or is relative to the column or page in which it is placed.
Specific Width
When "specific" is specified, a value should be supplied for the specific width characteristic.
Relative Width
When "relative" is specified, a value for the relative width characteristic should be specified to indicate the percentage of the column or page the table is to fill.
Frame
Frame specifies on which side(s) of the table the frame is to appear.
Frame Thickness
This is measured from the outside edge of the table boundary inwards.
Frame Style
This specifies how many lines will be used to create the frame. The total width of the frame will be the value specified in frame thickness.
Continue With Row Separator
When this character is "on," a table row separator appears under the last table row on a column page and above the first table row on the succeeding column or page. When "off," both row separators are omitted.
Standard Cell Characteristics (stdcellatts)
Characteristics that apply to cells, which may be specified on any table object and apply to the cells within the scope of that object.
Column Separator On
When this is turned on, it has no effect on the table frame. When column separator is on and frame is turned off, no rule appears around the outside edges of the table.
Row Separator On
When this is turned "on," it has no effect on the table frame. When column separators is "on" and frame is turned "off," no rule appears around the outside edges of the table.
Column Separator Width
Column separator appears centered over the right boundary and thus appears between columns and rows.
Row Separator Width
This appears centered over the bottom boundary and thus appears between columns and rows.
Column Separator Style
Row Separator Style
Left Margin
The values for row and column margins for a cell must be greater than half the thickness of any column separators that apply to that cell.
Right Margin
The values for row and column margins for a cell must be greater than half the thickness of any column separators that apply to that cell.
Top Margin
This is used to specify top margin of placement of the table cell content relative to the table cell boundaries.
Bottom Margin
This is used to specify bottom margin of placement of the table cell content relative to the table cell boundaries.
Horizontal Alignment
A horizontal alignment of characters causes the table cell content to be horizontally aligned relative to a specific character.
Vertical Alignment
Alignment Character
This is used to specify the character to be used for a horizontal alignment of "characters."
Alignment Character Offset
This determines the distance the cell content should be offset from the horizontal alignment character.
Reverse
Background Color
Shading
For shading, 0 is white; 100 is full color saturation.
Rotation
When the rotation is "off" the contents of the cell are placed in the orientation as the table. When it is "on," the contents of the cell are rotated 90 degrees counterclockwise.
Text Width
This character specifies the width to which the text is formatted and is used only when rotation is specified.
Break Row
When this characteristic is turned "on," for all cells in a row, then a break across a column or a page boundary may occur within that row.
Table Subset Group Characteristics(tgroupatts)
Characteristics that apply specifically to table subset groups.
Number of Columns
Column specifies the number of columns in the table subset group.
Table Subset Characteristics(subsetatts)
Characteristics that apply specifically to table subsets.
Number of Columns
Column specifies the number of columns in the table subset group.
Keep
This characteristic indicates the boundaries across which the subset cannot break, either a column or page boundary.
Subset Type
This characteristic indicates to which of the three subset types to map this element.
Column Characteristics(colatts)
Characteristics that apply specifically to table columns.
Column Width
The width of a span is the sum of the widths of its contained columns.
Column Number
The value of column number refers to the number of the column in the output structure. It can be either specified in the FOSI or obtained from the source.
Column Name
Span Name
The span name is associated with this span of columns.
Start Column Name
Refers to names assigned to columns in the output structure via these column characteristics.
End Column Name
Refers to names assigned to columns in the output structure via these column characteristics.
Cell Characteristics(cellatts)
Characteristics that apply specifically to table cells.
Column Name
This refers to the names assigned to a column or span of columns via the column characteristics.
Span Names
This refers to the names assigned to a column or a span of columns via the column characteristics.
Span Depth
The integer value for the span depth characteristic designates the number of rows the entry is to straddle.
Graphics Description
These characteristics allow a formatting system to insert graphic entities into a document according to the constraints specified by the original illustrator and the author.
Reproduction Area Dimensions
Information about the size of the reproduction area in which the graphic is to be placed.
Reproduction Area Width
Reproduction Area Depth
Graphic Sizing
Information concerning constraints on how to modify the size or view of graphics to be placed in the reproduction area.
Graphic Name
This may be the name of an entity in the FOSI or it may be omitted, in which case it will be filled in from the source document using a fillval construct.
Horizontal Scaling
Scaling is disallowed by supplying a value of "0" for horizontal scaling.
Vertical Scaling
Scale To Fit
This characteristic allows the graphic to be scaled as needed to fit the size of the reproduction area.
Lower Left Coordinates
The syntax to be used for the lower left coordinate string is "integer,integer" where the first integer refers to the starting position of the graphic window along the horizontal axis and the second integer refers to the ending position of the graphic window along the vertical axis.
Upper Left Coordinates
The syntax to be used for this is "integer,integer" where the first integer refers to the starting position of the graphic window along the horizontal axis and the second integer refers to the ending position of the graphic window along the vertical axis.
Text Block
Information concerning the size and reference point of a text block.
Text Block Width
When this is not specified opr set to zero, the text block has variable depth according to its content, much like a table cell.
Text Block Depth
In case of variable depth text blocks, the text block depth grows away from the fixed corner, that is downward if the reference point is top and upward if the reference point is bottom.
Horizontal Reference Point
This specifies the "fixed" corner of the text block.
Vertical Reference
This specifies the "fixed" corner of the text block.
Placement
Information concerning constraints on where and how to place graphics or text blocks with respect to the reproduction area.
Horizontal Placement
Horizontal placements are used to place graphics within a repro area.
Vertical Placements
Vertical placements are used to place graphics within a repro area.
Start Coordinates
This may be used for placing multiple graphics or portions of graphics in a single repro area.
End Coordinates
This may be used for placing multiple graphics or portions of graphics in a single repro area.
Rotation
When the value for rotation is "off," the graphic is placed in the same orientation in which it has been received in. When the value is "on," the graphic is rotated 90 degrees counterclockwise before being placed in the reproduction area.
Footnote Description
The footnote description of the FOSI provides part of the specification of how footnotes will be generated and formatted.
Composition Looseleaf Change Packages
Change Level
This specifies the elements and attributes in the source instance used to specify change information and the FOSI counters and strings used to retrieve change information for a portion of the technical document.
Document Change Level Tag
Tag containing document's change level.
Document Change Level Attribute
Attribute of document change level tag containing document's change level.
Document Change Level Name Access String Variable
Name of FOSI string variable used to access document change level name.
Page Change Level Name Access String Variable
Name of FOSI string variable used to access page's change level name.
Leaf Change Level Name Access String Variable
Name of FOSI string variable used to access leaf's change level name.
Spread Change Level Name Access String Variable
Name of FOSI string variable used to access spread's change level name.
Document Change Level Number Access Variable
Name of FOSI counter or string variable used to access document change level number.
Page Change Level Number Access Variable
Name of FOSI counter or string variable used to access page's change level number.
Leaf Change Level Number Access Variable
Name of FOSI counter or string variable used to access leaf's change level number.
Spread Change Level Number Access Variable
Name of FOSI counter or string variable used to access spread's change level number.
Format Change Level Name Delimiter
Name of FOSI pseudo-element implicitly delimits references to FOSI change level name access variables.
Format Change Level Number Delimiter
Name of FOSI pseudo-element that implicitly delimits references to FOSI change level number access counters and string variables.
Level Names
This category specifies the portion of the source instance that contains their list of change level names. If only change level numbers are used, this category should be omitted.
List of Level Names Container Tag
Tag containing children tags that hold the individual change level names.
Sub Container Tag
Name of optional tag that contains an individual level name tag.
Individual Level Name Tag
Name of tag that contains a single change level name.
Individual Level Name Attribute
Attribute name of individual level name tag that specifies a single change level name.
Change Level Number Tag
Name of tag that contains the change level number for the corresponding change level name.
Support Change Level Name for Level 0
Toggle indicating whether a change level name to number association exists for change 0.
Change Tags
The change tags category specifies a source instance element whose character content has changed.
Change Tag List
List of tag names used to surround changed content.
Change Level Type
The type of change level specified by the tags in tag list.
Change Level Attribute
The name of the attribute used to specify the change level on tags in the tag list.
Change Type
The type of change specified by the tags in tag list.
Change Type Attribute Name
The name of the attribute used to specify the type of change.
Change Attributes
The change attributes category specifies source instance elements whose content is considered changed when an attribute on those elements is specified.
Tag List
List of tag names for which changes is indicated by providing an attribute value.
Attribute List
List of attribute names which indicate a change to its element when the attribute is given a value.
Change Type
The type of change specified by the tags in tag list.
Change Level Source
The source of the change level information.
Change Level Type
The type of change level specified by the attributes in attribute list. Only applicable if change level source is switch.
Changed Elements Characteristics
When an element is specified as changed, a set of characteristics and attributes can be conditionally merged.
When Triggered
When to trigger the merging of characteristics and evaluation of attributes based on the comparison of the document's change level to the changed element's change level.
List of Effective Page Description
This category describes how to gather and organize page information for presentation in an LEP.
String Variable Name
Name of FOSI string variable used to access LEP data.
Scope
Name of source instance element whose content determines which pages are to be represented in LEP.
List of Page Sets
Generate LEP page entries only for pages from page sets listed in this characteristic.
LEP Pseudo Element Name
Name of pseudo-element that delimits the generated LEP data.
LEP Entry Pseudo Element Name
Name of pseudo-element that delimits one LEP entry.
Group Pages Flag
Determines how pages are grouped into a single LEP entry.
Page Prefix String Variable
Name of FOSI string variable that contains page folio prefix used to determine grouping of pages.
Blank Page Flag
Toggle indicating whether blank pages will appear in LEP.
Deleted Page Flag
Toggle indicating whether deleted pages will appear in LEP.
Group Blank Pages
Determines the conditions under which blank pages participate in page grouping.
Leaf Level Flag
Toggle that determines whether an individual page's change level or that page's leaf's change level is used for grouping pages.
First Folio Sting Variable Name
Name of FOSI string variable used to access first folio of current LEP entry during LEP Entry Pseudo Element Name's e-i-c processing.
Last Folio String Variable Name
Name of FOSI string variable used to access last folio of current LEP entry during LEP Entry Pseudo Element Name's e-i-c processing.
Change Level Number Variable
Name of FOSI counter or string variable used to access change level number of this LEP entry's page.
Change Level Name String Variable
Name of FOSI string variable used to access change level name of this LEP entry's page(s).
Page Status String Variable
Name of FOSI string variable used to determine status of this LEP entry's page.
Single Page Flag Variable
Name of FOSI string variable used to determine status as to whether there is one or more than one page represented by this LEP entry.
Page Break Element Description
This controls the form and content of a page break tag which marks the page boundaries in the source instance.
Page Break Tag Name
Name of source instance tag used to represent page breaks.
Page Break Tag Generation
Determines where page break tags should be inserted.
Page Break Attribute Description
This establishes an association between a page break tag attribute and a specific piece of information needed by the composition application to perform looseleaf composition.
Attribute Name
Name of attribute appearing on source instance page break tag.
Attribute Type
Type of attribute.
Change Instruction Description
This specifies the components of added page folios and associates page break instruction in the source instance with folio components needed for looseleaf composition.
Folio String Variable Name
This specifies the FOSI string variable used to access the current page's complete folio string.
Next Folio String Variable Name
This is used to access the next page's complete folio string.
Folio Prefix String Variable Name
This specifies the FOSI string variable used to access the current page folio prefix.
Page Sequence Number
This contains the page's sequence number within a page group established by page folio prefix.
Folio String Constructor Name
Name that specifies the FOSI pseudo element used to construct the folio string for this page.
Overflow Page Counter Names
Ordered list of FOSI counter names that provide overflow page counts.
Overflow Page Folio Pseudo Element Names
This specifies a list of FOSI pseudo-element names used to construct the entire folio string for an overflow page.
Insert Overflow Leaf Flag
Determines whether an overflow page of leaf is generated.


APPENDIX B:  DSSSL CHARACTERISTICS TABLE


      
[ Previous ]           [ Next ]           [ Home ]

DSSSL Characteristics Table
Flow Object Class
Characteristics
Description
Sequence Flow Object Class
A sequence flow object class is formatted to produce the concatenation of the areas produced by each of its children. It has a single principal port. Its children may be inlined or displayed.
Display Group Flow Object Class
A display-group flow object class is formatted to produce the concatenation of the areas produced by each of its children. It has a single principal port. Its children shall all be displayed, and it is itself displayed.
coalesce-id
A string specifying the coalesce-id of the flow object, or False (#f) if the flow object has no coalesce-id. This characteristic is not inherited.
position-preference
This applies if the flow object is directed into a port on a column-set-sequence flow object that is flowed into both the top-float and bottom-float zones of a column-subset and indicates whether the areas from this flow object may be flowed into only one of the zones.
space-before
An object of type display-space specifying space to be inserted before, in the placement direction, the areas produced by the flow object.
space-after
An object of type display-space specifying space to be inserted after, in the placement direction, the areas produced by the flow object.
keep-with-previous?
A Boolean specifying whether the flow object shall be kept in the same area as the previous flow object.
keep-with-next?
A Boolean specifying whether the flow object shall be kept in the same area as the next flow object.
break-before
Specifies that the flow object shall start an area of type page, page-region, column, or column-set.
break-after
Specifies that the flow object shall end an area of type page, page-region, column, or column-set.
keep
1. Indicates that area produced is kept together in the smallest possible area.

2. Symbol page indicating that the area produced lies in the same page.

3. Symbol column-set indicating that the area produced lies in the same column set.

4. Symbol column indicating that the area produced lies in the same column-set and that the first column that each area spans in the column-set is the same.

may-violate-keep-before?
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its previous flow object may not be respected.
may-violate-keep-after
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its next flow object may not be respected.
Simple-Page-Sequence Flow Object Class
A simple-page-sequence flow object class is formatted to produce a sequence of page areas. The simple-page-sequence flow object is intended for systems that wish to provide a very simple page layout facility. More complex page layouts can be obtained with the page-sequence and column-set-sequence flow object classes. A simple-page-sequence may have a single-line header and footer containing text that is constant except for a page number. A document can contain multiple simple-page-sequences. The page shall be filled from top to bottom. The display-size for the contents of the simple-page-sequence shall be the value of the page-width, less the value of the left-margin, and right-margin characteristics.
page-width
A length specifying the total width of the page. The initial value is system-dependent.
page-height
A length specifying the total height of the page. The initial value is system-dependent.
left-margin
A length specifying the left margin.
right-margin
A length specifying the right margin.
top-margin
A length specifying the distance from the top of the area container used for the content of the simple-page-sequence.
bottom-margin
A length specifying the distance from the bottom of the page to the bottom of the area container used for the content of the simple-page-sequence.
header-margin
A length specifying the distance from the top of the page to the placement path of the header line.
footer-margin
A length specifying the distance from the bottom of the page to the placement path of the footer line.
center-header
An unlabeled Specification of Sequence of Flow Objects (sosofo) containing only inline flow objects that is centered between the left and right margins of the page in the header line.
left-header
An unlabeled sosofo containing only inline flow objects that is aligned with the left margin of the page in the header line.
right-header
An unlabeled sosofo containing only inline flow objects that is aligned with the right margin of the page in the header line.
center-footer
An unlabeled sosofo containing only inline flow objects that is centered between the left and right margins of the page in the footer line.
left-footer
An unlabeled sosofo containing only inline flow objects that is aligned with the left margin of the page in the footer line.
right-footer
An unlabeled sosofo containing only inline flow objects that is aligned with the right margin of the page in the right line.
writing-mode
Can be one of two-symbols, left-to-right, or right-to-left. This also determines the writing-mode of the header and footer lines.
Page-Sequence Flow Object Class
A page-sequence flow object is formatted to produce a sequence of page areas. The structure and positioning of the page areas shall be controlled by page-models.
initial-page-models
A list of page-models used for the initial pages.
repeat-page-models
A list of page models used for pages after the initial pages.
force-last-page
Symbols front or back specifying the required type of the last page of the page-sequence. If the last page is not of the required type, then an additional blank page shall be generated.
force-first-page
Symbols front or back specifying the required type of the first page of the page-sequence.
first-page-type
Symbols front and back indicating that the first page of the page sequence is a front page or back page. This characteristic can also be of value parent, indicating that the type of the page is determined by the parent.
blank-back-page-model
A page model used for the final page if it was a back-page.
blank-front-page-model
A page model used for the final page if it was a front-page.
justify-spread?
A Boolean specifying whether the bottom of each page in a spread is to be justified.
page-category
Specifies the category of the page areas resulting from the page-sequence flow object.
binding-edge
Symbols left, right, top and bottom specifying the edge of a front page which will be bound.
Column-Set-Sequence Flow Object
A column-set-sequence flow object is formatted to produce a sequence of column-set areas. A column-set area is a display area. A column-set area is produced by creating and filling an area container. A column-set area contains a set of parallel columns. Typically, column-set areas may be used to fill page-regions, however, column-set areas may also be used to fill other column-set areas. The structure and positioning of each column-set area shall be controlled by the column-set-model to which it conforms. Only a Column-Set-Sequence Flow Object shall be displayed.
column-set-model-map
A list of lists each with two members, the first a page-model and the second a column-set-model whenever an area from this column-set-sequence is placed in an area whose nearest ancestor of type page­region uses the specified page­model, then the specified column­set-model shall be used.
column-set-model
A column­set­model to be used as a default if one is not specified in the column-set-model-map.
position-preference
Symbols top or bottom. This applies if the flow object is directed into a port on a Column-Set-Sequence Flow Object that is flowed into both the top-float and bottom-float zones of a column­subset and indicates whether the areas from this flow object may be flowed into only one of the zones.
span
A positive integer specifying the number of columns that the areas resulting from this flow object shall span.
span-weak?
A Boolean specifying whether the areas resulting from this flow object span weakly rather than strongly.
space-before
An object of type display­space specifying space to be inserted before, in the placement direction, of the areas produced by the flow object.
space-after
An object of type display­space specifying space to be inserted after, in the placement direction, of the areas produced by the flow object.
keep-with-previous?
A Boolean specifying whether the flow object shall be kept in the same area as the previous flow object.
keep-with-next?
A Boolean specifying whether the flow object shall be kept in the same area as the next flow object.
break-before
Specifies that the flow object shall start an area of type page, page-region, column or column-set.
break-after
Specifies that the flow object shall end an area of type page, page-region, column or column-set.
keep
1. Indicates that area produced is kept together in the smallest possible area.

2. Symbol page indicating that the area produced lies in the same page.

3. Symbol column-set indicating that the area produced lies in the same column set.

4. Symbol column indicating that the area produced lies in the same column-set and that the first column that each area spans in the column-set is the same.

may-violate-keep-before?
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its previous flow object may not be respected.
may-violate-keep-after
A Boolean which, if true, specifies that constraints imposed by the keep characteristics of ancestor flow objects on the relative positioning of this flow object and its next flow object may not be respected.
Paragraph Flow Object Class
A paragraph flow object represents a paragraph. The contents of this port may be either inlined or displayed. Inline flow objects are formatted to produce line areas. Displayed flow objects implicitly specify a break, and their areas shall be added to the resulting sequence of areas. A paragraph flow object may only be displayed.
lines: A symbol specifying how the content of that paragraph shall be broken into lines in the formatted output.
wrap
Specifying that lines shall be broken so they fit into the available space.
asis
Specifying that lines shall be broken only after character flow objects for which the record-end? characteristic is true.
asis-wrap
Specifying that lines shall be broken only after character flow objects for which the record-end? characteristic is true, and as necessary to make lines fit into the available space.
asis-truncate
Specifying that lines shall be broken only after character flow objects for which the record-end?: characteristic is true, and that lines that do not fit the in the available space shall be truncated.
none
Specifying that lines shall not be broken at all. (Useful in auto column width in a table.)
asis-truncate-char
A char object that determines the glyph to be inserted when the lines: characteristic has the value asis-truncate and a line is truncated.
asis-wrap-char
A char object that determines the glyph to be inserted when the lines: characteristic has the value asis-wrap and a line is broken other than after a character flow object for which the record-end? characteristic is true.
asis-wrap-indent
A length-spec giving an indent to be added to the start-indent when the lines: characteristic has the value asis-wrap for a line following a break other than after a character flow object for which the record-end?: characteristic is true.
first-line-align
alignment-point-offset
A number between 0 and 100 specifying the percentage of the line length before the alignment point.
ignore-record-end?
A Boolean specifying whether a record-end shall be ignored.
expand-tabs?
A positive integer specifying the tab interval.
line-spacing
Length specification giving the normal spacing between the placement paths of lines in the paragraph.
line-spacing-priority
Integer or the symbol force specifying the priority of any conditional space before the line.
min-pre-line-spacing
A length specification specifying the minimum size of the line in the placement direction before the placement path.
min-post-line-spacing
A length specification specifying the minimum size of the line in the placement direction after the placement path.
min-leading
Length specification showing the minimum space between the line areas in the placement direction.
first-line-start-indent
Length specification giving an indent to be added to the start-indent for the first-line.
last-line-end-indent
Length specification giving an indent to be added to the end-indent for the last line.
hyphenation-char
A char that is used to determine the glyph that is inserted when hyphenation is performed.
hyphenation-ladder-control
A positive integer specifying the maximum number of consecutive lines ending with the same glyph as that determined by the hyphenation-char.
hyphenation-remain-char-count
A positive integer specifying the minimum number of characters in a hyphenated word before the hyphenation character.
hyphenation-push-char-count
A positive integer specifying the minimum number of characters in a hyphenated word after the hyphenation character.
hyphenation-keep
spread
Both parts of a hyphenated word shall lie in a single spread.
page
Both parts of the hyphenated word shall lie in a single page.
column
Both parts of the hyphenated word shall lie within a single column.
hyphenation-exemptions
A list of strings. Each string is a word which may contain hyphen characters, #\- indicating where hyphenation may occur.
line-breaking-method
A string specifying a public identifier for the line breaking method to be used for this paragraph.
line-composition-method
A string specifying a public identifier for the line composition method to be used for this paragraph.
implicit-bidi-method
A string specifying a public identifier for the method to be used for implicitly determining the directionality of the content of the paragraph. This includes both the writing-mode of characters and how portions of content with a common writing-mode are nested within each other.
glyph-alignment-mode
Symbols base, center, top, bottom, or font specifying the alignment mode to be used for glyphs.
font-family-name
A string giving the family name property of the font resource.
font-weight
Symbols not-applicable, ultra-light, extra-light, light, semi-light, medium, semi-bold, bold, extra-bold, or ultra-bold giving the weight property of the desired font resource.
font-posture
Symbols not-applicable, upright, oblique, back-slanted-oblique, italic, or back-slanted-italic giving the posture property of the desired font resource.
font-structure
Symbols not-applicable, solid, or outline.
font-proportionate-width
Symbols not-applicable, ultra-condensed, extra-condensed, condensed, semi-condensed, medium, semi-expanded, expanded, extra-expanded, or ultra-expanded.
font-name
A string which is the public identifier for the font name property of the desired font resource.
font-size
A length specifying the body size to which the font resource should be scaled.
numbered_lines?
A Boolean specifying that the lines produced by this paragraph shall be considered for the purposes of line numbering.
line-number
An unlabeled sosofo containing only inline flow objects. If it is a sosofo, then for each line in the paragraph, the sosofo is formatted to produce a single inline area that is positioned as an attachment area for the line.
line-number-side
Symbols start, end, spread-inside, spread-outside, page-inside, or page-outside specifying the side of the line for the attachment specified with the line-number: characteristic.
line-number-sep
A length-spec specifying the separation for the attachment specified with the line­number: characteristic.
quadding
Symbols start, end, spread-inside, spread-outside, page-inside, page-outside, center, or justify specifying the alignment of lines other than the last line in the paragraph in the direction determined by the writing-mode.
last-line-quadding
Symbols relative, start, end, spread-inside, spread-outside, page-inside, page-outside, center, or justify specifying the alignment of the last line of the paragraph in the direction determined by the writing-mode. This shall apply also to any line in the paragraph that immediately precedes a break.
last-line-justify-limit
A length-spec specifying the maximum amount of free space in the last line that shall cause the last line to be justified rather than aligned as specified by the last-line-quadding: characteristic.
justify-glyph-space-max-add
A length-spec specifying the maximum space that may be added between glyphs in order to justify a line.
justify-glyph-space-max-remove
A length-spec specifying the maximum space that may be removed between glyphs in order to justify a line.
hanging-punct
A Boolean specifying whether the paragraph shall be formatted with the punctuation characters hanging into the margin or gutter of a column.
widow-count
A positive integer specifying the minimum number of lines of the paragraph that shall be kept together at the beginning of an area. If the widow-count: is n, then no break shall be allowed between the last n lines of the paragraph.
orphan-count
A positive integer specifying the minimum number of lines of the paragraph that shall be kept together at the end of an area.
language
A symbol specifying the ISO 639 language code in upper-case. This affects line composition in a system-dependent way.
country
A symbol specifying the ISO 3166 country code in upper-case. This affects line composition in a system-dependent way.
position-preference
Symbols top or bottom. This applies if the flow object is directed into a port on a column-set-sequence flow object that is flowed into both the top-float and bottom-float zones of a column-subset and indicates whether the areas from this flow object may be flowed into only one of the zones.
writing-mode
Can be one of two-symbols, left-to-right or right-to-left. This also determines the writing-mode of the header and footer lines.
start-indent
A length specification specifying the indent for the edge of the area at the start in the direction of the writing-mode.
end-indent
A length specification specifying the indent for the edge of the area at the end in the direction of the writing-mode.
span
A positive integer specifying the number of columns that the areas resulting from this flow object shall span.
span-weak?
A Boolean specifying whether the areas resulting from this flow object span weakly rather than strongly.
space-before
An object of type display-space specifying space to be inserted before, in the placement direction, of the areas produced by the flow object.
space-after
An object of type display-space specifying space to be inserted after, in the placement direction, of the areas produced by the flow object.
keep-with-previous?
A Boolean specifying whether the flow object shall be kept in the same area as the previous flow object.
keep-with-next?
A Boolean specifying whether the flow object shall be kept in the same area as the next flow object.
break-before
Specifies that the flow object shall start an area of type page, page-region, column or column-set.
break-after
Specifies that the flow object shall end an area of type page, page-region, column or column-set.
keep
1. Indicates that area produced is kept together in the smallest possible area.

2. Symbol page indicating that the area produced lies in the same page.

3. Symbol column-set indicating that the area produced lies in the same column set.

4. Symbol column indicating that the area produced lies in the same column-set and that the first column that each area spans in the column-set is the same.

may-violate-keep-before?
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its previous flow object may not be respected.
may-violate-keep-after
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its next flow object may not be respected.
Paragraph-Break Flow Object Class
Paragraph-break flow objects can be used to make a paragraph flow object represent a sequence of paragraphs. The paragraphs are separated by paragraph­break flow objects, which are atomic. Paragraph­break flow objects are allowed only in paragraph flow objects. All the characteristics that are applicable to a paragraph flow object are also applicable to a paragraph­break flow object. The characteristics of a paragraph­break flow object determine how the portion of the content of the paragraph flow object following that paragraph­break flow object up to the next paragraph­break flow object, if any, is formatted.
Line-Field Flow Object Class
The line­field flow object class is inlined and has inline content. It produces a single inline area. The width of this area is equal to the value of the field-width: characteristic. If the content of a line­field area cannot fit in this width, then the area grows to accommodate the content and, if the line­field occurs in a paragraph, there shall be a break after the line-field.
field-width
A length specification specifying the width of the area produced by the flow object.
field-align
One of the symbols start, end, or center specifying the alignment of the contents of the field.
writing-mode
Symbols left­-to­right, right­to­left or top­to­bottom. The writing-mode direction is perpendicular to the placement direction.
inhibit-line-breaks?
A Boolean specifying whether line­breaks shall be inhibited before and after each area produced by this flow object.
break-before-priority
An integer that affects whether a break is allowed before this flow object. The break priority of a potential breakpoint is the maximum of: (1) the break-after-priority of the flow object immediately preceding the potential breakpoint; and (2) the break-before-priorities of the flow object immediately following the potential breakpoint, and any characters immediately following that character for which the drop-after-line-break is true. A break shall be allowed at a potential breakpoint if it is even.
break-after-priority
An integer that affects whether a break is allowed after this flow object as defined in the specification of the break­before­priority.
Sideline Flow Object Class
A sideline flow object is used to contain flow objects that have an attachment area consisting of a line parallel to the placement direction. A sideline flow object has a single principal port which can contain both inlined and displayed flow objects. For each display area produced by its content, the sideline flow object adds an attachment. For each inline area produced by its content, the sideline flow object annotates that area so as to cause the paragraph in which the flow object occurs to add an attachment area to the line in which that inline area occurs.
sideline-side
One of the symbols start, end, both, spread­inside, spread­outside, page­inside, or page­outside specifying the side of the line area for the sideline attachment.
sideline-sep
A length specification specifying the separation for the sideline attachment.
color
An object of type color that specifies the color in which the flow object's marks should be made.
layer
An integer specifying the layer of the marks of the areas resulting from the flow object.
line-cap
Symbols butt, round, or square specifying the cap style for the line.
line-dash
A list of one or more lengths that specifies the dash pattern of the line. The first length specifies the number component of the CurrentDashPattern graphics state variable in ISO/IEC 10180. The remaining lengths specify the vector component of the CurrentDashPattern graphics state variable.
line-thickness
A length that specifies the thickness of the line or lines.
line-repeat
A strictly positive integer that specifies the number of parallel lines to be drawn.
line-sep
A length that gives the distance between the centers of parallel lines.
Anchor Flow Object Class
An anchor flow object is atomic and serves only as a flow object to be synchronized. It may be either inlined or displayed. If inlined, it produces a single area with zero size in the escapement direction. If displayed, it produces a single area with zero size in the placement direction.
anchor-keep-with-previous
A Boolean specifying whether the resulting area shall be kept with the last area of the previous flow object instead of the first area resulting from the following flow object.
display?
A Boolean specifying whether the flow object is displayed rather than inlined.
span
A positive integer specifying the number of columns that the areas resulting from this flow object shall span.
span-weak?
A Boolean specifying whether the areas resulting from this flow object span weakly rather than strongly.
inhibit-line-breaks?
A Boolean specifying whether line-breaks shall be inhibited before and after each area produced by this flow object.
break-before-priority
An integer that affects whether a break is allowed before this flow object. The break priority of a potential breakpoint is the maximum of: (1) the break-after-priority of the flow object immediately preceding the potential breakpoint; and (2) the break-before-priorities of the flow object immediately following the potential breakpoint, and any characters immediately following that character for which the drop-after-line-break is true.
break-after-priority
An integer that affects whether a break is allowed after this flow object as defined in the specification of the break-before-priority.
Character Flow Object Class
A character flow object is atomic. Flow objects of this class can only be inlined.
char
An object of type char specifying the character.
char-map
A procedure that is applied in the construction of the default value of the char: characteristic.
glyph-id
An object of type glyph-id specifying the glyph that shall be imaged in the resulting area.
glyph-subst-table
A glyph-subst-table or a list of glyph-subst-tables specifying substitutions to be performed on the glyph-id specified by the glyph-id: characteristic. If the value is a list, then the substitutions shall be performed in the specified order.
glyph-subst-method
A string of strings. Each string shall be a public identifier specifying a method for performing glyph substitutions.
glyph-reorder-method
A string of strings. Each string shall be a public identifier specifying a method for reodering glyphs.
writing-mode
Symbols left-to-right, right-to-left, or top-to-bottom. The writing-mode direction is perpendicular to the placement direction.
font-family-name
A string giving the family name property of the font resource.
font-weight
Symbols not-applicable, ultra-light, extra-light, light, semi-light, medium, semi-bold, bold, extra-bold, or ultra-bold giving the weight property of the desired font resource.
font-posture
Symbols not-applicable, upright, oblique, back-slanted-oblique, italic, or back-slanted-italic giving the posture property of the desired font resource.
math-font-posture
Specifies the posture priority of the desired font resource to be used when the font-posture characteristic has the value math. It can be one of the symbols not-applicable, upright, oblique, back-slanted-oblique, italic, or back-slanted-italic.
font-structure
Symbols not-applicable, solid, or outline.
font-proportionate-width
Symbols not-applicable, ultra-condensed, extra-condensed, condensed, semi-condensed, medium, semi-expanded, expanded, extra-expanded, or ultra-expanded.
font-name
A string which is the public identifier for the font name property of the desired font resource.
font-size
A length specifying the body size to which the font resource should be scaled.
stretch-factor
A number specifying the factor by which the character should be stretched. This characteristic is designed primarily for math delimiters of various kinds.
hyphenate?
A Boolean specifying whether hyphenation is allowed.
hyphenation-method
A string specifying a public identifier for a hyphenation method.
kern?
A Boolean specifying whether kerning (escapement adjustment) is allowed.
kern-mode
Symbols loose, normal, kern, tight, or touch specifying the escapement adjustment mode.
ligature?
A Boolean specifying whether ligatures are allowed.
allowed-ligatures
A list of allowed ligatures. Each member of the list shall be either a glyph-id or a char.
space?
A Boolean specifying whether the flow object is a space.
inline-space-space
An object of type inline-space which is applicable to the flow object if it is a space.
escapement-space-before
An object of type inline-space specifying space to be added before the first result area in the escapement direction.
escapement-space-after
An object of type inline-space specifying space to be added after the last result area in the escapement direction.
record-end?
A Boolean specifying whether the flow object is a record-end.
input-tab?
A Boolean specifying whether the flow-object is a tab on input.
input-white-space-treatment
Symbols preserve, collapse (specifying that the character flow object for which input-white-space? is true shall be ignored if the preceding flow object was a character flow object also with the same characteristic) or ignore (specifying that the character flow object shall be ignored).
input-white-space
A Boolean specifying whether the character shall be considered as white space or input.
punctuation?
A Boolean specifying whether the character should be treated a punctuation for the purposes of formatting the paragraph with hanging punctuation.
break-before-priority
An integer that affects whether a break is allowed before this flow object. The break priority of a potential breakpoint is the maximum of: (1) the break-after-priority of the flow object immediately preceding the potential breakpoint; and (2) the break-before-priorities of the flow object immediately following the potential breakpoint, and any characters immediately following that character for which the drop-after-line-break is true.
break-after-priority
An integer that affects whether a break is allowed after this flow object as defined in the specification of the break-before-priority.
drop-after-line-break?
A Boolean specifying whether this character should be discarded if it follows a line break.
drop-unless-before-line-break?
A Boolean specifying whether this character shall be discarded unless it precedes a line break.
math-class
Symbols ordinary, operator binary, relation, opening, closing, punctuation, inner, or space. This is used by the flow object classes for mathematical formulae to adjust the spacing of the character.
script
A string specifying a formal public identifier that identifies the character's script.
position-point-shift
A length specification specifying a shift of the position point in the line progression direction.
language
A symbol specifying the ISO 639 language code in upper-case. This affects line composition in a system-dependent way.
country
A symbol specifying the ISO 3166 country code in upper-case. This affects line composition in a system-dependent way.
color
An object of type color that specifies the color in which the flow object's marks should be made.
layer
An integer specifying the layer of the marks of the areas resulting from the flow object.
inhibit-line-breaks?
A Boolean specifying whether line-breaks shall be inhibited before and after each area produced by this flow object.
Leader Flow Object Class
A leader flow object can only be inlined. A leader flow object has a single principal port containing the inline flow objects to be repeated.
length
A length specification specifying the length of the leader.
truncate-leader?
A Boolean specifying whether the final repetition of the sequence of inline flow objects that is the content of this flow object may be truncated.
align-leader?
A Boolean specifying whether the leaders shall be aligned against an imaginary grid associated with the page.
min-leader-repeat
A strictly positive integer specifying the minimum number of times that the pattern shall be repeated. This characteristic is applicable only if length: is not specified.
inhibit-line-breaks?
A Boolean specifying whether line breaks shall be inhibited before and after each area produced by this flow object.
break-before-priority
An integer that affects whether a break is allowed before this flow object.
break-after-priority
An integer that affects whether a break is allowed after this flow object.
Embedded Text Flow Object Class
The embedded-text flow object class is used for embedding right-to-left text within left-to-right text or vice-versa. This flow object class shall only be inlined.
direction
One of the symbols left-to-right or right-to-left. It shall be parallel to the writing-mode of the paragraph.
language
A symbol specifying the ISO 639 language code in upper-case. This affects line composition in a system-dependent way.
country
A symbol specifying the ISO 3166 country code in upper-case. This affects line composition in a system-dependent way.
inhibit-line-breaks?
A Boolean specifying whether line breaks shall be inhibited before and after each area produced by this flow object.
Rule Flow Object Class
A rule is used to specify a straight line. Rules may be inlined or displayed.
orientation
One of the symbols horizontal, vertical, escapement, or line-progression which specifies the orientation of the rule and also determines whether the rule is inlined or displayed.
length
A length specifying the length of the rule.
color
An object of type color that specifies the color in which the flow objects marks should be made.
layer
An integer specifying the layer of the marks of the areas resulting from the flow object.
line-cap
One of the symbols butt, round, or square specifying the cap style of the line.
line-dash
A list of one or more lengths that specifies the dash pattern of the line.
line-thickness
A length that specifies the thickness of the line or lines.
line-repeat
A positive integer that specifies the number of parallel lines to be drawn.
line-sep
A length that gives the separation between parallel lines.
position-point-shift
A length specification specifying a shift of the position point in the line progression direction.
inhibit-line-breaks?
A Boolean specifying whether line-breaks shall be inhibited before and after each area produced by this flow object.
break-before-priority
An integer that affects whether a break is allowed before this flow object. The break priority of a potential breakpoint is the maximum of: (1) the break-after-priority of the flow object immediately preceding the potential breakpoint; and (2) the break-before-priorities of the flow object immediately following the potential breakpoint, and any characters immediately following that character for which the drop-after-line-break is true. A break shall be allowed at a potential breakpoint if it is even.
break-after-priority
An integer that affects whether a break is allowed after this flow object as defined in the specification of the break-before-priority.
position-preference
This applies if the flow object is directed into a port on a column-set-sequence flow object that is flowed into both the top-float and bottom-float zones of a column-subset and indicates whether the areas from this flow object may be flowed into only one of the zones.
display-alignment
Symbols start, center, end, inside, or outside specifying the alignment of the areas resulting from the flow object in the direction of the writing-mode.
start-indent
A length specification specifying the indent for the edge of the area at the start in the direction of the writing-mode.
end-indent
A length specification specifying the indent for the edge of the area at the end in the direction of the writing-mode.
writing-mode
Can be one of two-symbols, left-to-right or right-to-left. This also determines the writing-mode of the header and footer lines.
span
A positive integer specifying the number of columns that the areas resulting from this flow object shall span.
span-weak?
A Boolean specifying whether the areas resulting from this flow object span weakly rather than strongly.
space-before
An object of type display-space specifying space to be inserted before, in the placement direction, of the areas produced by the flow object.
space-after
An object of type display-space specifying space to be inserted after, in the placement direction, of the areas produced by the flow object.
keep-with-previous?
A Boolean specifying whether the flow object shall be kept in the same area as the previous flow object.
keep-with-next?
A Boolean specifying whether the flow object shall be kept in the same area as the next flow object.
break-before
Specifies that the flow object shall start an area of type page, page-region, column, or column-set.
break-after
Specifies that the flow object shall end an area of type page, page-region, column, or column-set.
keep
1. Indicates that area produced is kept together in the smallest possible area.

2. Symbol page indicating that the area produced lies in the same page.

3. Symbol column-set indicating that the area produced lies in the same column set.

4. Symbol column indicating that the area produced lies in the same column-set and that the first column that each area spans in the column-set is the same.

may-violate-keep-before?
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its previous flow object may not be respected.
may-violate-keep-after
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its next flow object may not be respected.
External Graphic Flow Object Class
The external-graphic flow object class is used for graphics contained in an external entity. Flow objects of this class may be inlined or displayed.
display?
A Boolean specifying whether the flow object shall be displayed rather than inlined.
scale
Either a number or a list of two numbers or one of the symbols max or max-uniform. If it is a number, then the graphic shall be scaled by that factor in both the horizontal and vertical directions. If it is a list of two numbers, then the graphic shall be scaled by the factor specified by the first number in the horizontal direction and by the factor specified by the second number in the vertical direction. If it is the symbol max-uniform, then it shall be scaled uniformly in the horizontal and vertical directions so that its size in either the horizontal or vertical direction is as large as allowed. If it is the symbol max, then it shall be scaled in the horizontal and vertical directions so that its size in the horizontal and vertical directions is as large as allowed.
max-width
A length specification specifying the maximum allowed width of the resulting area when the scale is max or max-uniform.
max-height
A length specification specifying the maximum allowed width of the resulting area when the scale is max or max-uniform.
entity-system-id
A string specifying the system identifier of the entity containing the external graphic.
notation-system-id
A string specifying the system identifier of the notation of the external graphic.
color
An object of type color that specifies the color in which the flow object's marks should be made.
layer
An integer specifying the layer of the marks of the areas resulting from the flow object.
position-preference
This applies if the flow object is directed into a port on a column-set-sequence flow object that is flowed into both the top-float and bottom-float zones of a column-subset and indicates whether the areas from this flow object may be flowed into only one of the zones.
display-alignment
Symbols start, center, end, inside, or outside specifying the alignment of the areas resulting from the flow object in the direction of the writing-mode.
start-indent
A length specification specifying the indent for the edge of the area at the start in the direction of the writing-mode.
end-indent
A length specification specifying the indent for the edge of the area at the end in the direction of the writing-mode.
writing-mode
Can be one of two-symbols, left-to-right or right-to-left. This also determines the writing-mode of the header and footer lines.
span
A positive integer specifying the number of columns that the areas resulting from this flow object shall span.
span-weak?
A Boolean specifying whether the areas resulting from this flow object span weakly rather than strongly.
space-before
An object of type display-space specifying space to be inserted before, in the placement direction, of the areas produced by the flow object.
space-after
An object of type display-space specifying space to be inserted after, in the placement direction, of the areas produced by the flow object.
keep-with-previous?
A Boolean specifying whether the flow object shall be kept in the same area as the previous flow object.
keep-with-next?
A Boolean specifying whether the flow object shall be kept in the same area as the next flow object.
break-before
Specifies that the flow object shall start an area of type page, page-region, column, or column-set.
break-after
Specifies that the flow object shall end an area of type page, page-region, column, or column-set.
keep
1. Indicates that area produced is kept together in the smallest possible area.

2. Symbol page indicating that the area produced lies in the same page.

3. Symbol column-set indicating that the area produced lies in the same column set.

4. Symbol column indicating that the area produced lies in the same column-set and that the first column that each area spans in the column-set is the same.

may-violate-keep-before?
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its previous flow object may not be respected.
may-violate-keep-after
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its next flow object may not be respected.
position-point-x
A length-spec giving the x-coordinate of the position point of the resulting area in the area's coordinate system. For this purpose, the area is considered to have a coordinate system in the same way as an area container. This shall apply only when the flow object is inlined.
position-point-y
A length-spec giving the y-coordinate of the position point of the resulting area in the area's coordinate system. For this purpose, the area is considered to have a coordinate system in the same way as an area container. This shall apply only when the flow object is inlined.
escapement-direction
Symbols top-to-bottom, left-to-right, bottom-to-top, or right-to-left specifying the escapement direction of the resulting area relative to the area's coordinate system.
inhibit-line-breaks?
A Boolean specifying whether line-breaks shall be inhibited before and after each area produced by this flow object.
break-before-priority
An integer that affects whether a break is allowed before this flow object. The break priority of a potential breakpoint is the maximum of: (1) the break-after-priority of the flow object immediately preceding the potential breakpoint; and (2) the break-before-priorities of the flow object immediately following the potential breakpoint, and any characters immediately following that character for which the drop-after-line-break is true. A break shall be allowed at a potential breakpoint if it is even.
break-after-priority
An integer that affects whether a break is allowed after this flow object as described in the specification of the break-before-priority.
Included-Container-Area Flow Object Class
An included-container-area flow object results in a sequence of one or more areas each of which is specified as an area container. An included-container-area flow object has a single principal port. The contents of this port shall be displayed. Flow objects of the included-container-area class may be inlined or displayed. The size of the container shall be fixed in the direction perpendicular to the area container's filling-direction.
display?
A Boolean specifying whether the flow object shall be displayed rather that inlined.
filling-direction
One of the symbols top-to-bottom, left-to-right, or right-to-left which specify the filling direction of the area container.
width
A length specifying the width of the area container.
height
A length specifying the height of the area container.
contents-alignment
One of the symbols start, end, center, or justify specifying the alignment of the child area within the area container in the filling-direction of the area container.
overflow-action
One of the symbols truncate, error, or repeat specifying the action to be taken if the content of the area container does not fit within the dimensions specified for the area container.
contents-rotation
One of the integers, 0,90,180,270 or repeat specifying the counter-clockwise rotation to be applied to the area contents.
scale
A number specifying a scaling factor to be applied to the contents of the area.
position-preference
This applies if the flow object is directed into a port on a column-set-sequence flow object that is flowed into both the top-float and bottom-float zones of a column-subset and indicates whether the areas from this flow object may be flowed into only one of the zones.
display-alignment
Symbols start, center, end, inside, or outside specifying the alignment of the areas resulting from the flow object in the direction of the writing-mode.
start-indent
A length specification specifying the indent for the edge of the area at the start in the direction of the writing-mode.
end-indent
A length specification specifying the indent for the edge of the area at the end in the direction of the writing-mode.
writing-mode
Can be one of two-symbols, left-to-right or right-to-left. This also determines the writing-mode of the header and footer lines.
span
A positive integer specifying the number of columns that the areas resulting from this flow object shall span.
span-weak?
A Boolean specifying whether the areas resulting from this flow object span weakly rather than strongly.
space-before
An object of type display-space specifying space to be inserted before, in the placement direction, of the areas produced by the flow object.
space-after
An object of type display-space specifying space to be inserted after, in the placement direction, of the areas produced by the flow object.
keep-with-previous?
A Boolean specifying whether the flow object shall be kept in the same area as the previous flow object.
keep-with-next?
A Boolean specifying whether the flow object shall be kept in the same area as the next flow object.
break-before
Specifies that the flow object shall start an area of type page, page-region, column, or column-set.
break-after
Specifies that the flow object shall end an area of type page, page-region, column, or column-set.
keep
1. Indicates that area produced is kept together in the smallest possible area.

2. Symbol page indicating that the area produced lies in the same page.

3. Symbol column-set indicating that the area produced lies in the same column set.

4. Symbol column indicating that the area produced lies in the same column-set and that the first column that each area spans in the column-set is the same.

may-violate-keep-before?
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its previous flow object may not be respected.
may-violate-keep-after
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its next flow object may not be respected.
position-point-x
A length-spec giving the x-coordinate of the position point of the resulting area in the area's coordinate system. For this purpose, the area is considered to have a coordinate system in the same way as an area container. This shall apply only when the flow object is inlined.
position-point-y
A length-spec giving the y-coordinate of the position point of the resulting area in the area's coordinate system. For this purpose, the area is considered to have a coordinate system in the same way as an area container. This shall apply only when the flow object is inlined.
escapement-direction
Symbols top-to-bottom, left-to-right, bottom-to-top, or right-to-left specifying the escapement direction of the resulting area relative to the area's coordinate system.
inhibit-line-breaks?
A Boolean specifying whether line-breaks shall be inhibited before and after each area produced by this flow object.
break-before-priority
An integer that affects whether a break is allowed before this flow object. The break priority of a potential breakpoint is the maximum of: (1) the break-after-priority of the flow object immediately preceding the potential breakpoint; and (2) the break-before-priorities of the flow object immediately following the potential breakpoint, and any characters immediately following that character for which the drop-after-line-break is true. A break shall be allowed at a potential breakpoint if it is even.
break-after-priority
An integer that affects whether a break is allowed after this flow object as described in the specification of the break-before-priority.
Score Flow Object Class
The score flow object class contains a single principal port. The contents of this port are scored.
type
Symbols before specifying that a score should be drawn parallel to the placement path and at a position specified by the font of the score flow object for scores that are before the placement path in the line progression direction, through specifying that a score should be drawn parallel to the placement path and at a position specified by the font of the score flow object for scores that are drawn through the characters of the font, after specifying that a score shall be drawn parallel to the placement path and at a position specified by the font of the score flow object for scores that are after the placement path in the line-progression direction, a length-spec specifying that a score shall be drawn parallel to the placement path such that the distance in the line-progression direction from the center of the score to the placement path is the specified length, and a character specifying that each glyph shall be overstruck with that character.
score-spaces?
A Boolean specifying whether the scoring shall be applied to spaces.
color
An object of type color that specifies the color in which the flow object's marks should be made.
layer
An integer specifying the layer of the marks of the areas resulting from the flow object.
line-cap
Symbols butt, round, or square specifying the cap style for the line.
line-dash
A list of one or more lengths that specifies the dash pattern of the line. The first length specifies the number component of the CurrentDashPattern graphics state variable in ISO/IEC 10180. The remaining lengths specify the vector component of the CurrentDashPattern graphics state variable.
line-thickness
A length that specifies the thickness of the line or lines.
line-repeat
A strictly positive integer that specifies the number of parallel lines to be drawn.
line-sep
A length that gives the distance between the centers of parallel lines.
inhibit-line-breaks?
A Boolean specifying whether line-breaks shall be inhibited before and after each area produced by this flow object.
Box flow Object Class
The box flow object may be used to put a box around a sequence of flow objects. The box flow object is either displayed or inlined depending on the value of the display?: characteristic. If the box is displayed, then the port shall accept any displayed flow objects. If the box is inlined, then the port shall accept any inlined flow objects.
display?
A Boolean specifying whether the flow object is displayed rather than inlined.
box-type
Symbols border specifying that the box has a border, background specifying that the box has a background, and both specifying that the box has both a border and a background.
box-open-end?
A Boolean that specifies whether the broken box shall have an open end.
background-color
An object of type color that specifies the color in which marks for the flow object's background shall be made.
background-layer
An integer specifying the layer of the marks of the areas resulting from the background of a flow object.
box-corner-rounded
Specifies whether the corners of the box shall be drawn as quarter circles. The characteristic allows for individual corners to be rounded.
box-corner-radius
A length specification specifying the radius of the quarter circles to be used when box-corner-rounded is true.
box-border-alignment
A symbol specifying the alignment of the borders line relative to the position of the border. Symbols center, specifying that the line shall be centered with respect to the position of the border, outside specifying that the edge of the line that is an outer edge of the box shall be aligned with the position of the border and inside, specifying that the edge of the line that is an inner edge of the box shall be aliened with the position of the border.
box-size-before
A length that specifies the distance from the placement path to the edge of the box that is before the placement path in the line-progression direction.
box-size-after
A length that specifies the distance from the placement path to the edge of the box that is after the placement path in the line-progression direction.
color
An object of type color that specifies the color in which the flow object's marks should be made.
layer
An integer specifying the layer of the marks of the areas resulting from the flow object.
line-cap
Symbols butt, round, or square specifying the cap style for the line.
line-dash
A list of one or more lengths that specifies the dash pattern of the line. The first length specifies the number component of the CurrentDashPattern graphics state variable in ISO/IEC 10180. The remaining lengths specify the vector component of the CurrentDashPattern graphics state variable.
line-thickness
A length that specifies the thickness of the line or lines.
line-repeat
A strictly positive integer that specifies the number of parallel lines to be drawn.
line-sep
A length that gives the distance between the centers of parallel lines.
line-miter-limit
A number that specifies the miter limit for line joins.
line-join
Symbols miter, round, or bevel specifying the join style of the line.
writing-mode
Can be one of two-symbols, left-to-right or right-to-left. This also determines the writing-mode of the header and footer lines.
position-preference
This applies if the flow object is directed into a port on a column-set-sequence flow object that is flowed into both the top-float and bottom-float zones of a column-subset and indicates whether the areas from this flow object may be flowed into only one of the zones.
inhibit-line-breaks?
A Boolean specifying whether line-breaks shall be inhibited before and after each area produced by this flow object.
break-before-priority
An integer that affects whether a break is allowed before this flow object. The break priority of a potential breakpoint is the maximum of: (1) the break-after-priority of the flow object immediately preceding the potential breakpoint; and (2) the break-before-priorities of the flow object immediately following the potential breakpoint, and any characters immediately following that character for which the drop-after-line-break is true. A break shall be allowed at a potential breakpoint if it is even.
break-after-priority
An integer that affects whether a break is allowed after this flow object as described in the specification of the break-before-priority.
start-indent
A length specification specifying the indent for the edge of the area at the start in the direction of the writing-mode.
end-indent
A length specification specifying the indent for the edge of the area at the end in the direction of the writing-mode.
span
A positive integer specifying the number of columns that the areas resulting from this flow object shall span.
span-weak?
A Boolean specifying whether the areas resulting from this flow object span weakly rather than strongly.
space-before
An object of type display-space specifying space to be inserted before, in the placement direction, of the areas produced by the flow object.
space-after
An object of type display-space specifying space to be inserted after, in the placement direction, of the areas produced by the flow object.
keep-with-previous?
A Boolean specifying whether the flow object shall be kept in the same area as the previous flow object.
keep-with-next?
A Boolean specifying whether the flow object shall be kept in the same area as the next flow object.
break-before
Specifies that the flow object shall start an area of type page, page-region, column, or column-set.
break-after
Specifies that the flow object shall end an area of type page, page-region, column, or column-set.
keep
1. Indicates that area produced is kept together in the smallest possible area .

2. Symbol page indicating that the area produced lies in the same page.

3. Symbol column-set indicating that the area produced lies in the same column set.

4. Symbol column indicating that the area produced lies in the same column-set and that the first column that each area spans in the column-set is the same.

may-violate-keep-before?
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its previous flow object may not be respected.
may-violate-keep-after
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its next flow object may not be respected.
Side-by-Side Flow Object Class
A side-by-side flow object is always displayed. It has a single port whose contents are side-by-side-item flow objects that are potentially aligned with each other in the placement direction of the side-by-side. When two objects are aligned in some direction, then their relative position is adjusted in that direction so that their alignment points lie on a line that is perpendicular to that direction.
side-by-side-overlap-control
Symbols none or indent determining how the side-by-side handles the possibility of its side-by-side-items overlapping each other.
position-preference
This applies if the flow object is directed into a port on a column-set-sequence flow object that is flowed into both the top-float and bottom-float zones of a column-subset and indicates whether the areas from this flow object may be flowed into only one of the zones.
space-before
An object of type display-space specifying space to be inserted before, in the placement direction, of the areas produced by the flow object.
space-after
An object of type display-space specifying space to be inserted after, in the placement direction, of the areas produced by the flow object.
keep-with-previous?
A Boolean specifying whether the flow object shall be kept in the same area as the previous flow object.
keep-with-next?
A Boolean specifying whether the flow object shall be kept in the same area as the next flow object.
break-before
Specifies that the flow object shall start an area of type page, page-region, column or column-set.
break-after
Specifies that the flow object shall end an area of type page, page-region, column, or column-set.
keep
1. Indicates that area produced is kept together in the smallest possible area.

2. Symbol page indicating that the area produced lies in the same page.

3. Symbol column-set indicating that the area produced lies in the same column set.

4. Symbol column indicating that the area produced lies in the same column-set and that the first column that each area spans in the column-set is the same.

may-violate-keep-before?
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its previous flow object may not be respected.
may-violate-keep-after
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its next flow object may not be respected.
Side-by-Side-Item Flow Object Class
Use of this flow object requires the side-by-side feature. A side-by-side-item flow object is always displayed. It has a single principal port whose contents are displayed. The display-size of the content is the same as the display-size of the side-by-side. A side-by-side-item flow object shall be allowed only in a side-by-side flow object.
start-indent
A length-spec specifying the indent for the edge of the area at the start in the direction of the writing-mode. This determines only whether adjacent side-by-side-items overlap when the side-by-side-overlap-control: characteristic of the containing side-by-side has the value indent.
end-indent
A length-spec specifying the indent for the edge of the area at the end in the direction of the writing-mode. The initial value is 0 pt. determines only whether adjacent side-by-side-items overlap when the side-by-side-overlap-control: characteristic of the containing side-by-side has the value indent.
side-by-side-pre-align
A symbol specifying the point that shall be used to align this item with the preceding side-by-side-item. Symbols start, meaning the beginning edge in the placement direction of the first area produced by the flow object, initial, meaning the placement path of the first line area by the flow object, final, meaning the placement path of the last line area produced by the flow object, or end, meaning the ending edge in the placement direction of the last line area produced by this side-by-side-item flow object.
side-by-side-post-align
A symbol specifying the point that shall be used to align this item with the following side-by-side-item.
Glyph Annotation Flow Object Class
Flow objects of class glyph-annotation are mainly used for characters, words, or phrases that have an associated description of their meaning or pronunciation. The annotation is placed on the before side in the line-progression direction of the annotated glyphs. A glyph-annotation flow object that has more than one annotated glyph shall not be broken between lines. Users should explicitly divide long annotations between several glyph-annotation flow objects.
annotation-glyph-placement
A symbol that specifies the nominal placement rule of the annotating glyph. Symbols centered, annotating glyphs shall be centered, shouldered, annotating glyphs shall be placed in relation to the number of annotating glyphs and the starting edge of the annotated glyph.
annotation-glyph-style
A string that specifies a public identifier for additional rules to be applied in formatting.
inhibit-line-breaks?
A Boolean specifying whether line-breaks shall be inhibited before and after each area produced by this flow object.
break-before-priority
An integer that affects whether a break is allowed before this flow object. The break priority of a potential breakpoint is the maximum of: (1) the break-after-priority of the flow object immediately preceding the potential breakpoint; and (2) the break-before-priorities of the flow object immediately following the potential breakpoint, and any characters immediately following that character for which the drop-after-line-break is true. A break shall be allowed at a potential breakpoint if it is even.
break-after-priority
An integer that affects whether a break is allowed after this flow object as described in the specification of the break-before-priority.
Alignment-Point Flow Object Class
Specified an explicit alignment point for paragraphs with a first-line-align characteristic being true.
Aligned-Column Flow Object Class
An aligned-column flow object is used for grouping together externally aligned paragraphs. An aligned-column is displayed. It has a single principal port that may contain any displayed flow objects. Displayed flow objects in the port that are not externally aligned paragraphs shall be formatted normally. The externally aligned paragraphs in the content or in side-by-side flow objects in the content are aligned in the direction of the writing-mode so that their alignment points lie on a line in the placement direction.
display-alignment
Symbols start, center, end, inside, or outside specifying the alignment of the areas resulting from the flow object in the direction of the writing-mode.
start-indent
A length specification specifying the indent for the edge of the area at the start in the direction of the writing-mode. This is used for aligning the first line of each externally aligned paragraph.
end-indent
A length specification specifying the indent for the edge of the area at the end in the direction of the writing-mode. This is used for aligning the first line of each externally aligned paragraph.
writing-mode
Can be one of two-symbols, left-to-right or right-to-left. This also determines the writing-mode of the header and footer lines.
position-preference
This applies if the flow object is directed into a port on a column-set-sequence flow object that is flowed into both the top-float and bottom-float zones of a column-subset and indicates whether the areas from this flow object may be flowed into only one of the zones.
space-before
An object of type display-space specifying space to be inserted before, in the placement direction, of the areas produced by the flow object.
space-after
An object of type display-space specifying space to be inserted after, in the placement direction, of the areas produced by the flow object.
keep-with-previous?
A Boolean specifying whether the flow object shall be kept in the same area as the previous flow object.
keep-with-next?
A Boolean specifying whether the flow object shall be kept in the same area as the next flow object.
break-before
Specifies that the flow object shall start an area of type page, page-region, column, or column-set.
break-after
Specifies that the flow object shall end an area of type page, page-region, column, or column-set.
keep
1. Indicates that area produced is kept together in the smallest possible area.

2. Symbol page indicating that the area produced lies in the same page.

3. Symbol column-set indicating that the area produced lies in the same column set.

4. Symbol column indicating that the area produced lies in the same column-set and that the first column that each area spans in the column-set is the same.

may-violate-keep-before?
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its previous flow object may not be respected.
may-violate-keep-after
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its next flow object may not be respected.
Multi-Line-Inline-Note Flow Object Class
Flow objects of class multi-line-inline-note are used for placing a note inline. A multi-line-inline-note consists of an open parenthesis in approximately the same size as the glyphs before the note, two lines placed one before the other in the line-progression direction with the contents in a smaller size than the surrounding glyphs, and a close parenthesis in the same size as the open parenthesis.
open
An unlabelled specification of a sequence of flow objects which is used to open the multi-line-inline note.
close
An unlabelled specification of a sequence of flow objects which is used to open the multi-line-inline note.
inline-note-line-count
A positive integer that specifies the number of lines in the note.
inline-note-style
A string specifying the public identifier of the additional or detailed rules to be applied in formatting the flow object.
inhibit-line-breaks?
A Boolean specifying whether line-breaks shall be inhibited before and after each area produced by the flow object. This applies only to line-breaks introduced by the formatter to make lines fit in the available space.
break-before-priority
An integer that affects whether a break is allowed before this flow object. The break priority of a potential breakpoint is the maximum of: (1) the break-after-priority of the flow object immediately preceding the potential breakpoint; and (2) the break-before-priorities of the flow object immediately following the potential breakpoint, and any characters immediately following that character for which the drop-after-line-break is true. A break shall be allowed at a potential breakpoint if it is even.
break-after-priority
An integer that affects whether a break is allowed after this flow object as described in the specification of the break-before-priority.
Emphasizing-Mark Flow Object Class
Flow objects of class emphasizing-mark are used for emphasizing characters, words, or phrases. Each emphasizing-mark shall be placed on a path that is perpendicular to the line-progression direction and that lies before the placement path in the line-progression direction. This path is called the emphasizing-mark placement path. The emphasizing-marks are distributed with glyph distribution where the emphasizing-mark shall be placed on the emphasizing-mark placement path so that it is centered with respect to the glyph or with an even distribution, where emphasizing-marks shall be distributed evenly along the emphasizing-mark placement path of the area or areas resulting from the content of the flow object.
mark
An unlabelled specification of a sequence of flow objects specifying that areas that shall be used as the emphasizing mark.
mark-distribution
One of the symbols glyph or even specifying the distribution of the emphasizing marks.
mark-style
A string that specifies the public identifier of that additional or detailed rules that shall be applied in formatting of the flow object.
inhibit-line-breaks?
A Boolean specifying whether line-breaks shall be inhibited before and after each area produced by the flow object. This applies only to line-breaks introduced by the formatter to make lines fit in the available space.
break-before-priority
An integer that affects whether a break is allowed before this flow object. The break priority of a potential breakpoint is the maximum of: (1) the break-after-priority of the flow object immediately preceding the potential breakpoint; and (2) the break-before-priorities of the flow object immediately following the potential breakpoint, and any characters immediately following that character for which the drop-after-line-break is true. A break shall be allowed at a potential breakpoint if it is even.
break-after-priority
An integer that affects whether a break is allowed after this flow object as described in the specification of the break-before-priority.
Flow Object Classes for Mathematical Formulae
The flow object classes for mathematical formulae are math-sequence, unmath, subscript, superscript, script, mark, fence, fraction, radical, math-operator, and grid. These flow objects may also be used for "linear" chemical formulae. Character flow objects are used for characters in mathematical formulae; there is no special flow object class for this. Characteristics such as font-size: or font-posture: are determined in the usual way by the characteristics of the character flow object.
Math Sequence Flow Object Class
A math sequence flow object produces a single area. The port shall accept flow objects of the following classes: math-sequence, unmath, subscript, superscript, script, mark, fence, fraction, radical, math-operator, grid, character, or alignment-point. The spacing between the flow objects in the contents may be adjusted depending on their class and characteristics.
math-display-mode
Symbols inline or display specifying the style of formatting.
Unmath Flow Object Class
An unmath flow object class is used to get words of natural language within a mathematical formula.
writing-mode
Can be one of two-symbols, left-to-right or right-to-left. This also determines the writing-mode of the header and footer lines.
glyph-alignment-mode
Symbols base, center, top, bottom or font specifying the alignment mode to be used for glyphs.
font-family-name
A string giving the family name property of the font resource.
font-weight
Symbols not-applicable, ultra-light, extra-light, light, semi-light, medium, semi-bold, bold, extra-bold, or ultra-bold giving the weight property of the desired font resource.
font-posture
Symbols not-applicable, upright, oblique, back-slanted-oblique, italic, or back-slanted-italic giving the posture property of the desired font resource.
font-structure
Symbols not-applicable, solid, or outline.
font-proportionate-width
Symbols not-applicable, ultra-condensed, extra-condensed, condensed, semi-condensed, medium, semi-expanded, expanded, extra-expanded, or ultra-expanded.
font-name
A string which is the public identifier for the font name property of the desired font resource.
Subscript Flow Object Class
A subscript flow object is allowed in a math sequence or in a port on a math flow object that accepts the same flow object classes as a math-sequence. This flow object causes its parent to position the content of the subscript flow object as a subscript of the preceding area.
Superscript Flow Object Class
A superscript flow object is allowed in a math sequence or in a port on a math flow object that accepts the same flow object classes as a math-sequence. This flow object causes its parent to position the content of the superscript flow object as a subscript of the preceding area.
Script Flow Object Class
The Script Flow Object Class describes a seven part area. The parts described are the base area, the pre-subperscript area, the pre-subscript area, the mid-superscript area, the mid-subscript area, the post-superscript area, and the post-subscript area.
script-pre-align
Symbols independent, specifying that the pre-subscript and pre-superscript areas shall be aligned independently of each other, pile, specifying that the trailing edges shall be aligned together, sup-out, specifying that the trailing edge of the area associated with the pre-sub port shall be aligned with the leading edge of the area associated with the pre-sub port, and sub-out, specifying that the trailing edge of the area associated with the pre-sub port shall be aligned with the leading edge of the area associated with the pre-sub port.
script-post-align
Symbols independent, specifying that the post-subscript and post-superscript areas shall be aligned independently of each other, pile, specifying that the trailing edges shall be aligned together, sup-out, specifying that that trailing edge of the area associated with the post-sub port shall be aligned with the leading edge of the area associated with the post-sub portend sub-out, specifying that the trailing edge of the area associated with the post-sub port shall be aligned with the leading edge of the area associated with the post-sub port.
script-mid-sup-align
A symbol that specifies the alignment of the mid-superscript and base areas. This can take the values lead-edge, specifying that the leading edges of the areas shall be aligned, trail-edge specifying that the trailing edges of the areas shall be aligned, and center, specifying that the center points of the areas in the direction determined by the writing mode shall be aligned.
script-mid-sub-align
A symbol that specifies the alignment of the mid-subscript and base areas. This can take the values lead-edge, specifying that the leading edges of the areas shall be aligned, trail-edge specifying that the trailing edges of the areas shall be aligned, and center, specifying that the center points of the areas in the direction determined by the writing mode shall be aligned.
math-display-mode
Symbols display or inline specifying the type of formatting.
Mark Flow Object Class
The Mark Flow Object Class describes a three part area: the base area, the over-mark area, and the undermark-area.
math-display-mode
Symbols display or inline specifying the type of formatting.
Fence Flow Object Class
The fence flow object describes a three-part area. The parts described are the base area, the open-fence area, and the close-fence area. The fences should be extended according to the height of the base area. The flow object has the principal port, which is used for the main content of the flow object, open, which is used for the open-fence area and close, which is used for the close-fence area.
math-display-mode
Symbols display or inline specifying the type of formatting.
Fraction Flow Object Class
The Fraction Flow Object Class describes a three-part area. The parts described are the numerator area, the fraction-bar area, and the denominator area. The flow object has the ports numerator, which is used for the content that shall be placed in the numerator area and denominator, which is used for the content that shall be placed in the denominator area.
fraction-bar
An unlabelled specification of sequence of flow objects containing a single rule flow object to be used for the fraction bar.
numerator-align
A symbol that specifies the alignment of the numerator area and the fraction-bar area. Symbols lead-edge, specifying that the leading edges shall be aligned, trail-edge for the trailing edges and center for the center points alignment.
denominator-align
A symbol that specifies the alignment of the denominator area and the fraction-bar area. Symbols lead-edge, specifying that the leading edges shall be aligned, trail-edge for the trailing edges, and center for the center points alignment.
math-display-mode
Symbols display or inline specifying the type of formatting.
Radical Flow Object Class
The Radical Flow Object Class describes a three part area: the base, degree, and the radical-glyph areas.
radical
An unlabelled specification of a sequence of flow objects containing a single character flow object to be used for the radical glyph.
math-display-mode
Symbols display or inline specifying the type of formatting.
Math Operator Flow Object Class
The Math Operator Flow Object Class describes four areas: the base area, the lower limit area, the upper limit area, and the operator symbol area.
math-display-mode
Symbols display or inline specifying the type of formatting.
Grid Flow Object Class
The grid flow object class describes a series of areas arranged in a grid. The column-progression direction for the grid is the escapement direction and the row-progression direction is the line progression direction.
grid-position-cell-type
A symbol specifying how the positioning of the cells in the grid is determined. Symbols explicit, indicating that each grid-cell has an explicit row and column number, row-major indicating that the position of each cell is determined by where it occurs in the content of the grid, and column major, indicating that the position of each cell is determined by where it occurs in the content of the grid.
grid-n-columns
A positive integer that specifies the number of columns in the grid.
grid-n-rows
A positive integer that specifies the number of rows in the grid.
grid-column-alignment
A symbol that specifies the alignment in the grids column progression direction of the areas in the grid.
grid-rows-alignment
A symbol that specifies the alignment in the grids row progression direction of the areas of the grid.
grid-equidistant-rows?
A Boolean that specifies whether the areas in the grid shall be positioned so their centers are equidistant in the grids row progression direction.
grid-equidistant-columns?
A Boolean that specifies whether the areas in the grid shall be positioned so their centers are equidistant in the grids column progression direction.
math-display-mode
Symbols display or inline specifying the type of formatting.
Grid Cell Flow Object Class
A grid cell flow object is a container for the content of each cell in a grid.
column-number
A positive integer specifying the column number in a grid.
row-number
A positive integer specifying the row number in a grid.
Flow Object Classes for Tables
Specifications for tabular formatting makes use of the following flow object classes: table, table-part, table-column, table-row, table-cell, and table-border.
Table Flow Object Class
A table has two directions associated with it: a row-progression direction and a column-progression direction. The row-progression direction is equal to the placement direction of the table flow object. The column-progression direction is given by the value of the writing-mode: characteristic of the table flow object.
table-width
A length specification that specifies the size of the table in the column progression direction or if the table-auto-width feature is used, a #f indicating that the width of the table should be the minimum that will accommodate its content.
table-auto-width-method
A string specifying a public identifier for the method to be used to determine the widths of the columns.
table-border
An unlabelled specification of sequence of flow objects containing a table-border flow object.
before-row-border
An unlabelled specification of sequence of flow objects containing a single-table-border object to be used as the border on the side if the table that is before the table in the row-progression direction.
after-row-border
Same as the before-row-border but applies to the side of the table that is after the table in the column progression direction.
table-corner-rounded
Specifies whether the corners of the table shall be drawn as quarter circles. The characteristic allows for individual corners to be rounded also.
table-corner-radius
A length specification specifying the radius of the quarter circles to be used when table-corner-rounded is true.
position-preference
This applies if the flow object is directed into a port on a column-set-sequence flow object that is flowed into both the top-float and bottom-float zones of a column-subset and indicates whether the areas from this flow object may be flowed into only one of the zones.
display-alignment
Symbols start, center, end, inside, or outside specifying the alignment of the areas resulting from the flow object in the direction of the writing-mode.
start-indent
A length specification specifying the indent for the edge of the area at the start in the direction of the writing-mode.
end-indent
A length specification specifying the indent for the edge of the area at the end in the direction of the writing-mode.
writing-mode
Can be one of two-symbols, left-to-right or right-to-left. This also determines the writing-mode of the header and footer lines.
span
A positive integer specifying the number of columns that the areas resulting from this flow object shall span.
span-weak?
A Boolean specifying whether the areas resulting from this flow object span weakly rather than strongly.
space-before
An object of type display-space specifying space to be inserted before, in the placement direction, of the areas produced by the flow object.
space-after
An object of type display-space specifying space to be inserted after, in the placement direction, of the areas produced by the flow object.
keep-with-previous?
A Boolean specifying whether the flow object shall be kept in the same area as the previous flow object.
keep-with-next?
A Boolean specifying whether the flow object shall be kept in the same area as the next flow object.
break-before
Specifies that the flow object shall start an area of type page, page-region, column, or column-set.
break-after
Specifies that the flow object shall end an area of type page, page-region, column, or column-set.
keep
1. Indicates that area produced is kept together in the smallest possible area.

2. Symbol page indicating that the area produced lies in the same page.

3. Symbol column-set indicating that the area produced lies in the same column set.

4. Symbol column indicating that the area produced lies in the same column-set and that the first column that each area spans in the column-set is the same.

may-violate-keep-before?
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its previous flow object may not be respected.
may-violate-keep-after?
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its next flow object may not be respected.
Table-Part Flow Object Class
A table-part flow object class is allowed only within a table flow object. The result of formatting a table-part flow object is a sequence of areas. Each area consists of the content of the header port followed by some portion of the principal port followed by the content of the footer port. All table parts in a table have the same width.
table-part-omit-middle-header?
A Boolean which if true specifies that a table part whose first area is not at the beginning of an area produced by the table shall not start with the content of its header port.
table-part-omit-middle-footer?
A Boolean which if true specifies that a table part whose last area is not at the end of an area produced by the table shall not end with the content of the footer port.
space-before
An object of type display-space specifying space to be inserted before, in the placement direction, of the areas produced by the flow object.
space-after
An object of type display-space specifying space to be inserted after, in the placement direction, of the areas produced by the flow object.
keep-with-previous?
A Boolean specifying whether the flow object shall be kept in the same area as the previous flow object.
keep-with-next?
A Boolean specifying whether the flow object shall be kept in the same area as the next flow object.
break-before
Specifies that the flow object shall start an area of type page, page-region, column, or column-set.
break-after
Specifies that the flow object shall end an area of type page, page-region, column, or column-set.
keep
1. Indicates that area produced is kept together in the smallest possible area

2. Symbol page indicating that the area produced lies in the same page.

3. Symbol column-set indicating that the area produced lies in the same column set.

4. Symbol column indicating that the area produced lies in the same column-set and that the first column that each area spans in the column-set is the same.

may-violate-keep-before?
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its previous flow object may not be respected.
may-violate-keep-after?
A Boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its next flow object may not be respected.
Table-Column Flow Object Class
A table-column flow object is an atomic flow object that specifies characteristics applicable to table cells that have the same column and span.
column-number
A positive integer specifying the column number of the table cells that are to inherit their characteristics from this table-column flow object.
n-columns-spanned
A positive integer specifying the number of columns spanned by table cells that are to inherit their characteristics from this table-column flow object.
width
A length specification specifying the width of the column.
display-alignment
Symbols start, center, end, inside, or outside specifying the alignment of the areas resulting from the flow object in the direction of the writing-mode.
start-indent
A length specification specifying the indent for the edge of the area at the start in the direction of the writing-mode.
end-indent
A length specification specifying the indent for the edge of the area at the end in the direction of the writing-mode.
Table-Row Flow Object Class
A table-row flow object serves to group table-cells into rows: all table-cells in a table-row start in the same geometric row. A table-row has a single principal port, which accepts flow objects of class table-cell. A table-row flow object can only occur as the child of a table-part or table flow object. When flow objects of class table-cell occur directly in a table-part or table, then cells are grouped into rows using the starts-row?: and ends-row?: characteristics.
Table-Cell Flow Object Class
A table-cell has a single principal port. It shall accept any flow object that can be displayed. A table-cell flow object shall only occur as the child of a table-row, table-part, or table flow object.
column-number
A positive integer specifying the first column spanned by this table-cell.
n-columns-spanned
A positive integer specifying the number of rows which this cell spans in the row progression direction starting from the current row.
cell-before-row-margin
A length giving the margin before the row in the row progression direction.
cell-after-row-margin
A length giving the margin after the row in the row progression direction.
cell-before-column-margin
A length giving the margin before the column in the column progression direction.
cell-after-column-margin
A length giving the margin after the column in the column progression direction.
cell-row-alignment
Symbols start, end or center specifying the alignment of the content of the cell in the row progression direction.
cell-background?
A Boolean specifying whether the cell has a solid background.
background-color
An object of type color that specifies the color in which the marks for the flow object's background should be made.
background-layer
An integer specifying the layer of the marks of the areas resulting from the backgrounds of a flow object.
cell-before-row-border
An unlabelled specification of sequence of flow objects containing a single table-border flow object to be used as the border on the side of the table that is before the cell in the row progression direction.
cell-after-row-border
The same as cell-before-row-border but applies to the side of the cell that is after the cell in the column progression direction.
cell-before-column-border
An unlabelled specification of sequence of flow objects containing a single table-border flow object to be used as the border on the side of the table that is before the cell in the column progression direction.
cell-after-column-border
An unlabelled specification of sequence of flow objects containing a single table-border flow object to be used as the border on the side of the table that is after the cell in the row progression direction.
starts-row?
A Boolean specifying whether this cell starts a row.
ends-row?
A Boolean specifying whether this cell ends a row.
cell-crossed
Symbols with, specifying that a single diagonal line should be drawn through the cell from the corner that is first in both the row and column-progression directions to the opposite corner, against, specifying that a single diagonal line should be drawn from the corner that is first in the row-progression direction and last in the column progression direction to the diagonally opposite corner, or both specifying that a pair of lines drawn through it from each corner of the cell to the diagonally opposite corner.
line-cap
Symbols butt, round, or square specifying the cap style for the line.
line-dash
A list of one or more lengths that specifies the dash pattern of the line. The first length specifies the number component of the CurrentDashPattern graphics state variable in ISO/IEC 10180. The remaining lengths specify the vector component of the CurrentDashPattern graphics state variable.
line-thickness
A length that specifies the thickness of the line or lines.
line-repeat
A strictly positive integer that specifies the number of parallel lines to be drawn.
line-sep
A length that gives the distance between the centers of parallel lines.
float-out-sidelines?
A Boolean which if true specifies that sideline attachments on the content of the cells shall be detached from the cells and attached to the table instead.
float-out-marginalia?
A Boolean which if true specifies that marginalia attachments on the content of cells shall be detached from the cells and attached to the table instead.
float-out-line-numbers?
A Boolean which if true specifies that line-number attachments on the content of cells shall be detached from the cells and attached to the table instead.
Table Border Flow Object Class
A table border flow object is used to specify the border of a table cell or of the table as a whole. The width of borders does not affect the width of cells, nor the positioning of the contents of cells, nor the width of the table, nor the size of the area produced by the table. In particular, the width of the table, as specified by the table-width: characteristic on the table, is equal to the sum of the widths of the cells.
border-priority
An integer that determines how conflicts between border specifications are resolved. When there are two table-border flow objects that apply to a particular segment of a border, then the one that has the largest priority will be used.
border-alignment
A symbol specifying the alignment of the borders line relative to the position of the border. Symbols center, specifying that the line shall be centered with respect to the position of the border, outside specifying that the edge of the line that is an outer edge of the box shall be aligned with the position of the border and inside, specifying that the edge of the line that is an inner edge of the box shall be aligned with the position of the border.
border-present?
A Boolean specifying whether the border shall be present.
border-omit-at-break?
A Boolean specifying whether the border shall be omitted if adjacent to a break in the table.
color
An object of type color that specifies the color in which the flow object's marks should be made.
layer
An integer specifying the layer of the marks of the areas resulting from the flow object.
line-cap
Symbols butt, round, or square specifying the cap style for the line.
line-dash
A list of one or more lengths that specifies the dash pattern of the line. The first length specifies the number component of the CurrentDashPattern graphics state variable in ISO/IEC 10180. The remaining lengths specify the vector component of the CurrentDashPattern graphics state variable.
line-thickness
A length that specifies the thickness of the line or lines.
line-repeat
A strictly positive integer that specifies the number of parallel lines to be drawn.
line-sep
A length that gives the distance between the centers of parallel lines.
line-miter-limit
A number that specifies the miter limit for line joins.
line-join
Symbols miter, round, or bevel specifying the join style of the line.
Flow Objects for On-line Display
Vertical Scroll Flow Object Class
A Vertical Scroll Flow Object Class is used for on-line display that does not divide output into pages. The horizontal size of the flow object is determined by the viewing environment.
filling-direction
Symbols top-to-bottom, left-to-right, or right-to-left. It specifies the filling-direction of the area container. The filling-direction of the area container may be perpendicular to the placement direction.
writing-mode
Symbols left-to-right, right-to-left, or top-to-bottom. The direction determined by the writing-mode shall be perpendicular to the placement direction. This is used to determine to which side of the flow object the start-margin and end-margin characteristics apply.
background-color
An object of type color that specifies the color in which marks for the flow object's background shall be made.
background-layer
An integer specifying the layer of the marks of the areas resulting from the background of a flow object.
background-tile
A public identifier specifying an image that should be repeated to cover the background of the vertical scroll.
start-margin
A length specification specifying the distance from the edge of the resulting area that is first in the writing-mode direction to the nearest edge of the text area.
end-margin
A length specification specifying the distance from the edge of the resulting area that is last in the writing-mode direction to the nearest edge of the text area.
Multi-Mode Flow Object Class
A multi-mode flow object is a flow object with two or more modes of presentation. The flow object can be switched between these modes of presentation in a system-dependent way. An implementation might present a menu of the different modes. Alternatively, clicking on the formatted flow object might cycle through the modes.
multi-modes
A list. The number of members of the list gives the number of modes of presentation. The list shall have at least two members. Each member of the list can be a specification of a port or a list consisting of a specification of a port and a string giving a description of the mode.
principal-mode-simultaneous?
A Boolean specifying whether the principal mode is simultaneous with the other modes. If it is, then when the current presentation mode is a mode other than the principal mode, both the content of the port for the principal mode and the content of the port for the current mode shall be displayed.
Link Flow Object Class
A link flow object represents a hypertext link that can be interactively traversed, typically by clicking on the areas representing the flow object and its content. A link has a single principal port, which can contain both inlined and displayed flow objects. Link flow objects can be nested, and the innermost link is effective.
destination
An object of type address or a list of one or more objects of type address.
Marginalia Flow Object Class
The Marginalia Flow Object Class is used to contain flow objects whose resulting areas shall be attachment areas for the line in which the marginalia flow object occurs. A marginalia flow object shall have an ancestor flow object that is of class paragraph. The behavior when there is more than one marginalia area attached to a single line is system-dependent.
marginalia-sep
A length specification that specifies the separation for the attachment.
marginalia-side
Symbols start or end specifying to which side of the line the marginalia shall be attached.
marginalia-keep-with-previous?
Specified whether the marginalia shall be associated with the last area of the previous flow object instead of the first area resulting from the following flow object.

APPENDIX C:  MIL-M-38784C REQUIREMENTS ADDRESSED BY DSSSL AND OS


      
[ Previous ]           [ Next ]           [ Home ]

MIL-M-38784C Requirements addressed by DSSSL and OS
Requirement
DSSSL
OS
Margin Headings
Running Heads
Security Classification
X
TM Identification Number
X
Binding Edge
X
X
Outer Edge
X
X
Running Feet
Page Number
X
X
System/Subsystem Number
X
X
Issue Indicator
X
X
Security Classification
X
Foldout Figure Number and Title
X
Technical Manual Identification Number
X
X
Page Numbering, Tables, Illustrations, Footnotes and Appendices
X
X
Blank Page Numbers
X
X
Title Pages
X
X
Warning Pages
X
X
List of Effective Pages
X
X
Verification Status Page
X
X
Front Matter
X
X
Foldout Figure Numbers
X
X
Foldout Page Numbers
X
X
Footnotes
X
X
Appendices
X
X
Glossary Pages
X
X
Index Pages
X
X
Headings
X
X
Foldout Pages
X
X
Multisheet Illustrations
X
X
Emergency Page Markings
X
Indentations
X
Table Outline
X
X
Table Titles
X
X
Boxhead Titles and Rules
X
X
Continued Table Material
X
X
Table Footnotes
X
X
Illustration Outline
X
X
Figure Titles
X
X
Illustration Legends
X
X
System/Subsystem Numbers
X
X
Divisions
Volumes
X
Parts
X
X
Chapters
X
X
Sections
X
X
Paragraphs
X
X
Paragraph Headings
X
X
Primary Sideheads
X
X
Subordinate Paragraphs
X
X
Decimal Paragraph Numbering
X
X
Procedural Steps
X
X
Appendices
X
X
Glossaries
X
X
Index
X
X
Style of Writing
References
X
X
Material Duplication
X
X
Readability
X
X
Abbreviations/Acronyms
X
X
Metric Symbols
X
Military Terms
X
Tables, Charts, and Graphs
X
X
Tabular Material
X
X
Warnings, Cautions, and Notes
X
X
Security Classification Markings
Partial
Front Matter
Cover/Title Page
X
X
Title
X
X
Title Warning
X
X
Type of Manual
X
X
Maintenance Levels
X
X
Prime Title
X
X
Subtitle
X
X
Manufacturer
X
X
Contract Number
X
X
Seal
X
X
Supercedure Notice
X
X
Supplement Notice
X
X
Volume Notice
X
X
Disclosure Notice
X
X
Distribution Statement
X
X

Export Control Notice
X
X
Destruction Notice
X
X
Publication Date
X
X
Change Number/Letter/Date
Partial
Warning Page
X
List of Effective Pages
X
Identifying Change Numbers / Dates
X
Acquiring Service Identification
X
Multivolume Manuals
X
Verification Status Page
X
Change Record
Partial
Table of Contents
X
X
List of Illustrations
X
X
List of Tables
X
X
Foreword/Preface/Introduction
X
X
International Standardization Agreements
X
List of Related Publications
X
List of Time Compliant Technical Orders
X
Record of Applicable Technical Directives
X
Safety Summary/General Precautions
X
Illustrations
Scale
X
X
Letter Size
X
X
Photographs/Line Drawings
X
X
Photographs
X
X
Continuous Tone Artwork
X
X
Combination Artwork
X
X
Diagrams/Wire Run Lists
X
X
Exploded Views
X
X
Engineering Drawings
X
X
Multisection Illustrations
X
X
Cartoons
X
X
Color in Illustrations
X
X
Border Rules
X
X
Credits
X
X
Callouts
Index Numbers
X
X
Nomenclature
X
X
Leader Lines/Arrowheads
X
X
Legends
X
X
Steps
X
X
Reference Designations
X
X
Crop Size Marks
X
X
Mounting of Artwork
X
X
Idenitifying Artwork
X
X
Covering of Artwork
X
X
Changes
Advanced Change Pages
Changes to Cover and Title Page
Numbering of Changes
X
Numbering of Added Material
X
Difference Data Sheets
Transmittal Cover Sheets
Illustration Changes
Index Number Changes
X
Deleted Paragraphs/Steps/Tables
Change Designator
Change Symbols for Text/Tables
Change Symbols for Illustrations
Changes to Looseleaf Publications
Changes to Permanently Bound Publications
Deletions
X
Additions
X
Text Suppression
Minor Changes
Changes to Tabular Material
Revisions
Renumbering and Removal
Revision Change Symbols
Supplements
Classified Supplements
Partial
Safety Supplements
X
Operational Supplements
X
Routine Supplements
X
Incorporation of Supplements into Manuals
X
Technical Order Page Supplements
X
Brief Manuals
X
X


APPENDIX D:  REFERENCES


      
[ Previous ]           [ Next ]           [ Home ]

References
  1. MIL-M-38784C Manuals, Technical: General Style and Format Requirements, dated December 9, 1992.

  1. ISO/IEC 10179 Information Technology -- Processing languages -- Document Style Semantics and Specification Language (DSSSL) dated December 25, 1995.

  1. Draft copy of MIL-PRF-28001C, dated September 29,1995.

  1. DSSSL-Online Application Profile, dated December 12, 1995 http://occam.sjf.novell.com:8080/docs/dsssl-o/do951212.htm.

  1. DSSSL Information at http://www.jclark.com.

  1. An Arbortext White Paper, "Getting Started with SGML", http://www.arbortext.com/wp.html.

  1. Minutes of the combined OS-CSR/CSL Meeting, August 16, 1995.

  1. SGML 95 Proceeding, December 3 - 9, 1995.

  1. DSSSL Tutorial, SGML 95, December 3, 1995, Adler, Berglund and Clark.

  1. Personal communications from DSSSL product vendors.


APPENDIX E:  ABBREVIATION AND ACRONYM LIST


   
[ Previous ]             [ Home ]

Appendix E:  Abbreviation and Acronym List
#FStands for "False"
#TStands for "True"
CALSContinuous Acquisition and Life-Cycle Support
CD-ROMCompact Disk with Read Only Memory
CSMPCALS Standards Management Plan
DARTDSSSL Assessment Repository Tool
DCNDepartment of Defense (DoD) Continuous Acquisition and Life-Cycle Support (CALS) Network
DoDDepartment of Defense
DSSSLDocument Style Semantics and Specification Language
DTDDocument Type Definition
e-i-cElements in Context
EPCElectronic Publishing Committee
ETMElectronic Technical Manual
FOSIFormatting Output Specification Instances
FPSIFormatting Presentation Specification Instance
ICNInternational CALS Network
IETMInteractive Electronic Technical Manual
ISGIndustry Steering Group
ISOInternational Organization for Standardization
JCALSJoint Continuous Acquisition and Life-Cycle Support
MOREMultimedia-Oriented Reuse Environment
OSOutput Specification
PSPresentation Specification
SDQLStandard Document Query Language
SGMLStandard Generalized Markup Language
sosofoSpecification of Sequence of Flow Objects
SPDLStandard Page Description Language instance
TCLTool Command Language
URLUniform Resource Locator
WYSIWYGWhat You See Is What You Get

   
[ Previous ]             [ Home ]


This page is hosted on a ManTech West Virginia Technology Applications Operations Center server.
by Alex Gabel/jpb 
Copyright ©1997 CALS IDE Virtual Enterprise