SGML Syntax Summary

Copyright © 1996 Harvey Bingham

This document shows the syntactic productions of SGML, with hyperlinks to simplify their study. The clauses containing productions appear as they are in the SGML standard, to give context for those productions.

The extensive hyperlinks show where the syntactic variables and other tokens used in productions are defined, and where the defined syntactic variables are used in other productions. Locators provide {clause and page:line} references, to facilitate use with either the ISO 8879 standard or the The SGML Handbook.

SGML Syntax Clause Contents
SGML Syntax Summary Index
SGML Syntax Summary Introductory Clauses 1-5

The following provide further links to each of the syntactic token types, and in what productions they are used.

SGML Syntactic Variables
SGML Reference Delimiter Roles
SGML Keyword Syntactic Literals
SGML Terminal Variables
SGML Terminal Constants

1 Scope

The syntax of SGML productions, with hyperlinks to where productions are defined and where in the definitions of other productions they are used.

2 Field of Application

The allowable syntax for describing markup languages that will permit proper SGML parsing and validation, SGML application designs, and application document markup consonant with such designs.

3 References

The SGML Handbook includes and amplifies the ISO 8879-1986(E) SGML standard.

See the DSSSL Syntax Summary Index for the related Document Style Semantics and Specification Language, ISO/IEC 10179:1996.

4 Definitions

Concept clarification for technical terms and phrases.

5 Notation

Syntactic productions in order of production numbers appear as:

[prod. no.] defined syntactic variable name =
definition, one line per syntactic token, possibly with metacharacters
reference {clause, page:line}, used in: list of syntactic variables[prod.no] where this production is used

The metacharacter symbols used with syntactic tokens indicate their precedence:

surrounding parentheses "(...)", before
selection suffix, one of optional "?", optional and repeatable "*", repeatable "+", or required--no suffix, before
ordering infix, one of sequence ",", alternative "|", or all in any order "&".

Five forms of token appear in definitions:

6 Entity Structure

6.1 SGML Document

[1] SGML document =
SGML document entity [2],
( SGML subdocument entity [3] |
SGML text entity [4] |
character data entity [5.1] |
specific character data entity [5.2] |
non-SGML data entity [6] )*
Reference {6.1, 294:5} Used in: this is a root

6.2 SGML Entities

[2] SGML document entity =
s [5] *,
SGML declaration [171] ,
prolog [7] ,
document instance set [10] ,
Ee
Reference {6.2, 295:13} Used in: SGML document[1]
[3] SGML subdocument entity =
prolog [7] ,
document instance set [10] ,
Ee
Reference {6.2, 296:1} Used in: SGML document[1]
[4] SGML text entity =
SGML character [50] *,
Ee
Reference {6.2, 296:5} Used in: SGML document[1]

6.2.1 S Separator

S is "whitespace" separator

[5] s =
SPACE | (32) space
RE | (13) CR
RS | (10) LF
SEPCHAR (9) HT
Reference {6.2.1, 297:23} Used in: SGML document entity[2] other prolog[8] start-tag[14] unclosed start-tag[17] net-enabling start-tag[18] end-tag[19] unclosed end-tag[22] element content[26] attribute specification[32] ps[65] ts[70] ds[71] comment declaration[91] data attribute specification[149.2] link attribute specification[166] result attribute specification[168]

6.2.2 Entity End Signal (Ee)

Reference {6.2.2, 298:6} Used in: SGML document entity[2] SGML subdocument entity[3] SGML text entity[4] character data entity[5.1] specific character data entity[5.2] non-SGML data entity[6] other content[27] replaceable character data[46] ps[65] replaceable parameter data[67] ts[70] ds[71]

6.3 Data Entities

[5.1] character data entity =
SGML character [50] *,
Ee
Reference {6.3, 300:1} Used in: SGML document[1]
[5.2] specific character data entity =
SGML character [50] *,
Ee
Reference {6.3, 300:4} Used in: SGML document[1]
[6] non-SGML data entity =
character [49] *,
Ee
Reference {6.3, 300:7} Used in: SGML document[1]

7 Element Structure

7.1 Prolog

[7] prolog =
other prolog [8] *,
base document type declaration [9] ,
( document type declaration [110] |
other prolog [8] )*,
( link type declaration [154] |
other prolog [8] )*
Reference {7.1, 303:1} Used in: SGML document entity[2] SGML subdocument entity[3]
[8] other prolog =
comment declaration [91] |
processing instruction [44] |
s [5]
Reference {7.1, 303:8} Used in: prolog[7] document instance set[10]
[9] base document type declaration =
document type declaration [110]
Reference {7.1, 303:12} Used in: prolog[7]

7.2 Document Element

[10] document instance set =
base document element [11] ,
other prolog [8] *
Reference {7.2, 306:10} Used in: SGML document entity[2] SGML subdocument entity[3]
[11] base document element =
document element [12]
Reference {7.2, 306:13} Used in: document instance set[10]
[12] document element =
element [13]
Reference {7.2, 306:15} Used in: base document element[11]

7.3 Element

[13] element =
start-tag [14] ?,
content [24] ,
end-tag [19] ?
Reference {7.3, 308:1} Used in: document element[12] mixed content[25] element content[26]

7.4 Start-tag

[14] start-tag =
( stago , <
document type specification [28] ,
generic identifier specification [29] ,
attribute specification list [31] ,
s [5] *,
tagc ) | >
minimized start-tag [15]
Reference {7.4, 314:1} Used in: element[13]

7.4.1 Minimization

[15] minimized start-tag =
empty start-tag [16] |
unclosed start-tag [17] |
net-enabling start-tag [18]
Reference {7.4.1, 314:9} Used in: start-tag[14]
7.4.1.1 Empty Start-tag
[16] empty start-tag =
stago , <
tagc >
Reference {7.4.1.1, 315:1} Used in: minimized start-tag[15]
7.4.1.2 Unclosed Start-tag
[17] unclosed start-tag =
stago , <
document type specification [28] ,
generic identifier specification [29] ,
attribute specification list [31] ,
s [5] *
Reference {7.4.1.2, 316:1} Used in: minimized start-tag[15]
7.4.1.3 NET-enabling Start-tag
[18] net-enabling start-tag =
stago , <
generic identifier specification [29] ,
attribute specification list [31] ,
s [5] *,
net /
Reference {7.4.1.3, 316:11} Used in: minimized start-tag[15]

7.5 End-tag

[19] end-tag =
( etago , </
document type specification [28] ,
generic identifier specification [29] ,
s [5] *,
tagc ) | >
minimized end-tag [20]
Reference {7.5, 317:4} Used in: element[13]

7.5.1 Minimization

[20] minimized end-tag =
empty end-tag [21] |
unclosed end-tag [22] |
null end-tag [23]
Reference {7.5.1, 317:15} Used in: end-tag[19]
7.5.1.1 Empty End-tag
[21] empty end-tag =
etago , </
tagc >
Reference {7.5.1.1, 318:5} Used in: minimized end-tag[20]
7.5.1.2 Unclosed End-tag
[22] unclosed end-tag =
etago , </
document type specification [28] ,
generic identifier specification [29] ,
s [5] *
Reference {7.5.1.2, 318:12} Used in: minimized end-tag[20]
7.5.1.3 Null End-tag
[23] null end-tag =
net /
Reference {7.5.1.3, 319:2} Used in: minimized end-tag[20]

7.6 Content

[24] content =
mixed content [25] |
element content [26] |
replaceable character data [46] |
character data [47]
Reference {7.6, 320:1} Used in: element[13]
[25] mixed content =
(data character [48] |
element [13] |
other content [27] )*
Reference {7.6, 320:6} Used in: content[24]
[26] element content =
(element [13] |
other content [27] |
s [5] )*
Reference {7.6, 320:10} Used in: content[24]
[27] other content =
comment declaration [91] |
short reference use declaration [152] |
link set use declaration [169] |
processing instruction [44] |
shortref | see below
character reference [62] |
general entity reference [59] |
marked section declaration [93] |
Ee
Reference {7.6, 320:14} Used in: mixed content[25] element content[26]

shortref (from ISO-8879, Figure 4 - Reference Delimiter Set: Short References) {9.6.5, 364:0}.

String Description (ASCII decimal position number)
&#TAB; Horizontal Tab (9) HT 
&#RE; Record End (13) CR
&#RS; Record Start (10) LF
&#RS;B Leading Blanks (10 66)
&#RS;&#RE; Empty Record (10 13)
&#RS;B&#RE; Blank Record (10 66 13)
B&#RE; Trailing Blanks (66 13)
&#SPACE; Space (32)
BB Two or More Blanks (66 66)

Also included in shortref are the characters:

 " (34) # (35) % (36) ' (39) 
 ( (40) ) (41) * (42) + (43) 
 , (44) , (45) -- (45 45) 
 : (58) ; (59) = (61) @ (64) 
 [ (91) ] (93) ^ (94) _ (95) 
 { (123) | (124) } (125) ~ (126)

7.6.1 Record Boundaries

7.7 Document Type Specification

[28] document type specification =
name group [69] ?
Reference {7.7, 325:1} Used in: start-tag[14] unclosed start-tag[17] end-tag[19] unclosed end-tag[22] general entity reference[59] parameter entity reference[60]

7.8 Generic Identifier (GI) Specification

[29] generic identifier specification =
generic identifier [30] |
rank stem [120]
Reference {7.8, 325:14} Used in: start-tag[14] unclosed start-tag[17] net-enabling start-tag[18] end-tag[19] unclosed end-tag[22]
[30] generic identifier =
name [55]
Reference {7.8, 325:17} Used in: generic identifier specification[29] associated element type[72] document type name[111] element type[117] element token[130] data tag group[133] result element specification[167]

7.9 Attribute Specification List

[31] attribute specification list =
attribute specification [32] *
Reference {7.9, 327:17} Used in: start-tag[14] unclosed start-tag[17] net-enabling start-tag[18] data attribute specification[149.2] link attribute specification[166] result attribute specification[168]
[32] attribute specification =
s [5] *,
( name [55] ,
s [5] *,
vi , =
s [5] *)?,
attribute value specification [33]
Reference {7.9, 327:19} Used in: attribute specification list[31]

7.9.3 Attribute Value Specification

[33] attribute value specification =
attribute value [35] |
attribute value literal [34]
Reference {7.9.3, 331:1} Used in: attribute specification[32] default value[147]
[34] attribute value literal =
( lit , "
replaceable character data [46] *,
lit ) | "
( lita , '
replaceable character data [46] *,
lita ) '
Reference {7.9.3, 331:4} Used in: attribute value specification[33]

7.9.4 Attribute Value

[35] attribute value =
character data [47] |
general entity name [103] |
general entity name list [35.1] |
id value [36] |
id reference value [38] |
id reference list [37] |
name [55] |
name list [39] |
name token [57] |
name token list [40] |
notation name [41] |
number [56] |
number list [42] |
number token [58] |
number token list [43]
Reference {7.9.4, 333:1} Used in: attribute value specification[33]
[35.1] general entity name list =
name list [39]
Reference {7.9.4, 333:17} Used in: attribute value[35]
[36] id value =
name [55]
Reference {7.9.4, 333:19} Used in: attribute value[35]
[37] id reference list =
name list [39]
Reference {7.9.4, 333:21} Used in: attribute value[35]
[38] id reference value =
name [55]
Reference {7.9.4, 333:23} Used in: attribute value[35]
[39] name list =
name [55] ,
( SPACE , (32) space
name [55] )*
Reference {7.9.4, 333:25} Used in: attribute value[35] general entity name list[35.1] id reference list[37]
[40] name token list =
name token [57] ,
( SPACE , (32) space
name token [57] )*
Reference {7.9.4, 333:29} Used in: attribute value[35]
[41] notation name =
name [55]
Reference {7.9.4, 333:33} Used in: attribute value[35] entity type[109] notation declaration[148] associated notation name[149.1]
[42] number list =
number [56] ,
( SPACE , (32) space
number [56] )*
Reference {7.9.4, 333:35} Used in: attribute value[35]
[43] number token list =
number token [58] ,
( SPACE , (32) space
number token [58] )*
Reference {7.9.4, 334:2} Used in: attribute value[35]

8 Processing Instructions

[44] processing instruction =
pio , <?
system data [45] ,
pic >
Reference {8, 339:1} Used in: other prolog[8] other content[27] ds[71]
[45] system data =
character data [47]
Reference {8, 339:5} Used in: processing instruction[44] system identifier[75]

9 Common Constructs

9.1 Replaceable Character Data

[46] replaceable character data =
(data character [48] |
character reference [62] |
general entity reference [59] |
Ee )*
Reference {9.1, 343:1} Used in: content[24] attribute value literal[34]

9.2 Character Data

[47] character data =
data character [48] *
Reference {9.2, 344:1} Used in: content[24] attribute value[35] system data[45]
[48] data character =
SGML character [50]
Reference {9.2, 344:3} Used in: mixed content[25] replaceable character data[46] character data[47] replaceable parameter data[67]
[49] character =
SGML character [50] |
NONSGML
Reference {9.2, 344:5} Used in: non-SGML data entity[6]

9.2.1 SGML Character

[50] SGML character =
markup character [51] |
DATACHAR (implicit)
Reference {9.2.1, 345:1} Used in: SGML text entity[4] character data entity[5.1] specific character data entity[5.2] data character[48] character[49] comment[92] marked section[96]
[51] markup character =
name character [52] |
function character [54] |
DELMCHAR (implicit)
Reference {9.2.1, 345:4} Used in: SGML character[50]
[52] name character =
name start character [53] |
Digit | 0-9
LCNMCHAR | -.
UCNMCHAR (none)
Reference {9.2.1, 345:8} Used in: markup character[51] name[55] name token[57] number token[58]
[53] name start character =
LC Letter | a-z
UC Letter | A-Z
LCNMSTRT | (none)
UCNMSTRT (none)
Reference {9.2.1, 346:3} Used in: name character[52] name[55]

9.2.2 Function Character

[54] function character =
RE | (13) CR
RS | (10) LF
SPACE | (32) space
SEPCHAR | (9) HT
MSOCHAR | (none)
MSICHAR | (none)
MSSCHAR | (none)
FUNCHAR (none)
Reference {9.2.2, 346:8} Used in: markup character[51]

9.3 Name

[55] name =
name start character [53] ,
name character [52] *
Reference {9.3, 346:17} Used in: generic identifier[30] attribute specification[32] attribute value[35] id value[36] id reference value[38] name list[39] notation name[41] general entity reference[59] parameter entity reference[60] function name[63] name group[69] public text class[86] public text language[88] general entity name[103] parameter entity name[104] rank stem[120] attribute name[144] short reference mapping declaration[150] map name[151] link type name[155] link set name[164] ID link set declaration[168.1] capacity set[180] added function[187] general delimiters[191] reserved name use[193] quantity set[194]
[56] number =
Digit + 0-9
Reference {9.3, 347:1} Used in: attribute value[35] number list[42] character number[64] rank suffix[121] number of characters[179] capacity set[180] quantity set[194] link type features[197] other features[198] concrete syntax changes[202]
[57] name token =
name character [52] +
Reference {9.3, 347:3} Used in: attribute value[35] name token list[40] name token group[68]
[58] number token =
Digit , 0-9
name character [52] *
Reference {9.3, 347:5} Used in: attribute value[35] number token list[43]

9.4 Entity Reference

9.4.4 Named Entity Reference

[59] general entity reference =
ero , &
document type specification [28] ,
name [55] ,
reference end [61]
Reference {9.4.4, 350:17} Used in: other content[27] replaceable character data[46]
[60] parameter entity reference =
pero , %
document type specification [28] ,
name [55] ,
reference end [61]
Reference {9.4.4, 350:22} Used in: ps[65] replaceable parameter data[67] ts[70] ds[71]

9.4.5 Reference End

[61] reference end =
( refc | ;
RE ) ? (13) CR
Reference {9.4.5, 352:22} Used in: general entity reference[59] parameter entity reference[60] character reference[62]

9.5 Character Reference

[62] character reference =
cro , &#
( function name [63] |
character number [64] ),
reference end [61]
Reference {9.5, 356:1} Used in: other content[27] replaceable character data[46] replaceable parameter data[67]
[63] function name =
"RE" |
"RS" |
"SPACE" |
name [55]
Reference {9.5, 356:6} Used in: character reference[62]
[64] character number =
number [56]
Reference {9.5, 357:1} Used in: character reference[62] described set character number[177] base set character number[178] public concrete syntax[183] shunned character number identification[184] function character identification[186]

10 Markup Declarations: General

10.1 Parts of Declarations

10.1.1 Parameter Separator

[65] ps =

Ps is "parameter separator"

s [5] |
Ee |
parameter entity reference [60] |
comment [92]
Reference {10.1.1, 372:1} Used in: external identifier[73] status keyword specification[97] entity declaration[101] parameter entity name[104] data text[106] bracketed text[107] external entity specification[108] entity type[109] document type declaration[110] element declaration[116] ranked group[119] omitted tag minimization[122] content model[126] exceptions[138] attribute definition list declaration[141] attribute definition list[142] attribute definition[143] notation[146] default value[147] notation declaration[148] associated notation name[149.1] data attribute specification[149.2] short reference mapping declaration[150] short reference use declaration[152] link type declaration[154] simple link specification[156] implicit link specification[157] explicit link specification[158] link set declaration[163] source element specification[165] explicit link rule[166.1] ID link set declaration[168.1] link set use declaration[169] SGML declaration[171] document character set[172] character set description[173] base character set[174] described character set portion[175] character description[176] capacity set[180] concrete syntax scope[181] concrete syntax[182] public concrete syntax[183] shunned character number identification[184] function character identification[186] naming rules[189] delimiter set[190] general delimiters[191] short reference delimiters[192] reserved name use[193] quantity set[194] feature use[195] markup minimization features[196] link type features[197] other features[198] application-specific information[199] system declaration[200] concrete syntaxes supported[201] concrete syntax changes[202] validation services[203] SDIF support[204]

10.1.2 Parameter Literal

[66] parameter literal =
( lit , "
replaceable parameter data [67] ,
lit ) | "
( lita , '
replaceable parameter data [67] ,
lita ) '
Reference {10.1.2, 373:1} Used in: entity text[105] data text[106] bracketed text[107] data tag template[136] data tag padding template[137] short reference mapping declaration[150] naming rules[189] general delimiters[191] short reference delimiters[192]
[67] replaceable parameter data =
(data character [48] |
character reference [62] |
parameter entity reference [60] |
Ee )*
Reference {10.1.2, 373:8} Used in: parameter literal[66]

10.1.3 Group

[68] name token group =
grpo , (
ts [70] *,
name token [57] ,
( ts [70] *,
connector [131] *,
name token [57] )*,
ts [70] *,
grpc )
Reference {10.1.3, 374:1} Used in: declared value[145]
[69] name group =
grpo , (
ts [70] *,
name [55] ,
( ts [70] *,
connector [131] ,
ts [70] *,
name [55] )*,
ts [70] *,
grpc )
Reference {10.1.3, 374:11} Used in: document type specification[28] associated element type[72] element type[117] inclusions[139] exclusions[140] notation[146] associated notation name[149.1]

Ts is "token separator".

[70] ts =
s [5] |
Ee |
parameter entity reference [60]
Reference {10.1.3, 375:3} Used in: name token group[68] name group[69] ranked group[119] model group[127] data tag group[133] data tag pattern[134] data tag template group[135]

10.1.4 Declaration Separator

[71] ds 'declaration separator` =
s [5] |
Ee |
parameter entity reference [60] |
comment declaration [91] |
processing instruction [44] |
marked section declaration [93]
Reference {10.1.4, 376:1} Used in: entity set[113] element set[114] short reference set[115]

10.1.5 Associated Element Type

[72] associated element type =
generic identifier [30] |
name group [69]
Reference {10.1.5, 377:1} Used in: attribute definition list declaration[141] short reference use declaration[152] source element specification[165]

10.1.6 External Identifier

[73] external identifier =
( "SYSTEM" |
( "PUBLIC" ,
ps [65] +,
public identifier [74] )),
( ps [65] +,
system identifier [75] )?
Reference {10.1.6, 379:1} Used in: external entity specification[108] document type declaration[110] notation identifier[149] link type declaration[154]
[74] public identifier =
minimum literal [76]
Reference {10.1.6, 379:1} Used in: external identifier[73] base character set[174] capacity set[180] public concrete syntax[183] (see also formal public identifier[79])
[75] system identifier =
( lit , "
system data [45] ,
lit ) | "
( lita , '
system data [45] ,
lita ) '
Reference {10.1.6, 379:8} Used in: external identifier[73]

10.1.7 Minimum Literal

[76] minimum literal =
( lit , "
minimum data [77] ,
lit ) | "
( lita , '
minimum data [77] ,
lita ) '
Reference {10.1.7, 381:1} Used in: public identifier[74] SGML declaration[171] character description[176] application-specific information[199] system declaration[200]
[77] minimum data =
minimum data character [78] *
Reference {10.1.7, 381:8} Used in: minimum literal[76] ISO owner identifier[81] registered owner identifier[82] unregistered owner identifier[83] public text description[87] ISO text description[87.1] public text designating sequence[89] public text display version[90]
[78] minimum data character =
RS | (13) CR
RE | (10) LF
SPACE | (32) space
LC Letter | a-z
UC Letter | A-Z
Digit | 0-9
Special '( )+,-./:=?
Reference {10.1.7 381:10} Used in: minimum data[77]

If "FORMAL YES" is set in features use other features, then public identifiers are interpreted as formal public identifiers.

10.2 Formal Public Identifier

[79] formal public identifier =
owner identifier [80] ,
"//" ,
text identifier [84]
Reference {10.2, 382:1} Used in: (unused unless FORMAL YES), then external identifier[73] base character set[174] capacity set[180] public concrete syntax[183]

10.2.1 Owner Identifier

[80] owner identifier =
ISO owner identifier [81] |
registered owner identifier [82] |
unregistered owner identifier [83]
Reference {10.2.1, 383:1} Used in: formal public identifier[79]
10.2.1.1 ISO Owner Identifier
[81] ISO owner identifier =
minimum data [77]
Reference {10.2.1.1, 383:7} Used in: owner identifier[80]
10.2.1.2 Registered Owner Identifier
[82] registered owner identifier =
"+//" ,
minimum data [77]
Reference {10.2.1.2, 384:8} Used in: owner identifier[80]
10.2.1.3 Unregistered Owner Identifier
[83] unregistered owner identifier =
"-//" ,
minimum data [77]
Reference {10.2.1.3, 385:1} Used in: owner identifier[80]

10.2.2 Text Identifier

[84] text identifier =
public text class [86] ,
SPACE , (32) space
unavailable text indicator [85] ?
public text description [87] ,
"//" ,
( public text language [88] |
public text designating sequence [89] ),
( "//" ,
public text display version [90] )?
Reference {10.2.2, 385:7} Used in: formal public identifier[79]
[85] unavailable text indicator =
"-//"
Reference {10.2.2, 385:17} Used in: text identifier[84]
10.2.2.1 Public Text Class
[86] public text class =
name [55]
Reference {10.2.2.1, 386:5} Used in: text identifier[84]
10.2.2.2 Public Text Description
[87] public text description =
ISO text description [87.1] |
minimum data [77]
Reference {10.2.2.2, 387:5} Used in: text identifier[84]
[87.1] ISO text description =
minimum data [77]
Reference {10.2.2.2, 387:8} Used in: public text description[87]
10.2.2.3 Public Text Language
[88] public text language =
name [55]
Reference {10.2.2.3, 388:1} Used in: text identifier[84]
10.2.2.4 Public Text Designating Sequence
[89] public text designating sequence =
minimum data [77]
Reference {10.2.2.4, 388:14} Used in: text identifier[84]
10.2.2.5 Public Text Display Version
[90] public text display version =
minimum data [77]
Reference {10.2.2.5, 390:1} Used in: text identifier[84]

10.3 Comment Declaration

[91] comment declaration =
mdo , <!
( comment [92] ,
( s [5] |
comment [92] )*)?,
mdc >
Reference {10.3, 391:1} Used in: other prolog[8] other content[27] ds[71]
[92] comment =
com , --
SGML character [50] *,
com --
Reference {10.3, 391:7} Used in: ps[65] comment declaration[91]

10.4 Marked Section Declaration

[93] marked section declaration =
marked section start [94] ,
status keyword specification [97] ,
dso [
marked section [96] ,
marked section end [95]
Reference {10.4, 391:13} Used in: other content[27] ds[71]
[94] marked section start =
mdo , <!
dso [
Reference {10.4, 392:3} Used in: marked section declaration[93]
[95] marked section end =
msc , ]]
mdc >
Reference {10.4, 392:6} Used in: marked section declaration[93]
[96] marked section =
SGML character [50] *
Reference {10.4, 392:9} Used in: marked section declaration[93]

10.4.2 Status Keyword Specification

[97] status keyword specification =
(ps [65] +,
( status keyword [100] |
"TEMP" ))*,
ps [65] *
Reference {10.4.2, 393:1} Used in: marked section declaration[93]
[98] {omitted}
[99] {omitted}
[100] status keyword =
"CDATA" |
"IGNORE" |
"INCLUDE" |
"RCDATA"
Reference {10.4.2, 393:6} Used in: status keyword specification[97]

10.5 Entity Declaration

[101] entity declaration =
mdo , <!
"ENTITY" ,
ps [65] +,
entity name [102] ,
ps [65] +,
entity text [105] ,
ps [65] +,
mdc >
Reference {10.5, 394:18} Used in: entity set[113] short reference set[115]

10.5.1 Entity Name

[102] entity name =
general entity name [103] |
parameter entity name [104]
Reference {10.5.1, 395:1} Used in: entity declaration[101]
[103] general entity name =
name [55] |
( rni , #
"DEFAULT" )
Reference {10.5.1, 395:4} Used in: attribute value[35] entity name[102]
[104] parameter entity name =
pero , %
ps [65] +,
name [55]
Reference {10.5.1, 395:8} Used in: entity name[102]

10.5.2 Entity Text

[105] entity text =
parameter literal [66] |
data text [106] |
bracketed text [107] |
external entity specification [108]
Reference {10.5.2, 396:18} Used in: entity declaration[101]

10.5.3 Data Text

[106] data text =
( "CDATA" |
"SDATA" |
"PI" ),
ps [65] +,
parameter literal [66]
Reference {10.5.3, 397:14} Used in: entity text[105]

10.5.4 Bracketed Text

[107] bracketed text =
( "STARTTAG" |
"ENDTAG" |
"MS" |
"MD" ),
ps [65] +,
parameter literal [66]
Reference {10.5.4, 399:1} Used in: entity text[105]

10.5.5 External Entity Specification

[108] external entity specification =
external identifier [73] ,
( ps [65] +,
entity type [109] )?
Reference {10.5.5, 400:1} Used in: entity text[105]
[109] entity type =
"SUBDOC" |
( ( "NDATA" |
"CDATA" |
"SDATA" ),
ps [65] +,
notation name [41] ,
data attribute specification [149.2] )?
Reference {10.5.5, 400:5} Used in: external entity specification[108]

11 Markup Declarations: Document Type Definition

11.1 Document Type Declaration

[110] document type declaration =
mdo , <!
"DOCTYPE" ,
ps [65] +,
document type name [111] ,
( ps [65] +,
external identifier [73] )?,
( ps [65] +,
dso , [
document type declaration subset [112] ,
dsc )?, ]
ps [65] *,
mdc >
Reference {11.1, 403:1} Used in: prolog[7] base document type declaration[9]
[111] document type name =
generic identifier [30]
Reference {11.1, 404:4} Used in: document type declaration[110] source document type name[159] result document type name[160]
[112] document type declaration subset =
(entity set [113] |
element set [114] |
short reference set [115] )*
Reference {11.1, 404:6} Used in: document type declaration[110]
[113] entity set =
(entity declaration [101] |
ds [71] )*
Reference {11.1, 404:10} Used in: document type declaration subset[112] link attribute set[162]
[114] element set =
(element declaration [116] |
attribute definition list declaration [141] |
notation declaration [148] |
ds [71] )*
Reference {11.1, 404:13} Used in: document type declaration subset[112]
[115] short reference set =
(entity declaration [101] |
short reference mapping declaration [150] |
short reference use declaration [152] |
ds [71] )*
Reference {11.1, 404:18} Used in: document type declaration subset[112]

11.2 Element Declaration

[116] element declaration =
mdo , <!
"ELEMENT" ,
ps [65] +,
element type [117] ,
( ps [65] +,
omitted tag minimization [122] )?,
ps [65] +,
( declared content [125] |
content model [126] ),
ps [65] *,
mdc >
Reference {11.2, 405:6} Used in: element set[114]

11.2.1 Element Type

[117] element type =
generic identifier [30] |
name group [69] |
ranked element [118] |
ranked group [119]
Reference {11.2.1, 406:1} Used in: element declaration[116]
11.2.1.1 Ranked Element
[118] ranked element =
rank stem [120] ,
ps [65] +,
rank suffix [121]
Reference {11.2.1.1, 407:1} Used in: element type[117]
[119] ranked group =
grpo , (
ts [70] *,
rank stem [120] ,
( ts [70] *,
connector [131] ,
ts [70] *,
rank stem [120] )*,
ts [70] *,
grpc , )
ps [65] +,
rank suffix [121]
Reference {11.2.1.1, 407:5} Used in: element type[117]
[120] rank stem =
name [55]
Reference {11.2.1.1, 407:17} Used in: generic identifier specification[29] ranked element[118] ranked group[119]
[121] rank suffix =
number [56]
Reference {11.2.1.1, 407:18} Used in: ranked element[118] ranked group[119]

11.2.2 Omitted Tag Minimization

[122] omitted tag minimization =
start-tag minimization [123] ,
ps [65] +,
end-tag minimization [124]
Reference {11.2.2, 408:1} Used in: element declaration[116]
[123] start-tag minimization =
"O" |
minus -
Reference {11.2.2, 408:5} Used in: omitted tag minimization[122]
[124] end-tag minimization =
"O" |
minus -
Reference {11.2.2, 408:8} Used in: omitted tag minimization[122]

11.2.3 Declared Content

[125] declared content =
"CDATA" |
"RCDATA" |
"EMPTY"
Reference {11.2.3, 409:3} Used in: element declaration[116]

11.2.4 Content Model

[126] content model =
(model group [127] |
"ANY" ),
( ps [65] +,
exceptions [138] )?
Reference {11.2.4, 410:1} Used in: element declaration[116]
[127] model group =
grpo , ( ts [70] *,
content token [128] ,
( ts [70] *,
connector [131] ,
ts [70] *,
content token [128] )*,
ts [70] *,
grpc , )
occurrence indicator [132] ?
Reference {11.2.4, 410:6} Used in: content model[126] content token[128]
[128] content token =
primitive content token [129] |
model group [127]
Reference {11.2.4, 410:17} Used in: model group[127]
[129] primitive content token =
( rni , #
"PCDATA" ) |
element token [130] |
data tag group [133]
Reference {11.2.4, 410:20} Used in: content token[128]
[130] element token =
generic identifier [30] ,
occurrence indicator [132] ?
Reference {11.2.4, 410:25} Used in: primitive content token[129]
11.2.4.1 Connector
[131] connector =
and | &
or | |
seq ,
Reference {11.2.4.1, 413:4} Used in: name token group[68] name group[69] ranked group[119] model group[127]
11.2.4.2 Occurrence Indicator
[132] occurrence indicator =
opt | ?
plus | +
rep *
Reference {11.2.4.2, 413:20} Used in: model group[127] element token[130] data tag group[133]
11.2.4.4 Data Tag Group
[133] data tag group =
dtgo , [
ts [70] *,
generic identifier [30] ,
ts [70] *,
seq , ,
ts [70] *,
data tag pattern [134] ,
ts [70] *,
dtgc , ]
occurrence indicator [132] ?
Reference {11.2.4.4, 415:16} Used in: primitive content token[129]
[134] data tag pattern =
(data tag template group [135] |
data tag template [136] ),
( ts [70] *,
seq , ,
data tag padding template [137] )?
Reference {11.2.4.4, 416:9} Used in: data tag group[133]
[135] data tag template group =
grpo , (
ts [70] *,
data tag template [136] ,
( ts [70] *,
or , |
ts [70] *,
data tag template [136] )*,
ts [70] *,
grpc )
Reference {11.2.4.4, 416:16} Used in: data tag pattern[134]
[136] data tag template =
parameter literal [66]
Reference {11.2.4.4, 416:26} Used in: data tag pattern[134] data tag template group[135]
[137] data tag padding template =
parameter literal [66]
Reference {11.2.4.4, 416:28} Used in: data tag pattern[134]

11.2.5 Exceptions

[138] exceptions =
(exclusions [140] ,
( ps [65] +,
inclusions [139] )?) |
inclusions [139]
Reference {11.2.5, 418:1} Used in: content model[126]
11.2.5.1 Inclusions
[139] inclusions =
plus , +
name group [69]
Reference {11.2.5.1, 418:11} Used in: exceptions[138]
11.2.5.2 Exclusions
[140] exclusions =
minus , -
name group [69]
Reference {11.2.5.2, 419:8} Used in: exceptions[138]

11.3 Attribute Definition List Declaration

[141] attribute definition list declaration =
mdo , <!
"ATTLIST" ,
ps [65] +,
( associated element type [72] |
associated notation name [149.1] )
ps [65] +,
attribute definition list [142] ,
ps [65] *,
mdc >
Reference {11.3, 420:15} Used in: element set[114] link attribute set[162]
[142] attribute definition list =
attribute definition [143] ,
( ps [65] +,
attribute definition [143] )*
Reference {11.3, 420:25} Used in: attribute definition list declaration[141]
[143] attribute definition =
attribute name [144] ,
ps [65] +,
declared value [145] ,
ps [65] +,
default value [147]
Reference {11.3, 421:1} Used in: attribute definition list[142]

11.3.2 Attribute Name

[144] attribute name =
name [55]
Reference {11.3.2, 421:14} Used in: attribute definition[143]

11.3.3 Declared Value

[145] declared value =
"CDATA" |
"ENTITY" |
"ENTITIES" |
"ID" |
"IDREF" |
"IDREFS" |
"NAME" |
"NAMES" |
"NMTOKEN" |
"NMTOKENS" |
"NUMBER" |
"NUMBERS" |
"NUTOKEN" |
"NUTOKENS" |
notation [146] |
name token group [68]
Reference {11.3.3, 422:6} Used in: attribute definition[143]
[146] notation =
"NOTATION" ,
ps [65] *,
name group [69]
Reference {11.3.3, 423:13} Used in: declared value[145]

11.3.4 Default Value

[147] default value =
(( rni , #
"FIXED" ,
ps [65] +)?,
attribute value specification [33] ) |
( rni , #
( "REQUIRED" |
"CURRENT" |
"CONREF" |
"IMPLIED" ))
Reference {11.3.4, 425:1} Used in: attribute definition[143]

11.4 Notation Declaration

[148] notation declaration =
mdo , <!
"NOTATION" ,
ps [65] +,
notation name [41] ,
ps [65] +,
notation identifier [149] ,
ps [65] *,
mdc >
Reference {11.4, 426:15} Used in: element set[114]
[149] notation identifier =
external identifier [73]
Reference {11.4, 427:1} Used in: notation declaration[148]

11.4.1 Data Attributes

11.4.1.1 Associated Notation Name
[149.1] associated notation name =
rni , #
"NOTATION" ,
ps [65] +,
( notation name [41] |
name group [69] )
Reference {11.4.1.1, 428:5} Used in: attribute definition list declaration[141]
11.4.1.2 Data Attribute Specification
[149.2] data attribute specification =
ps [65] +,
dso , [
attribute specification list [31] ,
s [5] *,
dsc ]
Reference {11.4.1.2, 428:20} Used in: entity type[109]

11.5 Short Reference Mapping Declaration

[150] short reference mapping declaration =
mdo , <!
"SHORTREF" ,
ps [65] +,
map name [151] ,
( ps [65] +,
parameter literal [66] ,
ps [65] +,
name [55] )+,
ps [65] *,
mdc >
Reference {11.5, 429:8} Used in: short reference set[115]
[151] map name =
name [55]
Reference {11.5, 429:19} Used in: short reference mapping declaration[150] map specification[153]

11.6 Short Reference Use Declaration

[152] short reference use declaration =
mdo , <!
"USEMAP" ,
ps [65] +,
map specification [153] ,
( ps [65] +,
associated element type [72] )?,
ps [65] *,
mdc >
Reference {11.6, 430:10} Used in: other content[27] short reference set[115]
[153] map specification =
map name [151] |
( rni , #
"EMPTY" )
Reference {11.6, 430:19} Used in: short reference use declaration[152]

12 Markup Declarations: Link Process Definition

12.1 Link Type Declaration

[154] link type declaration =
mdo , <!
"LINKTYPE" ,
ps [65] +,
link type name [155] ,
ps [65] +,
( simple link specification [156] |
implicit link specification [157] |
explicit link specification [158] ),
( ps [65] +,
external identifier [73] )?,
( ps [65] +,
dso , [
link type declaration subset [161] ,
dsc )?, ]
ps [65] *,
mdc >
Reference {12.1, 434:1} Used in: prolog[7]
[155] link type name =
name [55]
Reference {12.1, 434:18} Used in: link type declaration[154] link set use declaration[169]

12.1.1 Simple Link Specification

[156] simple link specification =
rni , #
"SIMPLE" ,
ps [65] +,
rni , #
"IMPLIED"
Reference {12.1.1, 435:1} Used in: link type declaration[154]

12.1.2 Implicit Link Specification

[157] implicit link specification =
source document type name [159] ,
ps [65] +,
rni , #
"IMPLIED"
Reference {12.1.2, 436:18} Used in: link type declaration[154]

12.1.3 Explicit Link Specification

[158] explicit link specification =
source document type name [159] ,
ps [65] +,
result document type name [160]
Reference {12.1.3, 436:8} Used in: link type declaration[154]
[159] source document type name =
document type name [111]
Reference {12.1.3, 436:12} Used in: implicit link specification[157] explicit link specification[158]
[160] result document type name =
document type name [111]
Reference {12.1.3, 436:14} Used in: explicit link specification[158]

12.1.4 Link Type Declaration Subset

[161] link type declaration subset =
(link attribute set [162] |
link set declaration [163] )*,
ID link set declaration [168.1] ?,
( link attribute set [162] |
link set declaration [163] )*
Reference {12.1.4, 437:1} Used in: link type declaration[154]
[162] link attribute set =
(attribute definition list declaration [141] |
entity set [113] )*
Reference {12.1.4, 437:7} Used in: link type declaration subset[161]

12.2 Link Set Declaration

[163] link set declaration =
mdo , <!
"LINK" ,
ps [65] +,
link set name [164] ,
( ps [65] +,
link rule [163.1] ),
ps [65] *,
mdc >
Reference {12.2, 441:6} Used in: link type declaration subset[161]
[163.1] link rule =
source element specification [165] |
explicit link rule [168.1]
Reference {12.2, 441:15} Used in: link set declaration[163] ID link set declaration[168.1]
[164] link set name =
name [55] |
( rni , #
"INITIAL" )
Reference {12.2, 441:18} Used in: link set declaration[163] source element specification[165] link set specification[170]

12.2.1 Source Element Specification

[165] source element specification =
associated element type [72] ,
( ps [65] +,
rni , #
"USELINK" ,
ps [65] +,
( link set name [164] |
( rni , #
"EMPTY" )))?,
( ps [65] +,
rni , #
"POSTLINK" ,
ps [65] +,
link set specification [170] )?,
link attribute specification [166] ?
Reference {12.2.1, 443:1} Used in: link rule[163.1] explicit link rule[166.1]
[166] link attribute specification =
s [5] +,
dso , [
attribute specification list [31] ,
s [5] *,
dsc ]
Reference {12.2.1, 443:16} Used in: source element specification[165]

12.2.2 Explicit Link Rule

[166.1] explicit link rule =
(source element specification [165] ,
ps [65] +,
result element specification [167] ) |
( source element specification [165] ,
ps [65] +,
rni, #
"IMPLIED" ) |
( rni , #
"IMPLIED" ,
ps [65] +,
result element specification [167] )
Reference {12.2.2, 445:1} Used in: link rule[163.1]
[167] result element specification =
generic identifier [30] ,
result attribute specification [168] ?
Reference {12.2.2, 446:5} Used in: explicit link rule[166.1]
[168] result attribute specification =
s [65] +,
dso , [
attribute specification list [31] ,
s [65] *,
dsc ]
Reference {12.2.2, 446:8} Used in: result element specification[167]

12.2.3 ID Link Set Declaration

[168.1] ID link set declaration =
mdo , <!
"IDLINK" ,
(ps+, [65] {10.1.1, 372:1}
name, [55] {9.3, 346:17}
ps+, [65] {10.1.1, 372:1}
link rule)+, [163.1] {12.2, 441:15}
ps*, [65] {10.1.1, 372:1}
mdc >
Reference {12.2.3, 447:1} Used in: link type declaration subset[161]

12.3 Link Set Use Declaration

[169] link set use declaration =
mdo , <!
"USELINK" ,
ps [65] +,
link set specification [170] ,
ps [65] +,
link type name [155] ,
ps [65] *,
mdc >
Reference {12.3, 448:1} Used in: other content[27]
[170] link set specification =
link set name [164] |
( rni , #
"EMPTY" ) |
( rni , #
"RESTORE" )
Reference {12.3, 448:10} Used in: source element specification[165] link set use declaration[169]

13 SGML Declaration

[171] SGML declaration =
mdo , <!
"SGML" ,
ps [65] +,
minimum literal [76] ,
ps [65] +,
document character set [172] ,
ps [65] +,
capacity set [180] ,
ps [65] +
concrete syntax scope [181]
ps [65] +,
concrete syntax [182] ,
ps [65] +,
feature use [195] ,
ps [65] +,
application-specific information [199] ,
ps [65] *,
mdc >
Reference {13, 450:1} Used in: SGML document entity[2]

13.1 Document Character Set

[172] document character set =
"CHARSET" ,
ps [65] +,
character set description [173]
Reference {13.1, 452:1} Used in: SGML declaration[171] system declaration[200]

13.1.1 Character Set Description

[173] character set description =
base character set [174] ,
ps [65] +,
described character set portion [175] ,
( ps [65] +
base character set [174] ,
ps [65] +,
described character set portion [175] )*
Reference {13.1.1, 453:1} Used in: document character set[172] syntax-reference character set[185]
13.1.1.1 Base Character Set
[174] base character set =
"BASESET" ,
ps [65] +,
public identifier [74]
Reference {13.1.1.1, 453:12} Used in: character set description[173]
13.1.1.2 Described Character Set Portion
[175] described character set portion =
"DESCSET" ,
( ps [65] +,
character description [176] )+
Reference {13.1.1.2, 454:7} Used in: character set description[173]
[176] character description =
described set character number [177] ,
ps [65] +,
number of characters [179] ,
ps [65] +,
( base set character number [178] |
minimum literal [76] |
"UNUSED" )
Reference {13.1.1.2, 454:11} Used in: described character set portion[175]
[177] described set character number =
character number [64]
Reference {13.1.1.2, 454:19} Used in: character description[176]
[178] base set character number =
character number [64]
Reference {13.1.1.2, 454:21} Used in: character description[176]
[179] number of characters =
number [56]
Reference {13.1.1.2, 454:23} Used in: character description[176]

13.2 Capacity Set

[180] capacity set =
"CAPACITY" ,
ps [65] +,
(( "PUBLIC" ,
ps [65] +,
public identifier [74] ) |
( "SGMLREF" ,
( ps [65] +,
name [55] ,
ps [65] +,
number [56] )+))
Reference {13.2, 456:2} Used in: SGML declaration[171] system declaration[200]

13.3 Concrete Syntax Scope

[181] concrete syntax scope =
"SCOPE" ,
ps [65] +,
( "DOCUMENT" |
"INSTANCE" )
Reference {13.3, 457:4} Used in: SGML declaration[171] system declaration[200]

13.4 Concrete Syntax

[182] concrete syntax =
"SYNTAX" ,
ps [65] +,
( public concrete syntax [183] |
( shunned character number identification [184] ,
ps [65] +,
syntax-reference character set [185] ,
ps [65] +,
function character identification [186] ,
ps [65] +
naming rules [189] ,
ps [65] +,
delimiter set [190] ,
ps [65] +,
reserved name use [193] ,
ps [65] +,
quantity set [194] ))
Reference {13.4, 458:1} Used in: SGML declaration[171] concrete syntaxes supported[201]

13.4.1 Public Concrete Syntax

[183] public concrete syntax =
"PUBLIC" ,
ps [65] +,
public identifier [74] ,
( ps [65] +,
"SWITCHES" ,
( ps [65] +,
character number [64] ,
ps [65] +,
character number [64] )+)?
Reference {13.4.1, 458:22} Used in: concrete syntax[182]

13.4.2 Shunned Character Number Identification

[184] shunned character number identification =
"SHUNCHAR" ,
ps [65] +,
( "NONE" |
(( "CONTROLS" |
character number [64] ),
( ps [65] +,
character number [64] )*))
Reference {13.4.2, 459:22} Used in: concrete syntax[182]

13.4.3 Syntax-reference Character Set

[185] syntax-reference character set =
character set description [173]
Reference {13.4.3, 461:1} Used in: concrete syntax[182]

13.4.4 Function Character Identification

[186] function character identification =
"FUNCTION" ,
ps [65] +,
"RE" ,
ps [65] +,
character number [64] ,
ps [65] +,
"RS" ,
ps [65] +,
character number [64] ,
ps [65] +,
"SPACE" ,
ps [65] +,
character number [64] ,
( ps [65] +,
added function [187] +,
ps [65] +,
function class [188] ,
ps [65] +,
character number [64] )*
Reference {13.4.4, 461:6} Used in: concrete syntax[182]
[187] added function =
name [55]
Reference {13.4.4, 462:10} Used in: function character identification[186]
[188] function class =
"FUNCHAR" |
"MSICHAR" |
"MSOCHAR" |
"MSSCHAR" |
"SEPCHAR"
Reference {13.4.4, 462:12} Used in: function character identification[186]

13.4.5 Naming Rules

[189] naming rules =
"NAMING" ,
ps [65] +,
"LCNMSTRT" ,
ps [65] +,
parameter literal [66] ,
ps [65] +,
"UCNMSTRT" ,
ps [65] +,
parameter literal [66] ,
ps [65] +,
"LCNMCHAR" ,
ps [65] +,
parameter literal [66] ,
ps [65] +,
"UCNMCHAR" ,
ps [65] +,
parameter literal [66] ,
ps [65] +,
"NAMECASE" ,
ps [65] +,
"GENERAL" ,
ps [65] +,
( "NO" |
"YES" ),
ps [65] +,
"ENTITY" ,
ps [65] +,
( "NO" |
"YES" )
Reference {13.4.5, 463:3} Used in: concrete syntax[182]

13.4.6 Delimiter Set

[190] delimiter set =
"DELIM" ,
ps [65] +,
general delimiters [191] ,
ps [65] +,
short reference delimiters [192]
Reference {13.4.6, 465:8} Used in: concrete syntax[182]
13.4.6.1 General Delimiters
[191] general delimiters =
"GENERAL" ,
ps [65] +,
"SGMLREF" ,
( ps [65] +,
name [55] ,
ps [65] +,
parameter literal [66] )*
Reference {13.4.6.1, 466:1} Used in: delimiter set[190]
13.4.6.2 Short Reference Delimiters
[192] short reference delimiters =
"SHORTREF" ,
ps [65] +,
( "SGMLREF" |
"NONE" ),
( ps [65] +,
parameter literal [66] )*
Reference {13.4.6.2, 467:1} Used in: delimiter set[190]

13.4.7 Reserved Name Use

[193] reserved name use =
"NAMES" ,
ps [65] +,
"SGMLREF" ,
( ps [65] +,
name [55] ,
ps [65] +,
name [55] )*
Reference {13.4.7, 468:9} Used in: concrete syntax[182]

13.4.8 Quantity Set

[194] quantity set =
"QUANTITY" ,
ps [65] +,
"SGMLREF" ,
( ps [65] +,
name [55] ,
ps [65] +,
number [56] )*
Reference {13.4.8, 470:1} Used in: concrete syntax[182]

13.5 Feature Use

[195] feature use =
"FEATURES" ,
ps [65] +,
markup minimization features [196] ,
ps [65] +,
link type features [197] ,
ps [65] +,
other features [198]
Reference {13.5, 471:4} Used in: SGML declaration[171] system declaration[200]

13.5.1 Markup Minimization Features

[196] markup minimization features =
"MINIMIZE" ,
ps [65] +,
"DATATAG" ,
ps [65] +,
( "NO" |
"YES" ),
ps [65] +,
"OMITTAG" ,
ps [65] +,
( "NO" |
"YES" ),
ps [65] +,
"RANK" ,
ps [65] +,
( "NO" |
"YES" ),
ps [65] +,
"SHORTTAG" ,
ps [65] +,
( "NO" |
"YES" )
Reference {13.5.1, 471:12} Used in: feature use[195]

13.5.2 Link Type Features

[197] link type features =
"LINK" ,
ps [65] +,
"SIMPLE" ,
ps [65] +,
( "NO" |
"YES" ,
ps [65] +,
number [56] ),
ps [65] +,
"IMPLICIT" ,
ps [65] +,
( "NO" |
"YES" ),
ps [65] +,
"EXPLICIT" ,
ps [65] +,
( "NO" |
( "YES" ,
ps [65] +,
number [56] ))
Reference {13.5.2, 472:29} Used in: feature use[195]

13.5.3 Other Features

[198] other features =
"OTHER" ,
ps [65] +,
"CONCUR" ,
ps [65] +,
( "NO" |
( "YES" ,
ps [65] +,
number [56] )),
ps [65] +,
"SUBDOC" ,
ps [65] +,
( "NO" |
( "YES" ,
ps [65] +,
number [56] )),
ps [65] +,
"FORMAL" ,
ps [65] +,
( "NO" |
"YES" )
Reference {13.5.3, 473:28} Used in: feature use[195]

13.6 Application-specific Information

[199] application-specific information =
"APPINFO" ,
ps [65] +,
( "NONE" |
minimum literal [76] )
Reference {13.6, 474:27} Used in: SGML declaration[171]

Documentation for a conforming SGML system is independent of applications. It shall include a system declaration. The following are not referenced in the previous SGML document.

15 Conformance

15.6 System Declaration

[200] system declaration =
mdo , <!
"SYSTEM" ,
ps [65] +,
minimum literal [76] ,
ps [65] +,
document character set [172] ,
ps [65] +,
capacity set [180] ,
ps [65] +,
feature use [195] ,
ps [65] +,
concrete syntax scope [181] ,
ps [65] +,
concrete syntaxes supported [201] ,
ps [65] +,
validation services [203] ,
ps [65] +,
SDIF support [204] ,
ps [65] *,
mdc >
Reference {15.6, 488:1} Used in: system declaration root is unused in SGML Document

15.6.1 Concrete Syntaxes Supported

[201] concrete syntaxes supported =
(ps [65] +,
concrete syntax [182] ,
( ps [65] +,
concrete syntax changes [202] )?)+
Reference {15.6.1, 489:12} Used in: system declaration[200]
15.6.1.1 Concrete Syntax Changes
[202] concrete syntax changes =
"CHANGES" ,
ps [65] +,
( "SWITCHES" |
( "DELIMLEN" ,
ps [65] +,
number [56] ,
ps [65] +,
"SEQUENCE" ,
ps [65] +,
( "YES" |
"NO" ),
ps [65] +,
"SRCNT" ,
ps [65] +,
number [56] ,
ps [65] +
"SRLEN" ,
ps [65] +,
number [56] ))
Reference {15.6.1.1, 490:5} Used in: concrete syntaxes supported[201]

15.6.2 Validation Services

[203] validation services =
"VALIDATE" ,
ps [65] +,
"GENERAL" ,
ps [65] +,
( "NO" |
"YES" ),
ps+,
"MODEL" ,
ps [65] +,
( "NO" |
"YES" ),
ps+,
"EXCLUDE" ,
ps [65] +,
( "NO" |
"YES" ),
ps+,
"CAPACITY" ,
ps [65] +,
( "NO" |
"YES" ),
ps+,
"NONSGML" ,
ps [65] +,
( "NO" |
"YES" ),
ps+,
"SGML" ,
ps [65] +,
( "NO" |
"YES" ),
ps+,
"FORMAL" ,
ps [65] +,
( "NO" |
"YES" )
Reference {15.6.2, 491:8} Used in: system declaration[200]

15.6.3 SDIF Support

[204] SDIF support =
"SDIF" ,
ps [65] +,
"PACK" ,
ps [65] +,
( "NO" |
( "YES" ,
( ps [65] +,
"ASN1" )?)),
ps [65] +,
"UNPACK" ,
ps [65] +,
( "NO" |
( "YES" ,
( ps [65] +,
"ASN1" )?))
Reference {15.6.3, 493:4} Used in: system declaration[200]

See the related DSSSL Syntax Summary Index of ISO/IEC 10179:1996, also by Harvey Bingham.

SGML Syntax Summary original 8 June 1988
Corrected 10 January 1992
Expanded and converted to HTML 26 Mar 1996
Updated 28 May 1996
Version 1.5 Nov 1996 Fixed typos in anchor placement in productions 9-12 changed response to use mailto Version 1.5.1 fixed syntax errors in 46 141, 159, 161, 178, 179 (Thanks to Mike C. Fletcher) added a few hyperlink HREFs in right-hand sides of productions

Harvey Bingham's home page
email hbingham@ACM.org

Copyright restrictions:
This material may be used freely for the purposes of studying SGML and promoting its application. This copyright notice shall be included in any subsequent copies. The author reserves the right to update this material and to determine the primary server on which it is available.