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_&lt;element&gt;_&lt;attribute&gt;</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