[Date Prev][Date Next] [Thread Prev][Thread Next]
[Date Index] [Thread Index] [New search]

Text insets in structured documents such as EDDs



Hi,
  While the following comments refer to the use of text
insets in EDDs, they conclude by describing some bugs in
FM+SGML 6.0 that are relevant to the use of FM text insets
in all structured documents.
  At last year's FrameUsers conference, I described a tool
for maintaining a set of related EDDs. A key point was
using text insets for fragments of an EDD that occur multiple
times. For example, numerous elements may share one or
more attribute definitions or one or more format rules. Placing
these definitions in text insets allows editing one
copy to affect all instances, and ensures there are no
inadvertent differences.
  Like all structured flows, a structured flow used as a text
inset must have a highest-level element. This element can
be any element defined in the metatemplate (i.e., in the
template used by EDDs). For such flows to be valid, though,
the original Adobe metatemplate must be modified to make
those elements that are used as highest-level elements of
text insets to be valid at the highest level.
  An alternative is to define a new element, which might be
called TextInset, with the general rule <ANY> to be used as
the highest level element of text insets. This approach has
the advantage that a TextInset element can have multiple
children and hence allows a text inset to define more than
one attribute or more than one format rule. The approach has
disadvantages also. The metatemplate must be modified to allow
the TextInset element. And an FDK client is needed to unwrap
the TextInset elements before element definitions from the
EDD can be imported into a template.
  By last week's thread on EDD maintenance I had been reminded
that the TextInset element should not be needed. FM+SGML automatically
unwraps an element named SGMLFragment when that element is the
highest-level element of a text inset. Thus, it should be
possible to use SGMLFragment just as I have been using TextInset
with no need to write an FDK client to unwrap it. Furthermore,
since the SGMLFragment element will not appear in the main
EDD, its metatemplate does not need to account for the use of
SGMLFragment.
  Unfortunately, FM+SGML does not seem to handle SGMLFragment
correctly. Both 5.5.6 and 6.0 correctly unwrap SGMLFragment
at the highest-level of a text inset when the SGMLFragment has
only one child; when it has multiple children, though, SGMLFragment
is simply replaced with NoName. Furthermore, FM+SGML 6.0 has
a tendency to crash when such text insets are updated.
  	--Lynne

Lynne A. Price
Text Structure Consulting, Inc.
lprice@txstruct.com
http://www.txstruct.com

** To unsubscribe, send a message to majordomo@omsys.com **
** with "unsubscribe framers" (no quotes) in the body.   **