15.1.6 Understanding how Mif2Go generates DITA output
Mif2Go creates DITA XML for the following, based on either structured or unstructured FrameMaker chapter (.fm) and book (.book) files (not FrameMaker XML files):
DITA specializations and constraints
Mif2Go uses two methods to identify DITA element boundaries in a FrameMaker document:
• FrameMaker formats, mapped to DITA elements in your project configuration file; see §15.4.3 Mapping paragraph formats to DITA block elements
• FrameMaker markers in your document that identify elements where mapping is not feasible, either because the same format is used for several elements, or because character formats would have to nest for DITA phrases; see §15.15 Overriding DITA settings with markers.
Mif2Go determines element nesting (which is not explicit in unstructured FrameMaker) according to settings in the configuration file. The <body> wrapper starts after any metadata, and continues until the end of the topic or until an element mapped to related links appears. Mif2Go provides the <body> and <related-links> wrappers. Mif2Go wraps each image that has a title in a <fig> element, along with the title.
Mif2Go supports concept, task, reference, topic, glossary (for DITA 1.1), map, bookmap (for DITA 1.1), and custom topic types. You can specify the topic type in a DITAtopic marker. If a FrameMaker file contains only a single type of topic, you can set a default per file; then you would need markers only for exceptions. A format mapped to the <title> element (at level 1) identifies the start of a topic. A topic ends at the start of the next topic, or at the end of the file.
Mif2Go generates DITA <xref> elements from FrameMaker cross references and hypertext links. For links to target elements that do not already have IDs specified via DITAElemID markers, Mif2Go uses either the newlink marker content or the FrameMaker cross-reference numeric ID for the element ID. If a target element contains both a newlink marker and a cross-reference marker, the newlink marker content becomes the element ID. If a target element has multiple newlink markers, the content of the first newlink marker becomes the element ID.
Mif2Go moves all index entries in a paragraph to the end, just before the closing tag of the paragraph element. When that element is not valid as a container for <indexterm>, as is the case with <title>, Mif2Go wraps the index entries in a <ph> element, which is valid in many more elements (including <title>). If the <ph> wrapper is not valid in that location, it is up to the author to move the index marker in FrameMaker to a place where the resulting <indexterm> (or, if necessary, its <ph> wrapper) will be valid in DITA.
Mif2Go generates a DITA map for each FrameMaker chapter file, and also for the FrameMaker book. The book map can include all chapter content, or just reference the chapter maps. DITA <reltable> elements are produced from ALinks; each distinct subject creates one <relrow>. The topic types are retained from the topics themselves. The linking attribute is set to target or to source in DITARelLinking markers in the topics. See §16 Configuring DITA maps.
DITA specializations and constraints
Mif2Go provides a simplified way to represent the hierarchical information that is contained in the DTD (and in .mod files) for specialized topic types. Mif2Go does not include class attributes in DITA output; those are best left to the DTD to provide.
For DITA 1.2 you can impose a “no pernicious mixed content” constraint by using constraint modules, without specializing. You can produce constraints the same way as a specialization, using Mif2Go utility dtd2ini.exe on the local document type shell and referencing the result in your project configuration file. (This one-time extra step is required as a result of licensing.)
To include specializations or constraints in DITA output, see §32 Working with content models.
> 15 Converting to DITA XML > 15.1 Generating DITA XML with Mif2Go > 15.1.6 Understanding how Mif2Go generates DITA output