Short version:

   * For .ditamap files, .ebook files and/or assembly files,
     would it be possible for XMLmind to transclude (or
     behave as if it it transcluded) the topics that these
     files are referencing?
   * For example, in the case of DITA: Would it be possible
     to “live transclude” the content that a <topicref>
     element references?

Long version:

All the topic based, compound document formats that XMLmind supports (Docbook, DITA, Ebook) takes the approach of a master document with links to various external documents to be included when converting the master document to the final output.

What is “bad” with this approach - at least as it is implemented (in XMLmind - I have not tested other editors) - is that there is very little one can do from within the master document. One cannot search inside the content of the embedded documents - for instance. And one can neither view nor edit the content of the embedded documents in the current Tab. To edit, search or view the content, one must first double click on a <topicref>, a <chapter> etc in order to open that document in another tab. (Currently, in the mentioned master files - .ebooks, .ditac, assembly.xml - when it comes to searching from within XMLmind, it isn’t even possible to search for the the titles or file names of the files that the topic references points to.)

For me, the result is that I spend considerable amount of time checking the document in a output format - typically XHTML.

In a way, if we think about how topic based authoring is supposed to work, this can be said to be a little bit ironic. Take for instance DITA: Each <topic> is meant to be independent. However, in order to check/verify that a particular topic does not “step on the toes” of another topic (for instance, in order to verify that “function foo” is only defined inside “topic-foo.dita” and not, as well, more or less defined in another topic as too), it would be logical to perform a seach for “foo” and see whether one breaks the idea of DITA by, whole or halfway, explained it under any other topic as well. However, this is currently not possible unless I convert the master document to for example a single-page XHTML document and check within that document.

Wheras when content it transcluded, embedding is still prevented. However one gets to both see and search the transcluded content from within the referencing document. Thus, if referred document of <topicref>, <chapter> etc had been transcluded, it would permit authors to view and search the entire document from within the masterdocument. (It would only be a matter of enabling or disabling transclusion.)

Workarounds:

For DITA, there is a “hack” that (perhaps) gives you this functionality already today, though on the expense of breaking a with the spirit of best practice DITA:

 1. Create a regular map (map or bookmap) and
    add e.g. <chapter href="multitopic.dita"/>
 2. Then create a single multi-topic .dita file for keeping all
    the topics.
 3. In the <topicref>, link multi-topic.dita to the ditamap file.
 4. Then, create separate single-topic files for each topic.
5. Using @confref, link each single-topic to the multi-topic file, like so:

   * <topic conref="foo.dita#foo" id="samefil-3">

This arrangement gives (or so I thought) the author the possibility to see and search the content of all the conref linked documents from within the multi-topic files. In such an arrangement, the document structure becomes governed by the multi-topic file. At the same time, such an arrangement adhers to the “spirit of DITA”, namely the idea of topic per file.

* NB: One problem with this hack, though: The conref included document, although visible in XMLmind, did not get included when converting to PDF or XHTML. I do not know if this is just another gap in my knowledge or a bug in XMLmind.

Btw: This “hack” is also possibe for XHTML documents, by way of using <xinclude> (and that is in fact how I used to do it before starting with DITA - except that I then had to deal with some other drawbacks - such as the fact that XMLmind does not have a tool for creating Table of Contents for such xinclude-enhanced XHTML files and the fact that XHTML, by itself, does not have a standard footnote function - and so on).

Leif Halvard Silli

--
XMLmind XML Editor Support List
xmleditor-support@xmlmind.com
http://www.xmlmind.com/mailman/listinfo/xmleditor-support

Reply via email to