Logout Developer Knowledgebase Search Adobe Partners Main Adobe Solution Partner Finder Adobe Solution Partner Program Support Developer Knowledgebase Adobe Solution Partner Program Products & Technology Adobe
Developer Knowledgebase

Knowledgebase HomeFrameMaker KB

Overview
Software Development Kits
Developer Knowledgebase
Support
Legal Notices
Feedback
Adobe Solution Partner Program
Join
Find a Solution Partner

Product
FrameMaker
 
Version
All
 
Last Edited
09-Jan-2002
 
Document
50860

How To: How to use a DOCTYPE statement in a dtd and SGML document

    Issue:
    Why does the dtd reader generate an error message on a dtd starting with a DOCTYPE markup declaration?

    For example, the first line of my dtd is:

    <!DOCTYPE imidoc [

    The dtd reader error is:

     DOCTYPE markup declaration not permitted here; declaration ended

    Solution:
    According to the SGML Standard, this is a misplaced DOCTYPE statement. The DOCTYPE statement should occur in the SGML document.

    A document instance is not something that can exist in isolation; an SGML document must have a prolog as well as a document instance. However, the Standard makes it possible for the prolog to be pretty simple; it can consist of a single declaration:

    <!DOCTYPE name SYSTEM "sysid">

    (no square brackets are needed). The Standard does not dictate what the system identifer ("sysid") means; in many systems, it is a filename. Our SGML Utilities interpret it as a filename and do not require a complete path; you can define a search path in your fmsgmlconfig file.

    The Standard requires the document type declaration in the document
    for three reasons:

    1) It specifies the document type name

    2) It specifies the element, entity, and related declarations to be
    used

    3) It gives the author of the document control over both these pieces
    of information

    The DTD specified in an SGML Utilities SGML application provides 2) but neither 1) nor 3). In an environment where 1) and 3) are always completely predetermined, it is possible to write an API client that will construct the SGML document by prefixing the required DOCTYPE declaration to an existing document instance and invoking the SGML Utilities through
    the F_ApiCallClient mechanism. Note that this approach assumes there are no document-specific entities such as those used for graphics or for separating individual chapters in a book into different files.

back to top
Was this Knowledgebase document helpful? Yes  No
The articles in this knowledgebase are intended for use by software programmers currently using an Adobe SDK to extend or customize an Adobe product. These articles may be highly technical in nature.
If you have questions about an Adobe Product that are not related to development or an SDK product please visit: http://adobe.com/support/main.html
Copyright © Adobe Systems Incorporated. All rights reserved.
Terms of Use
Online Privacy Policy