Skip to main content
frameexpert
Community Expert
Community Expert
March 30, 2022
Answered

SGML Application Syntax for NAMELEN and Element/Attribute Capitalization

  • March 30, 2022
  • 2 replies
  • 392 views

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 has been closed for replies.
Correct answer Lynne A. Price

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

2 replies

Ian Proudfoot
Legend
March 30, 2022

Hi Rick,

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

 

Ian

frameexpert
Community Expert
Community Expert
March 30, 2022

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!

Inspiring
March 30, 2022

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

Lynne A. PriceCorrect answer
Inspiring
March 30, 2022

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