cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Error "Capacity limit IDCAP exceeded"

pchateil
1-Newbie

Error "Capacity limit IDCAP exceeded"

I got the following error on opening a large SGML file (2 377 ko)

"Capacity limit IDCAP exceeded. The number of points to add is 72;
the program has already used 299952 points and the declared maximum
value is 300000"

I use Arbortext 5.1Q on Windows 2000.

Does someone know what the error message mean,
and how to get around ?

Pierre
3 REPLIES 3

The IDCAP is the number of different ID the parser can process.
As your file is very big I guess you have plenty of footnotes which use the ID/IDREF mechanism for exemple.

This value is defined in the file ~epic\entities\ati-dflt.dcl
It's the default DCL file Epic will use with your DTDs.

If you need a higher value, you can either select one of the other DCL file in that directory (ati-xml.dcl for exemple) or define your own DCL file with the values you need.

Then you need to add the following entry to your catalog file
DTDDECL "<your public=" id=">" "<path to=" your=" .dcl=" file&quot;<br="/>Ex (taken from the catalog file) :
DTDDECL "-//ArborText::dist//DTD Business Document::19980612//EN" "../entities/business.dcl"

Christophe Lefebvre
LexisNexis France


-----Message d'origine-----
De : Pierre CHATEIL
Envoyé : lundi 18 septembre 2006 11:05
À : Adepters email list
Objet : Error "Capacity limit IDCAP exceeded"

I got the following error on opening a large SGML file (2 377 ko)

"Capacity limit IDCAP exceeded. The number of points to add is 72;
the program has already used 299952 points and the declared maximum
value is 300000"

I use Arbortext 5.1Q on Windows 2000.

Does someone know what the error message mean,
and how to get around ?

Pierre

Carrying Christophe's statement on IDCAP one step further. The IDCAP is a
combination of the number of IDs found in an instance (and all of its
resolved entities) multiplied by the NAMELEN value. In the CONCRETE
SYNTAX (used in the Reference Capacities), the NAMELEN value is 8 (names
for IDs, ENTITIES and such could be no longer than 8 characters), most
other SGML Declarations have set the value to 32 or even 64. The higher
this number, the fewer IDs you can have for a value of 300000 (which is
still better than the 35000 in the Reference Capacities).

ENTCAP, ATTCAP, GRPCAP, ELEMCAP and IDREFCAP (there are a couple of others
as well and they are all defined in the ISO 8879 [or in Goldfarb's "SGML
Handbook"]) all follow the same approach. There is also a TOTALCAP value
which is the a value that is maximum capacity of all the other capacity
values. This number in the Reference Capacities is 35000, in the CALS
SGML Declaration (see MIL-PRF-28001C), the value is 300000. Don't ask
where we came up with that number. As I recall sitting in the room as we
discussed this, it was a WAG.

Most applications don't deal with the capacity values or even the length
values (LITLEN is one) any more. System power and memory have grown to
the point where it is ALMOST irrelevant. (though with an extremely large
file you will see some significant slow down if not an entire stoppage).

One value that I have not tested recently, but in earlier versions of
Adept was a key value is the NAMELEN. In the CONCRETE SYNTAX, this was
(as I already stated) 8. It is now larger. If you should ever run into a
DOCYTPE (SGML only most likely) that somehow uses the original SGML
Declaration, it is possible that any ID, ENTITY, ATTRIBUTE or ELEMENT
names longer than 8 characters will be truncated. I know that Adept 7 did
it (and I think 8 did too). I got some files back from a conversion house
that was not using the CALS Declaration and all our IDs had been truncated
back to 8 characters. Needless to say I had several hundred DUPLICATE
IDs. 😞

But Christophe is right when he says you can either use another DCL file
or find the actual DEC file (it is ASCII text), modify it to increase your
values and press on. Just one thing to keep in mind. If you change your
declaration and don't let others who may use your file know about it, they
will get errors that you don't. So you should pass your declaration file
on with your document instance and DTD/Schema.

Lynn

Carrying another "one step" further:

This is the standard JCALS jcals.sgml.dcl file with
comments that help explain the meanings of the values:


CHARSET
BASESET "ISO 646-1983//CHARSET International Reference Version
(IRV)//ESC 2/5 4/0"
DESCSET 0 9 UNUSED
9 2 9
11 2 UNUSED
13 1 13
14 18 UNUSED
32 95 32
127 1 UNUSED
BASESET "ISO Registration Number 100//CHARSET
ECMA-94 Right Part of Latin Alphabet Nr. 1//ESC 2/13 4/1"
DESCSET 128 32 UNUSED
160 5 32
165 1 UNUSED
166 88 38
254 1 127
255 1 UNUSED

CAPACITY SGMLREF -- Default to Reference Capacity Set --
-- unless specified here --
TOTALCAP 3500000 -- TOTAL of individual capacity points --
ENTCAP 100000 -- ENTities defined --
ENTCHCAP 350000 -- CHaracters of ENTity text --
GRPCAP 2000000 -- Tokens at any level in a content model --
ATTCAP 1000000 -- ATTributes defined --
IDCAP 2000000 -- ID attributes specified --
IDREFCAP 3500000 -- IDREF attributes specified --
AVGRPCAP 100000 -- tokens defined in an Attribute Value name GRouP --

-- ********************************************************************
Reference capacities are as follows:

TOTALCAP 35000 TOTAL of individual capacity points
ENTCAP 70000 ENTities defined
ENTCHCAP 35000 CHaracters of ENTity text
ELEMCAP 35000 ELEMents defined
GRPCAP 35000 Tokens at any level in a content model
EXGRPCAP 35000 EXclusions or inclusions defined
EXNMCAP 35000 NaMes in an EXclusion or inclusion
ATTCAP 35000 ATTributes defined
ATTCHCAP 35000 CHaracters of default ATTribute value
AVGRPCAP 35000 tokens defined in an Attribute Value name GRouP
NOTCAP 35000 NOTations defined
NOTCHCAP 35000 CHaracters in a NOTation
IDCAP 35000 ID attributes specified
IDREFCAP 35000 IDREF attributes specified
MAPCAP 35000 short reference MAPs declared
LKSETCAP 35000 link types or LinK SETs defined
LKNMCAP 35000 document types or elements in a LinK declaration
Announcements