Productions from ISO 8879:1986 - SGML

From ISO 8879:1986 as reproduced in The SGML Handbook by Charles F. Goldfarb, copyright © 1986, 1988, 1990; from TC for Extended Naming Rules for SGML, copyright © 1996; and from ISO 8879 TC2 ("WebSGML"), copyright © 1997; all copyrights held by the International Organization for Standardization. Excerpted as fair use, as a reference for those with access to the Standard. This information does not stand on its own, and is not useful without the defining text of the Standard.

There are syntactic errors in ISO 8879 TC2, including trailing commas at the end of productions. Those errors are faithfully reproduced here, with the exception that clause K.4.8.3 clearly intended to replace production [3] and not production [2]. A list of what I believe the errors in productions to be is available. Most of the error corrections are being incorporated in a draft corrigendum.

[This document was created in 1995 for my own reference, and updated for the TCs in 1997. I hardly do anything with full SGML any more, and haven't needed this in quite some time, but I've kept it for historical interest. I've deliberately decided not to update it from its original HTML 2.0 for that reason; note in particular the use of pre elements instead of tables.]


[1] [2] [3] [4] [5] [5.1] [5.2] [6] [7] [8] [9] [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] [35.1] [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] [62.1] [62.2] [62.3] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [83.1] [84] [85] [86] [87] [87.1] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [145.1] [146] [147] [148] [149] [149.1] [149.2] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [163.1] [164] [165] [166] [166.1] [167] [168] [168.1] [169] [170] [171] [171.1] [171.2] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189] [189.1] [189.2] [190] [191] [192] [193] [194] [194.1] [195] [196] [196.1] [196.2] [196.3] [196.4] [196.5] [197] [198] [198.1] [198.2] [198.3] [198.4] [199] [199.1] [200] [201] [202] [203] [204]

Figure 1 - Character Classes: Abstract Syntax

          Characters    Numbers     Description
Digit     0-9           48-57       Digits
Ee        system signal             Entity end signal
hexdigit  0-9 A-F a-f   48-57 65-70 Hexadecimal digits
                         97-102
LC Letter a-z           97-122      Lower-case letters
Special   '()+,-./:=?   39-41 43-47 Special minimum data characters
                         58 61 63
UC Letter A-Z           65-90       Upper-case letters

Figure 2 - Character Classes: Concrete Syntax

DATACHAR  implicit      implicit    Dedicated data characters
DELMCHAR  implicit      implicit    Delimiter characters
FUNCHAR   none          none        Inert function characters
LCNMCHAR  -.            45 46       Lower-case name characters
LCNMSTRT  none          none        Lower-case name start characters
MSICHAR   none          none        Markup-scan-in characters
MSOCHAR   none          none        Markup-scan-out characters
MSSCHAR   none          none        Markup-scan-suppress characters
NONSGML                             Unused characters from declaration
RE                      13          Record end character
RS                      10          Record start character
SEPCHAR                 9           Separator characters
SPACE                   32          Space character
UCNMCHAR  -.            45 46       Upper-case name characters
UCNMSTRT  none          none        Upper-case name start characters

Figure 3 - Reference Delimeter Set: General; Figure 4 - Reference Delimiter Set: Short References

and       &
com       --
cro       &#
dsc       ]
dso       [
dtgc      ]
dtgo      [
ero       &
etago     </
grpc      )
grpo      (
hcro      (none)
lit       "
lita      '
mdc       >
mdo       <!
minus     -
msc       ]]
nestc     net
net       /
opt       ?
or        |
pero      %
pic       >
pio       <?
plus      +
refc      ;
rep       *
rni       #
seq       ,
shortref  "#%'()*+,-:;=@[]^_{|}~ &#TAB; &#RE; &#RS; &#RS;B &#RS;&#RE; &#RS;B&#RE; B&#RE; &#SPACE; BB -- 
stago     <
tagc      >
vi        =

Productions

[1] SGML document =
SGML document entity,
(
SGML subdocument entity |
SGML text entity |
character data entity |
specific character data entity |
non-SGML data entity )*
[2] SGML document entity =
s*,
SGML declaration,
prolog,
document instance set,
Ee
[3] SGML subdocument entity =
(
s*,
SGML declaration )?,
prolog,
document instance set,
Ee
[4] SGML text entity =
SGML character*,
Ee
[5] s =
SPACE |
RE |
RS |
SEPCHAR
[5.1] character data entity =
SGML character*,
Ee
[5.2] specific character data entity =
SGML character*,
Ee
[6] non-SGML data entity =
character*,
Ee
[7] prolog =
other prolog*,
base document type declaration,
(
document type declaration |
other prolog )*,
(
link type declaration |
other prolog )*
[8] other prolog =
comment declaration |
processing instruction |
s
[9] base document type declaration =
document type declaration
[10] document instance set =
base document element,
other prolog*
[11] base document element =
document element
[12] document element =
element
[13] element =
start-tag?,
content,
end-tag?
[14] start-tag =
(
stago,
document type specification,
generic identifier specification,
attribute specification list,
s*,
tagc ) |
minimized start-tag
[15] minimized start-tag =
empty start-tag |
unclosed start-tag |
net-enabling start-tag
[16] empty start-tag =
stago,
tagc
[17] unclosed start-tag =
stago,
document type specification,
generic identifier specification,
attribute specification list,
s*
[18] net-enabling start-tag =
stago,
generic identifier specification,
attribute specification list,
s*,
nestc
[19] end-tag =
(
etago,
document type specification,
generic identifier specification,
s*,
tagc ) |
minimized end-tag
[20] minimized end-tag =
empty end-tag |
unclosed end-tag |
null end-tag
[21] empty end-tag =
etago,
tagc
[22] unclosed end-tag =
etago,
document type specification,
generic identifier specification,
s*
[23] null end-tag =
net
[24] content =
mixed content |
element content |
replaceable character data |
character data
[25] mixed content =
(
data character |
element |
other content )*
[26] element content =
(
element |
other content |
s )*
[27] other content =
comment declaration |
short reference use declaration |
link set use declaration |
processing instruction |
shortref |
character reference |
general entity reference |
marked section declaration |
Ee
[28] document type specification =
name group?
[29] generic identifier specification =
generic identifier |
rank stem
[30] generic identifier =
name
[31] attribute specification list =
attribute specification*
[32] attribute specification =
s*,
(
name,
s*,
vi,
s* )?
attribute value specification
[33] attribute value specification =
attribute value |
attribute value literal
[34] attribute value literal =
(
lit,
replaceable character data*,
lit ) |
(
lita,
replaceable character data*,
lita )
[35] attribute value =
character data |
general entity name |
general entity name list |
id value |
id reference value |
id reference list |
name |
name list |
name token |
name token list |
notation name |
number |
number list |
number token |
number token list
[35.1] general entity name list =
name list
[36] id value =
name
[37] id reference list =
name list
[38] id reference value =
name
[39] name list =
name,
(
SPACE,
name )*
[40] name token list =
name token,
(
SPACE,
name token )*
[41] notation name =
name
[42] number list =
number,
(
SPACE,
number )*
[43] number token list =
number token,
(
SPACE,
number token )*
[44] processing instruction =
pio,
system data,
pic
[45] system data =
character data
[46] replaceable character data =
(
data character |
character reference |
general entity reference |
Ee )*
[47] character data =
data character*
[48] data character =
SGML character
[49] character =
SGML character |
NONSGML
[50] SGML character =
markup character |
DATACHAR
[51] markup character =
name character |
function character |
DELMCHAR
[52] name character =
name start character |
Digit |
LCNMCHAR |
UCNMCHAR
[53] name start character =
LC Letter |
UC Letter |
LCNMSTRT |
UCNMSTRT
[54] function character =
RE |
RS |
SPACE |
SEPCHAR |
MSOCHAR |
MSICHAR |
MSSCHAR |
FUNCHAR
[55] name =
name start character,
name character*
[56] number =
Digit+
[57] name token =
name character+
[58] number token =
Digit,
name character*
[59] general entity reference =
ero,
name group?,
name,
reference end
[60] parameter entity reference =
pero,
name group?,
name,
reference end
[61] reference end =
(
refc |
RE )?
[62] character reference =
named character reference |
numeric character reference |
hex character reference
[62.1] named character reference =
cro,
function name,
reference end
[62.2] numeric character reference =
cro,
character number,
reference end
[62.3] hex character reference =
hcro,
hexdigit+,
reference end
[63] function name =
"RE" |
"RS" |
"SPACE" |
name
[64] character number =
number
[65] ps =
s |
Ee |
parameter entity reference |
comment
[66] parameter literal =
(
lit,
replaceable parameter data,
lit ) |
(
lita,
replaceable parameter data,
lita )
[67] replaceable parameter data =
(
data character |
character reference |
parameter entity reference |
Ee )*
[68] name token group =
grpo,
ts*,
name token,
(
ts*,
connector,
ts*,
name token )*,
ts*,
grpc
[69] name group =
grpo,
ts*,
name,
(
ts*,
connector,
ts*,
name )*,
ts*,
grpc
[70] ts =
s |
Ee |
parameter entity reference
[71] ds =
s |
Ee |
parameter entity reference |
comment declaration |
processing instruction |
marked section declaration
[72] associated element type =
generic identifier |
name group
[73] external identifier =
(
"SYSTEM" |
(
"PUBLIC",
ps+,
public identifier ) ),
(
ps+,
system identifier )?
[74] public identifier =
minimum literal
[75] system identifier =
(
lit,
system data,
lit ) |
(
lita,
system data,
lita )
[76] minimum literal =
(
lit,
minimum data,
lit ) |
(
lita,
minimum data,
lita )
[77] minimum data =
minimum data character*
[78] minimum data character =
RS |
RE |
SPACE |
LC Letter |
UC Letter |
Digit |
Special
[79] formal public identifier =
owner identifier,
"//",
text identifier
[80] owner identifier =
ISO owner identifier |
registered owner identifier |
unregistered owner identifier |
internet domain name owner identifier
[81] ISO owner identifier =
minimum data
[82] registered owner identifier =
"+//",
minimum data
[83] unregistered owner identifier =
"-//",
minimum data
[83.1] internet domain name owner identifier =
"+//IDN ",
minimum data
[84] text identifier =
public text class,
SPACE,
unavailable text indicator?,
public text description,
"//",
(
public text language |
public text designating sequence ),
(
"//",
public text display version )?
[85] unavailable text indicator =
"-//"
[86] public text class =
name
[87] public text description =
ISO text description |
minimum data
[87.1] ISO text description =
minimum data
[88] public text language =
name
[89] public text designating sequence =
minimum data
[90] public text display version =
minimum data
[91] comment declaration =
mdo,
(
comment,
(
s |
comment )* )?,
mdc
[92] comment =
com,
SGML character*,
com
[93] marked section declaration =
marked section start,
status keyword specification,
dso,
marked section,
marked section end
[94] marked section start =
mdo,
dso
[95] marked section end =
msc,
mdc
[96] marked section =
SGML character*
[97] status keyword specification =
(
ps+,
(
status keyword |
"TEMP" ) )*,
ps*
[100] status keyword =
"CDATA" |
"IGNORE" |
"INCLUDE" |
"RCDATA"
[101] entity declaration =
mdo,
"ENTITY",
ps+,
entity name,
ps+,
entity text,
ps*,
mdc
[102] entity name =
general entity name |
parameter entity name
[103] general entity name =
name |
(
rni,
"DEFAULT" )
[104] parameter entity name =
pero,
ps+,
name
[105] entity text =
parameter literal |
data text |
bracketed text |
external entity specification
[106] data text =
(
"CDATA" |
"SDATA" |
"PI" ),
ps+,
parameter literal
[107] bracketed text =
(
"STARTTAG" |
"ENDTAG" |
"MS" |
"MD" ),
ps+,
parameter literal
[108] external entity specification =
external identifier,
(
ps+,
entity type )?
[109] entity type =
"SUBDOC" |
(
(
"CDATA" |
"NDATA" |
"SDATA" ),
ps+,
notation name,
data attribute specification? )
[110] document type declaration =
mdo,
"DOCTYPE",
ps+,
document type name,
(
ps+,
external identifier )?,
(
ps+,
dso,
document type declaration subset,
dsc )?,
ps*,
mdc
[111] document type name =
(
generic identifier
(
rni,
"IMPLIED" ) )
[112] document type declaration subset =
(
entity set |
element type set |
short reference set )*
[113] entity set =
(
entity declaration |
attribute definition list declaration |
notation declaration |
ds )*
[114] element type set =
(
element type declaration |
attribute definition list declaration |
notation declaration |
ds )*
[115] short reference set =
(
entity declaration |
short reference mapping declaration |
short reference use declaration |
ds )*
[116] element type declaration =
mdo,
"ELEMENT",
ps+,
element type,
(
ps+,
omitted tag minimization )?,
ps+,
(
declared content |
content model ),
ps*,
mdc
[117] element type =
generic identifier |
name group |
ranked element |
ranked group
[118] ranked element =
rank stem,
ps+,
rank suffix
[119] ranked group =
grpo,
ts*,
rank stem,
(
ts*,
connector,
ts*,
rank stem )*,
ts*,
grpc,
ps+,
rank suffix
[120] rank stem =
name
[121] rank suffix =
number
[122] omitted tag minimization =
start-tag minimization,
ps+,
end-tag minimization
[123] start-tag minimization =
"O" |
minus
[124] end-tag minimization =
"O" |
minus
[125] declared content =
"CDATA" |
"RCDATA" |
"EMPTY"
[126] content model =
(
model group |
"ANY" ),
(
ps+,
exceptions )?
[127] model group =
grpo,
ts*,
content token,
(
ts*,
connector,
ts*,
content token )*,
ts*,
grpc,
occurence indicator?
[128] content token =
primitive content token |
model group
[129] primitive content token =
(
rni,
"PCDATA" ) |
element token |
data tag group
[130] element token =
generic identifier,
occurrence indicator?
[131] connector =
and |
or |
seq
[132] occurence indicator =
opt |
plus |
rep
[133] data tag group =
dtgo,
ts*,
generic identifier,
ts*,
seq,
ts*,
data tag pattern,
ts*,
dtgc,
occurrence indicator?
[134] data tag pattern =
(
data tag template group |
data tag template ),
(
ts*,
seq,
ts*,
data tag padding template )?
[135] data tag template group =
grpo,
ts*,
data tag template,
(
ts*,
or,
ts*,
data tag template )*,
ts*,
grpc
[136] data tag template =
parameter literal
[137] data tag padding template =
parameter literal
[138] exceptions =
(
exclusions,
(
ps+,
inclusions )? ) |
inclusions
[139] inclusions =
plus,
name group
[140] exclusions =
minus,
name group
[141] attribute definition list declaration =
mdo,
"ATTLIST",
ps+,
(
(
associated element type |
(
rni,
(
"IMPLICIT" |
"ALL" ) ) ) |
(
rni,
"NOTATION",
ps+,
(
associated notation name |
(
rni,
(
"IMPLICIT" |
"ALL" ) ) ) ) ),
ps+,
attribute definition list,
ps*,
mdc
[142] attribute definition list =
attribute definition?,
(
ps+,
attribute definition )*
[143] attribute definition =
attribute name,
ps+,
declared value,
ps+,
default value
[144] attribute name =
name
[145] declared value =
"CDATA" |
"ENTITY" |
"ENTITIES" |
"ID" |
"IDREF" |
"IDREFS" |
"NAME" |
"NAMES" |
"NMTOKEN" |
"NMTOKENS" |
"NUMBER" |
"NUMBERS" |
"NUTOKEN" |
"NUTOKENS" |
notation |
name token group |
data specification
[145.1] data specification =
"DATA",
ps+,
notation name,
data attribute specification?,
[146] notation =
"NOTATION",
ps+,
name group
[147] default value =
(
(
rni,
"FIXED",
ps+ )?,
attribute value specification ) |
(
rni,
(
"REQUIRED" |
"CURRENT" |
"CONREF" |
"IMPLIED" ) )
[148] notation declaration =
mdo,
"NOTATION",
ps+,
notation name,
ps+,
notation identifier,
ps*,
mdc
[149] notation identifier =
external identifier
[149.1] associated notation name =
(
notation name |
name group )
[149.2] data attribute specification =
ps+,
dso,
attribute specification list,
s*,
dsc
[150] short reference mapping declaration =
mdo,
"SHORTREF",
ps+,
map name,
(
ps+,
parameter literal,
ps+,
name )+,
ps*,
mdc
[151] map name =
name
[152] short reference use declaration =
mdo,
"USEMAP",
ps+,
map specification,
(
ps+,
associated element type )?,
ps*,
mdc
[153] map specification =
map name |
(
rni,
"EMPTY" )
[154] link type declaration =
mdo,
"LINKTYPE",
ps+,
link type name,
ps+,
(
simple link specification |
implicit link specification |
explicit link specification ),
(
ps+,
external identifier )?,
(
ps+,
dso,
link type declaration subset,
dsc )?,
ps*,
mdc
[155] link type name =
name
[156] simple link specification =
rni,
"SIMPLE",
ps+,
rni,
"IMPLIED"
[157] implicit link specification =
source document type name,
ps+,
rni,
"IMPLIED"
[158] explicit link specification =
source document type name,
ps+,
result document type name
[159] source document type name =
document type name
[160] result document type name =
document type name
[161] link type declaration subset =
(
link attribute set |
link set declaration )*,
ID link set declaration?,
(
link attribute set |
link set declaration )*
[162] link attribute set =
(
attribute definition list declaration |
entity set )*
[163] link set declaration =
mdo,
"LINK",
ps+,
link set name,
(
ps+,
link rule )+
ps*,
mdc
[163.1] link rule =
source element specification |
explicit link rule
[164] link set name =
name |
(
rni,
"INITIAL" )
[165] source element specification =
associated element type,
(
ps+,
rni,
"USELINK",
ps+,
(
link set name |
(
rni,
"EMPTY" ) ) )?,
(
ps+,
link set specification )?,
link attribute specification?
[166] link attribute specification =
ps+,
dso,
attribute specification list,
s*,
dsc
[166.1] explicit link rule =
(
source element specification,
ps+,
result element specification ) |
(
source element specification,
ps+,
rni,
"IMPLIED" ) |
(
rni,
"IMPLIED",
ps+,
result element specification )
[167] result element specification =
generic identifier,
result attribute specification?
[168] result attribute specification =
ps+,
dso,
attribute specification list,
s*,
dsc
[168.1] ID link set declaration =
mdo,
"IDLINK",
(
ps+,
name,
ps+,
link rule )+,
ps*,
mdc
[169] link set use declaration =
mdo,
"USELINK",
ps+,
link set specification,
ps+,
link type name,
ps*,
mdc
[170] link set specification =
link set name |
(
rni,
"EMPTY" ) |
(
rni,
"RESTORE" )
[171] SGML declaration =
"<!SGML",
ps+,
(
SGML declaration body |
SGML declaration reference ),
ps*,
">"
[171.1] SGML declaration body =
minimum literal,
ps+,
document character set,
ps+,
capacity set,
ps+,
concrete syntax scope,
ps+,
concrete syntax,
ps+,
feature use,
ps+,
application-specific information,
(
ps+,
added requirements )?
[171.2] SGML declaration reference =
name,
external identifier?
[172] document character set =
"CHARSET",
ps+,
character set description
[173] character set description =
base character set,
ps+,
described character set portion,
(
ps+,
base character set,
ps+,
described character set portion )*
[174] base character set =
"BASESET",
ps+,
public identifier
[175] described character set portion =
"DESCSET",
(
ps+,
character description )+
[176] character description =
described set character number,
ps+,
number of characters,
ps+,
(
base set character number |
minimum literal |
"UNUSED" )
[177] described set character number =
character number
[178] base set character number =
character number
[179] number of characters =
number
[180] capacity set =
"CAPACITY",
ps+,
(
(
"PUBLIC",
ps+,
public identifier ) |
"NONE" |
(
"SGMLREF",
(
ps+,
name,
ps+,
number )+ ) )
[181] concrete syntax scope =
"SCOPE",
ps+,
(
"DOCUMENT" |
"INSTANCE" )
[182] concrete syntax =
"SYNTAX",
ps+,
(
public concrete syntax |
(
shunned character number identification,
ps+,
syntax-reference character set,
ps+,
function character identification,
ps+,
naming rules,
ps+,
delimiter set,
ps+,
reserved name use,
ps+,
quantity set,
(
ps+,
predefined data character entities )? ) )
[183] public concrete syntax =
"PUBLIC",
ps+,
public identifier,
(
ps+,
"SWITCHES",
(
ps+,
character number,
ps+,
character number )+ )?
[184] shunned character number identification =
"SHUNCHAR",
ps+,
(
"NONE" |
(
(
"CONTROLS" |
character number ),
(
ps+,
character number )* ) )
[185] syntax-reference character set =
character set description
[186] function character identification =
"FUNCTION",
ps+,
"RE",
ps+,
character number,
ps+,
"RS",
ps+,
character number,
ps+,
"SPACE",
ps+,
character number,
(
ps+,
added function,
ps+,
function class,
ps+,
character number )*
[187] added function =
name
[188] function class =
"FUNCHAR" |
"MSICHAR" |
"MSOCHAR" |
"MSSCHAR" |
"SEPCHAR"
[189] naming rules =
"NAMING",
ps+,
"LCNMSTRT",
(
ps+,
extended naming value )+,
ps+,
"UCNMSTRT",
(
ps+,
extended naming value )+,
ps+,
(
"NAMESTRT",
(
ps+,
extended naming value )+,
ps+ )?,
"LCNMCHAR",
(
ps+,
extended naming value )+,
ps+,
"UCNMCHAR",
(
ps+,
extended naming value )+,
ps+,
(
"NAMECHAR",
(
ps+,
extended naming value )+,
ps+ )?,
"NAMECASE",
ps+,
"GENERAL",
ps+,
(
"NO" |
"YES" ),
ps+,
"ENTITY",
ps+,
(
"NO" |
"YES" )
[189.1] extended naming value =
parameter literal |
character number |
character range
[189.2] character range =
character number,
ps*,
minus,
ps*,
character number
[190] delimiter set =
"DELIM",
ps+,
general delimiters,
ps+,
short reference delimiters
[191] general delimiters =
"GENERAL",
ps+,
"SGMLREF",
(
ps+,
name,
ps+,
parameter literal )*
[192] short reference delimiters =
"SHORTREF",
ps+,
(
"SGMLREF" |
"NONE" ),
(
ps+,
parameter literal )*
[193] reserved name use =
"NAMES",
ps+,
"SGMLREF",
(
ps+,
name,
ps+,
parameter literal )*
[194] quantity set =
"QUANTITY",
ps+,
(
"NONE" |
(
"SGMLREF",
(
ps+,
name,
ps+,
number )* ) )
[194.1] predefined data character entities =
"ENTITIES",
ps+,
(
"NONE" |
(
parameter literal,
ps+,
character number )+ )
[195] feature use =
"FEATURES",
ps+,
markup minimization features,
ps+,
link type features,
ps+,
other features
[196] markup minimization features =
"MINIMIZE",
ps+,
"DATATAG",
ps+,
(
"NO" |
"YES" ),
ps+,
"OMITTAG",
ps+,
(
"NO" |
"YES" ),
ps+,
"RANK",
ps+,
(
"NO" |
"YES" ),
ps+,
(
"SHORTTAG",
ps+,
(
"NO" |
"YES" |
(
start-tag options,
end-tag options,
attribute options ) ) ),
(
ps+,
empty element ending rules,
ps+,
implicit definitions )?
[196.1] start-tag options =
"STARTTAG",
ps+,
"EMPTY",
ps+,
(
"NO" |
"YES" ),
ps+,
"UNCLOSED",
ps+,
(
"NO" |
"YES" ),
ps+,
"NETENABL",
ps+,
(
"NO" |
"ALL" |
"IMMEDNET" )
[196.2] end-tag options =
"ENDTAG",
ps+,
"EMPTY",
ps+,
(
"NO" |
"YES" ),
ps+,
"UNCLOSED",
ps+,
(
"NO" |
"YES" )
[196.3] attribute options =
"ATTRIB",
ps+,
"DEFAULT",
ps+,
(
"NO" |
"YES" ),
ps+,
"OMITNAME",
(
"NO" |
"YES" ),
ps+,
"VALUE",
ps+,
(
"NO" |
"YES" )
[196.4] empty element ending rules =
"EMPTYNRM",
ps+,
(
"NO" |
"YES" ),
ps+,
[196.5] implicit definitions =
"IMPLYDEF",
ps+,
"ATTLIST",
ps+,
(
"NO" |
"YES" ),
ps+,
"DOCTYPE",
ps+,
(
"NO" |
"YES" ),
"ELEMENT",
ps+,
(
"NO" |
"YES" ),
ps+,
"ENTITY",
ps+,
(
"NO" |
"YES" ),
ps+,
"NOTATION",
ps+,
(
"NO" |
"YES" ),
ps+,
[197] link type features =
"LINK",
ps+,
"SIMPLE",
ps+,
(
"NO" |
(
"YES",
ps+,
number ) ),
ps+,
"IMPLICIT",
ps+,
(
"NO" |
"YES" ),
ps+,
"EXPLICIT",
ps+,
(
"NO" |
(
"YES",
ps+,
number ) )
[198] other features =
"OTHER",
ps+,
"CONCUR",
ps+,
(
"NO" |
"YES" ),
ps+,
"SUBDOC",
ps+,
(
"NO" |
"YES" ),
ps+,
"FORMAL",
ps+,
(
"NO" |
"YES" ),
(
urn feature,
keeprsre feature,
validity feature,
entities feature )?
[198.1] urn feature =
ps+,
"URN",
ps+,
(
"NO" |
"YES" )
[198.2] keeprsre feature =
ps+,
"KEEPRSRE",
ps+,
(
"YES" |
"NO" )
[198.3] validity feature =
ps+,
"VALIDITY",
ps+,
(
"NOASSERT" |
"TYPE" |
"TAG" |
"TYPE-TAG" )
[198.4] entities feature =
ps+,
"ENTITIES",
ps+,
(
"NOASSERT" |
(
"REF",
ps+,
(
"NONE" |
"INTERNAL" |
"ANY ),
ps+,
"INTEGRAL",
ps+,
(
"NO" |
"YES" ) ) )
[199] application-specific information =
"APPINFO",
ps+,
(
"NONE" |
minimum literal )
[199.1] added requirements =
"SEEALSO",
ps+,
(
"NONE" |
(
ps+,
public identifier )+ )
[200] system declaration =
mdo,
"SYSTEM",
ps+,
minimum literal,
ps+,
document character set,
ps+,
capacity set,
ps+,
feature use,
ps+,
concrete syntax scope,
ps+,
concrete syntaxes supported,
ps+,
validation services,
ps+,
SDIF support,
ps*,
mdc
[201] concrete syntaxes supported =
(
ps+,
concrete syntax,
(
ps+,
concrete syntax changes )? )+
[202] concrete syntax changes =
"CHANGES",
ps+,
(
"SWITCHES" |
(
"DELIMLEN",
ps+,
number,
ps+,
"SEQUENCE",
ps+,
(
"YES" |
"NO" ),
ps+,
"SRCNT",
ps+,
number,
ps+,
"SRLEN",
ps+,
number ) )
[203] validation services =
"VALIDATE",
ps+,
"GENERAL",
ps+,
(
"NO" |
"YES" ),
ps+,
"MODEL",
ps+,
(
"NO" |
"YES" ),
ps+,
"EXCLUDE",
ps+,
(
"NO" |
"YES" ),
ps+,
"CAPACITY",
ps+,
(
"NO" |
"YES" ),
ps+,
"NONSGML",
ps+,
(
"NO" |
"YES" ),
ps+,
"SGML",
ps+,
(
"NO" |
"YES" ),
ps+,
"FORMAL",
ps+,
(
"NO" |
"YES" ),
[204] SDIF support =
"SDIF",
ps+,
"PACK",
ps+,
(
"NO" |
(
"YES",
(
ps+,
"ASN1" )? ) ),
ps+,
"UNPACK",
ps+,
(
"NO" |
(
"YES",
(
ps+,
"ASN1" )? ) )

Best viewed with any browser.

Valid HTML
2.0! Last updated and validated 31 May 2001.