February 23rd, 2005
As I've mentioned before in this blog, I now write most of my documentation in structured FrameMaker 7.1 - roundtripping to/from XML, using a paired-down version of the xDocBook DTD.
What this means is that my source files are XML text files, rather than binary FrameMaker files. This gives me the potential benefits of XML source (e.g. CVS) plus the undoubted benefits of structured FrameMaker in a graphical interface that shows you more-or-less what you get when you print out the file or produce a PDF.
So far so good - except that getting to this state of play has meant travelling a long and tortuous road. The FrameMaker EDD that controls most of this process has taken me a huge amount of time over the past year or so to develop: a slow and protracted iterative process.
I would like to make this EDD freely available on the Web, which would immediately make structured FrameMaker a much more viable prospect than it is at present. Right now, if you buy FrameMaker 7.1, you're going to have to dedicate an awful lot of time to developing your structured application before it starts to save you time and make your documentation life easier. So, I'd like to offer some gain without pain. But it remains to be seen whether my company, in whose time this EDD has (mostly) been developed will allow me to release it. In reality it has cost my company a large chunk of my reasonably generous salary to create this EDD, so it's perhaps not something that should be given away for free. But then we're not going to make it available at a price either, so putting it on this web site wouldn't lose the company any money. As you can tell, I'm still mulling this over myself.
However, besides all that, the reason for this post was to gripe about Adobe's commitment to FrameMaker. Here we have a product that has undoubted XML capabilities now, but they just haven't worked the problem through and produced a 100% functional solution.
Last week I finally got to the end of the writing of the first manual I have written using FrameMaker 7.1 to roundtrip XML. The previous documents I wrote using structured FrameMaker and mxDocBook were saved as FrameMaker-format files, because of the problems in FrameMaker 7.0. But, right at the end of the process, when I came to pull the book together I discovered the following about FrameMaker 7.1.
You can only perform book-wide operations, such as automatic page numbering, if your book contains FrameMaker format files. My book contained XML files, which results in the Format > Document > Numbering option being greyed out.
The solution is, seemingly, simple. After you've finished writing all of the chapters and other book components, save the files in FrameMaker format and create a new book containing these documents. Solution? Not quite.
The problem with this workaround is that if you have external cross-references between different chapters in your manual, these cross-references contain a file name such as introduction.xml. When you save the files as FrameMaker-format (.fm) files, these cross-references still contain the same file names, resulting in unresolvable links, or links that point to the wrong file (i.e. an XML file rather than the FrameMaker version of it).
FrameMaker 7.1 should (according to its Structure Developer's Guide, pp. 326–7) allow you to add an ExternalXRef element to the appropriate XMLApplication element in your structapps.fm file and then insert a child element called TryAlternativeExtensions with the value Enable. This tells FrameMaker that if it can't find the file whatever.xml to look for the file whatever.fm and use that instead – and vice versa. The trouble is that it seems that someone has forgotten to update the in-built DTD for the structapps.fm file, and the result is there's no way to add an element called ExternalXRef. Presumably this will be fixed in FrameMaker 7.2.
The consequence of this is that you have to change all the cross-references to whatever.xml to whatever.fm before you save the files as FrameMaker-format files, otherwise you'll have broken links (or links to the .xml files rather than the .fm files in the book). I've written a shell script called changerefs that saves copies of the .xml files with all the .xml cross-references changed to point to .fm files. I'll post this script to this web site sometime soon, along with the methodology for using it.
To cut a long story short, I've come up with a usable workaround to this bug in FrameMaker, but it pisses me off that Adobe realised 7.0 was a crock of shit, but didn't manage to fix it properly.
Am I the only person using FrameMaker 7.1 to roundtrip to/from XML source files? I don't think so, but I'm absolutely sure you other people out there doing this have suffered pain at the bleeding edge of FrameMaker, just like I have.
Potentially similar posts
September 25th, 2008 at 4:09 pm (#)
Thanks for this description. I've used it twice now when I was stuck without my second monitor. This time, I'm bookmarking it.
September 25th, 2008 at 5:00 pm (#)
Glad to hear it was helpful.
Thanks for leaving a comment.
-Alistair