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

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

Webmaster