?? htmlpdtd.c
字號(hào):
HTML_ATTR(LABEL,DIR), HTML_ATTR(LABEL,FOR), HTML_ATTR(LABEL,ID), HTML_ATTR(LABEL,LANG), HTML_ATTR(LABEL,STYLE), HTML_ATTR(LABEL,TITLE), HTML_ATTRIBUTES(LABEL)};PRIVATE HTAttr legend_attr[HTML_LEGEND_ATTRIBUTES+1] = { HTML_ATTR(LEGEND,ACCESSKEY), HTML_ATTR(LEGEND,ALIGN), HTML_ATTR(LEGEND,CLASS), HTML_ATTR(LEGEND,DIR), HTML_ATTR(LEGEND,ID), HTML_ATTR(LEGEND,LANG), HTML_ATTR(LEGEND,STYLE), HTML_ATTR(LEGEND,TITLE), HTML_ATTRIBUTES(LEGEND)};PRIVATE HTAttr li_attr[HTML_LI_ATTRIBUTES+1] = { HTML_ATTR(LI,CLASS), HTML_ATTR(LI,COMPACT), HTML_ATTR(LI,DIR), HTML_ATTR(LI,ID), HTML_ATTR(LI,LANG), HTML_ATTR(LI,STYLE), HTML_ATTR(LI,TITLE), HTML_ATTR(LI,TYPE), HTML_ATTR(LI,VALUE), HTML_ATTRIBUTES(LI)};PRIVATE HTAttr link_attr[HTML_LINK_ATTRIBUTES+1] = { /* link attributes */ HTML_ATTR(LINK,CHARSET), HTML_ATTR(LINK,CLASS), HTML_ATTR(LINK,DIR), HTML_ATTR(LINK,HREF), HTML_ATTR(LINK,HREFLANG), HTML_ATTR(LINK,ID), HTML_ATTR(LINK,LANG), HTML_ATTR(LINK,MEDIA), HTML_ATTR(LINK,REL), HTML_ATTR(LINK,REV), HTML_ATTR(LINK,STYLE), HTML_ATTR(LINK,TARGET), HTML_ATTR(LINK,TITLE), HTML_ATTR(LINK,TYPE), HTML_ATTRIBUTES(LINK)}; PRIVATE HTAttr map_attr[HTML_MAP_ATTRIBUTES+1] = { HTML_ATTR(MAP,CLASS), HTML_ATTR(MAP,DIR), HTML_ATTR(MAP,ID), HTML_ATTR(MAP,LANG), HTML_ATTR(MAP,NAME), HTML_ATTR(MAP,STYLE), HTML_ATTR(MAP,TITLE), HTML_ATTRIBUTES(MAP)};PRIVATE HTAttr meta_attr[HTML_META_ATTRIBUTES+1] = { HTML_ATTR(META,CONTENT), HTML_ATTR(META,DIR), { "HTTP-EQUIV" }, /* HTML_ATTR(META,HTTP_EQUIV) */ HTML_ATTR(META,LANG), HTML_ATTR(META,NAME), HTML_ATTR(META,SCHEME), HTML_ATTRIBUTES(META)}; PRIVATE HTAttr nextid_attr[HTML_NEXTID_ATTRIBUTES+1] = { { "N" }, { 0 } /* Terminate list */};PRIVATE HTAttr object_attr[HTML_OBJECT_ATTRIBUTES+1] = { /* object attributes */ HTML_ATTR(OBJECT,ALIGN), HTML_ATTR(OBJECT,ARCHIVE), HTML_ATTR(OBJECT,BORDER), HTML_ATTR(OBJECT,CLASS), HTML_ATTR(OBJECT,CLASSID), HTML_ATTR(OBJECT,CODEBASE), HTML_ATTR(OBJECT,CODETYPE), HTML_ATTR(OBJECT,DATA), HTML_ATTR(OBJECT,DECLARE), HTML_ATTR(OBJECT,DIR), HTML_ATTR(OBJECT,HEIGHT), HTML_ATTR(OBJECT,HSPACE), HTML_ATTR(OBJECT,ID), HTML_ATTR(OBJECT,LANG), HTML_ATTR(OBJECT,NAME), HTML_ATTR(OBJECT,STANDBY), HTML_ATTR(OBJECT,STYLE), HTML_ATTR(OBJECT,TABINDEX), HTML_ATTR(OBJECT,TITLE), HTML_ATTR(OBJECT,TYPE), HTML_ATTR(OBJECT,USEMAP), HTML_ATTR(OBJECT,VSPACE), HTML_ATTR(OBJECT,WIDTH), HTML_ATTRIBUTES(OBJECT)}; PRIVATE HTAttr ol_attr[HTML_OL_ATTRIBUTES+1] = { HTML_ATTR(OL,CLASS), HTML_ATTR(OL,COMPACT), HTML_ATTR(OL,DIR), HTML_ATTR(OL,ID), HTML_ATTR(OL,LANG), HTML_ATTR(OL,START), HTML_ATTR(OL,STYLE), HTML_ATTR(OL,TITLE), HTML_ATTR(OL,TYPE), HTML_ATTRIBUTES(OL)};PRIVATE HTAttr optgroup_attr[HTML_OPTGROUP_ATTRIBUTES+1] = { HTML_ATTR(OPTGROUP,CLASS), HTML_ATTR(OPTGROUP,DISABLED), HTML_ATTR(OPTGROUP,DIR), HTML_ATTR(OPTGROUP,ID), HTML_ATTR(OPTGROUP,LABEL), HTML_ATTR(OPTGROUP,LANG), HTML_ATTR(OPTGROUP,STYLE), HTML_ATTR(OPTGROUP,TITLE), HTML_ATTRIBUTES(OPTGROUP)};PRIVATE HTAttr option_attr[HTML_OPTION_ATTRIBUTES+1] = { HTML_ATTR(OPTION,CLASS), HTML_ATTR(OPTION,DISABLED), HTML_ATTR(OPTION,DIR), HTML_ATTR(OPTION,ID), HTML_ATTR(OPTION,LABEL), HTML_ATTR(OPTION,LANG), HTML_ATTR(OPTION,SELECTED), HTML_ATTR(OPTION,STYLE), HTML_ATTR(OPTION,TITLE), HTML_ATTR(OPTION,VALUE), HTML_ATTRIBUTES(OPTION)};PRIVATE HTAttr param_attr[HTML_PARAM_ATTRIBUTES+1] = { HTML_ATTR(PARAM,ID), HTML_ATTR(PARAM,NAME), HTML_ATTR(PARAM,TYPE), HTML_ATTR(PARAM,VALUE), HTML_ATTR(PARAM,VALUETYPE), HTML_ATTRIBUTES(PARAM)};PRIVATE HTAttr pre_attr[HTML_PRE_ATTRIBUTES+1] = { HTML_ATTR(PRE,CLASS), HTML_ATTR(PRE,DIR), HTML_ATTR(PRE,ID), HTML_ATTR(PRE,LANG), HTML_ATTR(PRE,STYLE), HTML_ATTR(PRE,TITLE), HTML_ATTR(PRE,WIDTH), HTML_ATTRIBUTES(PRE)};PRIVATE HTAttr script_attr[HTML_SCRIPT_ATTRIBUTES+1] = { HTML_ATTR(SCRIPT,CHARSET), HTML_ATTR(SCRIPT,DEFER), HTML_ATTR(SCRIPT,LANGUAGE), HTML_ATTR(SCRIPT,SRC), HTML_ATTR(SCRIPT,TYPE), HTML_ATTRIBUTES(SCRIPT)};PRIVATE HTAttr select_attr[HTML_SELECT_ATTRIBUTES+1] = { HTML_ATTR(SELECT,CLASS), HTML_ATTR(SELECT,DIR), HTML_ATTR(SELECT,DISABLED), HTML_ATTR(SELECT,ID), HTML_ATTR(SELECT,LANG), HTML_ATTR(SELECT,MULTIPLE), HTML_ATTR(SELECT,NAME), HTML_ATTR(SELECT,SIZE), HTML_ATTR(SELECT,STYLE), HTML_ATTR(SELECT,TABINDEX), HTML_ATTR(SELECT,TITLE), HTML_ATTRIBUTES(SELECT)};PRIVATE HTAttr style_attr[HTML_STYLE_ATTRIBUTES+1] = { HTML_ATTR(STYLE,DIR), HTML_ATTR(STYLE,LANG), HTML_ATTR(STYLE,MEDIA), HTML_ATTR(STYLE,TITLE), HTML_ATTR(STYLE,TYPE), HTML_ATTRIBUTES(STYLE)};PRIVATE HTAttr table_attr[HTML_TABLE_ATTRIBUTES+1] = { HTML_ATTR(TABLE,ALIGN), HTML_ATTR(TABLE,BGCOLOR), HTML_ATTR(TABLE,BORDER), HTML_ATTR(TABLE,CELLPADDING), HTML_ATTR(TABLE,CELLSPACING), HTML_ATTR(TABLE,CLASS), HTML_ATTR(TABLE,DIR), HTML_ATTR(TABLE,FRAME), HTML_ATTR(TABLE,ID), HTML_ATTR(TABLE,LANG), HTML_ATTR(TABLE,RULES), HTML_ATTR(TABLE,SUMMARY), HTML_ATTR(TABLE,STYLE), HTML_ATTR(TABLE,TITLE), HTML_ATTR(TABLE,WIDTH), HTML_ATTRIBUTES(TABLE)};PRIVATE HTAttr tele_attr[HTML_TELE_ATTRIBUTES+1] = { HTML_ATTR(TELE,ALIGN), HTML_ATTR(TELE,CHAR), HTML_ATTR(TELE,CHAROFF), HTML_ATTR(TELE,CLASS), HTML_ATTR(TELE,DIR), HTML_ATTR(TELE,ID), HTML_ATTR(TELE,LANG), HTML_ATTR(TELE,STYLE), HTML_ATTR(TELE,TITLE), HTML_ATTR(TELE,VALIGN), HTML_ATTRIBUTES(TELE)};PRIVATE HTAttr td_attr[HTML_TD_ATTRIBUTES+1] = { HTML_ATTR(TD,ABBR), HTML_ATTR(TD,ALIGN), HTML_ATTR(TD,AXIS), HTML_ATTR(TD,BGCOLOR), HTML_ATTR(TD,CHAR), HTML_ATTR(TD,CHAROFF), HTML_ATTR(TD,CLASS), HTML_ATTR(TD,COLSPAN), HTML_ATTR(TD,DIR), HTML_ATTR(TD,ID), HTML_ATTR(TD,HEADERS), HTML_ATTR(TD,HEIGHT), HTML_ATTR(TD,LANG), HTML_ATTR(TD,NOWRAP), HTML_ATTR(TD,ROWSPAN), HTML_ATTR(TD,SCOPE), HTML_ATTR(TD,STYLE), HTML_ATTR(TD,TITLE), HTML_ATTR(TD,VALIGN), HTML_ATTR(TD,WIDTH), HTML_ATTRIBUTES(TD)};PRIVATE HTAttr textarea_attr[HTML_TEXTAREA_ATTRIBUTES+1] = { HTML_ATTR(TEXTAREA,CLASS), HTML_ATTR(TEXTAREA,COLS), HTML_ATTR(TEXTAREA,DIR), HTML_ATTR(TEXTAREA,DISABLED), HTML_ATTR(TEXTAREA,ID), HTML_ATTR(TEXTAREA,LANG), HTML_ATTR(TEXTAREA,NAME), HTML_ATTR(TEXTAREA,READONLY), HTML_ATTR(TEXTAREA,ROWS), HTML_ATTR(TEXTAREA,STYLE), HTML_ATTR(TEXTAREA,TABINDEX), HTML_ATTR(TEXTAREA,TITLE), HTML_ATTRIBUTES(TEXTAREA)};PRIVATE HTAttr title_attr[HTML_TITLE_ATTRIBUTES+1] = { HTML_ATTR(TITLE,DIR), HTML_ATTR(TITLE,LANG), HTML_ATTRIBUTES(TITLE)};PRIVATE HTAttr ul_attr[HTML_UL_ATTRIBUTES+1] = { HTML_ATTR(UL,CLASS), HTML_ATTR(UL,COMPACT), HTML_ATTR(UL,DIR), HTML_ATTR(UL,ID), HTML_ATTR(UL,LANG), HTML_ATTR(UL,STYLE), HTML_ATTR(UL,TITLE), HTML_ATTR(UL,TYPE), HTML_ATTRIBUTES(UL)};/*** ELEMENTS** Must match definitions in HTMLPDTD.html!** Must be in alphabetical order.**** Name, Attributes, content*/PRIVATE HTTag tags[HTML_ELEMENTS] = { { "A" , a_attr, HTML_A_ATTRIBUTES, SGML_MIXED }, { "ABBR" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "ACRONYM" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "ADDRESS" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "APPLET" , applet_attr, HTML_APPLET_ATTRIBUTES, SGML_MIXED }, { "AREA" , area_attr, HTML_AREA_ATTRIBUTES, SGML_EMPTY }, { "B" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "BASE" , base_attr, HTML_BASE_ATTRIBUTES, SGML_EMPTY }, { "BASEFONT", font_attr, HTML_FONT_ATTRIBUTES, SGML_EMPTY }, { "BDO" , bdo_attr, HTML_BDO_ATTRIBUTES, SGML_EMPTY }, { "BIG" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "BLOCKQUOTE", bq_attr, HTML_BQ_ATTRIBUTES, SGML_MIXED }, { "BODY" , body_attr, HTML_BODY_ATTRIBUTES, SGML_MIXED }, { "BR" , br_attr, HTML_BR_ATTRIBUTES, SGML_EMPTY }, { "BUTTON" , button_attr, HTML_BUTTON_ATTRIBUTES, SGML_MIXED }, { "CAPTION" , block_attr, HTML_BLOCK_ATTRIBUTES, SGML_MIXED }, { "CENTER" , no_attr, 0, SGML_MIXED }, { "CITE" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "CODE" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "COL" , col_attr, HTML_COL_ATTRIBUTES, SGML_MIXED }, { "COLGROUP", col_attr, HTML_COL_ATTRIBUTES, SGML_MIXED }, { "DD" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY }, { "DEL" , changes_attr, HTML_CHANGES_ATTRIBUTES,SGML_EMPTY }, { "DFN" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "DIR" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "DIV" , block_attr, HTML_BLOCK_ATTRIBUTES, SGML_MIXED }, { "DL" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "DT" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_EMPTY }, { "EM" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "FIELDSET", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "FONT" , font_attr, HTML_FONT_ATTRIBUTES, SGML_MIXED }, { "FORM" , form_attr, HTML_FORM_ATTRIBUTES, SGML_MIXED }, { "FRAME" , frame_attr, HTML_FRAME_ATTRIBUTES, SGML_EMPTY }, { "FRAMESET", frameset_attr,HTML_FRAMESET_ATTRIBUTES,SGML_MIXED }, { "H1" , block_attr, HTML_BLOCK_ATTRIBUTES, SGML_MIXED }, { "H2" , block_attr, HTML_BLOCK_ATTRIBUTES, SGML_MIXED }, { "H3" , block_attr, HTML_BLOCK_ATTRIBUTES, SGML_MIXED }, { "H4" , block_attr, HTML_BLOCK_ATTRIBUTES, SGML_MIXED }, { "H5" , block_attr, HTML_BLOCK_ATTRIBUTES, SGML_MIXED }, { "H6" , block_attr, HTML_BLOCK_ATTRIBUTES, SGML_MIXED }, { "HEAD" , head_attr, HTML_HEAD_ATTRIBUTES, SGML_MIXED }, { "HR" , hr_attr, HTML_HR_ATTRIBUTES, SGML_EMPTY }, { "HTML" , html_attr, HTML_HTML_ATTRIBUTES, SGML_MIXED }, /* */ { "I" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "IFRAME" , iframe_attr, HTML_IFRAME_ATTRIBUTES, SGML_MIXED }, { "IMG" , img_attr, HTML_IMG_ATTRIBUTES, SGML_EMPTY }, { "INPUT" , input_attr, HTML_INPUT_ATTRIBUTES, SGML_EMPTY }, { "INS" , changes_attr, HTML_CHANGES_ATTRIBUTES,SGML_MIXED }, { "ISINDEX" , isindex_attr, HTML_ISINDEX_ATTRIBUTES,SGML_EMPTY }, { "KBD" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "LABEL" , label_attr, HTML_LABEL_ATTRIBUTES, SGML_MIXED }, { "LEGEND" , legend_attr, HTML_LEGEND_ATTRIBUTES, SGML_MIXED }, { "LI" , li_attr, HTML_LI_ATTRIBUTES, SGML_EMPTY }, { "LINK" , link_attr, HTML_LINK_ATTRIBUTES, SGML_EMPTY }, { "MAP" , map_attr, HTML_MAP_ATTRIBUTES, SGML_MIXED }, { "MENU" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "META" , meta_attr, HTML_META_ATTRIBUTES, SGML_EMPTY }, { "NEXTID" , nextid_attr, 1, SGML_EMPTY }, { "NOFRAMES", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "NOSCRIPT", gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "OBJECT" , object_attr, HTML_OBJECT_ATTRIBUTES, SGML_MIXED }, { "OL" , ol_attr, HTML_OL_ATTRIBUTES, SGML_MIXED }, { "OPTGROUP", optgroup_attr,HTML_OPTGROUP_ATTRIBUTES,SGML_MIXED }, { "OPTION" , option_attr, HTML_OPTION_ATTRIBUTES, SGML_EMPTY },/*Mixed?*/ { "P" , block_attr, HTML_BLOCK_ATTRIBUTES, SGML_EMPTY }, { "PARAM" , param_attr, HTML_PARAM_ATTRIBUTES, SGML_EMPTY }, { "PRE" , pre_attr, HTML_PRE_ATTRIBUTES, SGML_MIXED }, { "Q" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "S" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "SAMP" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "SCRIPT" , script_attr, HTML_SCRIPT_ATTRIBUTES, SGML_MIXED }, { "SELECT" , select_attr, HTML_SELECT_ATTRIBUTES, SGML_MIXED }, { "SMALL" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "SPAN" , block_attr, HTML_BLOCK_ATTRIBUTES, SGML_MIXED }, { "STRIKE" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "STRONG" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "STYLE" , style_attr, HTML_STYLE_ATTRIBUTES, SGML_MIXED }, { "SUB" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "SUP" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "TABLE" , table_attr, HTML_TABLE_ATTRIBUTES, SGML_MIXED }, { "TBODY" , tele_attr, HTML_TELE_ATTRIBUTES, SGML_MIXED }, { "TD" , td_attr, HTML_TD_ATTRIBUTES, SGML_EMPTY /*SGML_MIXED*/ }, { "TEXTAREA", textarea_attr,HTML_TEXTAREA_ATTRIBUTES,SGML_MIXED}, { "TFOOT" , tele_attr, HTML_TELE_ATTRIBUTES, SGML_MIXED }, { "TH" , td_attr, HTML_TD_ATTRIBUTES, SGML_EMPTY /*SGML_MIXED*/}, { "THEAD" , tele_attr, HTML_TELE_ATTRIBUTES, SGML_MIXED }, { "TITLE" , title_attr, HTML_TITLE_ATTRIBUTES, SGML_MIXED }, { "TR" , tele_attr, HTML_TELE_ATTRIBUTES, SGML_EMPTY /*SGML_MIXED*/}, { "TT" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "U" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED }, { "UL" , ul_attr, HTML_UL_ATTRIBUTES, SGML_MIXED }, { "VAR" , gen_attr, HTML_GEN_ATTRIBUTES, SGML_MIXED },};PRIVATE SGML_dtd HTMLP_dtd = { tags, HTML_ELEMENTS, entities, sizeof(entities)/sizeof(char**)};PRIVATE SGML_dtd * DTD = &HTMLP_dtd;PUBLIC SGML_dtd * HTML_dtd (void){ return DTD;}PUBLIC BOOL HTML_setDtd (const SGML_dtd * dtd){ if (dtd) { DTD = (SGML_dtd *) dtd; return YES; } return NO;}/* Start anchor element** --------------------**** It is kinda convenient to have a particulr routine for** starting an anchor element, as everything else for HTML is** simple anyway.*/PUBLIC void HTStartAnchor (HTStructured * obj, const char * name, const char * href){ BOOL present[HTML_A_ATTRIBUTES]; const char* value[HTML_A_ATTRIBUTES]; { int i; for(i=0; i<HTML_A_ATTRIBUTES; i++) present[i] = NO; } if (name) { present[HTML_A_NAME] = YES; value[HTML_A_NAME] = name; } if (href) { present[HTML_A_HREF] = YES; value[HTML_A_HREF] = href; } (*obj->isa->start_element)(obj, HTML_A , present, value);}/* Put image element** --------------------**** Hopefully as usefull as HTStartAnchor. Henrik 23/03-94*/PUBLIC void HTMLPutImg (HTStructured * obj, const char * src, const char * alt, const char * align){ BOOL present[HTML_IMG_ATTRIBUTES]; const char* value[HTML_IMG_ATTRIBUTES]; { int i; for(i=0; i<HTML_IMG_ATTRIBUTES; i++) present[i] = NO; } if (src) { present[HTML_IMG_SRC] = YES; value[HTML_IMG_SRC] = src; } if (alt) { present[HTML_IMG_ALT] = YES; value[HTML_IMG_ALT] = alt; } if (align) { present[HTML_IMG_ALIGN] = YES; value[HTML_IMG_ALIGN] = align; } (*obj->isa->start_element)(obj, HTML_IMG , present, value); /* (*obj->isa->end_element)(obj, HTML_IMG); */}PUBLIC void HTNextID (HTStructured * obj, const char * next_one){ BOOL present[HTML_NEXTID_ATTRIBUTES]; const char* value[HTML_NEXTID_ATTRIBUTES]; { int i; for(i=0; i<HTML_NEXTID_ATTRIBUTES; i++) present[i] = NO; } present[HTML_NEXTID_N] = YES; value[HTML_NEXTID_N] = next_one; (*obj->isa->start_element)(obj, HTML_NEXTID , present, value);}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -