[Mirrored from: http://thok.let.rug.nl/~s0760412/hypertext/capacity.html]

In the capacity set, you specify the maximum size of your document. Before we discuss the details, let us look at a simple example, which explicitly states several capacities, leaving not mentioned ones unchanged.

Following is a list of the standard's settings, and a short explanation. Each item will mention the keyword of a capacity category and the way it can be calculated. According to the standard, each capacity is declared the value 35000.

**TOTALCAP**is the grand total of individual capacity points.**ENTCAP**is calculated by multiplying NAMELEN, the maximum length of an SGML name, by the number of entities.**ENTCHCAP**can be calculated by counting the characters of entity text.**ELEMCAP**can be obtainde by multiplying the number of entities defined by NAMELEN.**GRPCAP**'s value is found by counting the content tokens at any level of a content model (where a data tag group is three tokens) and multiplying that number by NAMELEN.**EXGRPCAP**is equal to the multiplication of NAMELEN by the total of exclusion or inclusion exceptions group.**EXNMCAP**is multiplication of, once again, NAMELEN by a name in an exclusion or inclusion exceptions group.**ATTCAP**is the sum of NAMELEN for each attribute defined plus NAMELEN for each occurence (whether or not the attribute is specified) in a link set declaration of an element type associated with the definition, or, in an entity declaration, of a notation name associated with the definition.**ATTCHCAP**is equal to counting each character of normalized length of an attribute value defined as a default value, or explicitly specified (not defaulted) in a link set declaration or data attribute specification.- By multiplying NAMELEN by the number of tokens defined in an
attribute value name group or name token group, you get the value of
**AVGRCAP**. **NOTCAP**is equal to NAMELEN multiplied by the data content notation defined.**NOTCHCAP**is the number of characters in notation identifiers.**IDCAP**is established by calculating the value of the multiplication of NAMELEN by number of ID attributes specified**IDREFCAP**is established by multiplying NAMELEN by the number of IDREF attributes specified (explicitly or by default).**MAPCAP**is another multiplication of NAMELEN but now by the total number of short reference maps declared, plus, for each map declared, NAMELEN for each short reference delimiter in the concrete syntax (whether or not the delimiter is in the map).- Multiplying the number of link types or link sets defined by
NAMELEN gives you the value of
**LKSETCAP**. - And finally, you can calculate the value of
**LKNMCAP**by multiplying the total number of document types or elements in each link type or link set declaration.

The above list is adapted from Goldfarb's book on SGML (to be precise, figure 5 on page 367), I hope he does not mind me quoting him not quite literally. I had to do this because I myself do not quite understand each and every capacity category.

Finally, I have to mention the possibility of declaring the capacity
set by a public identifier. Your declaration would then be like the
following: **CAPACITY PUBLIC public identifier**. The

Well, for those of you who got this far, try the following part on concrete syntax scope.