Annotation of libwww/Library/src/HTMLPDTD.html, revision 2.28
2.7 frystyk 1: <HTML>
2: <HEAD>
2.28 ! frystyk 3: <!-- Changed by: Henrik Frystyk Nielsen, 28-Jun-1996 -->
! 4: <TITLE>W3C Sample Code Library libwww HTML DTD</TITLE>
2.7 frystyk 5: </HEAD>
6: <BODY>
2.28 ! frystyk 7: <H1>
! 8: HTML Plus DTD - Software Interface
! 9: </H1>
2.7 frystyk 10: <PRE>
11: /*
2.12 frystyk 12: ** (c) COPYRIGHT MIT 1995.
2.7 frystyk 13: ** Please first read the full copyright statement in the file COPYRIGH.
14: */
15: </PRE>
2.28 ! frystyk 16: <P>
! 17: SGML purists should excuse the use of the term "DTD" in this file to represent
! 18: DTD-related information which is not exactly a DTD itself. The C modular
! 19: structure doesn't work very well here, as the dtd is partly in the .h and
! 20: partly in the .c which are not very independent. <EM>Tant pis!</EM> There
! 21: are a couple of HTML-specific utility routines also defined.
! 22: <P>
! 23: This module is a part of the <A HREF="http://www.w3.org/Library/"> W3C Sample
! 24: Code Library</A>.
2.6 timbl 25: <PRE>
26: #ifndef HTMLDTD_H
2.1 timbl 27: #define HTMLDTD_H
28:
2.28 ! frystyk 29: #include "<A HREF="HTStruct.html">HTStruct.h</A>"
! 30: #include "<A HREF="SGML.html">SGML.h</A>"
2.9 frystyk 31: </PRE>
2.28 ! frystyk 32: <H2>
! 33: Number of HTML Entities
! 34: </H2>
! 35: <P>
! 36: The entity names are defined in the C file. This gives the number of them.
! 37: Must Match all tables by element!
2.9 frystyk 38: <PRE>
2.21 frystyk 39: #define HTML_ENTITIES 67
2.9 frystyk 40: </PRE>
2.28 ! frystyk 41: <H2>
! 42: HTML Element Enumeration
! 43: </H2>
! 44: <P>
! 45: These include tables in <A HREF="HTMLPDTD.c" NAME="z1">HTMLPDTD.c</A> and
! 46: code in <A HREF="HTML.c" NAME="z0">HTML.c</A>. Note that not everything from
! 47: <A HREF="http://www.w3.org/TR/REC-html40">HTML 4.0</A> is there!
2.9 frystyk 48: <PRE>
2.6 timbl 49: typedef enum _HTMLElement {
2.28 ! frystyk 50: HTML_A = 0,
2.1 timbl 51: HTML_ABBREV,
52: HTML_ABSTRACT,
53: HTML_ACRONYM,
54: HTML_ADDED,
55: HTML_ADDRESS,
2.28 ! frystyk 56: HTML_AREA,
2.1 timbl 57: HTML_ARG,
58: HTML_B,
59: HTML_BASE,
60: HTML_BLOCKQUOTE,
61: HTML_BODY,
62: HTML_BOX,
63: HTML_BR,
64: HTML_BYLINE,
65: HTML_CAPTION,
66: HTML_CHANGED,
67: HTML_CITE,
68: HTML_CMD,
69: HTML_CODE,
70: HTML_COMMENT,
71: HTML_DD,
72: HTML_DFN,
73: HTML_DIR,
74: HTML_DL,
75: HTML_DT,
76: HTML_EM,
77: HTML_FIG,
78: HTML_FOOTNOTE,
79: HTML_FORM,
2.27 frystyk 80: HTML_FRAME,
81: HTML_FRAMESET,
2.1 timbl 82: HTML_H1,
83: HTML_H2,
84: HTML_H3,
85: HTML_H4,
86: HTML_H5,
87: HTML_H6,
88: HTML_H7,
89: HTML_HEAD,
90: HTML_HR,
91: HTML_HTML,
92: HTML_HTMLPLUS,
93: HTML_I,
94: HTML_IMAGE,
95: HTML_IMG,
96: HTML_INPUT,
97: HTML_ISINDEX,
98: HTML_KBD,
99: HTML_L,
100: HTML_LI,
101: HTML_LINK,
102: HTML_LISTING,
103: HTML_LIT,
104: HTML_MARGIN,
105: HTML_MATH,
106: HTML_MENU,
2.25 frystyk 107: HTML_META,
2.1 timbl 108: HTML_NEXTID,
2.27 frystyk 109: HTML_NOFRAMES,
2.1 timbl 110: HTML_NOTE,
2.28 ! frystyk 111: HTML_OBJECT,
2.1 timbl 112: HTML_OL,
113: HTML_OPTION,
114: HTML_OVER,
115: HTML_P,
116: HTML_PERSON,
117: HTML_PLAINTEXT,
118: HTML_PRE,
119: HTML_Q,
120: HTML_QUOTE,
121: HTML_RENDER,
122: HTML_REMOVED,
123: HTML_S,
124: HTML_SAMP,
125: HTML_SELECT,
126: HTML_STRONG,
127: HTML_SUB,
128: HTML_SUP,
129: HTML_TAB,
130: HTML_TABLE,
131: HTML_TD,
132: HTML_TEXTAREA,
133: HTML_TH,
134: HTML_TITLE,
135: HTML_TR,
136: HTML_TT,
137: HTML_U,
138: HTML_UL,
139: HTML_VAR,
2.28 ! frystyk 140: HTML_XMP,
! 141: HTML_ELEMENTS /* This must be the last entry */
! 142: } HTMLElement;
! 143: </PRE>
! 144: <H2>
! 145: Element Attribute Enumerations
! 146: </H2>
! 147: <P>
! 148: Identifier is <TT>HTML_<element>_<attribute></TT>. These
! 149: <STRONG>must</STRONG> match the tables in
! 150: <A HREF="HTMLPDTD.c" NAME="z2">HTMLPDTD.c</A>!
! 151: <H3>
! 152: A
! 153: </H3>
! 154: <PRE>
2.6 timbl 155: #define HTML_A_EFFECT 0
2.1 timbl 156: #define HTML_A_HREF 1
157: #define HTML_A_ID 2
158: #define HTML_A_METHODS 3
159: #define HTML_A_NAME 4
160: #define HTML_A_PRINT 5
161: #define HTML_A_REL 6
162: #define HTML_A_REV 7
163: #define HTML_A_SHAPE 8
164: #define HTML_A_TITLE 9
165: #define HTML_A_ATTRIBUTES 10
2.28 ! frystyk 166: </PRE>
! 167: <H3>
! 168: AREA
! 169: </H3>
! 170: <PRE>
! 171: #define HTML_AREA_ALT 0
! 172: #define HTML_AREA_ACCESSKEY 1
! 173: #define HTML_AREA_COORDS 2
! 174: #define HTML_AREA_HREF 3
! 175: #define HTML_AREA_NOHREF 4
! 176: #define HTML_AREA_ONBLUR 5
! 177: #define HTML_AREA_ONFOCUS 6
! 178: #define HTML_AREA_SHAPE 7
! 179: #define HTML_AREA_TABINDEX 8
! 180: #define HTML_AREA_ATTRIBUTES 9
! 181: </PRE>
! 182: <H3>
! 183: BASE
! 184: </H3>
! 185: <PRE>
2.22 frystyk 186: #define HTML_BASE_HREF 0
2.1 timbl 187: #define HTML_BASE_ATTRIBUTES 1
2.28 ! frystyk 188: </PRE>
! 189: <H3>
! 190: BODY
! 191: </H3>
! 192: <PRE>
2.27 frystyk 193: #define HTML_BODY_BACKGROUND 0
194: #define HTML_BODY_ATTRIBUTES 1
2.28 ! frystyk 195: </PRE>
! 196: <H3>
! 197: FORM
! 198: </H3>
! 199: <PRE>
2.11 frystyk 200: #define HTML_FORM_ACTION 0 /* WSM bug fix, added these five */
201: #define HTML_FORM_ID 1
202: #define HTML_FORM_INDEX 2
203: #define HTML_FORM_LANG 3
204: #define HTML_FORM_METHOD 4
2.1 timbl 205: #define HTML_FORM_ATTRIBUTES 5
2.28 ! frystyk 206: </PRE>
! 207: <H3>
! 208: FRAME
! 209: </H3>
! 210: <PRE>
2.27 frystyk 211: #define HTML_FRAME_SRC 0
212: #define HTML_FRAME_ATTRIBUTES 1
2.28 ! frystyk 213: </PRE>
! 214: <H3>
! 215: FRAMESET
! 216: </H3>
! 217: <PRE>
2.27 frystyk 218: #define HTML_FRAMESET_COLS 0
219: #define HTML_FRAMESET_ROWS 1
220: #define HTML_FRAMESET_BORDER 2
221: #define HTML_FRAMESET_BORDERCOLOR 3
222: #define HTML_FRAMESET_FRAMEBORDER 4
223: #define HTML_FRAMESET_ONBLUR 5
224: #define HTML_FRAMESET_ONFOCUS 6
225: #define HTML_FRAMESET_ONLOAD 7
226: #define HTML_FRAMESET_ONUNLOAD 8
227: #define HTML_FRAMESET_ATTRIBUTES 9
2.28 ! frystyk 228: </PRE>
! 229: <H3>
! 230: FIG
! 231: </H3>
! 232: <PRE>
2.1 timbl 233: #define HTML_FIG_ATTRIBUTES 6
2.28 ! frystyk 234: </PRE>
! 235: <H3>
! 236: GEN
! 237: </H3>
! 238: <PRE>
2.1 timbl 239: #define HTML_GEN_ATTRIBUTES 3
2.28 ! frystyk 240: </PRE>
! 241: <H3>
! 242: HTMLPLUS
! 243: </H3>
! 244: <PRE>
2.1 timbl 245: #define HTML_HTMLPLUS_ATTRIBUTES 2
2.28 ! frystyk 246: </PRE>
! 247: <H3>
! 248: IMAGE
! 249: </H3>
! 250: <PRE>
2.1 timbl 251: #define HTML_IMAGE_ATTRIBUTES 5
2.28 ! frystyk 252: </PRE>
! 253: <H3>
! 254: CHANGED
! 255: </H3>
! 256: <PRE>
2.1 timbl 257: #define HTML_CHANGED_ATTRIBUTES 2
2.28 ! frystyk 258: </PRE>
! 259: <H3>
! 260: DL
! 261: </H3>
! 262: <PRE>
! 263: #define HTML_DL_ID 0
! 264: #define HTML_DL_COMPACT 1
! 265: #define HTML_DL_INDEX 2
2.3 frystyk 266: #define HTML_DL_ATTRIBUTES 3
2.28 ! frystyk 267: </PRE>
! 268: <H3>
! 269: IMG
! 270: </H3>
! 271: <PRE>
2.1 timbl 272: #define HTML_IMG_ALIGN 0
273: #define HTML_IMG_ALT 1
274: #define HTML_IMG_ISMAP 2 /* Obsolete but supported */
2.27 frystyk 275: #define HTML_IMG_LOWSRC 3
276: #define HTML_IMG_SEETHRU 4
277: #define HTML_IMG_SRC 5
278: #define HTML_IMG_ATTRIBUTES 6
2.28 ! frystyk 279: </PRE>
! 280: <H3>
! 281: INPUT
! 282: </H3>
! 283: <PRE>
2.2 timbl 284: #define HTML_INPUT_ALIGN 0
285: #define HTML_INPUT_CHECKED 1
286: #define HTML_INPUT_DISABLED 2
287: #define HTML_INPUT_ERROR 3
288: #define HTML_INPUT_MAX 4
289: #define HTML_INPUT_MIN 5
290: #define HTML_INPUT_NAME 6
291: #define HTML_INPUT_SIZE 7
292: #define HTML_INPUT_SRC 8
293: #define HTML_INPUT_TYPE 9
294: #define HTML_INPUT_VALUE 10
295: #define HTML_INPUT_ATTRIBUTES 11
2.28 ! frystyk 296: </PRE>
! 297: <H3>
! 298: L
! 299: </H3>
! 300: <PRE>
2.1 timbl 301: #define HTML_L_ATTRIBUTES 4
2.28 ! frystyk 302: </PRE>
! 303: <H3>
! 304: LI
! 305: </H3>
! 306: <PRE>
2.1 timbl 307: #define HTML_LI_ATTRIBUTES 4
2.28 ! frystyk 308: </PRE>
! 309: <H3>
! 310: LIST
! 311: </H3>
! 312: <PRE>
2.1 timbl 313: #define HTML_LIST_ATTRIBUTES 4
2.28 ! frystyk 314: </PRE>
! 315: <H3>
! 316: LINK
! 317: </H3>
! 318: <PRE>
2.24 frystyk 319: #define HTML_LINK_CHARSET 0
320: #define HTML_LINK_HREF 1
321: #define HTML_LINK_HREFLANG 2
322: #define HTML_LINK_MEDIA 3
323: #define HTML_LINK_REL 4
324: #define HTML_LINK_REV 5
325: #define HTML_LINK_TYPE 6
326: #define HTML_LINK_ATTRIBUTES 7
2.28 ! frystyk 327: </PRE>
! 328: <H3>
! 329: ID
! 330: </H3>
! 331: <PRE>
2.1 timbl 332: #define HTML_ID_ATTRIBUTE 1
2.28 ! frystyk 333: </PRE>
! 334: <H3>
! 335: META
! 336: </H3>
! 337: <PRE>
2.25 frystyk 338: #define HTML_META_CONTENT 0
339: #define HTML_META_HTTP_EQUIV 1
340: #define HTML_META_NAME 2
341: #define HTML_META_SCHEME 3
342: #define HTML_META_ATTRIBUTES 4
2.28 ! frystyk 343: </PRE>
! 344: <H3>
! 345: NEXTID
! 346: </H3>
! 347: <PRE>
2.1 timbl 348: #define HTML_NEXTID_ATTRIBUTES 1
349: #define HTML_NEXTID_N 0
2.28 ! frystyk 350: </PRE>
! 351: <H3>
! 352: NOTE
! 353: </H3>
! 354: <PRE>
2.1 timbl 355: #define HTML_NOTE_ATTRIBUTES 4
2.28 ! frystyk 356: </PRE>
! 357: <H3>
! 358: OBJECT
! 359: </H3>
! 360: <PRE>
! 361: #define HTML_OBJECT_ARCHIVE 0
! 362: #define HTML_OBJECT_CLASSID 1
! 363: #define HTML_OBJECT_CODEBASE 2
! 364: #define HTML_OBJECT_CODETYPE 3
! 365: #define HTML_OBJECT_DATA 4
! 366: #define HTML_OBJECT_DECLARE 5
! 367: #define HTML_OBJECT_HIGHT 6
! 368: #define HTML_OBJECT_NAME 7
! 369: #define HTML_OBJECT_STANDBY 8
! 370: #define HTML_OBJECT_TABINDEX 9
! 371: #define HTML_OBJECT_TYPE 10
! 372: #define HTML_OBJECT_USEMAP 11
! 373: #define HTML_OBJECT_WIDTH 12
! 374: #define HTML_OBJECT_ATTRIBUTES 13
! 375: </PRE>
! 376: <H3>
! 377: OPTION
! 378: </H3>
! 379: <PRE>
2.11 frystyk 380: #define HTML_OPTION_DISABLED 0 /* WSM bug fix, added these 4 */
381: #define HTML_OPTION_LANG 1
382: #define HTML_OPTION_SELECTED 2
383: #define HTML_OPTION_ATTRIBUTES 3
2.28 ! frystyk 384: </PRE>
! 385: <H3>
! 386: RENDER
! 387: </H3>
! 388: <PRE>
2.1 timbl 389: #define HTML_RENDER_ATTRIBUTES 2
2.28 ! frystyk 390: </PRE>
! 391: <H3>
! 392: SELECT
! 393: </H3>
! 394: <PRE>
2.11 frystyk 395: #define HTML_SELECT_ERROR 0 /* WSM bug fix, added these 5 */
396: #define HTML_SELECT_LANG 1
397: #define HTML_SELECT_MULTIPLE 2
398: #define HTML_SELECT_NAME 3
399: #define HTML_SELECT_SIZE 4
400: #define HTML_SELECT_ATTRIBUTES 5
2.28 ! frystyk 401: </PRE>
! 402: <H3>
! 403: TAB
! 404: </H3>
! 405: <PRE>
2.1 timbl 406: #define HTML_TAB_ATTRIBUTES 2
2.28 ! frystyk 407: </PRE>
! 408: <H3>
! 409: TABLE
! 410: </H3>
! 411: <PRE>
2.1 timbl 412: #define HTML_TABLE_ATTRIBUTES 4
2.28 ! frystyk 413: </PRE>
! 414: <H3>
! 415: TD
! 416: </H3>
! 417: <PRE>
2.1 timbl 418: #define HTML_TD_ATTRIBUTES 4
2.28 ! frystyk 419: </PRE>
! 420: <H3>
! 421: TEXTAREA
! 422: </H3>
! 423: <PRE>
! 424: #define HTML_TEXTAREA_COLS 0
! 425: #define HTML_TEXTAREA_DISABLED 1
! 426: #define HTML_TEXTAREA_ERROR 2
! 427: #define HTML_TEXTAREA_LANG 3
! 428: #define HTML_TEXTAREA_NAME 4
! 429: #define HTML_TEXTAREA_ROWS 5
2.1 timbl 430: #define HTML_TEXTAREA_ATTRIBUTES 6
2.28 ! frystyk 431: </PRE>
! 432: <H3>
! 433: TH
! 434: </H3>
! 435: <PRE>
2.1 timbl 436: #define HTML_TH_ATTRIBUTES 4
2.28 ! frystyk 437: </PRE>
! 438: <H3>
! 439: UL
! 440: </H3>
! 441: <PRE>
2.1 timbl 442: #define HTML_UL_ATTRIBUTES 6
2.28 ! frystyk 443: </PRE>
! 444: <H2>
! 445: The C Representation of the SGML DTD
! 446: </H2>
! 447: <PRE>
! 448: extern SGML_dtd * HTML_dtd (void);
! 449: extern BOOL HTML_setDtd (const SGML_dtd * dtd);
! 450: </PRE>
! 451: <H2>
! 452: Utitity Functions
! 453: </H2>
! 454: <H3>
! 455: Start anchor element
! 456: </H3>
! 457: <P>
! 458: It is kinda convenient to have a particular routine for starting an anchor
! 459: element, as everything else for HTML is simple anyway.
! 460: <PRE>
2.17 frystyk 461: extern void HTStartAnchor (
2.1 timbl 462: HTStructured * targetstream,
2.18 frystyk 463: const char * name,
464: const char * href);
2.28 ! frystyk 465: </PRE>
! 466: <H3>
! 467: Put image element
! 468: </H3>
! 469: <P>
! 470: This is the same idea but for images
! 471: <PRE>
2.17 frystyk 472: extern void HTMLPutImg (HTStructured *obj,
2.18 frystyk 473: const char *src,
474: const char *alt,
475: const char *align);
2.1 timbl 476:
2.28 ! frystyk 477: </PRE>
! 478: <H3>
! 479: Specify next ID to be used
! 480: </H3>
! 481: <P>
! 482: This is another convenience routine, for specifying the next ID to be used
! 483: by an editor in the series z1. z2,...
! 484: <PRE>
! 485: extern void HTNextID (HTStructured * targetStream, const char * s);
! 486: </PRE>
2.6 timbl 487: <PRE>
2.1 timbl 488: #endif /* HTMLDTD_H */
2.20 frystyk 489: </PRE>
2.28 ! frystyk 490: <P>
! 491: <HR>
2.20 frystyk 492: <ADDRESS>
2.28 ! frystyk 493: @(#) $Id: HTMLPDTD.html,v 2.27 1998/08/29 16:49:57 frystyk Exp $
2.20 frystyk 494: </ADDRESS>
2.28 ! frystyk 495: </BODY></HTML>
Webmaster