Annotation of libwww/Library/src/HTMLPDTD.html, revision 2.33

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.33    ! vbancrof   31: 
        !            32: #ifdef __cplusplus
        !            33: extern "C" { 
        !            34: #endif 
2.9       frystyk    35: </PRE>
2.28      frystyk    36: <H2>
                     37:   Number of HTML Entities
                     38: </H2>
                     39: <P>
                     40: The entity names are defined in the C file. This gives the number of them.
                     41: Must Match all tables by element!
2.9       frystyk    42: <PRE>
2.31      raff       43: #define HTML_ENTITIES 100
2.9       frystyk    44: </PRE>
2.28      frystyk    45: <H2>
                     46:   HTML Element Enumeration
                     47: </H2>
                     48: <P>
                     49: These include tables in <A HREF="HTMLPDTD.c" NAME="z1">HTMLPDTD.c</A> and
                     50: code in <A HREF="HTML.c" NAME="z0">HTML.c</A>. Note that not everything from
                     51: <A HREF="http://www.w3.org/TR/REC-html40">HTML 4.0</A> is there!
2.9       frystyk    52: <PRE>
2.6       timbl      53: typedef enum _HTMLElement {
2.28      frystyk    54:        HTML_A = 0,
2.30      frystyk    55:        HTML_ABBR,
2.1       timbl      56:        HTML_ACRONYM,
                     57:        HTML_ADDRESS,
2.30      frystyk    58:        HTML_APPLET,
2.28      frystyk    59:        HTML_AREA,
2.1       timbl      60:        HTML_B,
                     61:        HTML_BASE,
2.30      frystyk    62:        HTML_BASEFONT,
                     63:        HTML_BDO,
2.29      frystyk    64:        HTML_BIG,
2.1       timbl      65:        HTML_BLOCKQUOTE,
                     66:        HTML_BODY,
                     67:        HTML_BR,
2.30      frystyk    68:        HTML_BUTTON,
2.1       timbl      69:        HTML_CAPTION,
2.30      frystyk    70:        HTML_CENTER,
2.1       timbl      71:        HTML_CITE,
                     72:        HTML_CODE,
2.30      frystyk    73:        HTML_COL,
                     74:        HTML_COLGROUP,
2.1       timbl      75:        HTML_DD,
2.30      frystyk    76:        HTML_DEL,
2.1       timbl      77:        HTML_DFN,
                     78:        HTML_DIR,
2.29      frystyk    79:        HTML_DIV,
2.1       timbl      80:        HTML_DL,
                     81:        HTML_DT,
                     82:        HTML_EM,
2.30      frystyk    83:        HTML_FIELDSET,
                     84:        HTML_FONT,
2.1       timbl      85:        HTML_FORM,
2.27      frystyk    86:        HTML_FRAME,
                     87:        HTML_FRAMESET,
2.1       timbl      88:        HTML_H1,
                     89:        HTML_H2,
                     90:        HTML_H3,
                     91:        HTML_H4,
                     92:        HTML_H5,
                     93:        HTML_H6, 
                     94:        HTML_HEAD,
                     95:        HTML_HR,
                     96:        HTML_HTML,
                     97:        HTML_I,
2.30      frystyk    98:        HTML_IFRAME,
2.1       timbl      99:        HTML_IMG,
                    100:        HTML_INPUT,
2.30      frystyk   101:        HTML_INS,
2.1       timbl     102:        HTML_ISINDEX,
2.30      frystyk   103:        HTML_KBD,
                    104:        HTML_LABEL,
                    105:        HTML_LEGEND,
2.1       timbl     106:        HTML_LI,
                    107:        HTML_LINK,
2.29      frystyk   108:        HTML_MAP,
2.1       timbl     109:        HTML_MENU,
2.25      frystyk   110:        HTML_META,
2.30      frystyk   111:        HTML_NEXTID,    /* !!! */
2.27      frystyk   112:        HTML_NOFRAMES,
2.30      frystyk   113:        HTML_NOSCRIPT,
2.28      frystyk   114:        HTML_OBJECT,
2.1       timbl     115:        HTML_OL,
2.30      frystyk   116:        HTML_OPTGROUP,
2.1       timbl     117:        HTML_OPTION,
                    118:        HTML_P,
2.30      frystyk   119:        HTML_PARAM,
2.1       timbl     120:        HTML_PRE,
                    121:        HTML_Q,
                    122:        HTML_S,
                    123:        HTML_SAMP,
2.30      frystyk   124:        HTML_SCRIPT,
2.1       timbl     125:        HTML_SELECT,
2.29      frystyk   126:        HTML_SMALL,
                    127:        HTML_SPAN,
2.30      frystyk   128:        HTML_STRIKE,
2.1       timbl     129:        HTML_STRONG,
2.30      frystyk   130:        HTML_STYLE,
2.1       timbl     131:        HTML_SUB,
                    132:        HTML_SUP,
                    133:        HTML_TABLE,
2.30      frystyk   134:        HTML_TBODY,
2.1       timbl     135:        HTML_TD,
                    136:        HTML_TEXTAREA,
2.30      frystyk   137:        HTML_TFOOT,
2.1       timbl     138:        HTML_TH,
2.30      frystyk   139:        HTML_THEAD,
2.1       timbl     140:        HTML_TITLE,
                    141:        HTML_TR,
                    142:        HTML_TT,
                    143:        HTML_U,
                    144:        HTML_UL,
                    145:        HTML_VAR,
2.28      frystyk   146:        HTML_ELEMENTS           /* This must be the last entry */
                    147: } HTMLElement;
                    148: </PRE>
                    149: <H2>
                    150:   Element Attribute Enumerations
                    151: </H2>
                    152: <P>
                    153: Identifier is <TT>HTML_&lt;element&gt;_&lt;attribute&gt;</TT>. These
                    154: <STRONG>must</STRONG> match the tables in
                    155: <A HREF="HTMLPDTD.c" NAME="z2">HTMLPDTD.c</A>!
                    156: <H3>
2.30      frystyk   157:   Attributes definition Macros
                    158: </H3>
                    159: <PRE>
                    160: /* Define an attribute as HTML_<tag>_<attribute> */
                    161: #define        HTML_ATTR(t,a)          HTML_##t##_##a
                    162: #define        HTML_ATTRIBUTES(t)      HTML_##t##_ATTRIBUTES
                    163: </PRE>
                    164: <H3>
2.28      frystyk   165:   A
                    166: </H3>
                    167: <PRE>
2.30      frystyk   168: enum _HTML_A_Attributes {
                    169:        HTML_ATTR(A,ACCESSKEY) = 0,
                    170:        HTML_ATTR(A,CHARSET),
                    171:        HTML_ATTR(A,CLASS),
                    172:        HTML_ATTR(A,COORDS),
                    173:        HTML_ATTR(A,DIR),
                    174:        HTML_ATTR(A,HREF),
                    175:        HTML_ATTR(A,HREFLANG),
                    176:        HTML_ATTR(A,ID),
                    177:        HTML_ATTR(A,NAME),
                    178:        HTML_ATTR(A,REL),
                    179:        HTML_ATTR(A,REV),
                    180:        HTML_ATTR(A,SHAPE),
                    181:        HTML_ATTR(A,STYLE),
                    182:        HTML_ATTR(A,TABINDEX),
                    183:        HTML_ATTR(A,TARGET),
                    184:        HTML_ATTR(A,TYPE),
                    185:        HTML_ATTR(A,TITLE),
                    186:        HTML_ATTRIBUTES(A)
                    187: };
                    188: </PRE>
                    189: <H3>
                    190:   APPLET - Deprecated
                    191: </H3>
                    192: <PRE>
                    193: enum _HTML_APPLET_Attributes {
                    194:        HTML_ATTR(APPLET,ALIGN) = 0,
                    195:        HTML_ATTR(APPLET,ALT),
                    196:        HTML_ATTR(APPLET,ARCHIVE),
                    197:        HTML_ATTR(APPLET,CLASS),
                    198:        HTML_ATTR(APPLET,CODE),
                    199:        HTML_ATTR(APPLET,CODEBASE),
                    200:        HTML_ATTR(APPLET,HEIGHT),
                    201:        HTML_ATTR(APPLET,HSPACE),
                    202:        HTML_ATTR(APPLET,ID),
                    203:        HTML_ATTR(APPLET,NAME),
                    204:        HTML_ATTR(APPLET,OBJECT),
                    205:        HTML_ATTR(APPLET,STYLE),
                    206:        HTML_ATTR(APPLET,TITLE),
                    207:        HTML_ATTR(APPLET,VSPACE),
                    208:        HTML_ATTR(APPLET,WIDTH),
                    209:        HTML_ATTRIBUTES(APPLET)
                    210: };
2.28      frystyk   211: </PRE>
                    212: <H3>
                    213:   AREA
                    214: </H3>
                    215: <PRE>
2.30      frystyk   216: enum _HTML_AREA_Attributes {
                    217:        HTML_ATTR(AREA,ACCESSKEY) = 0,
                    218:        HTML_ATTR(AREA,ALT),
                    219:        HTML_ATTR(AREA,CLASS),
                    220:        HTML_ATTR(AREA,COORDS),
                    221:        HTML_ATTR(AREA,DIR),
                    222:        HTML_ATTR(AREA,HREF),
                    223:        HTML_ATTR(AREA,ID),
                    224:        HTML_ATTR(AREA,NAME),
                    225:        HTML_ATTR(AREA,NOHREF),
                    226:        HTML_ATTR(AREA,LANG),
                    227:        HTML_ATTR(AREA,SHAPE),
                    228:        HTML_ATTR(AREA,STYLE),
                    229:        HTML_ATTR(AREA,TABINDEX),
                    230:        HTML_ATTR(AREA,TARGET),
                    231:        HTML_ATTR(AREA,TITLE),
                    232:        HTML_ATTRIBUTES(AREA)
                    233: };
                    234: 
2.28      frystyk   235: </PRE>
                    236: <H3>
                    237:   BASE
                    238: </H3>
                    239: <PRE>
2.30      frystyk   240: enum _HTML_BASE_Attributes {
                    241:        HTML_ATTR(BASE,HREF) = 0,
                    242:        HTML_ATTR(BASE,TARGET),
                    243:        HTML_ATTRIBUTES(BASE)
                    244: };
                    245: </PRE>
                    246: <H3>
                    247:   BDO
                    248: </H3>
                    249: <PRE>
                    250: enum _HTML_BDO_Attributes {
                    251:        HTML_ATTR(BDO,CLASS) = 0,
                    252:        HTML_ATTR(BDO,DIR),
                    253:        HTML_ATTR(BDO,ID),
                    254:        HTML_ATTR(BDO,LANG),
                    255:        HTML_ATTR(BDO,STYLE),
                    256:        HTML_ATTR(BDO,TITLE),
                    257:        HTML_ATTRIBUTES(BDO)
                    258: };
                    259: </PRE>
                    260: <H3>
                    261:   BLOCKQUOTE
                    262: </H3>
                    263: <PRE>
                    264: enum _HTML_BQ_Attributes {
                    265:        HTML_ATTR(BQ,CITE) = 0,
                    266:        HTML_ATTR(BQ,CLASS),
                    267:        HTML_ATTR(BQ,DIR),
                    268:        HTML_ATTR(BQ,ID),
                    269:        HTML_ATTR(BQ,LANG),
                    270:        HTML_ATTR(BQ,STYLE),
                    271:        HTML_ATTR(BQ,TITLE),
                    272:        HTML_ATTRIBUTES(BQ)
                    273: };
2.28      frystyk   274: </PRE>
                    275: <H3>
                    276:   BODY
                    277: </H3>
                    278: <PRE>
2.30      frystyk   279: enum _HTML_BODY_Attributes {
                    280:        HTML_ATTR(BODY,ALINK) = 0,
                    281:        HTML_ATTR(BODY,BACKGROUND),
                    282:        HTML_ATTR(BODY,BGCOLOR),
                    283:        HTML_ATTR(BODY,CLASS),
                    284:        HTML_ATTR(BODY,DIR),
                    285:        HTML_ATTR(BODY,ID),
                    286:        HTML_ATTR(BODY,LANG),
                    287:        HTML_ATTR(BODY,LINK),
                    288:        HTML_ATTR(BODY,STYLE),
                    289:        HTML_ATTR(BODY,TEXT),
                    290:        HTML_ATTR(BODY,TITLE),
                    291:        HTML_ATTR(BODY,VLINK),
                    292:        HTML_ATTRIBUTES(BODY)
                    293: };
                    294: </PRE>
                    295: <H3>
                    296:   BR
                    297: </H3>
                    298: <PRE>
                    299: enum _HTML_BR_Attributes {
                    300:        HTML_ATTR(BR,CLASS) = 0,
                    301:        HTML_ATTR(BR,CLEAR),
                    302:        HTML_ATTR(BR,ID),
                    303:        HTML_ATTR(BR,STYLE),
                    304:        HTML_ATTR(BR,TITLE),
                    305:        HTML_ATTRIBUTES(BR)
                    306: };
                    307: </PRE>
                    308: <H3>
                    309:   BUTTON
                    310: </H3>
                    311: <PRE>
                    312: enum _HTML_BUTTON_Attributes {
                    313:        HTML_ATTR(BUTTON,ACCESSKEY) = 0,
                    314:        HTML_ATTR(BUTTON,CLASS),
                    315:        HTML_ATTR(BUTTON,DIR),
                    316:        HTML_ATTR(BUTTON,DISABLED),
                    317:        HTML_ATTR(BUTTON,ID),
                    318:        HTML_ATTR(BUTTON,LANG),
                    319:        HTML_ATTR(BUTTON,NAME),
                    320:        HTML_ATTR(BUTTON,STYLE),
                    321:        HTML_ATTR(BUTTON,TABINDEX),
                    322:        HTML_ATTR(BUTTON,TITLE),
                    323:        HTML_ATTR(BUTTON,TYPE),
                    324:        HTML_ATTR(BUTTON,VALUE),
2.32      kahan     325:        HTML_ATTRIBUTES(BUTTON)
2.30      frystyk   326: };
                    327: </PRE>
                    328: <H3>
                    329:   COL
                    330: </H3>
                    331: <PRE>
                    332: enum _HTML_COL_Attributes {
                    333:        HTML_ATTR(COL,CLASS) = 0,
                    334:        HTML_ATTR(COL,DIR),
                    335:        HTML_ATTR(COL,ID),
                    336:        HTML_ATTR(COL,LANG),
                    337:        HTML_ATTR(COL,SPAN),
                    338:        HTML_ATTR(COL,STYLE),
                    339:        HTML_ATTR(COL,TITLE),
                    340:        HTML_ATTR(COL,WIDTH),
                    341:        HTML_ATTRIBUTES(COL)
                    342: };
                    343: </PRE>
                    344: <H3>
                    345:   DEL, INS
                    346: </H3>
                    347: <PRE>
                    348: enum _HTML_CHANGES_Attributes {
                    349:        HTML_ATTR(CHANGES,CITE) = 0,
                    350:        HTML_ATTR(CHANGES,CLASS),
                    351:        HTML_ATTR(CHANGES,DATETIME),
                    352:        HTML_ATTR(CHANGES,DIR),
                    353:        HTML_ATTR(CHANGES,ID),
                    354:        HTML_ATTR(CHANGES,LANG),
                    355:        HTML_ATTR(CHANGES,STYLE),
                    356:        HTML_ATTR(CHANGES,TITLE),
                    357:        HTML_ATTRIBUTES(CHANGES)
                    358: };
                    359: </PRE>
                    360: <H3>
                    361:   FONT - Deprecated
                    362: </H3>
                    363: <PRE>
                    364: enum _HTML_FONT_Attributes {
                    365:        HTML_ATTR(FONT,CLASS) = 0,
                    366:        HTML_ATTR(FONT,COLOR),
                    367:        HTML_ATTR(FONT,DIR),
                    368:        HTML_ATTR(FONT,FACE),
                    369:        HTML_ATTR(FONT,ID),
                    370:        HTML_ATTR(FONT,LANG),
                    371:        HTML_ATTR(FONT,SIZE),
                    372:        HTML_ATTR(FONT,STYLE),
                    373:        HTML_ATTR(FONT,TITLE),
                    374:        HTML_ATTRIBUTES(FONT)
                    375: };
2.28      frystyk   376: </PRE>
                    377: <H3>
                    378:   FORM
                    379: </H3>
                    380: <PRE>
2.30      frystyk   381: enum _HTML_FORM_Attributes {
                    382:        HTML_ATTR(FORM,ACCEPT) = 0,
                    383:        HTML_ATTR(FORM,ACCEPT_CHARSET), /* { "ACCEPT-CHARSET" } */
                    384:        HTML_ATTR(FORM,ACTION),
                    385:        HTML_ATTR(FORM,CLASS),
                    386:        HTML_ATTR(FORM,DIR),
                    387:        HTML_ATTR(FORM,ENCTYPE),
                    388:        HTML_ATTR(FORM,ID),
                    389:        HTML_ATTR(FORM,LANG),
                    390:        HTML_ATTR(FORM,METHOD),
                    391:        HTML_ATTR(FORM,STYLE),
                    392:        HTML_ATTR(FORM,TARGET),
                    393:        HTML_ATTR(FORM,TITLE),
                    394:        HTML_ATTRIBUTES(FORM)
                    395: };
2.28      frystyk   396: </PRE>
                    397: <H3>
                    398:   FRAME
                    399: </H3>
                    400: <PRE>
2.30      frystyk   401: enum _HTML_FRAME_Attributes {
                    402:        HTML_ATTR(FRAME,CLASS) = 0,
                    403:        HTML_ATTR(FRAME,FRAMEBORDER),
                    404:        HTML_ATTR(FRAME,ID),
                    405:        HTML_ATTR(FRAME,NAME),
                    406:        HTML_ATTR(FRAME,MARGINHEIGHT),
                    407:        HTML_ATTR(FRAME,MARGINWIDTH),
                    408:        HTML_ATTR(FRAME,NORESIZE),
                    409:        HTML_ATTR(FRAME,LONGDESC),
                    410:        HTML_ATTR(FRAME,SCROLLING),
                    411:        HTML_ATTR(FRAME,SRC),
                    412:        HTML_ATTR(FRAME,STYLE),
                    413:        HTML_ATTR(FRAME,TARGET),
                    414:        HTML_ATTR(FRAME,TITLE),
                    415:        HTML_ATTRIBUTES(FRAME)
                    416: };
2.28      frystyk   417: </PRE>
                    418: <H3>
                    419:   FRAMESET
                    420: </H3>
                    421: <PRE>
2.30      frystyk   422: enum _HTML_FRAMESET_Attributes {
                    423:        HTML_ATTR(FRAMESET,CLASS) = 0,
                    424:        HTML_ATTR(FRAMESET,COLS),
                    425:        HTML_ATTR(FRAMESET,ID),
                    426:        HTML_ATTR(FRAMESET,ROWS),
                    427:        HTML_ATTR(FRAMESET,STYLE),
                    428:        HTML_ATTR(FRAMESET,TITLE),
                    429:        HTML_ATTRIBUTES(FRAMESET)
                    430: };
                    431: </PRE>
                    432: <H3>
                    433:   Generic attributes
                    434: </H3>
                    435: <PRE>
                    436: enum _HTML_GEN_Attributes {
                    437:        HTML_ATTR(GEN,CLASS) = 0,
                    438:        HTML_ATTR(GEN,DIR),
                    439:        HTML_ATTR(GEN,ID),
                    440:        HTML_ATTR(GEN,LANG),
                    441:        HTML_ATTR(GEN,STYLE),
                    442:        HTML_ATTR(GEN,TITLE),
                    443:        HTML_ATTRIBUTES(GEN)
                    444: };
                    445: </PRE>
                    446: <H3>
                    447:   BLOCK
                    448: </H3>
                    449: <PRE>
                    450: enum _HTML_BLOCK_Attributes {
                    451:        HTML_ATTR(BLOCK,ALIGN) = 0,
                    452:        HTML_ATTR(BLOCK,CLASS),
                    453:        HTML_ATTR(BLOCK,DIR),
                    454:        HTML_ATTR(BLOCK,ID),
                    455:        HTML_ATTR(BLOCK,LANG),
                    456:        HTML_ATTR(BLOCK,STYLE),
                    457:        HTML_ATTR(BLOCK,TITLE),
                    458:        HTML_ATTRIBUTES(BLOCK)
                    459: };
                    460: </PRE>
                    461: <H3>
                    462:   HEAD
                    463: </H3>
                    464: <PRE>
                    465: enum _HTML_HEAD_Attributes {
                    466:        HTML_ATTR(HEAD,DIR) = 0,
                    467:        HTML_ATTR(HEAD,LANG),
                    468:        HTML_ATTR(HEAD,PROFILE),
                    469:        HTML_ATTRIBUTES(HEAD)
                    470: };
                    471: </PRE>
                    472: <H3>
                    473:   HR
                    474: </H3>
                    475: <PRE>
                    476: enum _HTML_HR_Attributes {
                    477:        HTML_ATTR(HR,ALIGN) = 0,
                    478:        HTML_ATTR(HR,CLASS),
                    479:        HTML_ATTR(HR,DIR),
                    480:        HTML_ATTR(HR,ID),
                    481:        HTML_ATTR(HR,LANG),
                    482:        HTML_ATTR(HR,NOSHADE),
                    483:        HTML_ATTR(HR,SIZE),
                    484:        HTML_ATTR(HR,STYLE),
                    485:        HTML_ATTR(HR,TITLE),
                    486:        HTML_ATTR(HR,WIDTH),
                    487:        HTML_ATTRIBUTES(HR)
                    488: };
                    489: </PRE>
                    490: <H3>
                    491:   HTML
                    492: </H3>
                    493: <PRE>
                    494: enum _HTML_HTML_Attributes {
                    495:        HTML_ATTR(HTML,DIR) = 0,
                    496:        HTML_ATTR(HTML,LANG),
                    497:        HTML_ATTR(HTML,VERSION),
                    498:        HTML_ATTRIBUTES(HTML)
                    499: };
                    500: </PRE>
                    501: <H3>
                    502:   IFRAME
                    503: </H3>
                    504: <PRE>
                    505: enum _HTML_IFRAME_Attributes {
                    506:        HTML_ATTR(IFRAME,ALIGN) = 0,
                    507:        HTML_ATTR(IFRAME,CLASS),
                    508:        HTML_ATTR(IFRAME,FRAMEBORDER),
                    509:        HTML_ATTR(IFRAME,HEIGHT),
                    510:        HTML_ATTR(IFRAME,ID),
                    511:        HTML_ATTR(IFRAME,LONGDESC),
                    512:        HTML_ATTR(IFRAME,MARGINHEIGHT),
                    513:        HTML_ATTR(IFRAME,MARGINWIDTH),
                    514:        HTML_ATTR(IFRAME,NAME),
                    515:        HTML_ATTR(IFRAME,SCROLLING),
                    516:        HTML_ATTR(IFRAME,SRC),
                    517:        HTML_ATTR(IFRAME,STYLE),
                    518:        HTML_ATTR(IFRAME,TARGET),
                    519:        HTML_ATTR(IFRAME,TITLE),
                    520:        HTML_ATTR(IFRAME,WIDTH),
                    521:        HTML_ATTRIBUTES(IFRAME)
                    522: };
2.28      frystyk   523: </PRE>
                    524: <H3>
                    525:   IMG
                    526: </H3>
                    527: <PRE>
2.30      frystyk   528: enum _HTML_IMG_Attributes {
                    529:        HTML_ATTR(IMG,ALIGN) = 0,
                    530:        HTML_ATTR(IMG,ALT),
                    531:        HTML_ATTR(IMG,BORDER),
                    532:        HTML_ATTR(IMG,CLASS),
                    533:        HTML_ATTR(IMG,DIR),
                    534:        HTML_ATTR(IMG,HEIGHT),
                    535:        HTML_ATTR(IMG,HSPACE),
                    536:        HTML_ATTR(IMG,ID),
                    537:        HTML_ATTR(IMG,ISMAP),
                    538:        HTML_ATTR(IMG,LANG),
                    539:        HTML_ATTR(IMG,LONGDESC),
                    540:        HTML_ATTR(IMG,SRC),
                    541:        HTML_ATTR(IMG,STYLE),
                    542:        HTML_ATTR(IMG,TITLE),
                    543:        HTML_ATTR(IMG,USEMAP),
                    544:        HTML_ATTR(IMG,VSPACE),
                    545:        HTML_ATTR(IMG,WIDTH),
                    546:        HTML_ATTRIBUTES(IMG)
                    547: };
2.28      frystyk   548: </PRE>
                    549: <H3>
                    550:   INPUT
                    551: </H3>
                    552: <PRE>
2.30      frystyk   553: enum _HTML_INPUT_Attributes {
                    554:        HTML_ATTR(INPUT,ACCEPT) = 0,
                    555:        HTML_ATTR(INPUT,ACCESSKEY),
                    556:        HTML_ATTR(INPUT,ALIGN),
                    557:        HTML_ATTR(INPUT,ALT),
                    558:        HTML_ATTR(INPUT,CHECKED),
                    559:        HTML_ATTR(INPUT,CLASS),
                    560:        HTML_ATTR(INPUT,DIR),
                    561:        HTML_ATTR(INPUT,DISABLED),
                    562:        HTML_ATTR(INPUT,ID),
                    563:        HTML_ATTR(INPUT,LANG),
                    564:        HTML_ATTR(INPUT,MAXLENGTH),
                    565:        HTML_ATTR(INPUT,NAME),
                    566:        HTML_ATTR(INPUT,READONLY),
                    567:        HTML_ATTR(INPUT,SIZE),
                    568:        HTML_ATTR(INPUT,SRC),
                    569:        HTML_ATTR(INPUT,STYLE),
                    570:        HTML_ATTR(INPUT,TABINDEX),
                    571:        HTML_ATTR(INPUT,TITLE),
                    572:        HTML_ATTR(INPUT,TYPE),
                    573:        HTML_ATTR(INPUT,USEMAP),
                    574:        HTML_ATTR(INPUT,VALUE),
                    575:        HTML_ATTRIBUTES(INPUT)
                    576: };
                    577: </PRE>
                    578: <H3>
                    579: </H3>
                    580: <PRE>
                    581: enum _HTML_ISINDEX_Attributes {
                    582:        HTML_ATTR(ISINDEX,CLASS) = 0,
                    583:        HTML_ATTR(ISINDEX,DIR),
                    584:        HTML_ATTR(ISINDEX,ID),
                    585:        HTML_ATTR(ISINDEX,LANG),
                    586:        HTML_ATTR(ISINDEX,PROMPT),
                    587:        HTML_ATTR(ISINDEX,STYLE),
                    588:        HTML_ATTR(ISINDEX,TITLE),
                    589:        HTML_ATTRIBUTES(ISINDEX)
                    590: };
                    591: </PRE>
                    592: <H3>
                    593: </H3>
                    594: <PRE>
                    595: enum _HTML_LABEL_Attributes {
                    596:        HTML_ATTR(LABEL,ACCESSKEY) = 0,
                    597:        HTML_ATTR(LABEL,CLASS),
                    598:        HTML_ATTR(LABEL,DIR),
                    599:        HTML_ATTR(LABEL,FOR),
                    600:        HTML_ATTR(LABEL,ID),
                    601:        HTML_ATTR(LABEL,LANG),
                    602:        HTML_ATTR(LABEL,STYLE),
                    603:        HTML_ATTR(LABEL,TITLE),
                    604:        HTML_ATTRIBUTES(LABEL)
                    605: };
                    606: </PRE>
                    607: <H3>
                    608: </H3>
                    609: <PRE>
                    610: enum _HTML_LEGEND_Attributes {
                    611:     HTML_ATTR(LEGEND,ACCESSKEY) = 0,
                    612:     HTML_ATTR(LEGEND,ALIGN),
                    613:        HTML_ATTR(LEGEND,CLASS),
                    614:        HTML_ATTR(LEGEND,DIR),
                    615:        HTML_ATTR(LEGEND,ID),
                    616:        HTML_ATTR(LEGEND,LANG),
                    617:        HTML_ATTR(LEGEND,STYLE),
                    618:        HTML_ATTR(LEGEND,TITLE),
                    619:        HTML_ATTRIBUTES(LEGEND)
                    620: };
2.28      frystyk   621: </PRE>
                    622: <H3>
                    623:   LI
                    624: </H3>
                    625: <PRE>
2.30      frystyk   626: enum _HTML_LI_Attributes {
                    627:        HTML_ATTR(LI,CLASS) = 0,
                    628:        HTML_ATTR(LI,COMPACT),
                    629:        HTML_ATTR(LI,DIR),
                    630:        HTML_ATTR(LI,ID),
                    631:        HTML_ATTR(LI,LANG),
                    632:        HTML_ATTR(LI,STYLE),
                    633:        HTML_ATTR(LI,TITLE),
                    634:        HTML_ATTR(LI,TYPE),
                    635:        HTML_ATTR(LI,VALUE),
                    636:        HTML_ATTRIBUTES(LI)
                    637: };
2.28      frystyk   638: </PRE>
                    639: <H3>
                    640:   LINK
                    641: </H3>
                    642: <PRE>
2.30      frystyk   643: enum _HTML_LINK_Attributes {
                    644:        HTML_ATTR(LINK,CHARSET) = 0,
                    645:        HTML_ATTR(LINK,CLASS),
                    646:        HTML_ATTR(LINK,DIR),
                    647:        HTML_ATTR(LINK,HREF),
                    648:        HTML_ATTR(LINK,HREFLANG),
                    649:        HTML_ATTR(LINK,ID),
                    650:        HTML_ATTR(LINK,LANG),
                    651:        HTML_ATTR(LINK,MEDIA),
                    652:        HTML_ATTR(LINK,REL),
                    653:        HTML_ATTR(LINK,REV),
                    654:        HTML_ATTR(LINK,STYLE),
                    655:        HTML_ATTR(LINK,TARGET),
                    656:        HTML_ATTR(LINK,TITLE),
                    657:        HTML_ATTR(LINK,TYPE),
                    658:        HTML_ATTRIBUTES(LINK)
                    659: };
2.28      frystyk   660: </PRE>
                    661: <H3>
2.29      frystyk   662:   MAP
                    663: </H3>
                    664: <PRE>
2.30      frystyk   665: enum _HTML_MAP_Attributes {
                    666:        HTML_ATTR(MAP,CLASS) = 0,
                    667:        HTML_ATTR(MAP,DIR),
                    668:        HTML_ATTR(MAP,ID),
                    669:        HTML_ATTR(MAP,LANG),
                    670:        HTML_ATTR(MAP,NAME),
                    671:        HTML_ATTR(MAP,STYLE),
                    672:        HTML_ATTR(MAP,TITLE),
                    673:        HTML_ATTRIBUTES(MAP)
                    674: };
2.29      frystyk   675: </PRE>
                    676: <H3>
2.28      frystyk   677:   META
                    678: </H3>
                    679: <PRE>
2.30      frystyk   680: enum _HTML_META_Attributes {
                    681:        HTML_ATTR(META,CONTENT) = 0,
                    682:        HTML_ATTR(META,DIR),
                    683:        HTML_ATTR(META,HTTP_EQUIV),    /* { "HTTP-EQUIV" ) */
                    684:        HTML_ATTR(META,LANG),
                    685:        HTML_ATTR(META,NAME),
                    686:        HTML_ATTR(META,SCHEME),
                    687:        HTML_ATTRIBUTES(META)
                    688: };     
2.28      frystyk   689: </PRE>
                    690: <H3>
                    691:   NEXTID
                    692: </H3>
                    693: <PRE>
2.1       timbl     694: #define HTML_NEXTID_ATTRIBUTES  1
                    695: #define HTML_NEXTID_N 0
2.28      frystyk   696: </PRE>
                    697: <H3>
                    698:   OBJECT
                    699: </H3>
                    700: <PRE>
2.30      frystyk   701: enum _HTML_OBJECT_Attributes {
                    702:        HTML_ATTR(OBJECT,ALIGN) = 0,
                    703:        HTML_ATTR(OBJECT,ARCHIVE),
                    704:        HTML_ATTR(OBJECT,BORDER),
                    705:        HTML_ATTR(OBJECT,CLASS),
                    706:        HTML_ATTR(OBJECT,CLASSID),
                    707:        HTML_ATTR(OBJECT,CODEBASE),
                    708:        HTML_ATTR(OBJECT,CODETYPE),
                    709:        HTML_ATTR(OBJECT,DATA),
                    710:        HTML_ATTR(OBJECT,DECLARE),
                    711:        HTML_ATTR(OBJECT,DIR),
                    712:        HTML_ATTR(OBJECT,HEIGHT),
                    713:        HTML_ATTR(OBJECT,HSPACE),
                    714:        HTML_ATTR(OBJECT,ID),
                    715:        HTML_ATTR(OBJECT,LANG),
                    716:        HTML_ATTR(OBJECT,NAME),
                    717:        HTML_ATTR(OBJECT,STANDBY),
                    718:        HTML_ATTR(OBJECT,STYLE),
                    719:        HTML_ATTR(OBJECT,TABINDEX),
                    720:        HTML_ATTR(OBJECT,TITLE),
                    721:        HTML_ATTR(OBJECT,TYPE),
                    722:        HTML_ATTR(OBJECT,USEMAP),
                    723:        HTML_ATTR(OBJECT,VSPACE),
                    724:        HTML_ATTR(OBJECT,WIDTH),
                    725:        HTML_ATTRIBUTES(OBJECT)
                    726: };
                    727: </PRE>
                    728: <H3>
                    729:   OL
                    730: </H3>
                    731: <PRE>
                    732: enum _HTML_OL_Attributes {
                    733:        HTML_ATTR(OL,CLASS) = 0,
                    734:        HTML_ATTR(OL,COMPACT),
                    735:        HTML_ATTR(OL,DIR),
                    736:        HTML_ATTR(OL,ID),
                    737:        HTML_ATTR(OL,LANG),
                    738:        HTML_ATTR(OL,START),
                    739:        HTML_ATTR(OL,STYLE),
                    740:        HTML_ATTR(OL,TITLE),
                    741:        HTML_ATTR(OL,TYPE),
                    742:        HTML_ATTRIBUTES(OL)
                    743: };
                    744: </PRE>
                    745: <H3>
                    746:   OPTGROUP
                    747: </H3>
                    748: <PRE>
                    749: enum _HTML_OPTGROUP_Attributes {
                    750:        HTML_ATTR(OPTGROUP,CLASS) = 0,
                    751:        HTML_ATTR(OPTGROUP,DISABLED),
                    752:        HTML_ATTR(OPTGROUP,DIR),
                    753:        HTML_ATTR(OPTGROUP,ID),
                    754:        HTML_ATTR(OPTGROUP,LABEL),
                    755:        HTML_ATTR(OPTGROUP,LANG),
                    756:        HTML_ATTR(OPTGROUP,STYLE),
                    757:        HTML_ATTR(OPTGROUP,TITLE),
                    758:        HTML_ATTRIBUTES(OPTGROUP)
                    759: };
2.28      frystyk   760: </PRE>
                    761: <H3>
                    762:   OPTION
                    763: </H3>
                    764: <PRE>
2.30      frystyk   765: enum _HTML_OPTION_Attributes {
                    766:        HTML_ATTR(OPTION,CLASS) = 0,
                    767:        HTML_ATTR(OPTION,DISABLED),
                    768:        HTML_ATTR(OPTION,DIR),
                    769:        HTML_ATTR(OPTION,ID),
                    770:        HTML_ATTR(OPTION,LABEL),
                    771:        HTML_ATTR(OPTION,LANG),
                    772:        HTML_ATTR(OPTION,SELECTED),
                    773:        HTML_ATTR(OPTION,STYLE),
                    774:        HTML_ATTR(OPTION,TITLE),
                    775:        HTML_ATTR(OPTION,VALUE),
                    776:        HTML_ATTRIBUTES(OPTION)
                    777: };
                    778: </PRE>
                    779: <H3>
                    780:   PARAM
                    781: </H3>
                    782: <PRE>
                    783: enum _HTML_PARAM_Attributes {
                    784:        HTML_ATTR(PARAM,ID) = 0,
                    785:        HTML_ATTR(PARAM,NAME),
                    786:        HTML_ATTR(PARAM,TYPE),
                    787:        HTML_ATTR(PARAM,VALUE),
                    788:        HTML_ATTR(PARAM,VALUETYPE),
                    789:        HTML_ATTRIBUTES(PARAM)
                    790: };
                    791: </PRE>
                    792: <H3>
                    793:   PRE
                    794: </H3>
                    795: <PRE>
                    796: enum _HTML_PRE_Attributes {
                    797:        HTML_ATTR(PRE,CLASS) = 0,
                    798:        HTML_ATTR(PRE,DIR),
                    799:        HTML_ATTR(PRE,ID),
                    800:        HTML_ATTR(PRE,LANG),
                    801:        HTML_ATTR(PRE,STYLE),
                    802:        HTML_ATTR(PRE,TITLE),
                    803:        HTML_ATTR(PRE,WIDTH),
                    804:        HTML_ATTRIBUTES(PRE)
                    805: };
                    806: </PRE>
                    807: <H3>
                    808:   SCRIPT
                    809: </H3>
                    810: <PRE>
                    811: enum _HTML_SCRIPT_Attributes {
                    812:        HTML_ATTR(SCRIPT,CHARSET) = 0,
                    813:        HTML_ATTR(SCRIPT,DEFER),
                    814:        HTML_ATTR(SCRIPT,LANGUAGE),
                    815:        HTML_ATTR(SCRIPT,SRC),
                    816:        HTML_ATTR(SCRIPT,TYPE),
                    817:        HTML_ATTRIBUTES(SCRIPT)
                    818: };
2.28      frystyk   819: </PRE>
                    820: <H3>
                    821:   SELECT
                    822: </H3>
                    823: <PRE>
2.30      frystyk   824: enum _HTML_SELECT_Attributes {
                    825:        HTML_ATTR(SELECT,CLASS) = 0,
                    826:        HTML_ATTR(SELECT,DIR),
                    827:        HTML_ATTR(SELECT,DISABLED),
                    828:        HTML_ATTR(SELECT,ID),
                    829:        HTML_ATTR(SELECT,LANG),
                    830:        HTML_ATTR(SELECT,MULTIPLE),
                    831:        HTML_ATTR(SELECT,NAME),
                    832:        HTML_ATTR(SELECT,SIZE),
                    833:        HTML_ATTR(SELECT,STYLE),
                    834:        HTML_ATTR(SELECT,TABINDEX),
                    835:        HTML_ATTR(SELECT,TITLE),
                    836:        HTML_ATTRIBUTES(SELECT)
                    837: };
                    838: </PRE>
                    839: <H3>
                    840:   STYLE
                    841: </H3>
                    842: <PRE>
                    843: enum _HTML_STYLE_Attributes {
                    844:        HTML_ATTR(STYLE,DIR) = 0,
                    845:        HTML_ATTR(STYLE,LANG),
                    846:        HTML_ATTR(STYLE,MEDIA),
                    847:        HTML_ATTR(STYLE,TITLE),
                    848:        HTML_ATTR(STYLE,TYPE),
                    849:        HTML_ATTRIBUTES(STYLE)
                    850: };
2.28      frystyk   851: </PRE>
                    852: <H3>
                    853:   TABLE
                    854: </H3>
                    855: <PRE>
2.30      frystyk   856: enum _HTML_TABLE_Attributes {
                    857:        HTML_ATTR(TABLE,ALIGN) = 0,
                    858:        HTML_ATTR(TABLE,BGCOLOR),
                    859:        HTML_ATTR(TABLE,BORDER),
                    860:        HTML_ATTR(TABLE,CELLPADDING),
                    861:        HTML_ATTR(TABLE,CELLSPACING),
                    862:        HTML_ATTR(TABLE,CLASS),
                    863:        HTML_ATTR(TABLE,DIR),
                    864:        HTML_ATTR(TABLE,FRAME),
                    865:        HTML_ATTR(TABLE,ID),
                    866:        HTML_ATTR(TABLE,LANG),
                    867:        HTML_ATTR(TABLE,RULES),
                    868:        HTML_ATTR(TABLE,SUMMARY),
                    869:        HTML_ATTR(TABLE,STYLE),
                    870:        HTML_ATTR(TABLE,TITLE),
                    871:        HTML_ATTR(TABLE,WIDTH),
                    872:        HTML_ATTRIBUTES(TABLE)
                    873: };
                    874: </PRE>
                    875: <H3>
                    876:   TABLE Elements
                    877: </H3>
                    878: <PRE>
                    879: enum _HTML_TELE_Attributes {
                    880:        HTML_ATTR(TELE,ALIGN) = 0,
                    881:        HTML_ATTR(TELE,CHAR),
                    882:        HTML_ATTR(TELE,CHAROFF),
                    883:        HTML_ATTR(TELE,CLASS),
                    884:        HTML_ATTR(TELE,DIR),
                    885:        HTML_ATTR(TELE,ID),
                    886:        HTML_ATTR(TELE,LANG),
                    887:        HTML_ATTR(TELE,STYLE),
                    888:        HTML_ATTR(TELE,TITLE),
                    889:        HTML_ATTR(TELE,VALIGN),
                    890:        HTML_ATTRIBUTES(TELE)
                    891: };
2.28      frystyk   892: </PRE>
                    893: <H3>
                    894:   TD
                    895: </H3>
                    896: <PRE>
2.30      frystyk   897: enum _HTML_TD_Attributes {
                    898:        HTML_ATTR(TD,ABBR) = 0,
                    899:        HTML_ATTR(TD,ALIGN),
                    900:        HTML_ATTR(TD,AXIS),
                    901:        HTML_ATTR(TD,BGCOLOR),
                    902:        HTML_ATTR(TD,CHAR),
                    903:        HTML_ATTR(TD,CHAROFF),
                    904:        HTML_ATTR(TD,CLASS),
                    905:        HTML_ATTR(TD,COLSPAN),
                    906:        HTML_ATTR(TD,DIR),
                    907:        HTML_ATTR(TD,ID),
                    908:        HTML_ATTR(TD,HEADERS),
                    909:        HTML_ATTR(TD,HEIGHT),
                    910:        HTML_ATTR(TD,LANG),
                    911:        HTML_ATTR(TD,NOWRAP),
                    912:        HTML_ATTR(TD,ROWSPAN),
                    913:        HTML_ATTR(TD,SCOPE),
                    914:        HTML_ATTR(TD,STYLE),
                    915:        HTML_ATTR(TD,TITLE),
                    916:        HTML_ATTR(TD,VALIGN),
                    917:        HTML_ATTR(TD,WIDTH),
                    918:        HTML_ATTRIBUTES(TD)
                    919: };
2.28      frystyk   920: </PRE>
                    921: <H3>
                    922:   TEXTAREA
                    923: </H3>
                    924: <PRE>
2.30      frystyk   925: enum _HTML_TEXTAREA_Attributes {
                    926:        HTML_ATTR(TEXTAREA,CLASS) = 0,
                    927:        HTML_ATTR(TEXTAREA,COLS),
                    928:        HTML_ATTR(TEXTAREA,DIR),
                    929:        HTML_ATTR(TEXTAREA,DISABLED),
                    930:        HTML_ATTR(TEXTAREA,ID),
                    931:        HTML_ATTR(TEXTAREA,LANG),
                    932:        HTML_ATTR(TEXTAREA,NAME),
                    933:        HTML_ATTR(TEXTAREA,READONLY),
                    934:        HTML_ATTR(TEXTAREA,ROWS),
                    935:        HTML_ATTR(TEXTAREA,STYLE),
                    936:        HTML_ATTR(TEXTAREA,TABINDEX),
                    937:        HTML_ATTR(TEXTAREA,TITLE),
                    938:        HTML_ATTRIBUTES(TEXTAREA)
                    939: };
                    940: </PRE>
                    941: <H3>
                    942:   TITLE
                    943: </H3>
                    944: <PRE>
                    945: enum _HTML_TITLE_Attributes {
                    946:        HTML_ATTR(TITLE,DIR) = 0,
                    947:        HTML_ATTR(TITLE,LANG),
                    948:        HTML_ATTRIBUTES(TITLE)
                    949: };
2.28      frystyk   950: </PRE>
                    951: <H3>
                    952:   UL
                    953: </H3>
                    954: <PRE>
2.30      frystyk   955: enum _HTML_UL_Attributes {
                    956:        HTML_ATTR(UL,CLASS) = 0,
                    957:        HTML_ATTR(UL,COMPACT),
                    958:        HTML_ATTR(UL,DIR),
                    959:        HTML_ATTR(UL,ID),
                    960:        HTML_ATTR(UL,LANG),
                    961:        HTML_ATTR(UL,STYLE),
                    962:        HTML_ATTR(UL,TITLE),
                    963:        HTML_ATTR(UL,TYPE),
                    964:        HTML_ATTRIBUTES(UL)
                    965: };
2.28      frystyk   966: </PRE>
                    967: <H2>
                    968:   The C Representation of the SGML DTD
                    969: </H2>
                    970: <PRE>
                    971: extern SGML_dtd * HTML_dtd (void);
                    972: extern BOOL HTML_setDtd (const SGML_dtd * dtd);
                    973: </PRE>
                    974: <H2>
                    975:   Utitity Functions
                    976: </H2>
                    977: <H3>
                    978:   Start anchor element
                    979: </H3>
                    980: <P>
                    981: It is kinda convenient to have a particular routine for starting an anchor
                    982: element, as everything else for HTML is simple anyway.
                    983: <PRE>
2.17      frystyk   984: extern void HTStartAnchor (
2.1       timbl     985:                HTStructured * targetstream,
2.18      frystyk   986:                const char *    name,
                    987:                const char *    href);
2.28      frystyk   988: </PRE>
                    989: <H3>
                    990:   Put image element
                    991: </H3>
                    992: <P>
                    993: This is the same idea but for images
                    994: <PRE>
2.17      frystyk   995: extern void HTMLPutImg (HTStructured *obj,
2.18      frystyk   996:                               const char *src,
                    997:                               const char *alt,
                    998:                               const char *align);
2.1       timbl     999: 
2.28      frystyk  1000: </PRE>
                   1001: <H3>
                   1002:   Specify next ID to be used
                   1003: </H3>
                   1004: <P>
                   1005: This is another convenience routine, for specifying the next ID to be used
                   1006: by an editor in the series z1. z2,...
                   1007: <PRE>
                   1008: extern void HTNextID (HTStructured * targetStream, const char * s);
                   1009: </PRE>
2.6       timbl    1010: <PRE>
2.33    ! vbancrof 1011: #ifdef __cplusplus
        !          1012: }
        !          1013: #endif
        !          1014: 
2.1       timbl    1015: #endif /* HTMLDTD_H */
2.20      frystyk  1016: </PRE>
2.28      frystyk  1017: <P>
                   1018:   <HR>
2.20      frystyk  1019: <ADDRESS>
2.33    ! vbancrof 1020:   @(#) $Id: HTMLPDTD.html,v 2.32 2000/01/06 10:48:50 kahan Exp $
2.20      frystyk  1021: </ADDRESS>
2.28      frystyk  1022: </BODY></HTML>

Webmaster