Apologies to Peter Flynn for sending this to him a minute ago instead to the
We also struggled with, but succeeded some, with Framemaker+SGML. We wanted
to use it with the EAD DTD at Yale University's Archives and Manuscripts
department of the library where I was asked to help as a consultant, albeit
knowing nothing about Framemaker to start with. I'm not yet convinced one
can't still do good things with it but we ended up stalling. I think I can
contribute to Hope Greenberg's initial inquiries and Peter Flynn's response.
I'm confused about the thread regarding Syd Bauman's and Elaine Brennan's
comments about FrameScript and Maker Markup Language. Perhaps if I better
understood Syd's process his comments it would help us here at Yale.
I related so easily to Hope's thought "but I AM the developer!" That was the
thought in my colleague at Yale when they called me in and it was my thought
when I hit the same intial wall as Hope.
We did make some progress. We managed to compile the EDD from the EAD DTD.
(If anybody is looking for an EAD EDD, we have it. Does anybody have a TEI
EDD?) Where we got stalled was when we ran into formatting requirements
which we couldn't manage with the EDD definitions or the read-write rules.
At that point we needed to work with the C++ API. We did begin this and made
some progress but slowed down.
The rest of this message is mostly a outline "how-to" as we discovered it to
be with a few comments on Adobe's support in general. Unless you are
struggling with creating an EDD and beyond you probably don't want to read
any more. Also its a "how-to" as best I remember it since last fall
beginning at the start of 1999.
To create the EDD, which I consider fundamentally compiling the DTD, we
didn't need to have an instance in the usual sense of an instance as I take
Peter Flynn to suggest. What we did need is an "SGML Application File" and,
almost incidentally but essentially, a template. I'll explain more below.
The most important key for us was finding out how to navigate the
documentation. I would second all of Peter Flynn's remarks and also add that
you have to understand that most of the documentation is for Framemaker
without the +SGML. The key documentation doesn't require a url. It should
have been installed from the CD. Forget "Contents" or "Index". Go to "Online
Manuals" and then choose "Framemaker+SGML Developer's Guide" and in that go
to Chapter 3, "Creating an SGML Application". Particularly, find the section
"Create an Initial EDD from your DTD, if you have one." and "Pieces of an
The key "piece" and the second most important key concept for us is the
"sgmlapps.fm" file. In this file you provide some values like your doctype
and pointers to a few key items like your sgml declaration, your dtd, and
the "almost incidental" template. The file is formatted like an SGML
instance with elements that act like variables. Generally, you should use
the provided sgmlapps.fm file as a starter. Definitions for more than one
DTD can reside in the same sgmlapps.fm file. The provided file has
definitions for docbook which can act as a model. After you've filled in
your sgmlapps.fm assignments, to compile the DTD, it is not much harder then
to do as they say go to File->Developer's Tools->Open DTD. This creates an
EDD which is a nice looking file also formatted like a sgml instance and
also, importantly, which is imported into your template. The template is
used, for one thing, to store page setup information, but if you don't have
any of this to start with, it will appear to be an empty file. However, the
template "secretly" holds all the rules of your EDD. When you open an sgml
instance, Framemaker reads the doctype declaration or doctype element and
associates it with the correct template via the sgmlapps.fm file. It doesn't
use the EDD at all but refers to the rules stored in the template.
However there is a reason to keep the EDD around which is that the EDD is
more than a compiled DTD, it is also a stylesheet. Writing the stylesheet
definitions in the EDD is fun and progress goes pretty quickly. Each time
you make a change however you must manully reimport the EDD into the
instance, and, if you want the changes to effect new instances, into the
The EDD as stylesheet starts to be less fun when you want to do something it
can't. When you get to that point, you have some options with the read write
rules. The documentation talks alot about the read-write rules, but we
didn't manage to do much with them. One confusing point is that they discuss
creating read-write rules as if it were an essentail step before compiling
the DTD. This isn't true unless you want your want your EDD to have
different content rules or to alias element names. When you can't accomplish
formatting with either the EDD or the read-write rules you need to use the
C++ API. This is free, but you need a compiler of which only Visual C++ is
garunteed to work, and though you can get all the documentation for free on
the web, you can't get support without paying to join the developer's
network. You also need to know how to program with C++.
Support is another problem. Even regardless of API support, at least as of
last fall, as far as I could tell, Adobe had only one SGML support person.
When you call for help they try to route you through a three-tier system of
expertise. At the top is "Janice" in Georgia and she's the only one who
knows SGML. She's good but often can only tell you what Framemaker can't do.
It is also very annoying to be routed through their system, which almost
always means waiting to be called or emailed back. You learn to throw out
words like "entities" and "declarations" and "content models" and the
routing goes faster.
Another problem, is that Framemaker, amazingly to me, at least as reported
to me by their help personnel, uses "sgmls" as its parser for importing the
DTD, not "nsgmls" or anything else uptodate. This did create some problems
for us relative certain sgml constructs that sgmls doesn't support.
West Rock Visions
137 Alden Avenue
New Haven, CT 06515
Phone: (203) 389-0184
Fax: (203) 389-2841
Email: [log in to unmask]
Hope Greenberg said:
> We've used Author/Editor, WordPerfect SGML, XMetaL, and a few
> freebies. Now it's time to try the monster, FrameMaker+SGML. The
> first pass was not propitious. After installing I went looking for
> where to place the DTD or to compile a proprietary rules file
> (called an "application" by FrameMaker) and found the ominous
> instructions: "a developer typically sets up this application for
> you" but no instructions on how the developer (that would be me!)
> does that. According to the manual, that information is in the
> "Developer's Guide" online at the Adobe site. 45 minutes, multiple
> searches and three phone calls later, the Adobe tech support guy is
> going to TRY to find the URL and e-mail it to me.
Peter Flynn said:
> The process is indeed frustrating, probably the most complex and
> forbidding of any SGML system I have used. It's so lengthy that I
> ducked out of describing the process in detail in my book (pp.364-366)
> simply on grounds of space. It's actually in the online documentation
> that comes with the package, under "setting up an EDD", but it's
> confused by the fact that (a) the docs are trying to teach SGML
> concepts at the same time as tell you how to load a DTD, and (b) they
> can't make up their minds whether you are trying to create an EDD from
> an existing Frame document that you want to export in SGML, or load an
> existing document from SGML into Frame. So far as I could see, you do
> have to have an existing SGML instance to do the job with: you can't
> load a DTD alone, it has to have an instance in order for it to allow
> you to initiate the process.
> An EDD is a mixed bag: setting it up involves compiling the DTD,
> specifying the display styles, and creating any read/write rules (an
> internal "feature" which allows you to bend the SGML on input or
> output: the assumption being that you really don't want all this SGML
> restrictiveness, you're actually trying to get away from SGML into
> Frame's own document model :-).
> > But all that aside, does anyone have any advice on using
> > FrameMaker+SGML (other than "run away!!")?
> Unless you need Frame+SGML for some other purpose, I'd leave it. It
> makes a poor editor, although its formatting is not too bad.
>Syd Bauman said:
> This all used to be done reasonably happily on a Macintosh. Now
> the registrar's office has gone to PCs, so I'm busy trying to port
> this stuff. Sigh. Not too big a deal to port the perl (besides, I
> get the chance to clean up some embarrassingly clunky code I wrote
> years ago :-), but I don't think there's an equivalent of
> AppleScript on WindozeNT with which to automate FrameMaker. Does
> anyone know of such a thing?
Elaine Brennan said:
> try FrameScript -- http://www.frametools.com/framescr.htm -- $149.95,
> orderable and downloadable. There are also a fairly large number of
> scripts freely available on the web.