Paul Grosso asked me to post the following note to TEI-L, in answer
to the earlier query about using TEI DTDs with Adept. The original
inquirer has also confirmed that Adept does not reject references to
undeclared elements; I apologize for clouding the issue by mentioning
this possibility. Follow-on questions may go direct to Paul at
[log in to unmask] or may be posted to the list if they are of general
interest (in which case do please cc: Paul, as he requests).
----- Begin Included Message -----
From: [log in to unmask] (Paul Grosso)
Subject: Re: Help with TEI and ArborText (fwd)
I don't believe anyone from ArborText regularly follows TEI-L. It
certainly isn't because we're not interested, but I would probably
be the obvious candidate to do so, and I'm pretty busy already.
However, I'm available via email to answer general technical questions
about SGML or ArborText's products. And, of course, Adept customers
should always feel free to send email to [log in to unmask] with any
specific questions they have about the use of our products.
With this message, I'll try to help give some answers.
> From: C. M. Sperberg-McQueen on Wed, 1 Feb 1995 10:11:10 CST
> > On Tue, 31 Jan 1995 David Tyree ([log in to unmask]) said:
> > I am trying to get the TEI DTD to load into an SGML Publisher/Editor
> > from ArborText called ADEPT.
> > My hypothesis of the problem is this:
> > ...
> > ADEPT wants all the tags allowed in the DTD defined up front.
> > ADEPT then "compiles" the DTD into a binary file that it uses
> > to process the data. (is this ISO correct?).
> There are those who dislike the practice of compiling DTDs; I don't
> think anyone in sound mind claims it's not conformant, though.
In fact, all editor applications that do real time context checking
must turn the DTD into some sort of internal representation. As such,
you could say that everyone "compiles" the DTD. It is true that Adept
precompiles the DTD in a step that is separate from invoking the
document instance. (We are considering allowing a future release
of our product to compile the DTD "on the fly" so that there will
be no precompilation step.) There is nothing non-compliant about this.
The one restriction that this does impose is that the internal subset
of the doctype declaration (i.e., the declarations in the document
instance itself) cannot alter the already precompiled DTD. In
practice, what this means is that element declarations and the
redeclaration of parameter entities that have been referenced
in the DTD are not permitted in the internal subset. General
(internal and external) entity declarations and notation declarations
are recognized in the internal subset as are declarations of parameter
entities used in marked section status keyword specifications referenced
in the document instance. (This paragraph is not meant to be a complete
detailed technical discussion, just an overview.) Our upcoming
"on the fly" compiling would remove all restrictions on what can
appear in the internal subset. For now, you have to move any such
"DTD-affecting" declarations in the internal subset into your "DTD"
(that is, the external subset).
> I have recently acquired a copy of Adept, but have not loaded it or
> started to use it, so I'm not sure whether the problem is
> (a) Adept cannot find the external entities (files) in which
> various parts of the DTD are stored, or
> (b) Adept, like some other programs, objects to the fact that the
> DTD may mention elements which are not declared (since the
> tag set in which they appear is not selected)
> In case (a), you need help from someone other than me, to find out how
> to tell Adept how to find the files.
> In case (b), you or I, or both of us, need to file a bug report
> with ArborText, since the standard clearly says that references to
> undeclared elements are legal (clause 11.2.4, right before clause
> 220.127.116.11, page 412 of Goldfarb's SGML Handbook).
In case (a), I suggest you check with someone else at SAS who has more
experience with Adept or send the details of your problems to our
support people. It is certainly something simple, but without details,
it's hard to counsel you. If you are using SYSTEM ids, they might not
be correct for your setup. If you are using PUBLIC ids, our product
currently uses an entity.map file as the mapping catalog from public ids
to file names, and you must have the proper entries there. (Our next
release will be using the SGML Open catalog as described in the Entity
Management Technical Resolution 9401:1994.) If you are using the
"Import" feature of our Document Architect tool, it provides a prompt
where you can indicate a directory that will contain your various
entities if they aren't in the current directory, and the Import process
will look around, possibly query you interactively for PUBLIC ids, and
create the entity.map file for you.
In case (b), there is no need to file a bug report! I'm not sure what
David means to imply by the word "objects," but Adept does not consider
the use of an undeclared element to be an error. However, since the use
of an undeclared element is *quite likely* to be something most authors
of simple DTDs don't mean to do, Adept issues a warning message.
Describing the details of the Unix 5.0.2 version of our product (though
the same basic behavior should be displayed by our Windows PC version),
this is what happens for me. If you bring up our DTD Editor (from
within the Document Architect [aka docarch] tool), you'll find that
there is a "Parser" menu button with two option: parse showing warnings
and errors, or parse showing errors only.
If you take a DTD with a content model that includes an undeclared
element (as I just now confirmed) and parse showing errors and warnings,
you'll get a pop up panel. Now it's true that a small subtitle on this
panel says "Parser Error Log," but it means "Error" only in the generic
sense. Note that the heading for the particular message says "Dtgen
Parser Warning" [note the word "warning", not "error"] and then goes on
to say something like "Warning: Element PARA2, used in the model of
element LISTITEM has not been declared in the DTD." Note the word
If you choose the "parse showing errors only", you'll get no such Error
Log, just a pop up saying that the DTD parsed without errors.
If you return to the Docarch control panel and click on the "Compile"
menu button, it will give you two pop ups: a window title
"Message/Error Log" that displays the Warning about the undeclared
element, and a second one that says that the doctype has "compiled
successfully with DTD or ATD warnings." As it indicates, the
compilation has succeeded.
I hope this has helped shed some light. If you wish for me to see
and/or respond to follow ups posted to TEI-L, please be sure to cc
[log in to unmask]
VP Research Chief Technical Officer
ArborText, Inc. SGML Open
Email: [log in to unmask]
or [log in to unmask]
----- End Included Message -----