Omni Systems, Inc. Mif2Go User's Guide, Version 55
> 17 Converting to DocBook XML > 17.5 Nesting DocBook block elements > 17.5.4 Deciding when to fully specify ancestry
You do not need to map paragraphs in [DocBookParents]
for elements that can have only one possible ancestry, or for cases where
Mif2Go can determine heuristically which of the possible
ancestors fits the context best. Specify ancestry in [DocBookParents]
when more than one lineage is possible in the context of use. This is
especially important if your document includes nested section
elements; see §17.5.7 Specifying full ancestry for nested sections.
Include as many ancestors as necessary to fully
specify ancestry for the element to which a paragraph format is mapped
in [DocBookParaTags]
. If your document includes
actual instances of different ancestries for the same element, use sets
of ancestors to specify the alternatives; see §17.5.5 Specifying alternate ancestries for the same element.
In some cases you might have to include all ancestors up to the topic
level, and you might have to determine this necessity by trial and error; that
is, list them all whenever not including
all ancestors causes unwanted nesting.
When Mif2Go encounters a set of ancestors specified either
in [DocBookParents]
or in a DocBookParent
marker, Mif2Go tries to nest the ancestor hierarchy in the
current element. If the entire hierarchy is valid in that position, that
is where it stays. This means that if your FrameMaker document uses paragraph
format Body (for example) for all
text that is not nested in a list, and you map Body
to DocBook element <para>
, you must also
specify non-list parents for Body,
because <para>
can nest in <listitem>
;
in fact, in almost any block element. Unless you can make sure every
block element that could precede a Body
paragraph gets closed (see §17.5.8 Closing DocBook ancestor elements),
the Body <para>
is likely to be nested in the preceding element.