Skip to main content
frameexpert
Community Expert
Community Expert
Mar 30, 2022 2:44 PM UTC
Answered

SGML Application Syntax for NAMELEN and Element/Attribute Capitalization

Hi, I am attempting to use an SGML DTD in FrameMaker. When I open the DTD, I specify SGML, but I get "Length of name, number, or token exceeded the NAMELEN limit" errors and my element/attribute names are initial caps. I think I need an SGML application set up ahead of time, but I don't know the syntax for avoiding the NAMELEN errors and preventing element/attribute capitalizations changes. Any help or pointers would be appreciated.

This topic is closed to new replies. Start a new post to keep the conversation going.
Lynne A. PriceCorrect answer
Inspiring
Mar 30, 2022 3:36 PM UTC

Here are some more details:

 

  1. Specify the location of the SGML declaration in the application definition in structapps.fm (or whatever application definition file you ae using.
  2.  If you have been given a DTD, have you also been given an SGML declaration? If not, can you ask for one?
  3. To increase the permitted length of a name token, use something like:
              QUANTITY SGMLREF
                     NAMELEN 239
        which sets NAMELEN to the maximum value supported by FrameMaker's SGML parser.
  4.  An SGML declaration independently specifies whether case is significant in entity names and in all other names (including element and attributes names). When case is not preserved, FrameMaker uses initial caps. To preserve the case of element and attribute names, use:
              NAMECASE
                     GENERAL NO
                     ENTITY NO

 

     --Lynne

5 replies

Ian Proudfoot
Legend
Mar 30, 2022 3:15 PM UTC

Hi Rick,

If this is for the ATA iSpec2200 SGML content you will find a suitable SGML declaration bundled with the DTDs. 

 

Ian

Translate
frameexpert
Community Expert
Community Expert
Mar 30, 2022 4:16 PM UTC

Thank you Ian. I didn't see a separate file in the package, but it was documented in the PDF. My deliverable is XML but I want to start with the existing SGML DTD to develop my structured application. Thanks again!

Translate
www.frameexpert.com
Inspiring
Mar 30, 2022 3:01 PM UTC

Rick,

  The maximum length of name tokens (including names, and numbers) is specified in the SGML declaration, as is the significance of capitalization within them.

  To make changes, copy an existing SGML declaration (there's one in the sample Docbook application and the default one is in the Struct App Reference manual) and make the necessary changes.

        --Lynne

Translate
Lynne A. PriceCorrect answer
Inspiring
Mar 30, 2022 3:36 PM UTC

Here are some more details:

 

  1. Specify the location of the SGML declaration in the application definition in structapps.fm (or whatever application definition file you ae using.
  2.  If you have been given a DTD, have you also been given an SGML declaration? If not, can you ask for one?
  3. To increase the permitted length of a name token, use something like:
              QUANTITY SGMLREF
                     NAMELEN 239
        which sets NAMELEN to the maximum value supported by FrameMaker's SGML parser.
  4.  An SGML declaration independently specifies whether case is significant in entity names and in all other names (including element and attributes names). When case is not preserved, FrameMaker uses initial caps. To preserve the case of element and attribute names, use:
              NAMECASE
                     GENERAL NO
                     ENTITY NO

 

     --Lynne

Translate