[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