[framemaker-dita] Modularised EDDs?
Lynne A. Price
lprice at txstruct.com
Sun Mar 9 22:42:27 PDT 2008
At 10:05 PM 2/26/2008, Hedley Finger wrote:
>Is there any way to create a modularised EDD, with a skeleton host
>file and modules imported as text insets?
Hedley,
I use text insets heavily in EDDs I create.
As others have pointed out, if all your text insets consist of a single
element, you can use any EDD container as the root element of a text inset.
However, it is often desirable to reuse sequences of adjacent elements as
well as single elements. For example, suppose you have a set of common
attributes that you want to define for most elements, but some elements may
also have one or more additional attributes of their own. Using the EDD
template that comes with FrameMaker, you are limited to defining flows
consisting of single Attribute or AttributeList elements. You could define
an AttributeList flow to use as a text inset in the definition of all
elements that don't have individual attributes and Attribute flows for all
the common attributes within the AttributeList when you do want to add some
non-inset Attribute elements. Such an approach gets tedious rapidly when
there are numerous common attributes or numerous elements with their own
attributes.
Another possibility is to create an XML application for representing
EDDs. After all, an EDD is a structured document and hence could be saved
as XML. You could then use XML text insets. I do have such an application,
but I haven't done much with it.
I most often use a tool that Tassos Anastasiou and I developed. It's a
plug-in (FDK client) called the Reusable EDD Manager. It processes reusable
EDDs which are structured documents using an element catalog very similar
to that of an EDD. One difference is that a reusable EDD can contain an
element called TextInset. As the name suggests, TextInset is intended to be
used as the root element of FrameMaker text insets. Since its general rule
is <ANY>, it can contain a sequence of containers that might appear in an
EDD. For example, a flow tagged Common might consist of a TextInset with a
child for each common attribute. A particular AttributeList could then
consist of a text inset to Common and some individual Attribute elements as
well. The plug-in unwraps all the TextInset elements to produce an actual
EDD. I often put the material I want to reuse into reference frames in the
same file as the EDD that refers to them.
It's getting a bit off the topic of this message, but the Reusable EDD
Manager can be used both to modularize a large EDD and to maintain
variations of a base EDD. Variations might correspond to:
- Versions with prefixes and suffixes in different languages
- Versions that support different formats (for example, different page
sizes, or presence or absence of sideheads)
- Versions supporting slightly different document types (for example, user
documentation and training material)
- A version for use within FrameMaker and one used to create an XML DTD. In
this case, the FrameMaker version might use constructs permitted in SGML
but not XML, for example exclusions or general rules that use <TEXT> but
don't consist of a single optional and repeatable or-group with <TEXT> at
the beginning. The XML version won't enforce all the requirements of the
FrameMaker version. Thus, the FrameMaker version might include a general
rule like "Title, (<TEXT> | Phrase)*" while the XML version would be
"(<TEXT> | Title | Phrase)*". Every document satisfying the FrameMaker
version satisfies the XML version, but there are some undesirable documents
that satisfy the XML version but not the FrameMaker one. Users creating
material in XML would need to be trained to avoid them.
The reusble EDD supports such variations through conditional text and
variables. The reusable EDD manager reads a configuration file that lists
all variations of the EDD. For each variation, the configuration file lists
applicable condition tags, files with the appropriate variable definitions,
and the templates that need the resulting element definitions. In addition
to unwrapping the text insets, the Reusable EDD Manager creates the variant
EDDs by hiding and showing conditions and importing variable definitions
from the listed files. It then imports the resulting element definitions
into the listed templates. (The plug-in has not yet been updated to FM8 so
it does not support boolean combinations of conditions.)
I have worked on several projects that would not have been practical
without this tool (such as my FrameMaker application for editing XSLT). The
FM 7.2 version which I think works in FM 8 is currently available for US
$200 per copy. Haven't had time to write any documentation, but I can demo
it and answer a few questions. Anyway, contact me off-list if you are
interested.
--Lynne
Lynne A. Price
Text Structure Consulting, Inc.
Specializing in structured FrameMaker consulting, application development,
and training
lprice at txstruct.com http://www.txstruct.com
voice/fax: (510) 583-1505 cell phone: (510) 421-2284
More information about the framers
mailing list