0000: 23 20 24 49 64 3a 20 74 6d 6d 6c 2e 64 74 64 2c # $Id: tmml.dtd,
0010: 76 20 31 2e 38 20 32 30 30 32 2f 30 35 2f 32 30 v 1.8 2002/05/20
0020: 20 32 30 3a 34 36 3a 31 31 20 6a 65 6e 67 6c 69 20:46:11 jengli
0030: 73 68 20 45 78 70 20 24 0a 23 20 0a 23 20 41 75 sh Exp $.# .# Au
0040: 74 68 6f 72 3a 09 4a 6f 65 20 45 6e 67 6c 69 73 thor:.Joe Englis
0050: 68 2c 20 3c 6a 65 6e 67 6c 69 73 68 40 75 73 65 h, <jenglish@use
0060: 72 73 2e 73 6f 75 72 63 65 66 6f 72 67 65 2e 6e rs.sourceforge.n
0070: 65 74 3e 0a 23 20 43 72 65 61 74 65 64 3a 09 38 et>.# Created:.8
0080: 20 46 65 62 20 31 39 39 39 0a 23 20 52 65 76 69 Feb 1999.# Revi
0090: 73 65 64 3a 09 32 34 20 4a 75 6c 20 31 39 39 39 sed:.24 Jul 1999
00a0: 0a 23 20 55 73 61 67 65 3a 0a 23 20 0a 23 20 3c .# Usage:.# .# <
00b0: 21 44 4f 43 54 59 50 45 20 20 28 6d 61 6e 70 61 !DOCTYPE (manpa
00c0: 67 65 20 7c 20 6d 61 6e 75 61 6c 29 20 20 50 55 ge | manual) PU
00d0: 42 4c 49 43 20 22 2d 2f 2f 6a 65 6e 67 6c 69 73 BLIC "-//jenglis
00e0: 68 2f 2f 44 54 44 20 54 4d 4d 4c 20 30 2e 36 2f h//DTD TMML 0.6/
00f0: 2f 45 4e 22 20 3e 0a 23 20 0a 23 20 58 4d 4c 20 /EN" >.# .# XML
0100: 44 54 44 20 66 6f 72 20 54 4d 4d 4c 2c 20 54 63 DTD for TMML, Tc
0110: 6c 20 4d 61 6e 75 61 6c 20 4d 61 72 6b 75 70 20 l Manual Markup
0120: 6c 61 6e 67 75 61 67 65 2e 0a 23 20 0a 23 20 53 language..# .# S
0130: 65 65 20 20 3c 55 52 4c 3a 20 68 74 74 70 3a 2f ee <URL: http:/
0140: 2f 74 6d 6d 6c 2e 73 6f 75 72 63 65 66 6f 72 67 /tmml.sourceforg
0150: 65 2e 6e 65 74 2f 20 3e 20 66 6f 72 20 6d 6f 72 e.net/ > for mor
0160: 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 0a 23 e information..#
0170: 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ===============
0180: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0190: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
01a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 23 20 =============.#
01b0: 0a 23 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 70 .# Information p
01c0: 6f 6f 6c 20 70 61 72 61 6d 65 74 65 72 20 65 6e ool parameter en
01d0: 74 69 74 69 65 73 3a 0a 23 20 0a 23 20 65 2e 73 tities:.# .# e.s
01e0: 79 6e 74 61 78 20 09 50 68 72 61 73 65 2d 6c 65 yntax .Phrase-le
01f0: 76 65 6c 20 65 6c 65 6d 65 6e 74 73 20 74 68 61 vel elements tha
0200: 74 20 72 65 66 65 72 20 74 6f 20 54 63 6c 20 73 t refer to Tcl s
0210: 79 6e 74 61 63 74 69 63 20 65 6e 74 69 74 69 65 yntactic entitie
0220: 73 2e 0a 23 20 65 2e 70 68 72 61 73 65 09 4f 74 s..# e.phrase.Ot
0230: 68 65 72 20 70 68 72 61 73 65 2d 6c 65 76 65 6c her phrase-level
0240: 20 65 6c 65 6d 65 6e 74 73 0a 23 20 65 2e 62 6c elements.# e.bl
0250: 6f 63 6b 09 42 6c 6f 63 6b 2d 6c 65 76 65 6c 20 ock.Block-level
0260: 65 6c 65 6d 65 6e 74 73 0a 23 20 65 2e 73 74 72 elements.# e.str
0270: 75 63 74 09 53 74 72 75 63 74 75 72 61 6c 20 65 uct.Structural e
0280: 6c 65 6d 65 6e 74 73 20 74 68 61 74 20 63 61 6e lements that can
0290: 20 61 70 70 65 61 72 20 64 69 72 65 63 74 6c 79 appear directly
02a0: 20 69 6e 20 61 20 73 65 63 74 69 6f 6e 0a 23 20 in a section.#
02b0: 0a 23 20 78 2e 62 6c 6f 63 6b 0a 23 20 78 2e 69 .# x.block.# x.i
02c0: 6e 6c 69 6e 65 09 55 73 65 64 20 66 6f 72 20 63 nline.Used for c
02d0: 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 0a 0a 6e 61 ustomization..na
02e0: 6d 65 73 70 61 63 65 20 61 20 3d 20 22 68 74 74 mespace a = "htt
02f0: 70 3a 2f 2f 72 65 6c 61 78 6e 67 2e 6f 72 67 2f p://relaxng.org/
0300: 6e 73 2f 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 ns/compatibility
0310: 2f 61 6e 6e 6f 74 61 74 69 6f 6e 73 2f 31 2e 30 /annotations/1.0
0320: 22 0a 0a 65 2e 73 79 6e 74 61 78 20 3d 0a 20 20 "..e.syntax =.
0330: 6d 0a 20 20 7c 20 6c 0a 20 20 7c 20 6f 0a 20 20 m. | l. | o.
0340: 7c 20 69 0a 20 20 7c 20 62 0a 20 20 7c 20 62 72 | i. | b. | br
0350: 0a 20 20 7c 20 74 65 72 6d 0a 20 20 7c 20 63 6d . | term. | cm
0360: 64 0a 20 20 7c 20 76 61 72 69 61 62 6c 65 0a 20 d. | variable.
0370: 20 7c 20 6d 65 74 68 6f 64 0a 20 20 7c 20 6f 70 | method. | op
0380: 74 69 6f 6e 0a 20 20 7c 20 66 69 6c 65 0a 20 20 tion. | file.
0390: 7c 20 73 79 73 63 6d 64 0a 20 20 7c 20 66 75 6e | syscmd. | fun
03a0: 0a 20 20 7c 20 77 69 64 67 65 74 0a 20 20 7c 20 . | widget. |
03b0: 70 61 63 6b 61 67 65 0a 20 20 7c 20 74 79 70 65 package. | type
03c0: 0a 20 20 7c 20 63 6c 61 73 73 0a 65 2e 70 68 72 . | class.e.phr
03d0: 61 73 65 20 3d 20 65 6d 70 68 20 7c 20 72 65 66 ase = emph | ref
03e0: 20 7c 20 75 72 6c 20 7c 20 73 61 6d 70 20 7c 20 | url | samp |
03f0: 63 6f 6d 6d 61 6e 64 20 7c 20 6e 65 77 0a 65 2e command | new.e.
0400: 62 6c 6f 63 6b 20 3d 0a 20 20 70 20 7c 20 75 6c block =. p | ul
0410: 20 7c 20 6f 6c 20 7c 20 64 6c 20 7c 20 73 6c 20 | ol | dl | sl
0420: 7c 20 78 6c 20 7c 20 65 78 61 6d 70 6c 65 20 7c | xl | example |
0430: 20 73 79 6e 74 61 78 20 7c 20 63 6f 6d 6d 61 6e syntax | comman
0440: 64 6c 69 73 74 20 7c 20 6f 70 74 6c 69 73 74 0a dlist | optlist.
0450: 65 2e 73 74 72 75 63 74 20 3d 20 61 72 67 6c 69 e.struct = argli
0460: 73 74 20 7c 20 6f 70 74 69 6f 6e 6c 69 73 74 0a st | optionlist.
0470: 78 2e 69 6e 6c 69 6e 65 20 3d 20 6e 6f 74 41 6c x.inline = notAl
0480: 6c 6f 77 65 64 0a 78 2e 62 6c 6f 63 6b 20 3d 20 lowed.x.block =
0490: 6e 6f 74 41 6c 6c 6f 77 65 64 0a 23 20 3d 3d 3d notAllowed.# ===
04a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
04b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
04c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
04d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 23 20 43 6f 6e 74 =========.# Cont
04e0: 65 6e 74 20 6d 6f 64 65 6c 73 3a 0a 23 20 0a 23 ent models:.# .#
04f0: 20 6d 2e 63 6f 64 65 09 28 63 6f 6d 70 75 74 65 m.code.(compute
0500: 72 29 20 74 65 78 74 0a 23 20 6d 2e 69 6e 6c 69 r) text.# m.inli
0510: 6e 65 09 69 6e 6c 69 6e 65 20 74 65 78 74 0a 23 ne.inline text.#
0520: 20 6d 2e 6d 69 78 65 64 09 6d 69 78 65 64 20 69 m.mixed.mixed i
0530: 6e 6c 69 6e 65 20 61 6e 64 20 62 6c 6f 63 6b 20 nline and block
0540: 65 6c 65 6d 65 6e 74 73 0a 23 20 6d 2e 74 6f 70 elements.# m.top
0550: 09 74 6f 70 2d 6c 65 76 65 6c 20 65 6c 65 6d 65 .top-level eleme
0560: 6e 74 73 20 28 69 6e 73 69 64 65 20 73 65 63 74 nts (inside sect
0570: 69 6f 6e 73 29 0a 6d 2e 69 6e 6c 69 6e 65 20 3d ions).m.inline =
0580: 20 28 74 65 78 74 20 7c 20 65 2e 70 68 72 61 73 (text | e.phras
0590: 65 20 7c 20 65 2e 73 79 6e 74 61 78 20 7c 20 78 e | e.syntax | x
05a0: 2e 69 6e 6c 69 6e 65 29 2a 0a 6d 2e 63 6f 64 65 .inline)*.m.code
05b0: 20 3d 20 28 74 65 78 74 20 7c 20 6e 65 77 20 7c = (text | new |
05c0: 20 65 2e 73 79 6e 74 61 78 20 7c 20 78 2e 69 6e e.syntax | x.in
05d0: 6c 69 6e 65 29 2a 0a 6d 2e 6d 69 78 65 64 20 3d line)*.m.mixed =
05e0: 20 28 74 65 78 74 20 7c 20 65 2e 70 68 72 61 73 (text | e.phras
05f0: 65 20 7c 20 65 2e 73 79 6e 74 61 78 20 7c 20 65 e | e.syntax | e
0600: 2e 62 6c 6f 63 6b 20 7c 20 78 2e 62 6c 6f 63 6b .block | x.block
0610: 20 7c 20 78 2e 69 6e 6c 69 6e 65 29 2a 0a 6d 2e | x.inline)*.m.
0620: 74 6f 70 20 3d 20 28 65 2e 62 6c 6f 63 6b 20 7c top = (e.block |
0630: 20 65 2e 73 74 72 75 63 74 20 7c 20 78 2e 62 6c e.struct | x.bl
0640: 6f 63 6b 29 2a 0a 23 20 3d 3d 3d 3d 3d 3d 3d 3d ock)*.# ========
0650: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0660: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0670: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0680: 3d 3d 3d 3d 0a 23 20 43 6f 6d 6d 6f 6e 20 61 74 ====.# Common at
0690: 74 72 69 62 75 74 65 73 3a 0a 61 2e 76 65 72 73 tributes:.a.vers
06a0: 69 6f 6e 20 3d 20 61 74 74 72 69 62 75 74 65 20 ion = attribute
06b0: 76 65 72 73 69 6f 6e 20 7b 20 74 65 78 74 20 7d version { text }
06c0: 3f 0a 23 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ?.# ============
06d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
06e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
06f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0700: 0a 23 20 54 6f 70 2d 6c 65 76 65 6c 20 65 6c 65 .# Top-level ele
0710: 6d 65 6e 74 3a 20 6d 61 6e 75 61 6c 0a 6d 2e 64 ment: manual.m.d
0720: 69 76 69 73 69 6f 6e 20 3d 0a 20 20 74 69 74 6c ivision =. titl
0730: 65 2c 0a 20 20 28 64 69 76 69 73 69 6f 6e 2a 20 e,. (division*
0740: 7c 20 28 6d 61 6e 70 61 67 65 20 7c 20 73 75 62 | (manpage | sub
0750: 64 6f 63 20 7c 20 65 78 74 72 65 66 29 2a 29 0a doc | extref)*).
0760: 6d 2e 6d 61 6e 75 61 6c 20 3d 0a 20 20 74 69 74 m.manual =. tit
0770: 6c 65 2c 0a 20 20 68 65 61 64 3f 2c 0a 20 20 28 le,. head?,. (
0780: 64 69 76 69 73 69 6f 6e 2a 20 7c 20 28 6d 61 6e division* | (man
0790: 70 61 67 65 20 7c 20 73 75 62 64 6f 63 20 7c 20 page | subdoc |
07a0: 65 78 74 72 65 66 29 2a 29 0a 6d 61 6e 75 61 6c extref)*).manual
07b0: 20 3d 20 65 6c 65 6d 65 6e 74 20 6d 61 6e 75 61 = element manua
07c0: 6c 20 7b 20 61 74 74 6c 69 73 74 2e 6d 61 6e 75 l { attlist.manu
07d0: 61 6c 2c 20 6d 2e 6d 61 6e 75 61 6c 20 7d 0a 64 al, m.manual }.d
07e0: 69 76 69 73 69 6f 6e 20 3d 20 65 6c 65 6d 65 6e ivision = elemen
07f0: 74 20 64 69 76 69 73 69 6f 6e 20 7b 20 61 74 74 t division { att
0800: 6c 69 73 74 2e 64 69 76 69 73 69 6f 6e 2c 20 6d list.division, m
0810: 2e 64 69 76 69 73 69 6f 6e 20 7d 0a 61 74 74 6c .division }.attl
0820: 69 73 74 2e 64 69 76 69 73 69 6f 6e 20 26 3d 20 ist.division &=
0830: 65 6d 70 74 79 0a 73 75 62 64 6f 63 20 3d 20 65 empty.subdoc = e
0840: 6c 65 6d 65 6e 74 20 73 75 62 64 6f 63 20 7b 20 lement subdoc {
0850: 61 74 74 6c 69 73 74 2e 73 75 62 64 6f 63 2c 20 attlist.subdoc,
0860: 65 6d 70 74 79 20 7d 0a 65 78 74 72 65 66 20 3d empty }.extref =
0870: 20 65 6c 65 6d 65 6e 74 20 65 78 74 72 65 66 20 element extref
0880: 7b 20 61 74 74 6c 69 73 74 2e 65 78 74 72 65 66 { attlist.extref
0890: 2c 20 65 6d 70 74 79 20 7d 0a 61 74 74 6c 69 73 , empty }.attlis
08a0: 74 2e 6d 61 6e 75 61 6c 20 26 3d 0a 20 20 61 74 t.manual &=. at
08b0: 74 72 69 62 75 74 65 20 70 61 63 6b 61 67 65 20 tribute package
08c0: 7b 20 74 65 78 74 20 7d 2c 0a 20 20 61 74 74 72 { text },. attr
08d0: 69 62 75 74 65 20 76 65 72 73 69 6f 6e 20 7b 20 ibute version {
08e0: 74 65 78 74 20 7d 3f 0a 61 74 74 6c 69 73 74 2e text }?.attlist.
08f0: 65 78 74 72 65 66 20 26 3d 0a 20 20 61 74 74 72 extref &=. attr
0900: 69 62 75 74 65 20 68 72 65 66 20 7b 20 74 65 78 ibute href { tex
0910: 74 20 7d 2c 0a 20 20 61 74 74 72 69 62 75 74 65 t },. attribute
0920: 20 74 69 74 6c 65 20 7b 20 74 65 78 74 20 7d 2c title { text },
0930: 0a 20 20 61 74 74 72 69 62 75 74 65 20 74 79 70 . attribute typ
0940: 65 20 7b 20 74 65 78 74 20 7d 0a 61 74 74 6c 69 e { text }.attli
0950: 73 74 2e 73 75 62 64 6f 63 20 26 3d 20 61 74 74 st.subdoc &= att
0960: 72 69 62 75 74 65 20 68 72 65 66 20 7b 20 74 65 ribute href { te
0970: 78 74 20 7d 0a 23 20 3d 3d 3d 3d 3d 3d 3d 3d 3d xt }.# =========
0980: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0990: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
09a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
09b0: 3d 3d 3d 0a 23 20 54 6f 70 2d 6c 65 76 65 6c 20 ===.# Top-level
09c0: 65 6c 65 6d 65 6e 74 3a 20 6d 61 6e 70 61 67 65 element: manpage
09d0: 0a 6d 61 6e 70 61 67 65 20 3d 0a 20 20 65 6c 65 .manpage =. ele
09e0: 6d 65 6e 74 20 6d 61 6e 70 61 67 65 20 7b 0a 20 ment manpage {.
09f0: 20 20 20 61 74 74 6c 69 73 74 2e 6d 61 6e 70 61 attlist.manpa
0a00: 67 65 2c 0a 20 20 20 20 68 65 61 64 3f 2c 0a 20 ge,. head?,.
0a10: 20 20 20 6e 61 6d 65 73 65 63 74 69 6f 6e 2c 0a namesection,.
0a20: 20 20 20 20 73 79 6e 6f 70 73 69 73 3f 2c 0a 20 synopsis?,.
0a30: 20 20 20 73 65 63 74 69 6f 6e 2a 2c 0a 20 20 20 section*,.
0a40: 20 73 65 65 61 6c 73 6f 3f 2c 0a 20 20 20 20 6b seealso?,. k
0a50: 65 79 77 6f 72 64 73 3f 0a 20 20 7d 0a 61 74 74 eywords?. }.att
0a60: 6c 69 73 74 2e 6d 61 6e 70 61 67 65 20 26 3d 0a list.manpage &=.
0a70: 20 20 61 74 74 72 69 62 75 74 65 20 69 64 20 7b attribute id {
0a80: 20 78 73 64 3a 49 44 20 7d 2c 0a 20 20 61 74 74 xsd:ID },. att
0a90: 72 69 62 75 74 65 20 63 61 74 20 7b 20 74 65 78 ribute cat { tex
0aa0: 74 20 7d 2c 0a 20 20 61 74 74 72 69 62 75 74 65 t },. attribute
0ab0: 20 74 69 74 6c 65 20 7b 20 74 65 78 74 20 7d 2c title { text },
0ac0: 0a 20 20 61 74 74 72 69 62 75 74 65 20 70 61 63 . attribute pac
0ad0: 6b 61 67 65 20 7b 20 74 65 78 74 20 7d 3f 2c 0a kage { text }?,.
0ae0: 20 20 61 2e 76 65 72 73 69 6f 6e 0a 73 65 63 74 a.version.sect
0af0: 69 6f 6e 20 3d 20 65 6c 65 6d 65 6e 74 20 73 65 ion = element se
0b00: 63 74 69 6f 6e 20 7b 20 61 74 74 6c 69 73 74 2e ction { attlist.
0b10: 73 65 63 74 69 6f 6e 2c 20 74 69 74 6c 65 2c 20 section, title,
0b20: 6d 2e 74 6f 70 2c 20 73 75 62 73 65 63 74 69 6f m.top, subsectio
0b30: 6e 2a 20 7d 0a 61 74 74 6c 69 73 74 2e 73 65 63 n* }.attlist.sec
0b40: 74 69 6f 6e 20 26 3d 0a 20 20 61 74 74 72 69 62 tion &=. attrib
0b50: 75 74 65 20 69 64 20 7b 20 78 73 64 3a 49 44 20 ute id { xsd:ID
0b60: 7d 3f 2c 0a 20 20 61 2e 76 65 72 73 69 6f 6e 0a }?,. a.version.
0b70: 73 75 62 73 65 63 74 69 6f 6e 20 3d 20 65 6c 65 subsection = ele
0b80: 6d 65 6e 74 20 73 75 62 73 65 63 74 69 6f 6e 20 ment subsection
0b90: 7b 20 61 74 74 6c 69 73 74 2e 73 75 62 73 65 63 { attlist.subsec
0ba0: 74 69 6f 6e 2c 20 74 69 74 6c 65 2c 20 6d 2e 74 tion, title, m.t
0bb0: 6f 70 20 7d 0a 61 74 74 6c 69 73 74 2e 73 75 62 op }.attlist.sub
0bc0: 73 65 63 74 69 6f 6e 20 26 3d 0a 20 20 61 74 74 section &=. att
0bd0: 72 69 62 75 74 65 20 69 64 20 7b 20 78 73 64 3a ribute id { xsd:
0be0: 49 44 20 7d 3f 2c 0a 20 20 61 2e 76 65 72 73 69 ID }?,. a.versi
0bf0: 6f 6e 0a 23 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d on.# ===========
0c00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0c10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0c20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0c30: 3d 0a 23 20 53 74 61 6e 64 61 72 64 20 73 65 63 =.# Standard sec
0c40: 74 69 6f 6e 73 3a 0a 6e 61 6d 65 73 65 63 74 69 tions:.namesecti
0c50: 6f 6e 20 3d 0a 20 20 65 6c 65 6d 65 6e 74 20 6e on =. element n
0c60: 61 6d 65 73 65 63 74 69 6f 6e 20 7b 0a 20 20 20 amesection {.
0c70: 20 61 74 74 6c 69 73 74 2e 6e 61 6d 65 73 65 63 attlist.namesec
0c80: 74 69 6f 6e 2c 0a 20 20 20 20 28 6e 61 6d 65 2b tion,. (name+
0c90: 20 7c 20 28 74 69 74 6c 65 2c 20 6e 61 6d 65 2a | (title, name*
0ca0: 29 29 2c 0a 20 20 20 20 64 65 73 63 0a 20 20 7d )),. desc. }
0cb0: 0a 61 74 74 6c 69 73 74 2e 6e 61 6d 65 73 65 63 .attlist.namesec
0cc0: 74 69 6f 6e 20 26 3d 20 65 6d 70 74 79 0a 73 79 tion &= empty.sy
0cd0: 6e 6f 70 73 69 73 20 3d 20 65 6c 65 6d 65 6e 74 nopsis = element
0ce0: 20 73 79 6e 6f 70 73 69 73 20 7b 20 61 74 74 6c synopsis { attl
0cf0: 69 73 74 2e 73 79 6e 6f 70 73 69 73 2c 20 28 73 ist.synopsis, (s
0d00: 79 6e 74 61 78 20 7c 20 65 78 61 6d 70 6c 65 29 yntax | example)
0d10: 2b 20 7d 0a 61 74 74 6c 69 73 74 2e 73 79 6e 6f + }.attlist.syno
0d20: 70 73 69 73 20 26 3d 20 65 6d 70 74 79 0a 6b 65 psis &= empty.ke
0d30: 79 77 6f 72 64 73 20 3d 20 65 6c 65 6d 65 6e 74 ywords = element
0d40: 20 6b 65 79 77 6f 72 64 73 20 7b 20 61 74 74 6c keywords { attl
0d50: 69 73 74 2e 6b 65 79 77 6f 72 64 73 2c 20 6b 65 ist.keywords, ke
0d60: 79 77 6f 72 64 2b 20 7d 0a 61 74 74 6c 69 73 74 yword+ }.attlist
0d70: 2e 6b 65 79 77 6f 72 64 73 20 26 3d 20 65 6d 70 .keywords &= emp
0d80: 74 79 0a 6b 65 79 77 6f 72 64 20 3d 20 65 6c 65 ty.keyword = ele
0d90: 6d 65 6e 74 20 6b 65 79 77 6f 72 64 20 7b 20 61 ment keyword { a
0da0: 74 74 6c 69 73 74 2e 6b 65 79 77 6f 72 64 2c 20 ttlist.keyword,
0db0: 74 65 78 74 20 7d 0a 61 74 74 6c 69 73 74 2e 6b text }.attlist.k
0dc0: 65 79 77 6f 72 64 20 26 3d 20 65 6d 70 74 79 0a eyword &= empty.
0dd0: 73 65 65 61 6c 73 6f 20 3d 20 65 6c 65 6d 65 6e seealso = elemen
0de0: 74 20 73 65 65 61 6c 73 6f 20 7b 20 61 74 74 6c t seealso { attl
0df0: 69 73 74 2e 73 65 65 61 6c 73 6f 2c 20 28 72 65 ist.seealso, (re
0e00: 66 20 7c 20 75 72 6c 29 2b 20 7d 0a 61 74 74 6c f | url)+ }.attl
0e10: 69 73 74 2e 73 65 65 61 6c 73 6f 20 26 3d 20 65 ist.seealso &= e
0e20: 6d 70 74 79 0a 23 20 3d 3d 3d 3d 3d 3d 3d 3d 3d mpty.# =========
0e30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0e40: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0e50: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0e60: 3d 3d 3d 0a 23 20 43 6f 6d 6d 6f 6e 20 43 6f 6e ===.# Common Con
0e70: 73 74 72 75 63 74 73 0a 74 69 74 6c 65 20 3d 20 structs.title =
0e80: 65 6c 65 6d 65 6e 74 20 74 69 74 6c 65 20 7b 20 element title {
0e90: 61 74 74 6c 69 73 74 2e 74 69 74 6c 65 2c 20 74 attlist.title, t
0ea0: 65 78 74 20 7d 0a 61 74 74 6c 69 73 74 2e 74 69 ext }.attlist.ti
0eb0: 74 6c 65 20 26 3d 20 65 6d 70 74 79 0a 6e 61 6d tle &= empty.nam
0ec0: 65 20 3d 20 65 6c 65 6d 65 6e 74 20 6e 61 6d 65 e = element name
0ed0: 20 7b 20 61 74 74 6c 69 73 74 2e 6e 61 6d 65 2c { attlist.name,
0ee0: 20 74 65 78 74 20 7d 0a 64 65 73 63 20 3d 20 65 text }.desc = e
0ef0: 6c 65 6d 65 6e 74 20 64 65 73 63 20 7b 20 61 74 lement desc { at
0f00: 74 6c 69 73 74 2e 64 65 73 63 2c 20 6d 2e 6d 69 tlist.desc, m.mi
0f10: 78 65 64 20 7d 0a 61 74 74 6c 69 73 74 2e 64 65 xed }.attlist.de
0f20: 73 63 20 26 3d 20 65 6d 70 74 79 0a 23 20 4f 52 sc &= empty.# OR
0f30: 3a 20 64 65 73 63 3a 20 25 6d 2e 69 6e 6c 69 6e : desc: %m.inlin
0f40: 65 3b 20 20 64 65 73 63 72 69 70 74 69 6f 6e 3a e; description:
0f50: 20 20 25 6d 2e 6d 69 78 65 64 3b 0a 61 74 74 6c %m.mixed;.attl
0f60: 69 73 74 2e 6e 61 6d 65 20 26 3d 0a 20 20 61 74 ist.name &=. at
0f70: 74 72 69 62 75 74 65 20 6e 61 6d 65 20 7b 20 74 tribute name { t
0f80: 65 78 74 20 7d 3f 2c 0a 20 20 61 74 74 72 69 62 ext }?,. attrib
0f90: 75 74 65 20 63 61 74 20 7b 20 74 65 78 74 20 7d ute cat { text }
0fa0: 3f 0a 23 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ?.# ============
0fb0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0fc0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0fd0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0fe0: 0a 23 20 42 6c 6f 63 6b 2d 6c 65 76 65 6c 20 65 .# Block-level e
0ff0: 6c 65 6d 65 6e 74 73 3a 0a 75 6c 20 3d 20 65 6c lements:.ul = el
1000: 65 6d 65 6e 74 20 75 6c 20 7b 20 61 74 74 6c 69 ement ul { attli
1010: 73 74 2e 75 6c 2c 20 6c 69 2b 20 7d 0a 61 74 74 st.ul, li+ }.att
1020: 6c 69 73 74 2e 75 6c 20 26 3d 20 65 6d 70 74 79 list.ul &= empty
1030: 0a 6f 6c 20 3d 20 65 6c 65 6d 65 6e 74 20 6f 6c .ol = element ol
1040: 20 7b 20 61 74 74 6c 69 73 74 2e 6f 6c 2c 20 6c { attlist.ol, l
1050: 69 2b 20 7d 0a 61 74 74 6c 69 73 74 2e 6f 6c 20 i+ }.attlist.ol
1060: 26 3d 20 65 6d 70 74 79 0a 6c 69 20 3d 20 65 6c &= empty.li = el
1070: 65 6d 65 6e 74 20 6c 69 20 7b 20 61 74 74 6c 69 ement li { attli
1080: 73 74 2e 6c 69 2c 20 6d 2e 6d 69 78 65 64 20 7d st.li, m.mixed }
1090: 0a 61 74 74 6c 69 73 74 2e 6c 69 20 26 3d 20 61 .attlist.li &= a
10a0: 2e 76 65 72 73 69 6f 6e 0a 73 6c 20 3d 20 65 6c .version.sl = el
10b0: 65 6d 65 6e 74 20 73 6c 20 7b 20 61 74 74 6c 69 ement sl { attli
10c0: 73 74 2e 73 6c 2c 20 6c 69 2b 20 7d 0a 61 74 74 st.sl, li+ }.att
10d0: 6c 69 73 74 2e 73 6c 20 26 3d 0a 20 20 61 74 74 list.sl &=. att
10e0: 72 69 62 75 74 65 20 63 6f 6c 73 20 7b 20 74 65 ribute cols { te
10f0: 78 74 20 7d 3f 2c 0a 20 20 61 74 74 72 69 62 75 xt }?,. attribu
1100: 74 65 20 63 61 74 20 7b 20 74 65 78 74 20 7d 3f te cat { text }?
1110: 0a 64 6c 20 3d 0a 20 20 65 6c 65 6d 65 6e 74 20 .dl =. element
1120: 64 6c 20 7b 0a 20 20 20 20 61 74 74 6c 69 73 74 dl {. attlist
1130: 2e 64 6c 2c 0a 20 20 20 20 28 64 6c 65 20 7c 20 .dl,. (dle |
1140: 28 64 74 2c 20 64 64 29 29 2b 0a 20 20 7d 0a 64 (dt, dd))+. }.d
1150: 6c 65 20 3d 20 65 6c 65 6d 65 6e 74 20 64 6c 65 le = element dle
1160: 20 7b 20 61 74 74 6c 69 73 74 2e 64 6c 65 2c 20 { attlist.dle,
1170: 64 74 2b 2c 20 64 64 20 7d 0a 61 74 74 6c 69 73 dt+, dd }.attlis
1180: 74 2e 64 6c 65 20 26 3d 20 61 2e 76 65 72 73 69 t.dle &= a.versi
1190: 6f 6e 0a 64 74 20 3d 20 65 6c 65 6d 65 6e 74 20 on.dt = element
11a0: 64 74 20 7b 20 61 74 74 6c 69 73 74 2e 64 74 2c dt { attlist.dt,
11b0: 20 6d 2e 69 6e 6c 69 6e 65 20 7d 0a 61 74 74 6c m.inline }.attl
11c0: 69 73 74 2e 64 74 20 26 3d 20 65 6d 70 74 79 0a ist.dt &= empty.
11d0: 64 64 20 3d 20 65 6c 65 6d 65 6e 74 20 64 64 20 dd = element dd
11e0: 7b 20 61 74 74 6c 69 73 74 2e 64 64 2c 20 6d 2e { attlist.dd, m.
11f0: 6d 69 78 65 64 20 7d 0a 61 74 74 6c 69 73 74 2e mixed }.attlist.
1200: 64 64 20 26 3d 20 65 6d 70 74 79 0a 61 74 74 6c dd &= empty.attl
1210: 69 73 74 2e 64 6c 20 26 3d 0a 20 20 5b 20 61 3a ist.dl &=. [ a:
1220: 64 65 66 61 75 6c 74 56 61 6c 75 65 20 3d 20 22 defaultValue = "
1230: 6c 6f 63 61 6c 22 20 5d 20 61 74 74 72 69 62 75 local" ] attribu
1240: 74 65 20 73 63 6f 70 65 20 7b 20 22 6c 6f 63 61 te scope { "loca
1250: 6c 22 20 7c 20 22 67 6c 6f 62 61 6c 22 20 7d 3f l" | "global" }?
1260: 2c 0a 20 20 61 74 74 72 69 62 75 74 65 20 63 61 ,. attribute ca
1270: 74 20 7b 20 74 65 78 74 20 7d 3f 0a 23 20 45 78 t { text }?.# Ex
1280: 74 65 6e 64 65 64 20 6c 69 73 74 73 3a 20 20 0a tended lists: .
1290: 23 20 53 69 6d 69 6c 61 72 20 74 6f 20 44 6f 63 # Similar to Doc
12a0: 42 6f 6f 6b 20 53 65 67 6d 65 6e 74 65 64 4c 69 Book SegmentedLi
12b0: 73 74 73 0a 78 6c 20 3d 20 65 6c 65 6d 65 6e 74 sts.xl = element
12c0: 20 78 6c 20 7b 20 61 74 74 6c 69 73 74 2e 78 6c xl { attlist.xl
12d0: 2c 20 78 6c 68 3f 2c 20 78 6c 65 2b 20 7d 0a 61 , xlh?, xle+ }.a
12e0: 74 74 6c 69 73 74 2e 78 6c 20 26 3d 20 65 6d 70 ttlist.xl &= emp
12f0: 74 79 0a 78 6c 68 20 3d 20 65 6c 65 6d 65 6e 74 ty.xlh = element
1300: 20 78 6c 68 20 7b 20 61 74 74 6c 69 73 74 2e 78 xlh { attlist.x
1310: 6c 68 2c 20 78 68 2b 20 7d 0a 78 68 20 3d 20 65 lh, xh+ }.xh = e
1320: 6c 65 6d 65 6e 74 20 78 68 20 7b 20 61 74 74 6c lement xh { attl
1330: 69 73 74 2e 78 68 2c 20 6d 2e 69 6e 6c 69 6e 65 ist.xh, m.inline
1340: 20 7d 0a 61 74 74 6c 69 73 74 2e 78 68 20 26 3d }.attlist.xh &=
1350: 20 65 6d 70 74 79 0a 78 6c 65 20 3d 20 65 6c 65 empty.xle = ele
1360: 6d 65 6e 74 20 78 6c 65 20 7b 20 61 74 74 6c 69 ment xle { attli
1370: 73 74 2e 78 6c 65 2c 20 78 74 2b 2c 20 64 65 73 st.xle, xt+, des
1380: 63 3f 20 7d 0a 61 74 74 6c 69 73 74 2e 78 6c 65 c? }.attlist.xle
1390: 20 26 3d 20 65 6d 70 74 79 0a 78 74 20 3d 20 65 &= empty.xt = e
13a0: 6c 65 6d 65 6e 74 20 78 74 20 7b 20 61 74 74 6c lement xt { attl
13b0: 69 73 74 2e 78 74 2c 20 6d 2e 69 6e 6c 69 6e 65 ist.xt, m.inline
13c0: 20 7d 0a 61 74 74 6c 69 73 74 2e 78 74 20 26 3d }.attlist.xt &=
13d0: 20 65 6d 70 74 79 0a 70 20 3d 20 65 6c 65 6d 65 empty.p = eleme
13e0: 6e 74 20 70 20 7b 20 61 74 74 6c 69 73 74 2e 70 nt p { attlist.p
13f0: 2c 20 6d 2e 69 6e 6c 69 6e 65 20 7d 0a 61 74 74 , m.inline }.att
1400: 6c 69 73 74 2e 70 20 26 3d 20 61 2e 76 65 72 73 list.p &= a.vers
1410: 69 6f 6e 0a 65 78 61 6d 70 6c 65 20 3d 20 65 6c ion.example = el
1420: 65 6d 65 6e 74 20 65 78 61 6d 70 6c 65 20 7b 20 ement example {
1430: 61 74 74 6c 69 73 74 2e 65 78 61 6d 70 6c 65 2c attlist.example,
1440: 20 6d 2e 63 6f 64 65 20 7d 0a 61 74 74 6c 69 73 m.code }.attlis
1450: 74 2e 65 78 61 6d 70 6c 65 20 26 3d 20 65 6d 70 t.example &= emp
1460: 74 79 0a 73 79 6e 74 61 78 20 3d 20 65 6c 65 6d ty.syntax = elem
1470: 65 6e 74 20 73 79 6e 74 61 78 20 7b 20 61 74 74 ent syntax { att
1480: 6c 69 73 74 2e 73 79 6e 74 61 78 2c 20 6d 2e 63 list.syntax, m.c
1490: 6f 64 65 20 7d 0a 61 74 74 6c 69 73 74 2e 73 79 ode }.attlist.sy
14a0: 6e 74 61 78 20 26 3d 0a 20 20 61 74 74 72 69 62 ntax &=. attrib
14b0: 75 74 65 20 73 63 6f 70 65 20 7b 20 22 6c 6f 63 ute scope { "loc
14c0: 61 6c 22 20 7c 20 22 67 6c 6f 62 61 6c 22 20 7d al" | "global" }
14d0: 3f 2c 0a 20 20 61 74 74 72 69 62 75 74 65 20 63 ?,. attribute c
14e0: 61 74 20 7b 20 74 65 78 74 20 7d 3f 2c 0a 20 20 at { text }?,.
14f0: 61 74 74 72 69 62 75 74 65 20 6e 61 6d 65 20 7b attribute name {
1500: 20 74 65 78 74 20 7d 3f 0a 23 20 3d 3d 3d 3d 3d text }?.# =====
1510: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1520: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1530: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1540: 3d 3d 3d 3d 3d 3d 3d 0a 23 20 49 6e 6c 69 6e 65 =======.# Inline
1550: 20 65 6c 65 6d 65 6e 74 73 3a 0a 69 20 3d 20 65 elements:.i = e
1560: 6c 65 6d 65 6e 74 20 69 20 7b 20 61 74 74 6c 69 lement i { attli
1570: 73 74 2e 69 2c 20 6d 2e 69 6e 6c 69 6e 65 20 7d st.i, m.inline }
1580: 0a 61 74 74 6c 69 73 74 2e 69 20 26 3d 20 61 74 .attlist.i &= at
1590: 74 72 69 62 75 74 65 20 63 61 74 20 7b 20 74 65 tribute cat { te
15a0: 78 74 20 7d 3f 0a 62 20 3d 20 65 6c 65 6d 65 6e xt }?.b = elemen
15b0: 74 20 62 20 7b 20 61 74 74 6c 69 73 74 2e 62 2c t b { attlist.b,
15c0: 20 6d 2e 69 6e 6c 69 6e 65 20 7d 0a 61 74 74 6c m.inline }.attl
15d0: 69 73 74 2e 62 20 26 3d 20 61 74 74 72 69 62 75 ist.b &= attribu
15e0: 74 65 20 63 61 74 20 7b 20 74 65 78 74 20 7d 3f te cat { text }?
15f0: 0a 65 6d 70 68 20 3d 20 65 6c 65 6d 65 6e 74 20 .emph = element
1600: 65 6d 70 68 20 7b 20 61 74 74 6c 69 73 74 2e 65 emph { attlist.e
1610: 6d 70 68 2c 20 6d 2e 69 6e 6c 69 6e 65 20 7d 0a mph, m.inline }.
1620: 61 74 74 6c 69 73 74 2e 65 6d 70 68 20 26 3d 20 attlist.emph &=
1630: 65 6d 70 74 79 0a 73 61 6d 70 20 3d 20 65 6c 65 empty.samp = ele
1640: 6d 65 6e 74 20 73 61 6d 70 20 7b 20 61 74 74 6c ment samp { attl
1650: 69 73 74 2e 73 61 6d 70 2c 20 6d 2e 63 6f 64 65 ist.samp, m.code
1660: 20 7d 0a 61 74 74 6c 69 73 74 2e 73 61 6d 70 20 }.attlist.samp
1670: 26 3d 20 65 6d 70 74 79 0a 6f 20 3d 20 65 6c 65 &= empty.o = ele
1680: 6d 65 6e 74 20 6f 20 7b 20 61 74 74 6c 69 73 74 ment o { attlist
1690: 2e 6f 2c 20 6d 2e 63 6f 64 65 20 7d 0a 61 74 74 .o, m.code }.att
16a0: 6c 69 73 74 2e 6f 20 26 3d 20 65 6d 70 74 79 0a list.o &= empty.
16b0: 75 72 6c 20 3d 20 65 6c 65 6d 65 6e 74 20 75 72 url = element ur
16c0: 6c 20 7b 20 61 74 74 6c 69 73 74 2e 75 72 6c 2c l { attlist.url,
16d0: 20 74 65 78 74 20 7d 0a 61 74 74 6c 69 73 74 2e text }.attlist.
16e0: 75 72 6c 20 26 3d 20 65 6d 70 74 79 0a 72 65 66 url &= empty.ref
16f0: 20 3d 20 65 6c 65 6d 65 6e 74 20 72 65 66 20 7b = element ref {
1700: 20 61 74 74 6c 69 73 74 2e 72 65 66 2c 20 6d 2e attlist.ref, m.
1710: 69 6e 6c 69 6e 65 20 7d 0a 61 74 74 6c 69 73 74 inline }.attlist
1720: 2e 72 65 66 20 26 3d 0a 20 20 61 74 74 72 69 62 .ref &=. attrib
1730: 75 74 65 20 72 65 66 69 64 20 7b 20 74 65 78 74 ute refid { text
1740: 20 7d 3f 2c 0a 20 20 61 74 74 72 69 62 75 74 65 }?,. attribute
1750: 20 68 72 65 66 20 7b 20 74 65 78 74 20 7d 3f 2c href { text }?,
1760: 0a 20 20 61 74 74 72 69 62 75 74 65 20 63 61 74 . attribute cat
1770: 20 7b 20 74 65 78 74 20 7d 3f 0a 23 20 40 40 20 { text }?.# @@
1780: 41 4c 53 4f 3a 0a 23 09 70 61 63 6b 61 67 65 09 ALSO:.#.package.
1790: 43 44 41 54 41 09 23 49 4d 50 4c 49 45 44 0a 23 CDATA.#IMPLIED.#
17a0: 09 6d 61 6e 70 61 67 65 09 43 44 41 54 41 09 23 .manpage.CDATA.#
17b0: 49 4d 50 4c 49 45 44 0a 23 09 63 61 74 09 43 44 IMPLIED.#.cat.CD
17c0: 41 54 41 09 23 49 4d 50 4c 49 45 44 0a 23 09 6e ATA.#IMPLIED.#.n
17d0: 61 6d 65 09 43 44 41 54 41 09 23 49 4d 50 4c 49 ame.CDATA.#IMPLI
17e0: 45 44 0a 23 20 4c 65 67 61 6c 20 63 6f 6d 62 69 ED.# Legal combi
17f0: 6e 61 74 69 6f 6e 73 3a 20 28 70 61 63 6b 61 67 nations: (packag
1800: 65 3f 20 26 20 28 28 6d 61 6e 70 61 67 65 3f 20 e? & ((manpage?
1810: 26 20 72 65 66 69 64 3f 29 20 7c 20 28 6e 61 6d & refid?) | (nam
1820: 65 3f 20 26 20 63 61 74 3f 29 29 29 0a 6e 65 77 e? & cat?))).new
1830: 20 3d 20 65 6c 65 6d 65 6e 74 20 6e 65 77 20 7b = element new {
1840: 20 61 74 74 6c 69 73 74 2e 6e 65 77 2c 20 6d 2e attlist.new, m.
1850: 69 6e 6c 69 6e 65 20 7d 0a 61 74 74 6c 69 73 74 inline }.attlist
1860: 2e 6e 65 77 20 26 3d 20 61 74 74 72 69 62 75 74 .new &= attribut
1870: 65 20 76 65 72 73 69 6f 6e 20 7b 20 74 65 78 74 e version { text
1880: 20 7d 0a 62 72 20 3d 20 65 6c 65 6d 65 6e 74 20 }.br = element
1890: 62 72 20 7b 20 61 74 74 6c 69 73 74 2e 62 72 2c br { attlist.br,
18a0: 20 65 6d 70 74 79 20 7d 0a 61 74 74 6c 69 73 74 empty }.attlist
18b0: 2e 62 72 20 26 3d 20 65 6d 70 74 79 0a 23 20 3d .br &= empty.# =
18c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
18d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
18e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
18f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 23 20 53 79 ===========.# Sy
1900: 6e 74 61 78 20 65 6c 65 6d 65 6e 74 73 3a 0a 6d ntax elements:.m
1910: 20 3d 20 65 6c 65 6d 65 6e 74 20 6d 20 7b 20 61 = element m { a
1920: 74 74 6c 69 73 74 2e 6d 2c 20 74 65 78 74 20 7d ttlist.m, text }
1930: 0a 61 74 74 6c 69 73 74 2e 6d 20 26 3d 20 65 6d .attlist.m &= em
1940: 70 74 79 0a 6c 20 3d 20 65 6c 65 6d 65 6e 74 20 pty.l = element
1950: 6c 20 7b 20 61 74 74 6c 69 73 74 2e 6c 2c 20 74 l { attlist.l, t
1960: 65 78 74 20 7d 0a 61 74 74 6c 69 73 74 2e 6c 20 ext }.attlist.l
1970: 26 3d 20 65 6d 70 74 79 0a 74 65 72 6d 20 3d 20 &= empty.term =
1980: 65 6c 65 6d 65 6e 74 20 74 65 72 6d 20 7b 20 61 element term { a
1990: 74 74 6c 69 73 74 2e 74 65 72 6d 2c 20 74 65 78 ttlist.term, tex
19a0: 74 20 7d 0a 61 74 74 6c 69 73 74 2e 74 65 72 6d t }.attlist.term
19b0: 20 26 3d 20 61 74 74 72 69 62 75 74 65 20 63 61 &= attribute ca
19c0: 74 20 7b 20 74 65 78 74 20 7d 3f 0a 63 6d 64 20 t { text }?.cmd
19d0: 3d 20 65 6c 65 6d 65 6e 74 20 63 6d 64 20 7b 20 = element cmd {
19e0: 61 74 74 6c 69 73 74 2e 63 6d 64 2c 20 74 65 78 attlist.cmd, tex
19f0: 74 20 7d 0a 61 74 74 6c 69 73 74 2e 63 6d 64 20 t }.attlist.cmd
1a00: 26 3d 20 65 6d 70 74 79 0a 6d 65 74 68 6f 64 20 &= empty.method
1a10: 3d 20 65 6c 65 6d 65 6e 74 20 6d 65 74 68 6f 64 = element method
1a20: 20 7b 20 61 74 74 6c 69 73 74 2e 6d 65 74 68 6f { attlist.metho
1a30: 64 2c 20 74 65 78 74 20 7d 0a 61 74 74 6c 69 73 d, text }.attlis
1a40: 74 2e 6d 65 74 68 6f 64 20 26 3d 20 65 6d 70 74 t.method &= empt
1a50: 79 0a 6f 70 74 69 6f 6e 20 3d 20 65 6c 65 6d 65 y.option = eleme
1a60: 6e 74 20 6f 70 74 69 6f 6e 20 7b 20 61 74 74 6c nt option { attl
1a70: 69 73 74 2e 6f 70 74 69 6f 6e 2c 20 74 65 78 74 ist.option, text
1a80: 20 7d 0a 61 74 74 6c 69 73 74 2e 6f 70 74 69 6f }.attlist.optio
1a90: 6e 20 26 3d 20 65 6d 70 74 79 0a 73 79 73 63 6d n &= empty.syscm
1aa0: 64 20 3d 20 65 6c 65 6d 65 6e 74 20 73 79 73 63 d = element sysc
1ab0: 6d 64 20 7b 20 61 74 74 6c 69 73 74 2e 73 79 73 md { attlist.sys
1ac0: 63 6d 64 2c 20 74 65 78 74 20 7d 0a 61 74 74 6c cmd, text }.attl
1ad0: 69 73 74 2e 73 79 73 63 6d 64 20 26 3d 20 65 6d ist.syscmd &= em
1ae0: 70 74 79 0a 77 69 64 67 65 74 20 3d 20 65 6c 65 pty.widget = ele
1af0: 6d 65 6e 74 20 77 69 64 67 65 74 20 7b 20 61 74 ment widget { at
1b00: 74 6c 69 73 74 2e 77 69 64 67 65 74 2c 20 74 65 tlist.widget, te
1b10: 78 74 20 7d 0a 61 74 74 6c 69 73 74 2e 77 69 64 xt }.attlist.wid
1b20: 67 65 74 20 26 3d 20 65 6d 70 74 79 0a 66 75 6e get &= empty.fun
1b30: 20 3d 20 65 6c 65 6d 65 6e 74 20 66 75 6e 20 7b = element fun {
1b40: 20 61 74 74 6c 69 73 74 2e 66 75 6e 2c 20 74 65 attlist.fun, te
1b50: 78 74 20 7d 0a 61 74 74 6c 69 73 74 2e 66 75 6e xt }.attlist.fun
1b60: 20 26 3d 20 65 6d 70 74 79 0a 76 61 72 69 61 62 &= empty.variab
1b70: 6c 65 20 3d 20 65 6c 65 6d 65 6e 74 20 76 61 72 le = element var
1b80: 69 61 62 6c 65 20 7b 20 61 74 74 6c 69 73 74 2e iable { attlist.
1b90: 76 61 72 69 61 62 6c 65 2c 20 74 65 78 74 20 7d variable, text }
1ba0: 0a 61 74 74 6c 69 73 74 2e 76 61 72 69 61 62 6c .attlist.variabl
1bb0: 65 20 26 3d 20 65 6d 70 74 79 0a 70 61 63 6b 61 e &= empty.packa
1bc0: 67 65 20 3d 20 65 6c 65 6d 65 6e 74 20 70 61 63 ge = element pac
1bd0: 6b 61 67 65 20 7b 20 61 74 74 6c 69 73 74 2e 70 kage { attlist.p
1be0: 61 63 6b 61 67 65 2c 20 74 65 78 74 20 7d 0a 61 ackage, text }.a
1bf0: 74 74 6c 69 73 74 2e 70 61 63 6b 61 67 65 20 26 ttlist.package &
1c00: 3d 20 65 6d 70 74 79 0a 74 79 70 65 20 3d 20 65 = empty.type = e
1c10: 6c 65 6d 65 6e 74 20 74 79 70 65 20 7b 20 61 74 lement type { at
1c20: 74 6c 69 73 74 2e 74 79 70 65 2c 20 74 65 78 74 tlist.type, text
1c30: 20 7d 0a 61 74 74 6c 69 73 74 2e 74 79 70 65 20 }.attlist.type
1c40: 26 3d 20 65 6d 70 74 79 0a 63 6c 61 73 73 20 3d &= empty.class =
1c50: 20 65 6c 65 6d 65 6e 74 20 63 6c 61 73 73 20 7b element class {
1c60: 20 61 74 74 6c 69 73 74 2e 63 6c 61 73 73 2c 20 attlist.class,
1c70: 74 65 78 74 20 7d 0a 61 74 74 6c 69 73 74 2e 63 text }.attlist.c
1c80: 6c 61 73 73 20 26 3d 20 65 6d 70 74 79 0a 66 69 lass &= empty.fi
1c90: 6c 65 20 3d 20 65 6c 65 6d 65 6e 74 20 66 69 6c le = element fil
1ca0: 65 20 7b 20 61 74 74 6c 69 73 74 2e 66 69 6c 65 e { attlist.file
1cb0: 2c 20 74 65 78 74 20 7d 0a 61 74 74 6c 69 73 74 , text }.attlist
1cc0: 2e 66 69 6c 65 20 26 3d 20 65 6d 70 74 79 0a 23 .file &= empty.#
1cd0: 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ===============
1ce0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1cf0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1d00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 23 20 =============.#
1d10: 54 63 6c 20 65 6e 74 69 74 79 20 64 65 66 69 6e Tcl entity defin
1d20: 69 74 69 6f 6e 20 65 6c 65 6d 65 6e 74 73 3a 0a ition elements:.
1d30: 61 72 67 6c 69 73 74 20 3d 20 65 6c 65 6d 65 6e arglist = elemen
1d40: 74 20 61 72 67 6c 69 73 74 20 7b 20 61 74 74 6c t arglist { attl
1d50: 69 73 74 2e 61 72 67 6c 69 73 74 2c 20 61 72 67 ist.arglist, arg
1d60: 64 65 66 2b 20 7d 0a 61 74 74 6c 69 73 74 2e 61 def+ }.attlist.a
1d70: 72 67 6c 69 73 74 20 26 3d 20 65 6d 70 74 79 0a rglist &= empty.
1d80: 61 72 67 64 65 66 20 3d 0a 20 20 65 6c 65 6d 65 argdef =. eleme
1d90: 6e 74 20 61 72 67 64 65 66 20 7b 20 61 74 74 6c nt argdef { attl
1da0: 69 73 74 2e 61 72 67 64 65 66 2c 20 61 72 67 74 ist.argdef, argt
1db0: 79 70 65 2c 20 6e 61 6d 65 2c 20 61 72 67 6d 6f ype, name, argmo
1dc0: 64 65 3f 2c 20 64 65 73 63 20 7d 0a 61 74 74 6c de?, desc }.attl
1dd0: 69 73 74 2e 61 72 67 64 65 66 20 26 3d 20 61 2e ist.argdef &= a.
1de0: 76 65 72 73 69 6f 6e 0a 61 72 67 74 79 70 65 20 version.argtype
1df0: 3d 20 65 6c 65 6d 65 6e 74 20 61 72 67 74 79 70 = element argtyp
1e00: 65 20 7b 20 61 74 74 6c 69 73 74 2e 61 72 67 74 e { attlist.argt
1e10: 79 70 65 2c 20 74 65 78 74 20 7d 0a 61 74 74 6c ype, text }.attl
1e20: 69 73 74 2e 61 72 67 74 79 70 65 20 26 3d 20 65 ist.argtype &= e
1e30: 6d 70 74 79 0a 61 72 67 6d 6f 64 65 20 3d 20 65 mpty.argmode = e
1e40: 6c 65 6d 65 6e 74 20 61 72 67 6d 6f 64 65 20 7b lement argmode {
1e50: 20 61 74 74 6c 69 73 74 2e 61 72 67 6d 6f 64 65 attlist.argmode
1e60: 2c 20 74 65 78 74 20 7d 0a 61 74 74 6c 69 73 74 , text }.attlist
1e70: 2e 61 72 67 6d 6f 64 65 20 26 3d 20 65 6d 70 74 .argmode &= empt
1e80: 79 0a 63 6f 6d 6d 61 6e 64 6c 69 73 74 20 3d 20 y.commandlist =
1e90: 65 6c 65 6d 65 6e 74 20 63 6f 6d 6d 61 6e 64 6c element commandl
1ea0: 69 73 74 20 7b 20 61 74 74 6c 69 73 74 2e 63 6f ist { attlist.co
1eb0: 6d 6d 61 6e 64 6c 69 73 74 2c 20 63 6f 6d 6d 61 mmandlist, comma
1ec0: 6e 64 64 65 66 2b 20 7d 0a 61 74 74 6c 69 73 74 nddef+ }.attlist
1ed0: 2e 63 6f 6d 6d 61 6e 64 6c 69 73 74 20 26 3d 20 .commandlist &=
1ee0: 65 6d 70 74 79 0a 63 6f 6d 6d 61 6e 64 64 65 66 empty.commanddef
1ef0: 20 3d 20 65 6c 65 6d 65 6e 74 20 63 6f 6d 6d 61 = element comma
1f00: 6e 64 64 65 66 20 7b 20 61 74 74 6c 69 73 74 2e nddef { attlist.
1f10: 63 6f 6d 6d 61 6e 64 64 65 66 2c 20 63 6f 6d 6d commanddef, comm
1f20: 61 6e 64 2c 20 64 65 73 63 20 7d 0a 61 74 74 6c and, desc }.attl
1f30: 69 73 74 2e 63 6f 6d 6d 61 6e 64 64 65 66 20 26 ist.commanddef &
1f40: 3d 20 61 2e 76 65 72 73 69 6f 6e 0a 63 6f 6d 6d = a.version.comm
1f50: 61 6e 64 20 3d 20 65 6c 65 6d 65 6e 74 20 63 6f and = element co
1f60: 6d 6d 61 6e 64 20 7b 20 61 74 74 6c 69 73 74 2e mmand { attlist.
1f70: 63 6f 6d 6d 61 6e 64 2c 20 6d 2e 63 6f 64 65 20 command, m.code
1f80: 7d 0a 61 74 74 6c 69 73 74 2e 63 6f 6d 6d 61 6e }.attlist.comman
1f90: 64 20 26 3d 20 65 6d 70 74 79 0a 6f 70 74 6c 69 d &= empty.optli
1fa0: 73 74 20 3d 20 65 6c 65 6d 65 6e 74 20 6f 70 74 st = element opt
1fb0: 6c 69 73 74 20 7b 20 61 74 74 6c 69 73 74 2e 6f list { attlist.o
1fc0: 70 74 6c 69 73 74 2c 20 6f 70 74 64 65 66 2b 20 ptlist, optdef+
1fd0: 7d 0a 61 74 74 6c 69 73 74 2e 6f 70 74 6c 69 73 }.attlist.optlis
1fe0: 74 20 26 3d 20 65 6d 70 74 79 0a 6f 70 74 64 65 t &= empty.optde
1ff0: 66 20 3d 20 65 6c 65 6d 65 6e 74 20 6f 70 74 64 f = element optd
2000: 65 66 20 7b 20 61 74 74 6c 69 73 74 2e 6f 70 74 ef { attlist.opt
2010: 64 65 66 2c 20 6f 70 74 6e 61 6d 65 2c 20 6f 70 def, optname, op
2020: 74 61 72 67 3f 2c 20 64 65 73 63 20 7d 0a 61 74 targ?, desc }.at
2030: 74 6c 69 73 74 2e 6f 70 74 64 65 66 20 26 3d 20 tlist.optdef &=
2040: 65 6d 70 74 79 0a 6f 70 74 6e 61 6d 65 20 3d 20 empty.optname =
2050: 65 6c 65 6d 65 6e 74 20 6f 70 74 6e 61 6d 65 20 element optname
2060: 7b 20 61 74 74 6c 69 73 74 2e 6f 70 74 6e 61 6d { attlist.optnam
2070: 65 2c 20 74 65 78 74 20 7d 0a 61 74 74 6c 69 73 e, text }.attlis
2080: 74 2e 6f 70 74 6e 61 6d 65 20 26 3d 20 65 6d 70 t.optname &= emp
2090: 74 79 0a 6f 70 74 61 72 67 20 3d 20 65 6c 65 6d ty.optarg = elem
20a0: 65 6e 74 20 6f 70 74 61 72 67 20 7b 20 61 74 74 ent optarg { att
20b0: 6c 69 73 74 2e 6f 70 74 61 72 67 2c 20 74 65 78 list.optarg, tex
20c0: 74 20 7d 0a 61 74 74 6c 69 73 74 2e 6f 70 74 61 t }.attlist.opta
20d0: 72 67 20 26 3d 20 65 6d 70 74 79 0a 6f 70 74 69 rg &= empty.opti
20e0: 6f 6e 6c 69 73 74 20 3d 20 65 6c 65 6d 65 6e 74 onlist = element
20f0: 20 6f 70 74 69 6f 6e 6c 69 73 74 20 7b 20 61 74 optionlist { at
2100: 74 6c 69 73 74 2e 6f 70 74 69 6f 6e 6c 69 73 74 tlist.optionlist
2110: 2c 20 6f 70 74 69 6f 6e 64 65 66 2b 20 7d 0a 6f , optiondef+ }.o
2120: 70 74 69 6f 6e 64 65 66 20 3d 0a 20 20 65 6c 65 ptiondef =. ele
2130: 6d 65 6e 74 20 6f 70 74 69 6f 6e 64 65 66 20 7b ment optiondef {
2140: 20 61 74 74 6c 69 73 74 2e 6f 70 74 69 6f 6e 64 attlist.optiond
2150: 65 66 2c 20 6e 61 6d 65 2c 20 64 62 6e 61 6d 65 ef, name, dbname
2160: 2c 20 64 62 63 6c 61 73 73 2c 20 64 65 73 63 20 , dbclass, desc
2170: 7d 0a 61 74 74 6c 69 73 74 2e 6f 70 74 69 6f 6e }.attlist.option
2180: 64 65 66 20 26 3d 20 61 2e 76 65 72 73 69 6f 6e def &= a.version
2190: 0a 64 62 6e 61 6d 65 20 3d 20 65 6c 65 6d 65 6e .dbname = elemen
21a0: 74 20 64 62 6e 61 6d 65 20 7b 20 61 74 74 6c 69 t dbname { attli
21b0: 73 74 2e 64 62 6e 61 6d 65 2c 20 74 65 78 74 20 st.dbname, text
21c0: 7d 0a 61 74 74 6c 69 73 74 2e 64 62 6e 61 6d 65 }.attlist.dbname
21d0: 20 26 3d 20 65 6d 70 74 79 0a 64 62 63 6c 61 73 &= empty.dbclas
21e0: 73 20 3d 20 65 6c 65 6d 65 6e 74 20 64 62 63 6c s = element dbcl
21f0: 61 73 73 20 7b 20 61 74 74 6c 69 73 74 2e 64 62 ass { attlist.db
2200: 63 6c 61 73 73 2c 20 74 65 78 74 20 7d 0a 61 74 class, text }.at
2210: 74 6c 69 73 74 2e 64 62 63 6c 61 73 73 20 26 3d tlist.dbclass &=
2220: 20 65 6d 70 74 79 0a 61 74 74 6c 69 73 74 2e 6f empty.attlist.o
2230: 70 74 69 6f 6e 6c 69 73 74 20 26 3d 0a 20 20 5b ptionlist &=. [
2240: 20 61 3a 64 65 66 61 75 6c 74 56 61 6c 75 65 20 a:defaultValue
2250: 3d 20 22 6c 6f 63 61 6c 22 20 5d 20 61 74 74 72 = "local" ] attr
2260: 69 62 75 74 65 20 73 63 6f 70 65 20 7b 20 22 6c ibute scope { "l
2270: 6f 63 61 6c 22 20 7c 20 22 67 6c 6f 62 61 6c 22 ocal" | "global"
2280: 20 7d 3f 2c 0a 20 20 61 74 74 72 69 62 75 74 65 }?,. attribute
2290: 20 63 61 74 20 7b 20 74 65 78 74 20 7d 3f 0a 23 cat { text }?.#
22a0: 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ===============
22b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
22c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
22d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 23 20 =============.#
22e0: 23 46 49 58 45 44 20 61 74 74 72 69 62 75 74 65 #FIXED attribute
22f0: 73 3a 0a 23 20 41 20 44 54 44 2d 61 77 61 72 65 s:.# A DTD-aware
2300: 20 70 72 6f 63 65 73 73 6f 72 20 6d 61 79 20 74 processor may t
2310: 61 6b 65 20 61 64 76 61 6e 74 61 67 65 20 6f 66 ake advantage of
2320: 20 74 68 65 73 65 0a 23 20 69 66 20 69 74 20 73 these.# if it s
2330: 69 6d 70 6c 69 66 69 65 73 20 70 72 6f 63 65 73 implifies proces
2340: 73 69 6e 67 2e 0a 0a 23 20 3d 3d 3d 3d 3d 3d 3d sing...# =======
2350: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2360: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2370: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2380: 3d 3d 3d 3d 3d 0a 23 20 4d 65 74 61 69 6e 66 6f =====.# Metainfo
2390: 72 6d 61 74 69 6f 6e 3a 0a 23 20 4e 6f 74 65 20 rmation:.# Note
23a0: 74 68 61 74 20 74 68 65 73 65 20 65 6c 65 6d 65 that these eleme
23b0: 6e 74 73 20 64 6f 20 6e 6f 74 20 6e 6f 72 6d 61 nts do not norma
23c0: 6c 6c 79 20 61 70 70 65 61 72 0a 23 20 69 6e 73 lly appear.# ins
23d0: 69 64 65 20 54 4d 4d 4c 20 64 6f 63 75 6d 65 6e ide TMML documen
23e0: 74 73 3b 20 74 68 65 79 27 72 65 20 66 6f 72 20 ts; they're for
23f0: 61 64 6d 69 6e 69 73 74 72 61 74 69 76 65 0a 23 administrative.#
2400: 20 70 75 72 70 6f 73 65 73 20 6f 6e 6c 79 2e 0a purposes only..
2410: 68 65 61 64 20 3d 0a 20 20 65 6c 65 6d 65 6e 74 head =. element
2420: 20 68 65 61 64 20 7b 20 61 74 74 6c 69 73 74 2e head { attlist.
2430: 68 65 61 64 2c 20 28 65 78 74 65 6e 73 69 6f 6e head, (extension
2440: 73 20 7c 20 69 6e 66 6f 20 7c 20 6c 69 6e 6b 20 s | info | link
2450: 7c 20 63 61 74 65 67 6f 72 79 29 2a 20 7d 0a 61 | category)* }.a
2460: 74 74 6c 69 73 74 2e 68 65 61 64 20 26 3d 20 65 ttlist.head &= e
2470: 6d 70 74 79 0a 65 78 74 65 6e 73 69 6f 6e 73 20 mpty.extensions
2480: 3d 0a 20 20 65 6c 65 6d 65 6e 74 20 65 78 74 65 =. element exte
2490: 6e 73 69 6f 6e 73 20 7b 20 61 74 74 6c 69 73 74 nsions { attlist
24a0: 2e 65 78 74 65 6e 73 69 6f 6e 73 2c 20 28 65 78 .extensions, (ex
24b0: 74 65 6e 73 69 6f 6e 20 7c 20 78 6c 68 29 2a 20 tension | xlh)*
24c0: 7d 0a 61 74 74 6c 69 73 74 2e 65 78 74 65 6e 73 }.attlist.extens
24d0: 69 6f 6e 73 20 26 3d 20 65 6d 70 74 79 0a 65 78 ions &= empty.ex
24e0: 74 65 6e 73 69 6f 6e 20 3d 20 65 6c 65 6d 65 6e tension = elemen
24f0: 74 20 65 78 74 65 6e 73 69 6f 6e 20 7b 20 61 74 t extension { at
2500: 74 6c 69 73 74 2e 65 78 74 65 6e 73 69 6f 6e 2c tlist.extension,
2510: 20 65 6d 70 74 79 20 7d 0a 61 74 74 6c 69 73 74 empty }.attlist
2520: 2e 65 78 74 65 6e 73 69 6f 6e 20 26 3d 0a 20 20 .extension &=.
2530: 61 74 74 72 69 62 75 74 65 20 67 69 20 7b 20 74 attribute gi { t
2540: 65 78 74 20 7d 2c 0a 20 20 61 74 74 72 69 62 75 ext },. attribu
2550: 74 65 20 74 6d 6d 6c 20 7b 20 74 65 78 74 20 7d te tmml { text }
2560: 0a 61 74 74 6c 69 73 74 2e 78 6c 68 20 26 3d 20 .attlist.xlh &=
2570: 61 74 74 72 69 62 75 74 65 20 67 69 20 7b 20 74 attribute gi { t
2580: 65 78 74 20 7d 3f 0a 69 6e 66 6f 20 3d 20 65 6c ext }?.info = el
2590: 65 6d 65 6e 74 20 69 6e 66 6f 20 7b 20 61 74 74 ement info { att
25a0: 6c 69 73 74 2e 69 6e 66 6f 2c 20 65 6d 70 74 79 list.info, empty
25b0: 20 7d 0a 61 74 74 6c 69 73 74 2e 69 6e 66 6f 20 }.attlist.info
25c0: 26 3d 0a 20 20 61 74 74 72 69 62 75 74 65 20 6b &=. attribute k
25d0: 65 79 20 7b 20 74 65 78 74 20 7d 2c 0a 20 20 61 ey { text },. a
25e0: 74 74 72 69 62 75 74 65 20 76 61 6c 75 65 20 7b ttribute value {
25f0: 20 74 65 78 74 20 7d 0a 6c 69 6e 6b 20 3d 20 65 text }.link = e
2600: 6c 65 6d 65 6e 74 20 6c 69 6e 6b 20 7b 20 61 74 lement link { at
2610: 74 6c 69 73 74 2e 6c 69 6e 6b 2c 20 65 6d 70 74 tlist.link, empt
2620: 79 20 7d 0a 61 74 74 6c 69 73 74 2e 6c 69 6e 6b y }.attlist.link
2630: 20 26 3d 0a 20 20 61 74 74 72 69 62 75 74 65 20 &=. attribute
2640: 72 65 6c 20 7b 20 74 65 78 74 20 7d 2c 0a 20 20 rel { text },.
2650: 61 74 74 72 69 62 75 74 65 20 68 72 65 66 20 7b attribute href {
2660: 20 74 65 78 74 20 7d 0a 63 61 74 65 67 6f 72 69 text }.categori
2670: 65 73 20 3d 20 65 6c 65 6d 65 6e 74 20 63 61 74 es = element cat
2680: 65 67 6f 72 69 65 73 20 7b 20 61 74 74 6c 69 73 egories { attlis
2690: 74 2e 63 61 74 65 67 6f 72 69 65 73 2c 20 63 61 t.categories, ca
26a0: 74 65 67 6f 72 79 2b 20 7d 0a 61 74 74 6c 69 73 tegory+ }.attlis
26b0: 74 2e 63 61 74 65 67 6f 72 69 65 73 20 26 3d 20 t.categories &=
26c0: 65 6d 70 74 79 0a 63 61 74 65 67 6f 72 79 20 3d empty.category =
26d0: 20 65 6c 65 6d 65 6e 74 20 63 61 74 65 67 6f 72 element categor
26e0: 79 20 7b 20 61 74 74 6c 69 73 74 2e 63 61 74 65 y { attlist.cate
26f0: 67 6f 72 79 2c 20 65 6d 70 74 79 20 7d 0a 61 74 gory, empty }.at
2700: 74 6c 69 73 74 2e 63 61 74 65 67 6f 72 79 20 26 tlist.category &
2710: 3d 0a 20 20 61 74 74 72 69 62 75 74 65 20 69 64 =. attribute id
2720: 20 7b 20 78 73 64 3a 49 44 20 7d 2c 0a 20 20 61 { xsd:ID },. a
2730: 74 74 72 69 62 75 74 65 20 74 69 74 6c 65 20 7b ttribute title {
2740: 20 74 65 78 74 20 7d 3f 0a 49 4e 44 45 58 20 3d text }?.INDEX =
2750: 20 65 6c 65 6d 65 6e 74 20 49 4e 44 45 58 20 7b element INDEX {
2760: 20 61 74 74 6c 69 73 74 2e 49 4e 44 45 58 2c 20 attlist.INDEX,
2770: 68 65 61 64 3f 2c 20 28 4d 41 4e 20 7c 20 44 45 head?, (MAN | DE
2780: 46 20 7c 20 4b 57 44 29 2a 20 7d 0a 61 74 74 6c F | KWD)* }.attl
2790: 69 73 74 2e 49 4e 44 45 58 20 26 3d 0a 20 20 61 ist.INDEX &=. a
27a0: 74 74 72 69 62 75 74 65 20 74 69 74 6c 65 20 7b ttribute title {
27b0: 20 74 65 78 74 20 7d 2c 0a 20 20 61 74 74 72 69 text },. attri
27c0: 62 75 74 65 20 73 74 61 6e 64 61 6c 6f 6e 65 20 bute standalone
27d0: 7b 20 74 65 78 74 20 7d 3f 2c 0a 20 20 61 74 74 { text }?,. att
27e0: 72 69 62 75 74 65 20 70 61 63 6b 61 67 65 20 7b ribute package {
27f0: 20 74 65 78 74 20 7d 3f 0a 44 45 46 20 3d 20 65 text }?.DEF = e
2800: 6c 65 6d 65 6e 74 20 44 45 46 20 7b 20 61 74 74 lement DEF { att
2810: 6c 69 73 74 2e 44 45 46 2c 20 65 6d 70 74 79 20 list.DEF, empty
2820: 7d 0a 61 74 74 6c 69 73 74 2e 44 45 46 20 26 3d }.attlist.DEF &=
2830: 0a 20 20 61 74 74 72 69 62 75 74 65 20 6e 61 6d . attribute nam
2840: 65 20 7b 20 74 65 78 74 20 7d 2c 0a 20 20 61 74 e { text },. at
2850: 74 72 69 62 75 74 65 20 63 61 74 20 7b 20 74 65 tribute cat { te
2860: 78 74 20 7d 3f 2c 0a 20 20 61 74 74 72 69 62 75 xt }?,. attribu
2870: 74 65 20 70 61 63 6b 61 67 65 20 7b 20 74 65 78 te package { tex
2880: 74 20 7d 3f 2c 0a 20 20 61 74 74 72 69 62 75 74 t }?,. attribut
2890: 65 20 6d 61 6e 70 61 67 65 20 7b 20 74 65 78 74 e manpage { text
28a0: 20 7d 3f 2c 0a 20 20 61 74 74 72 69 62 75 74 65 }?,. attribute
28b0: 20 73 75 62 70 61 72 74 20 7b 20 74 65 78 74 20 subpart { text
28c0: 7d 3f 0a 4b 57 44 20 3d 20 65 6c 65 6d 65 6e 74 }?.KWD = element
28d0: 20 4b 57 44 20 7b 20 61 74 74 6c 69 73 74 2e 4b KWD { attlist.K
28e0: 57 44 2c 20 65 6d 70 74 79 20 7d 0a 61 74 74 6c WD, empty }.attl
28f0: 69 73 74 2e 4b 57 44 20 26 3d 0a 20 20 61 74 74 ist.KWD &=. att
2900: 72 69 62 75 74 65 20 6e 61 6d 65 20 7b 20 74 65 ribute name { te
2910: 78 74 20 7d 2c 0a 20 20 61 74 74 72 69 62 75 74 xt },. attribut
2920: 65 20 6d 61 6e 70 61 67 65 20 7b 20 74 65 78 74 e manpage { text
2930: 20 7d 3f 0a 4d 41 4e 20 3d 20 65 6c 65 6d 65 6e }?.MAN = elemen
2940: 74 20 4d 41 4e 20 7b 20 61 74 74 6c 69 73 74 2e t MAN { attlist.
2950: 4d 41 4e 2c 20 65 6d 70 74 79 20 7d 0a 61 74 74 MAN, empty }.att
2960: 6c 69 73 74 2e 4d 41 4e 20 26 3d 0a 20 20 61 74 list.MAN &=. at
2970: 74 72 69 62 75 74 65 20 69 64 20 7b 20 74 65 78 tribute id { tex
2980: 74 20 7d 2c 0a 20 20 61 74 74 72 69 62 75 74 65 t },. attribute
2990: 20 74 69 74 6c 65 20 7b 20 74 65 78 74 20 7d 0a title { text }.
29a0: 73 74 61 72 74 20 3d 20 49 4e 44 45 58 20 7c 20 start = INDEX |
29b0: 6d 61 6e 75 61 6c 20 7c 20 6d 61 6e 70 61 67 65 manual | manpage
29c0: 20 7c 20 63 61 74 65 67 6f 72 69 65 73 0a 23 20 | categories.#
29d0: 45 4f 46 0a EOF.