FrameMaker+SGML, New Features


Three major goals have guided the design and development of FrameMaker+SGML

  1. Better and more reliable handling of SGML
  2. Reduced cost and effort of application effort
  3. Improved ease of use

Product Configuration

FrameMaker+SGML consists of the basic functionality of FrameMaker 5, the structural functions, and SGML import/export (Formerly part of the SGML Toolkit). The SGML Toolkit no longer exists as a separate product.

Pricing and Upgrade Policy

FrameMaker+SGML is a continuation of FrameBuilder. Current FrameBuilder customers are entitled to upgrade to FrameMaker+SGML.

New Features

Attribute support

FrameMaker+SGML now supports attributes directly, with data structures specifically implemented for attributes. All attribute types are supported, as well as REQUIRED (attribute must be present), OPTIONAL (value may be left undefined) and DEFAULT (value automatically set to a specified default; may be modified).

Additional types are provided:

Attributes are displayed in the structure windows below the element to which they belong. A gadget on the element bubble indicates whether the element has attribute, as shown below:

The "+" on the left side of the element bubble indicates that there is additional structure that has been collapsed (previously indicated by "stacked" element bubbles). The "-" on the right side indicates that attributes are displayed. If the user clicks on the "-", the attributes will be hidden and the gadget changed to a "+", which indicates that there is something to reveal.

A double click on an attribute calls up the attribute menu. Users can modify an attribute value. If an incorrect attribute is entered, a warning is displayed.

Users can set options to determine whether they are asked for attribute values when an element is inserted. Possible options are "always ask", "ask only for required attributes" or "do not ask".

Incorrect or missing attribute values display in red in the structure window.

The SGML import/export utilities map directly between SGML attributes and FrameMaker+SGML attributes. However, FrameMaker+SGML attributes of types INTEGER and REAL are transformed into CDATA types when exporting to SGML.


Tables are now fully structured objects. The following diagram illustrates FrameMaker+SGML's canonical table model:

Parenthesis () indicates optional structure

FrameMaker+SGML provides CALS table import/export. Because there are several versions of CALS tables, and because many customers modify the CALS table model, the import/export read/write rules and clients are exposed and documented.

Read/write rules facilitate mapping between other table models and the FrameMaker+SGML table model. There may be cases where it will be necessary to customize the SGML import/export utility.

The Structure View ca be used for many table manipulations. For example, a row can be dragged to a new location in the table. However, FrameMaker+SGML will not allow an inappropriate action; for example, users cannot drag a column into a cell.

When a table is inserted, FrameMaker+SGML automatically creates the basic structure. The user can then set an edit point inside the first cell and start to type. Moving from one cell to the next is the same as for FrameMaker 5. If a new row is inserted, the appropriate structure is also generated.

FrameMaker table editing features such as resizing rows, straddles, ruling, shading, etc., work the same in FrameMaker+SGML.

Automatic insertion of elements

It is possible to specify automatic insertion of several levels of structure. For example, when inserting a LIST element, FrameMaker+SGML can automatically insert the first ITEM element as well.

Automatic insertion of elements is defined in the EDD. It can be disabled via a control on the "element>insertion options" menu.

Element-based manipulations

Cross references, index entries, table of contents and generated lists are specified by element rather than by paragraph style. This means that the user does not have to be aware of the paragraph catalog.

ID Management

SGML provides a special type of attribute called an ID. ID's must be unique within a document, and duplicate ID's are flagged by the parser. Linking two or more elements is done by referring to the ID of the referenced element. The referencing element holds the information in an IDREF attribute. This is illustrated in the following example:

<para id="bar">This paragraph will contain a reference<xref idref="foo">to foo.


<para id="foo">This is the paragraph that is referenced.</para>

(In FrameMaker we think of this as cross references or hypherlinks.)

ID manegement is generally difficult and many SGML editors require the user to enter the ID's manually. FrameMaker+SGML uses the FrameMaker cross reference mechanism. Here's how it works:

In the EDD, an element ca be defined as a special cross reference type. Inserting a cross reference element causes the cross reference dialog to bi displayed. The user is shown a list of elements for which ID attributes have been defined. (it's not necessary for the ID of each element to have a value). Selecting an element causes a list of those elements to be displayed. The user selects the appropriate element, and the cross reference format. Behind the scenes, FrameMaker+SGML creates a unique ID if the element selected does not have one, and enters the ID value into the IDREF attribute of the referencing element.

If an element with an ID is copied, the ID value is removed from the copy so as to avoid duplication. However, when an element is moved, its ID value remains.

Character entity support

The standard character set for an SGML document is ASCII. Characters outside of the standard is reprecented by SDATA entities. For example, a pound sign might be represented as &lb;. Standard entity representation has been defined by ISO commitees; these are known as the ISO character entity sets.

FrameMaker+SGML will contain mappings from the ISO character entity sets to the appropriate display characters. Users will have access to the mappings in order to modify them.

Text entity support

In SGML, shared contents are generally handled via entities. A document can contain references to external entities which can contain text or graphics. Graphic entities are mapped to Frame's referenced graphics capability. Text entities can now be mapped to the new text by reference feature.

When either text or graphics are imported by reference, FrameMaker+SGML automatically creates an entity declaration, which defines the source of the referenced contents as well as its format (i.e., TIFF, CGM, etc.). When the document is written out as SGML, the referenced contents are replaced by an entity reference.

Most SGML editors require the user to set up the entity declarations and manually create the entity reference. The user may not autoally see the contents which are being referenced.

Hierarchical styles

FrameMaker+SGML provides a substantially new way of defining styles. Elements inherit formatting properties from their ancestors or siblings. Rather than referring to paragraph styles, template designers can now modify individual formatting properties depending on context (Paragraph styles can still be referenced). Changes to many properties can be incremental or absolute. For example, a left indent can be set to 1 inch from left margin, or incremented by 1/4 inch. So, for instance, when a second level section is created, the left indent can be incremented by 1/2 inch, and all elements within the section will have the same indent.

In addition to formatting properties, a template designer can specify automatic insertion of prefix and suffix text on any element. This allows for automatic generation of parentheses or quotes, for example, around elements.

The context rules provide for counting ancestors to determine level in the structure. This facilitates setting up multiple levels of numbering and indents. It is also possible to specify position. For example, you ca specify insertion of extra space above the first occurance of para after title. It can also be used to do accomplish special formatting at the end of a section.

The «show element context» command now shows the element's ancestors and then format rules that obtain.

The current method of referencing paragraph styles will work in FrameMaker+SGML

Customized Element Catalog

The element catalog provides several display options: valid children working start to finish, valid children for working in any order, children allowed anywhere within parent, and all elements. Users can also set up a customized element catalog, in which some elements may never be displayed, or where the order of elements can be changed. If, for example, the most commonly used element is called «para» it can be moved to the first position in the element catalog. When displaying the custom catalog, valid elements are still indicated by a check mark.

SGML import/export

Importing and exporting SGML is fully integrated into FrameMaker+SGML. The product looks at the file it is importing to determine whether it is SGML. SGML is an option on the «save as» menu.

Platform support

FrameMaker+SGML will be available on Sun OS/Solaris, HP, Mac and Windows. It's expected that all of these platforms will ship at the same time.

It's planned to release the product on IBM RS6000 and SGI at a later date. Other «thier 2» platforms are being evaluated.

If You have an other platform that's not supported, please send us a mail on , and we will try to help You.