⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 htmlpdtd.c

📁 www工具包
💻 C
📖 第 1 页 / 共 2 页
字号:
PRIVATE HTAttr meta_attr[HTML_META_ATTRIBUTES+1] = {    { "CONTENT"},    { "HTTP-EQUIV"},    { "NAME"},    { "SCHEME" },    { 0 }		/* Terminate list */};	PRIVATE HTAttr nextid_attr[HTML_NEXTID_ATTRIBUTES+1] = {	{ "N" },	{ 0 }	/* Terminate list */};PRIVATE HTAttr note_attr[HTML_NOTE_ATTRIBUTES+1] = {	/* Footnotes etc etc */	{ "ID" },	{ "INDEX" },	{ "LANG" },	{ "ROLE" },	{ 0 }	/* terminate list */};PRIVATE HTAttr option_attr[HTML_OPTION_ATTRIBUTES+1] = {	{ "DISABLED" },	{ "LANG" },	{ "SELECTED" },	{ 0 }};PRIVATE HTAttr render_attr[HTML_RENDER_ATTRIBUTES+1] = {	{ "STYLE" },	{ "TAG" },	{ 0 }	/* Terminate list */};PRIVATE HTAttr select_attr[HTML_SELECT_ATTRIBUTES+1] = {	{ "ERROR" },	{ "LANG" },	{ "MULTIPLE" },			/* WSM bug fix, was SEVERAL */	{ "NAME" },	{ "SIZE" },			/* WSM bug fix, missing */	{ 0 },};PRIVATE HTAttr tab_attr[HTML_TAB_ATTRIBUTES+1] = {	{ "ALIGN" },	{ "AT" },	{ 0 }};PRIVATE HTAttr table_attr[HTML_TABLE_ATTRIBUTES+1] = {	{ "BORDER" },	{ "ID" },	{ "INDEX" },	{ "LANG" },	{ 0 }};PRIVATE HTAttr td_attr[HTML_TD_ATTRIBUTES+1] = {	{ "ALIGN" },	{ "COLSPAN" },	{ "ROWSPAN" },	{ "TAG" },	{ 0 }};PRIVATE HTAttr textarea_attr[HTML_TEXTAREA_ATTRIBUTES+1] = {	{ "COLS" },	{ "DISABLED" },	{ "ERROR" },	{ "LANG" },	{ "NAME" },	{ "ROWS" },	{ 0 }};PRIVATE HTAttr ul_attr[HTML_UL_ATTRIBUTES+1] = {	{ "COMPACT" },	{ "ID" },	{ "INDEX" },	{ "LANG" },	{ "PLAIN" },	{ "WRAP" },	{ 0 }};/***	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 },    { "ABBREV"  , gen_attr,     HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "ABSTRACT" , gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "ACRONYM"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "ADDED"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "ADDRESS"	, no_attr,	0,			SGML_MIXED },    { "AREA"	, area_attr,	HTML_AREA_ATTRIBUTES,	SGML_EMPTY },    { "ARG"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "B"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "BASE"	, base_attr,	HTML_BASE_ATTRIBUTES,	SGML_EMPTY },    { "BIG"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "BLOCKQUOTE", no_attr,	0,			SGML_MIXED },    { "BODY"	, body_attr,	HTML_BODY_ATTRIBUTES,	SGML_MIXED },    { "BOX"	, no_attr,	0,			SGML_MIXED },    { "BR"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY },    { "BYLINE"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "CAPTION"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "CHANGED"	, changed_attr, HTML_CHANGED_ATTRIBUTES, SGML_MIXED },    { "CITE"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "CMD"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "CODE"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "COMMENT"	, no_attr,	0,			SGML_MIXED },    { "DD"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY },    { "DFN"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "DIR"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "DIV"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "DL"	, glossary_attr,HTML_DL_ATTRIBUTES,	SGML_MIXED },    { "DT"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY },    { "EM"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "FIG" 	, fig_attr,	HTML_FIG_ATTRIBUTES,	SGML_MIXED },    { "FOOTNOTE" , gen_attr,	HTML_GEN_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_EMPTY },    { "H1"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "H2"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "H3"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "H4"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "H5"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "H6"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "H7"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "HEAD"	, no_attr,	0,			SGML_MIXED },    { "HR"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_EMPTY },    { "HTML"	, no_attr,	0,			SGML_MIXED },  /* */    { "HTMLPLUS", htmlplus_attr,HTML_HTMLPLUS_ATTRIBUTES, SGML_MIXED },    { "I"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "IMAGE"	, image_attr,	HTML_IMAGE_ATTRIBUTES,	SGML_EMPTY },    { "IMG"     , img_attr,	HTML_IMG_ATTRIBUTES,	SGML_EMPTY },    { "INPUT"	, input_attr,	HTML_INPUT_ATTRIBUTES,	SGML_EMPTY },    { "ISINDEX" , no_attr,	0,			SGML_EMPTY },    { "KBD"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "L"	, l_attr,	HTML_L_ATTRIBUTES,	SGML_MIXED },    { "LI"	, li_attr,	HTML_LI_ATTRIBUTES,	SGML_EMPTY },    { "LINK"	, link_attr,	HTML_LINK_ATTRIBUTES,	SGML_EMPTY },    { "LISTING"	, no_attr,	0,			SGML_LITERAL },    { "LIT"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "MAP"	, map_attr,	HTML_MAP_ATTRIBUTES,	SGML_MIXED },    { "MARGIN"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "MATH"	, id_attr,	HTML_ID_ATTRIBUTE,	SGML_MIXED },    { "MENU"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "META"	, meta_attr,	HTML_META_ATTRIBUTES,	SGML_EMPTY },    { "NEXTID"  , nextid_attr,	1,			SGML_EMPTY },    { "NOTE"	, note_attr,	HTML_NOTE_ATTRIBUTES,	SGML_EMPTY },    { "NOFRAMES", no_attr,	0,			SGML_MIXED },    { "OBJECT"	, object_attr,	HTML_OBJECT_ATTRIBUTES,	SGML_MIXED },    { "OL"	, list_attr,	HTML_LIST_ATTRIBUTES,	SGML_MIXED },    { "OPTION"	, option_attr,	HTML_OPTION_ATTRIBUTES,	SGML_EMPTY },/*Mixed?*/    { "OVER"	, no_attr,	0,			SGML_MIXED },    { "P"	, l_attr,	HTML_L_ATTRIBUTES,	SGML_EMPTY },    { "PERSON"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "PLAINTEXT", no_attr,	0,			SGML_LITERAL },    { "PRE"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "Q"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "QUOTE"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "RENDER"	, render_attr,	HTML_RENDER_ATTRIBUTES,	SGML_MIXED },    { "REMOVED"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "S"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "SAMP"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "SELECT"	, select_attr,	HTML_SELECT_ATTRIBUTES,	SGML_MIXED },    { "SMALL"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "SPAN"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "STRONG"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "SUB"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "SUP"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "TAB"	, tab_attr,	HTML_TAB_ATTRIBUTES,	SGML_EMPTY },    { "TABLE"	, table_attr,	HTML_TABLE_ATTRIBUTES,	SGML_MIXED },    { "TD"	, td_attr,	HTML_TABLE_ATTRIBUTES,	SGML_MIXED },    { "TEXTAREA", textarea_attr,HTML_TEXTAREA_ATTRIBUTES,SGML_MIXED},    { "TH"	, td_attr,	HTML_TD_ATTRIBUTES,	SGML_MIXED },    { "TITLE"	, gen_attr,	HTML_GEN_ATTRIBUTES,	SGML_MIXED },    { "TR"	, id_attr,	HTML_ID_ATTRIBUTE,	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 },    { "XMP"	, no_attr,	0,			SGML_LITERAL }};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);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -