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