/* W3C Sample Code Library libwww HTML DTD ! HTML Plus DTD - Software Interface ! */ /* ** (c) COPYRIGHT MIT 1995. ** Please first read the full copyright statement in the file COPYRIGH. */ /* SGML purists should excuse the use of the term "DTD" in this file to represent DTD-related information which is not exactly a DTD itself. The C modular structure doesn't work very well here, as the dtd is partly in the .h and partly in the .c which are not very independent. Tant pis! There are a couple of HTML-specific utility routines also defined. This module is a part of the W3C Sample Code Library. */ #ifndef HTMLDTD_H #define HTMLDTD_H #include "HTStruct.h" #include "SGML.h" /* . Number of HTML Entities . The entity names are defined in the C file. This gives the number of them. Must Match all tables by element! */ #define HTML_ENTITIES 67 /* . HTML Element Enumeration . These include tables in HTMLPDTD.c and code in HTML.c. Note that not everything from HTML 4.0 is there! */ typedef enum _HTMLElement { HTML_A = 0, HTML_ABBREV, HTML_ABSTRACT, HTML_ACRONYM, HTML_ADDED, HTML_ADDRESS, HTML_AREA, HTML_ARG, HTML_B, HTML_BASE, HTML_BLOCKQUOTE, HTML_BODY, HTML_BOX, HTML_BR, HTML_BYLINE, HTML_CAPTION, HTML_CHANGED, HTML_CITE, HTML_CMD, HTML_CODE, HTML_COMMENT, HTML_DD, HTML_DFN, HTML_DIR, HTML_DL, HTML_DT, HTML_EM, HTML_FIG, HTML_FOOTNOTE, HTML_FORM, HTML_FRAME, HTML_FRAMESET, HTML_H1, HTML_H2, HTML_H3, HTML_H4, HTML_H5, HTML_H6, HTML_H7, HTML_HEAD, HTML_HR, HTML_HTML, HTML_HTMLPLUS, HTML_I, HTML_IMAGE, HTML_IMG, HTML_INPUT, HTML_ISINDEX, HTML_KBD, HTML_L, HTML_LI, HTML_LINK, HTML_LISTING, HTML_LIT, HTML_MARGIN, HTML_MATH, HTML_MENU, HTML_META, HTML_NEXTID, HTML_NOFRAMES, HTML_NOTE, HTML_OBJECT, HTML_OL, HTML_OPTION, HTML_OVER, HTML_P, HTML_PERSON, HTML_PLAINTEXT, HTML_PRE, HTML_Q, HTML_QUOTE, HTML_RENDER, HTML_REMOVED, HTML_S, HTML_SAMP, HTML_SELECT, HTML_STRONG, HTML_SUB, HTML_SUP, HTML_TAB, HTML_TABLE, HTML_TD, HTML_TEXTAREA, HTML_TH, HTML_TITLE, HTML_TR, HTML_TT, HTML_U, HTML_UL, HTML_VAR, HTML_XMP, HTML_ELEMENTS /* This must be the last entry */ } HTMLElement; /* . Element Attribute Enumerations . Identifier is HTML__. These must match the tables in HTMLPDTD.c! ( A ) */ #define HTML_A_EFFECT 0 #define HTML_A_HREF 1 #define HTML_A_ID 2 #define HTML_A_METHODS 3 #define HTML_A_NAME 4 #define HTML_A_PRINT 5 #define HTML_A_REL 6 #define HTML_A_REV 7 #define HTML_A_SHAPE 8 #define HTML_A_TITLE 9 #define HTML_A_ATTRIBUTES 10 /* ( AREA ) */ #define HTML_AREA_ALT 0 #define HTML_AREA_ACCESSKEY 1 #define HTML_AREA_COORDS 2 #define HTML_AREA_HREF 3 #define HTML_AREA_NOHREF 4 #define HTML_AREA_ONBLUR 5 #define HTML_AREA_ONFOCUS 6 #define HTML_AREA_SHAPE 7 #define HTML_AREA_TABINDEX 8 #define HTML_AREA_ATTRIBUTES 9 /* ( BASE ) */ #define HTML_BASE_HREF 0 #define HTML_BASE_ATTRIBUTES 1 /* ( BODY ) */ #define HTML_BODY_BACKGROUND 0 #define HTML_BODY_ATTRIBUTES 1 /* ( FORM ) */ #define HTML_FORM_ACTION 0 /* WSM bug fix, added these five */ #define HTML_FORM_ID 1 #define HTML_FORM_INDEX 2 #define HTML_FORM_LANG 3 #define HTML_FORM_METHOD 4 #define HTML_FORM_ATTRIBUTES 5 /* ( FRAME ) */ #define HTML_FRAME_SRC 0 #define HTML_FRAME_ATTRIBUTES 1 /* ( FRAMESET ) */ #define HTML_FRAMESET_COLS 0 #define HTML_FRAMESET_ROWS 1 #define HTML_FRAMESET_BORDER 2 #define HTML_FRAMESET_BORDERCOLOR 3 #define HTML_FRAMESET_FRAMEBORDER 4 #define HTML_FRAMESET_ONBLUR 5 #define HTML_FRAMESET_ONFOCUS 6 #define HTML_FRAMESET_ONLOAD 7 #define HTML_FRAMESET_ONUNLOAD 8 #define HTML_FRAMESET_ATTRIBUTES 9 /* ( FIG ) */ #define HTML_FIG_ATTRIBUTES 6 /* ( GEN ) */ #define HTML_GEN_ATTRIBUTES 3 /* ( HTMLPLUS ) */ #define HTML_HTMLPLUS_ATTRIBUTES 2 /* ( IMAGE ) */ #define HTML_IMAGE_ATTRIBUTES 5 /* ( CHANGED ) */ #define HTML_CHANGED_ATTRIBUTES 2 /* ( DL ) */ #define HTML_DL_ID 0 #define HTML_DL_COMPACT 1 #define HTML_DL_INDEX 2 #define HTML_DL_ATTRIBUTES 3 /* ( IMG ) */ #define HTML_IMG_ALIGN 0 #define HTML_IMG_ALT 1 #define HTML_IMG_ISMAP 2 /* Obsolete but supported */ #define HTML_IMG_LOWSRC 3 #define HTML_IMG_SEETHRU 4 #define HTML_IMG_SRC 5 #define HTML_IMG_ATTRIBUTES 6 /* ( INPUT ) */ #define HTML_INPUT_ALIGN 0 #define HTML_INPUT_CHECKED 1 #define HTML_INPUT_DISABLED 2 #define HTML_INPUT_ERROR 3 #define HTML_INPUT_MAX 4 #define HTML_INPUT_MIN 5 #define HTML_INPUT_NAME 6 #define HTML_INPUT_SIZE 7 #define HTML_INPUT_SRC 8 #define HTML_INPUT_TYPE 9 #define HTML_INPUT_VALUE 10 #define HTML_INPUT_ATTRIBUTES 11 /* ( L ) */ #define HTML_L_ATTRIBUTES 4 /* ( LI ) */ #define HTML_LI_ATTRIBUTES 4 /* ( LIST ) */ #define HTML_LIST_ATTRIBUTES 4 /* ( LINK ) */ #define HTML_LINK_CHARSET 0 #define HTML_LINK_HREF 1 #define HTML_LINK_HREFLANG 2 #define HTML_LINK_MEDIA 3 #define HTML_LINK_REL 4 #define HTML_LINK_REV 5 #define HTML_LINK_TYPE 6 #define HTML_LINK_ATTRIBUTES 7 /* ( ID ) */ #define HTML_ID_ATTRIBUTE 1 /* ( META ) */ #define HTML_META_CONTENT 0 #define HTML_META_HTTP_EQUIV 1 #define HTML_META_NAME 2 #define HTML_META_SCHEME 3 #define HTML_META_ATTRIBUTES 4 /* ( NEXTID ) */ #define HTML_NEXTID_ATTRIBUTES 1 #define HTML_NEXTID_N 0 /* ( NOTE ) */ #define HTML_NOTE_ATTRIBUTES 4 /* ( OBJECT ) */ #define HTML_OBJECT_ARCHIVE 0 #define HTML_OBJECT_CLASSID 1 #define HTML_OBJECT_CODEBASE 2 #define HTML_OBJECT_CODETYPE 3 #define HTML_OBJECT_DATA 4 #define HTML_OBJECT_DECLARE 5 #define HTML_OBJECT_HIGHT 6 #define HTML_OBJECT_NAME 7 #define HTML_OBJECT_STANDBY 8 #define HTML_OBJECT_TABINDEX 9 #define HTML_OBJECT_TYPE 10 #define HTML_OBJECT_USEMAP 11 #define HTML_OBJECT_WIDTH 12 #define HTML_OBJECT_ATTRIBUTES 13 /* ( OPTION ) */ #define HTML_OPTION_DISABLED 0 /* WSM bug fix, added these 4 */ #define HTML_OPTION_LANG 1 #define HTML_OPTION_SELECTED 2 #define HTML_OPTION_ATTRIBUTES 3 /* ( RENDER ) */ #define HTML_RENDER_ATTRIBUTES 2 /* ( SELECT ) */ #define HTML_SELECT_ERROR 0 /* WSM bug fix, added these 5 */ #define HTML_SELECT_LANG 1 #define HTML_SELECT_MULTIPLE 2 #define HTML_SELECT_NAME 3 #define HTML_SELECT_SIZE 4 #define HTML_SELECT_ATTRIBUTES 5 /* ( TAB ) */ #define HTML_TAB_ATTRIBUTES 2 /* ( TABLE ) */ #define HTML_TABLE_ATTRIBUTES 4 /* ( TD ) */ #define HTML_TD_ATTRIBUTES 4 /* ( TEXTAREA ) */ #define HTML_TEXTAREA_COLS 0 #define HTML_TEXTAREA_DISABLED 1 #define HTML_TEXTAREA_ERROR 2 #define HTML_TEXTAREA_LANG 3 #define HTML_TEXTAREA_NAME 4 #define HTML_TEXTAREA_ROWS 5 #define HTML_TEXTAREA_ATTRIBUTES 6 /* ( TH ) */ #define HTML_TH_ATTRIBUTES 4 /* ( UL ) */ #define HTML_UL_ATTRIBUTES 6 /* . The C Representation of the SGML DTD . */ extern SGML_dtd * HTML_dtd (void); extern BOOL HTML_setDtd (const SGML_dtd * dtd); /* . Utitity Functions . ( Start anchor element ) It is kinda convenient to have a particular routine for starting an anchor element, as everything else for HTML is simple anyway. */ extern void HTStartAnchor ( HTStructured * targetstream, const char * name, const char * href); /* ( Put image element ) This is the same idea but for images */ extern void HTMLPutImg (HTStructured *obj, const char *src, const char *alt, const char *align); /* ( Specify next ID to be used ) This is another convenience routine, for specifying the next ID to be used by an editor in the series z1. z2,... */ extern void HTNextID (HTStructured * targetStream, const char * s); /* */ #endif /* HTMLDTD_H */ /* @(#) $Id: HTMLPDTD.html,v 2.28 1999/01/06 15:38:47 frystyk Exp $ */