Skip to main content
C_Sarelius
Known Participant
November 9, 2009
Question

Opening a DTD to make an EDD - problems!

  • November 9, 2009
  • 1 reply
  • 1666 views

Hi,

my situation is this: I have a DTD which I've used before (S1000D v2.2 Descriptive DTD); I have Frame v7.0p579; I'm on WinXP. All I want to do is create my EDD so I can create my template and then my structured app. But when in FM I start the process (File/Structure Tools/Open DTD ...) and select my DTD I get the error msgs as shown on the attached file. At the moment I'm at a loss to know why this is happening. I've done it before, albeit on another machine, but I don't recall ever getting so many problems. The DTD is an issued one so I have no doubts about it but for some reason it just will not get translated.

Could someone please provide some advice as to why this might be happening.

TIA

Carl

This topic has been closed for replies.

1 reply

Ian Proudfoot
Legend
November 9, 2009

Carl,

I would guess that you are not using the same SGML application definition this time round. There are several things going wrong with your application:

  1. You must refer to an S1000D SGML declaration. That will get rid of the Namelen error by allowing element names that are longer than 8 characters. However, you cannot use the SGML declaration that comes with S1000D issue 2.2 as that increases the various capacity settings beyond FrameMaker's built-in limits. Use the version 1.9 SGML declaration instead.
  2. You need to refer to the S1000D 2.2 SGML catalog file so that the various entity files that comprise the DTD can be located by FrameMaker.
  3. You will need to edit the DTD to avoid the problem that FrameMaker has with the configurable attributes. The only known workaround here is to do the following:

For each of the configurable attributes change the definition from something like this:

<!ENTITY % CLASSES  " (01|02|03|04|05|06|07|08|09|10|
         11|12|13|14|15|16|17|18|19|20|
         21|22|23|24|25|26|27|28|29|30|
         31|32|33|34|35|36|37|38|39|40|
         41|42|43|44|45|46|47|48|49|50|
         51|52|53|54|55|56|57|58|59|60|
         61|62|63|64|65|66|67|68|69|70|
         71|72|73|74|75|76|77|78|79|80|
         81|82|83|84|85|86|87|88|89|90|
         91|92|93|94|95|96|97|98|99) " >

to perhaps this:

<!ENTITY % CLASSES  " (01|02|03|04|05) " >

S1000D expects these attributes to be mapped to specific values using information in the BREX file. However, for the SGML file only a limited range will ever be used, so it is safe to cut down the DTD this way. You will need to do this for all of the configurable attributes.

In the example above the values 01 to 05 could map to

    • Unclassified
    • Restricted
    • Confidential
    • Secret
    • Top secret

You will find the full details on how to edit your SGML application in the Structure Application Developer's Guide.

Good luck

Ian

C_Sarelius
Known Participant
November 9, 2009

Thanks Ian,

I'll give it a go and let you know how it went. After you mentioned it I recalled that the last time I did this I did it using Frame v7.2 - maybe that had something to do with it.

Thanks

Carl