FrameMaker+SGML, New Features
Goals
Three major goals have guided the design and development of FrameMaker+SGML
- Better and more reliable handling of SGML
- Reduced cost and effort of application effort
- 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:
- INTEGER: A numeric value that must be within a specified range. For
example, an attribute value must be between 5 and 15.
- REAL: The value of the attribute must fall in a range that can include
negative numbers.
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
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>
<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.