summaryrefslogtreecommitdiffstats
path: root/usr.bin/sgmls/sgmls/sgmls.1
blob: 1b070db0109234baf0f6ac8ef86aaf037cfa2d76 (plain)
1
2
3
4
5
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
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
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
'\" $FreeBSD$
'\" t
.\" Uncomment the next line to get a man page accurate for MS-DOS
.\"nr Os 1
.\" Uncomment the next line if tracing is enabled.
.\"nr Tr 1
.if \n(.g .if !r Os .nr Os 0
.tr \(ts"
.ds S \s-1SGML\s0
.de TS
.br
.sp .5
..
.de TE
.br
.sp .5
..
.de TQ
.br
.ns
.TP \\$1
..
.TH SGMLS 1
.SH NAME
sgmls \- a validating SGML parser
.sp
An \*S System Conforming to
.if n .br
International Standard ISO 8879 \(em
.br
Standard Generalized Markup Language
.SH SYNOPSIS
.B sgmls
[
.B \-deglprsuv
]
[
.BI \-c file
]
.if \n(Os=1 \{\
[
.BI \-f file
]
.\}
[
.BI \-i name
]
[
.BI \-m file
]
.if \n(Tr \{\
[
.BI \-x flags
]
[
.BI \-y flags
]
.\}
[
.I filename\|.\|.\|.
]
.SH DESCRIPTION
.I Sgmls
parses and validates
the \*S document entity in
.I filename\|.\|.\|.
and prints on the standard output a simple \s-1ASCII\s0 representation of its
Element Structure Information Set.
(This is the information set which a structure-controlled
conforming \*S application should act upon.)
Note that the document entity may be spread amongst several files;
for example, the SGML declaration, document type declaration and document
instance set could each be in a separate file.
If no filenames are specified, then
.I sgmls
will read the document entity from the standard input.
A filename of
.B \-
can also be used to refer to the standard input.
.LP
The following options are available:
.TP
.BI \-c file
Report any capacity limits that are exceeded
and write a report of capacity usage to
.IR file .
The report is in the format of a RACT result.
RACT is the Reference Application for Capacity Testing defined in the
Proposed American National Standard
.I
Conformance Testing for Standard Generalized Markup Language (SGL) Systems
(X3.190-199X),
Draft July 1991.
.TP
.B \-d
Warn about duplicate entity declarations.
.TP
.B \-e
Describe open entities in error messages.
Error messages always include the position of the most recently
opened external entity.
.if \n(Os=1 \{\
.TP
.BI \-f file
Redirect errors to
.IR file .
.\}
.TP
.B \-g
Show the \s-1GI\s0s of open elements in error messages.
.TP
.BI \-i name
Pretend that
.RS
.IP
.BI <!ENTITY\ %\  name\  \(tsINCLUDE\(ts>
.LP
occurs at the start of the document type declaration subset
in the \*S document entity.
Since repeated definitions of an entity are ignored,
this definition will take precedence over any other definitions
of this entity in the document type declaration.
Multiple
.B \-i
options are allowed.
If the \*S declaration replaces the reserved name
.B INCLUDE
then the new reserved name will be the replacement text of the entity.
Typically the document type declaration will contain
.IP
.BI <!ENTITY\ %\  name\  \(tsIGNORE\(ts>
.LP
and will use
.BI % name ;
in the status keyword specification of a marked section declaration.
In this case the effect of the option will be to cause the marked
section not to be ignored.
.RE
.TP
.B \-l
Output
.B L
commands giving the current line number and filename.
.TP
.BI \-m file
Map public identifiers and entity names to system identifiers
using the catalog entry file
.IR file .
Multiple
.B \-m
options are allowed.
Catalog entry files specified with the
.B -m
option will be searched before the defaults.
.TP
.B \-p
Parse only the prolog.
.I Sgmls
will exit after parsing the document type declaration.
Implies
.BR \-s .
.TP
.B \-r
Warn about defaulted references.
.TP
.B \-s
Suppress output.
Error messages will still be printed.
.TP
.B \-u
Warn about undefined elements: elements used in the DTD but not defined.
.TP
.B \-v
Print the version number.
.if \n(Tr \{\
.TP
.BI \-x flags
.br
.ns
.TP
.BI \-y flags
Enable debugging output;
.B \-x
applies to the document body,
.B \-y
to the prolog.
Each character in the
.I flags
argument enables tracing of a particular activity.
.RS
.TP
.B t
Trace state transitions.
.TP
.B a
Trace attribute activity.
.TP
.B c
Trace context checking.
.TP
.B d
Trace declaration parsing.
.TP
.B e
Trace entities.
.TP
.B g
Trace groups.
.TP
.B i
Trace \s-1ID\s0s.
.TP
.B m
Trace marked sections.
.TP
.B n
Trace notations.
.RE
.\}
.SS "Entity Manager"
An external entity resides in one or more files.
The entity manager component of
.I sgmls
maps a sequence of files into an entity in three sequential stages:
.IP 1.
each carriage return character is turned into a non-SGML character;
.IP 2.
each newline character is turned into a record end character,
and at the same time
a record start character is inserted at the beginning of each line;
.IP 3.
the files are concatenated.
.LP
A system identifier is
interpreted as a list of filenames separated by
.if \n(Os=0 colons.
.if \n(Os=1 semi-colons.
A filename of
.B \-
can be used to refer to the standard input.
.LP
If a system identifier is not specified,
then the entity manager can generate one using catalog
entry files in the format defined in the SGML Open Draft Technical
Resolution on Entity Management.  A catalog entry file contains a
sequence of entries in one of the following four forms:
.TP
.BI PUBLIC\  pubid\ sysid
This specifies that
.I sysid
should be used as the system identifier if the public
identifier is
.IR pubid .
.I Sysid
is a system identifier as defined in ISO 8879 and
.I pubid
is a public identifier as defined in ISO 8879.
.TP
.BI ENTITY\  name\ sysid
This specifies that
.I sysid
should be used as the system identifier if the entity is a general
entity whose name is
.IR name .
.TP
.BI ENTITY\ % name\ sysid
This specifies that
.I sysid
should be used as the system identifier if the entity is a parameter
entity whose name is
.IR name .
Note that there is no space between the
.B %
and the
.IR name .
.TP
.BI DOCTYPE\  name\ sysid
This specifies that
.I sysid
should be used as the system identifier if the entity is an
entity declared in a document type declaration whose document type name is
.IR name .
.LP
The last two forms are extensions to the SGML Open format.
The delimiters can be omitted from the
.I sysid
provided it does not contain any white space.
Comments are allowed between parameters delimited by
.B --
as in SGML.
The environment variable
.B \s-1SGML_CATALOG_FILES\s0
contains a
.if \n(Os=0 colon-separated
.if \n(Os=1 semicolon-separated
list of catalog entry files.
These will be searched after any catalog entry files specified
using the
.B \-m
option.
If this environment variable is not set,
then a system dependent list of catalog entry files will be used.
A match in a catalog entry file for a PUBLIC entry will take
precedence over a match in the same file for an ENTITY
or DOCTYPE entry.
A filename in a system identifier in a catalog entry file
is interpreted relative to the directory containing the catalog
entry file.
.LP
If no match can be found in a catalog entry file, then the entity
manager will attempt to generate a filename using the public
identifier (if there is one) and other information available to it.
Notation identifiers are not subject to this treatment.  This process
is controlled by the environment variable
.BR \s-1SGML_PATH\s0 ;
this contains a
.if \n(Os=0 colon-separated
.if \n(Os=1 semicolon-separated
list of filename templates.
A filename template is a filename that may contain
substitution fields; a substitution field is a
.B %
character followed by a single letter that indicates the value
of the substitution.
The value of a substitution can either be a string
or it can be
.IR null .
The entity manager transforms the list of
filename templates into a list of filenames by substituting for each
substitution field and discarding any template
that contained a substitution field whose value was null.
It then uses the first resulting filename that exists and is readable.
Substitution values are transformed before being used for substitution:
firstly, any names that were subject to upper case substitution
are folded to lower case;
secondly,
.if \n(Os=0 \{\
.\" Unix
space characters are mapped to underscores
and slashes are mapped to percents.
.\}
.if \n(Os=1 \{\
.\" MS-DOS
the characters
.B +,./:=?
and space characters are deleted.
.\}
The value of the
.B %S
field is not transformed.
The values of substitution fields are as follows:
.TP
.B %%
A single
.BR % .
.TP
.B %D
The entity's data content notation.
This substitution will succeed only for external data entities.
.TP
.B %N
The entity, notation or document type name.
.TP
.B %P
The public identifier if there was a public identifier,
otherwise null.
.TP
.B %S
The system identifier if there was a system identifier
otherwise null.
.TP
.B %X
(This is provided mainly for compatibility with \s-1ARCSGML\s0.)
A three-letter string chosen as follows:
.LP
.RS
.ne 11
.TS
tab(&);
c|c|c s
c|c|c s
c|c|c|c
c|c|c|c
l|lB|lB|lB.
&&With public identifier
&&_
&No public&Device&Device
&identifier&independent&dependent
_
Data or subdocument entity&nsd&pns&vns
General SGML text entity&gml&pge&vge
Parameter entity&spe&ppe&vpe
Document type definition&dtd&pdt&vdt
Link process definition&lpd&plp&vlp
.TE
.LP
The device dependent version is selected if the public text class
allows a public text display version but no public text display
version was specified.
.RE
.TP
.B %Y
The type of thing for which the filename is being generated:
.TS
tab(&);
l lB.
SGML subdocument entity&sgml
Data entity&data
General text entity&text
Parameter entity&parm
Document type definition&dtd
Link process definition&lpd
.TE
.LP
The value of the following substitution fields will be null
unless a valid formal public identifier was supplied.
.TP
.B %A
Null if the text identifier in the
formal public identifier contains an unavailable text indicator,
otherwise the empty string.
.TP
.B %C
The public text class, mapped to lower case.
.TP
.B %E
The public text designating sequence (escape sequence)
if the public text class is
.BR \s-1CHARSET\s0 ,
otherwise null.
.TP
.B %I
The empty string if the owner identifier in the formal public identifier
is an \s-1ISO\s0 owner identifier,
otherwise null.
.TP
.B %L
The public text language, mapped to lower case,
unless the public text class is
.BR \s-1CHARSET\s0 ,
in which case null.
.TP
.B %O
The owner identifier (with the
.B +//
or
.B \-//
prefix stripped.)
.TP
.B %R
The empty string if the owner identifier in the formal public identifier
is a registered owner identifier,
otherwise null.
.TP
.B %T
The public text description.
.TP
.B %U
The empty string if the owner identifier in the formal public identifier
is an unregistered owner identifier,
otherwise null.
.TP
.B %V
The public text display version.
This substitution will be null if the public text class
does not allow a display version or if no version was specified.
If an empty version was specified, a value of
.B default
will be used.
.LP
Normally if the external identifier for an entity includes a system
identifier, the entity manager will use the specified system
identifier and not attempt to generate one.
If, however,
.B \s-1SGML_PATH\s0
uses the
.B %S
field,
then the entity manager will first search for a matching
entry in the catalog entry files.
If a match is found, then this will be used instead of the
specified system identifier.
Otherwise,
if the specified system identifier does not contain any
.if \n(Os=0 colons,
.if \n(Os=1 semi-colons,
the entity manager will use
.B \s-1SGML_PATH\s0
to generate a filename.
Otherwise the entity manager will use the specified system identifier.
.br
.ne 18
.SS "System declaration"
The system declaration for
.I sgmls
is as follows:
.LP
.TS
tab(&);
c1 s1 s1 s1 s1 s1 s1 s1 s
c s s s s s s s s
l l s s s s s s s
l l s s s s s s s
l l s s s s s s s
l l l s s s s s s
c s s s s s s s s
l l l l l l l l l
l l l l l l l l l
l l l l l l l l l
l l s s s s s s s
l l l s s s s s s
l l l s s s s s s
c s s s s s s s s
l l l l l l l l l.
SYSTEM "ISO 8879:1986"
CHARSET
BASESET&"ISO 646-1983//CHARSET
&\h'\w'"'u'International Reference Version (IRV)//ESC 2/5 4/0"
DESCSET&0\0128\00
CAPACITY&PUBLIC&"ISO 8879:1986//CAPACITY Reference//EN"
FEATURES
MINIMIZE&DATATAG&NO&OMITTAG&YES&RANK&NO&SHORTTAG&YES
LINK&SIMPLE&NO&IMPLICIT&NO&EXPLICIT&NO
OTHER&CONCUR&NO&SUBDOC&YES 1&FORMAL&YES
SCOPE&DOCUMENT
SYNTAX&PUBLIC&"ISO 8879:1986//SYNTAX Reference//EN"
SYNTAX&PUBLIC&"ISO 8879:1986//SYNTAX Core//EN"
VALIDATE
&GENERAL&YES&MODEL&YES&EXCLUDE&YES&CAPACITY&YES
&NONSGML&YES&SGML&YES&FORMAL&YES
.T&
c s s s s s s s s
l l l l l l l l l.
SDIF
&PACK&NO&UNPACK&NO
.TE
.LP
Exceeding a capacity limit will be ignored unless the
.B \-c
option is given.
.LP
The memory usage of
.I sgmls
is not a function of the capacity points used by a document;
however,
.I sgmls
can handle capacities significantly greater than the reference capacity set.
.LP
In some environments,
higher values may be supported for the \s-1SUBDOC\s0 parameter.
.LP
Documents that do not use optional features are also supported.
For example, if
.B FORMAL\ NO
is specified in the \*S declaration,
public identifiers will not be required to be valid formal public identifiers.
.LP
Certain parts of the concrete syntax may be changed:
.RS
.LP
The shunned character numbers can be changed.
.LP
Eight bit characters can be assigned to
\s-1LCNMSTRT\s0, \s-1UCNMSTRT\s0, \s-1LCNMCHAR\s0 and \s-1UCNMCHAR\s0.
.LP
Uppercase substitution can be performed or not performed
both for entity names and for other names.
.LP
Either short reference delimiters assigned by the reference delimiter set
or no short reference delimiters are supported.
.LP
The reserved names can be changed.
.LP
The quantity set can be increased within certain limits
subject to there being sufficient memory available.
The upper limit on \s-1\%NAMELEN\s0 is 239.
The upper limits on
\s-1\%ATTCNT\s0, \s-1\%ATTSPLEN\s0, \s-1\%BSEQLEN\s0, \s-1\%ENTLVL\s0,
\s-1\%LITLEN\s0, \s-1\%PILEN\s0, \s-1\%TAGLEN\s0, and \s-1\%TAGLVL\s0
are more than thirty times greater than the reference limits.
The upper limit on
\s-1\%GRPCNT\s0, \s-1\%GRPGTCNT\s0, and \s-1\%GRPLVL\s0 is 253.
\s-1\%NORMSEP\s0
cannot be changed.
\s-1\%DTAGLEN\s0
are
\s-1\%DTEMPLEN\s0
irrelevant since
.I sgmls
does not support the
\s-1\%DATATAG\s0
feature.
.RE
.SS "\*S declaration"
The \*S declaration may be omitted,
the following declaration will be implied:
.TS
tab(&);
c1 s1 s1 s1 s1 s1 s1 s1 s
c s s s s s s s s
l l s s s s s s s.
<!SGML "ISO 8879:1986"
CHARSET
BASESET&"ISO 646-1983//CHARSET
&\h'\w'"'u'International Reference Version (IRV)//ESC 2/5 4/0"
DESCSET&\0\00\0\09\0UNUSED
&\0\09\0\02\0\09
&\011\0\02\0UNUSED
&\013\0\01\013
&\014\018\0UNUSED
&\032\095\032
&127\0\01\0UNUSED
.T&
l l l s s s s s s
l l s s s s s s s
l l l s s s s s s
c s s s s s s s s
l l l l l l l l l.
CAPACITY&PUBLIC&"ISO 8879:1986//CAPACITY Reference//EN"
SCOPE&DOCUMENT
SYNTAX&PUBLIC&"ISO 8879:1986//SYNTAX Reference//EN"
FEATURES
MINIMIZE&DATATAG&NO&OMITTAG&YES&RANK&NO&SHORTTAG&YES
LINK&SIMPLE&NO&IMPLICIT&NO&EXPLICIT&NO
OTHER&CONCUR&NO&SUBDOC&YES 99999999&FORMAL&YES
.T&
c s s s s s s s s.
APPINFO NONE>
.TE
with the exception that characters 128 through 254 will be assigned to
\s-1DATACHAR\s0.
.LP
.I Sgmls
identifies base character sets using the designating sequence in the
public identifier.  The following designating sequences are
recognized:
.TS
tab(&);
c c c c c
c c c c ^
c c c c ^
l n n n l.
Designating&ISO&Minimum&Number&Description
Escape&Registration&Character&of&
Sequence&Number&Number&Characters&
_
ESC 2/5 4/0&-&0&128&full set of ISO 646 IRV
ESC 2/8 4/0&2&33&94&G0 set of ISO 646 IRV
ESC 2/8 4/2&6&33&94&G0 set of ASCII
ESC 2/13 4/1&100&32&96&G1 set of ISO 8859-1
ESC 2/1 4/0&1&0&32&C0 set of ISO 646
ESC 2/2 4/3&77&0&32&C1 set of ISO 6429
ESC 2/5 2/15 3/0&-&0&256&the system character set
.TE
.LP
When one of the G0 sets is used as a base set, the characters SPACE
and DELETE are treated as occurring at positions 32 and 127
respectively; although these characters are not part of the character
sets designated by the escape sequences, this mimics the behaviour of
ISO 2022 with respect to these code positions.
.SS "Output format"
The output is a series of lines.
Lines can be arbitrarily long.
Each line consists of an initial command character
and one or more arguments.
Arguments are separated by a single space,
but when a command takes a fixed number of arguments
the last argument can contain spaces.
There is no space between the command character and the first argument.
Arguments can contain the following escape sequences.
.TP
.B \e\e
A
.BR \e.
.TP
.B \en
A record end character.
.TP
.B \e|
Internal \s-1SDATA\s0 entities are bracketed by these.
.TP
.BI \e nnn
The character whose code is
.I nnn
octal.
.LP
A record start character will be represented by
.BR \e012 .
Most applications will need to ignore
.B \e012
and translate
.B \en
into newline.
.LP
The possible command characters and arguments are as follows:
.TP
.BI ( gi
The start of an element whose generic identifier is
.IR gi .
Any attributes for this element
will have been specified with
.B A
commands.
.TP
.BI ) gi
The end an element whose generic identifier is
.IR gi .
.TP
.BI \- data
Data.
.TP
.BI & name
A reference to an external data entity
.IR name ;
.I name
will have been defined using an
.B E
command.
.TP
.BI ? pi
A processing instruction with data
.IR pi .
.TP
.BI A name\ val
The next element to start has an attribute
.I name
with value
.I val
which takes one of the following forms:
.RS
.TP
.B IMPLIED
The value of the attribute is implied.
.TP
.BI CDATA\  data
The attribute is character data.
This is used for attributes whose declared value is
.BR \s-1CDATA\s0 .
.TP
.BI NOTATION\  nname
The attribute is a notation name;
.I nname
will have been defined using a
.B N
command.
This is used for attributes whose declared value is
.BR \s-1NOTATION\s0 .
.TP
.BI ENTITY\  name\|.\|.\|.
The attribute is a list of general entity names.
Each entity name will have been defined using an
.BR I ,
.B E
or
.B S
command.
This is used for attributes whose declared value is
.B \s-1ENTITY\s0
or
.BR \s-1ENTITIES\s0 .
.TP
.BI TOKEN\  token\|.\|.\|.
The attribute is a list of tokens.
This is used for attributes whose declared value is anything else.
.RE
.TP
.BI D ename\ name\ val
This is the same as the
.B A
command, except that it specifies a data attribute for an
external entity named
.IR ename .
Any
.B D
commands will come after the
.B E
command that defines the entity to which they apply, but
before any
.B &
or
.B A
commands that reference the entity.
.TP
.BI N nname
.IR nname.
Define a notation
This command will be preceded by a
.B p
command if the notation was declared with a public identifier,
and by a
.B s
command if the notation was declared with a system identifier.
A notation will only be defined if it is to be referenced
in an
.B E
command or in an
.B A
command for an attribute with a declared value of
.BR \s-1NOTATION\s0 .
.TP
.BI E ename\ typ\ nname
Define an external data entity named
.I ename
with type
.I typ
.RB ( \s-1CDATA\s0 ,
.B \s-1NDATA\s0
or
.BR \s-1SDATA\s0 )
and notation
.IR not.
This command will be preceded by one or more
.B f
commands giving the filenames generated by the entity manager from the system
and public identifiers,
by a
.B p
command if a public identifier was declared for the entity,
and by a
.B s
command if a system identifier was declared for the entity.
.I not
will have been defined using a
.B N
command.
Data attributes may be specified for the entity using
.B D
commands.
An external data entity will only be defined if it is to be referenced in a
.B &
command or in an
.B A
command for an attribute whose declared value is
.B \s-1ENTITY\s0
or
.BR \s-1ENTITIES\s0 .
.TP
.BI I ename\ typ\ text
Define an internal data entity named
.I ename
with type
.I typ
.RB ( \s-1CDATA\s0
or
.BR \s-1SDATA\s0 )
and entity text
.IR text .
An internal data entity will only be defined if it is referenced in an
.B A
command for an attribute whose declared value is
.B \s-1ENTITY\s0
or
.BR \s-1ENTITIES\s0 .
.TP
.BI S ename
Define a subdocument entity named
.IR ename .
This command will be preceded by one or more
.B f
commands giving the filenames generated by the entity manager from the system
and public identifiers,
by a
.B p
command if a public identifier was declared for the entity,
and by a
.B s
command if a system identifier was declared for the entity.
A subdocument entity will only be defined if it is referenced
in a
.B {
command
or in an
.B A
command for an attribute whose declared value is
.B \s-1ENTITY\s0
or
.BR \s-1ENTITIES\s0 .
.TP
.BI s sysid
This command applies to the next
.BR E ,
.B S
or
.B N
command and specifies the associated system identifier.
.TP
.BI p pubid
This command applies to the next
.BR E ,
.B S
or
.B N
command and specifies the associated public identifier.
.TP
.BI f filename
This command applies to the next
.B E
or
.B S
command and specifies an associated filename.
There will be more than one
.B f
command for a single
.B E
or
.B S
command if the system identifier used a
.if \n(Os=0 colon.
.if \n(Os=1 semi-colon.
.TP
.BI { ename
The start of the \*S subdocument entity
.IR ename ;
.I ename
will have been defined using a
.B S
command.
.TP
.BI } ename
The end of the \*S subdocument entity
.IR ename .
.TP
.BI L lineno\ file
.TQ
.BI L lineno
Set the current line number and filename.
The
.I filename
argument will be omitted if only the line number has changed.
This will be output only if the
.B \-l
option has been given.
.TP
.BI # text
An \s-1APPINFO\s0 parameter of
.I text
was specified in the \*S declaration.
This is not strictly part of the ESIS, but a structure-controlled
application is permitted to act on it.
No
.B #
command will be output if
.B \s-1APPINFO\s0\ \s-1NONE\s0
was specified.
A
.B #
command will occur at most once,
and may be preceded only by a single
.B L
command.
.TP
.B C
This command indicates that the document was a conforming \*S document.
If this command is output, it will be the last command.
An \*S document is not conforming if it references a subdocument entity
that is not conforming.
.SH BUGS
Some non-SGML characters in literals are counted as two characters for the
purposes of quantity and capacity calculations.
.SH "SEE ALSO"
The \*S Handbook, Charles F. Goldfarb
.br
\s-1ISO\s0 8879 (Standard Generalized Markup Language),
International Organization for Standardization
.SH ORIGIN
\s-1ARCSGML\s0 was written by Charles F. Goldfarb.
.LP
.I Sgmls
was derived from \s-1ARCSGML\s0 by James Clark (jjc@jclark.com),
to whom bugs should be reported.
OpenPOWER on IntegriCloud