// Copyright (c) 1999-2001 David Muse
// See the COPYING file for more information

#ifndef HTMLTAGS_H
#define HTMLTAGS_H

#include <inputoutput.h>

// The htmltags class provides functions for generating html tags.

// html 4.0

class   htmltags : public inputoutput {
        public:
                        htmltags(void *apistruct);

                        // In this class, there is a function for each 
                        // html tag and an enumeration type of all the 
                        // attributes for each tag.  
                        //
                        // For each function, a container strstream is 
                        // passed in as the first argument.  If the container 
                        // is NULL, the tagis written to the browser, 
                        // if it is non-NULL, the tag is written to the 
                        // container.  
                        //
                        // Following the container is a NULL terminated list of 
                        // attribute, value pairs.  Each attribute is assumed
                        // to be one of the enumerated attributes for that
                        // tag.  Each value is assumed to be a string.  There
                        // are some attributes which have no associated
                        // value.  
                        //
                        // Example function calls follow:
                        //
                        // table(NULL,table_border,"1",
                        //              table_cellpadding,"0",
                        //              table_cellspacing,"0",
                        //              NULL);
                        // bold(NULL,NULL);
                        // hr(NULL,hr_size,"1",hr_noshade,NULL);



                        // the following enumeration types are tag attributes
                        // for each possible tag

                        // frame tags
                        typedef enum {
                                // standard attributes
                                        frameset_border=1,
                                        frameset_bordercolor,
                                        frameset_frameborder,
                                        frameset_framespacing,
                                        frameset_rows,
                                        frameset_cols,
                                // css attributes
                                        frameset_class,
                                        frameset_id,
                                        frameset_style,
                                // accessibility attributes
                                        frameset_title,
                                // language attributes
                                        frameset_dir,
                                        frameset_lang,
                                        frameset_language
                        } frameset_arg;
                        
                        
                        typedef enum {
                                // standard attributes
                                        frame_bordercolor=1,
                                        frame_frameborder,
                                        frame_longdesc,
                                        frame_marginheight,
                                        frame_marginwidth,
                                        frame_name,
                                        frame_noresize,
                                        frame_scrolling,
                                        frame_src,              // required
                                // css attributes
                                        frame_class,
                                        frame_id,
                                        frame_style,
                                // accessibility attributes
                                        frame_title,
                                // language attributes
                                        frame_dir,
                                        frame_lang,
                                        frame_language,
                                // data attributes
                                        frame_datafld,
                                        frame_dataformats,
                                        frame_datasrc
                        } frame_arg;
                        
                        
                        typedef enum {
                                // css attributes
                                        noframes_class=1,
                                        noframes_id,
                                        noframes_style,
                                // accessibility attributes
                                        noframes_title,
                                // language attributes
                                        noframes_dir,
                                        noframes_lang,
                                        noframes_language,
                                // event attributes
                                        noframes_onclick,
                                        noframes_ondblclick,
                                        noframes_onkeydown,
                                        noframes_onkeypress,
                                        noframes_onkeyup,
                                        noframes_onmousedown,
                                        noframes_onmousemove,
                                        noframes_onmouseout,
                                        noframes_onmouseover,
                                        noframes_onmouseup
                        } noframes_arg;
                        
                        
                        
                        // head tags
                        typedef enum {
                                // standard attributes
                                        head_profile=1,
                                // css attributes
                                        head_class,
                                        head_id,
                                        head_style,
                                // accessibility attributes
                                        head_title,
                                // language attributes
                                        head_dir,
                                        head_lang,
                                        head_language
                        } head_arg;
                        
                        
                        typedef enum {
                                // standard attributes
                                        base_href=1,            // required
                                        base_target
                        } base_arg;
                        
                        
                        typedef enum {
                                // standard attributes
                                        isindex_action=1,
                                        isindex_prompt,
                                // css attributes
                                        isindex_class,
                                        isindex_id,
                                        isindex_style,
                                // accessibility attributes
                                        isindex_title,
                                // language attributes
                                        isindex_dir,
                                        isindex_lang,
                                        isindex_language
                        } isindex_arg;
                        
                        
                        typedef enum {
                                // standard attributes
                                        link_charset=1,         // required
                                        link_disabled,
                                        link_href,
                                        link_hreflang,
                                        link_media,
                                        link_rel,
                                        link_rev,
                                        link_target,
                                        link_type,
                                // css attributes
                                        link_class,
                                        link_id,
                                        link_style,
                                // accessibility attributes
                                        link_title,
                                // language attributes
                                        link_dir,
                                        link_lang,
                                        link_language,
                                // event attributes
                                        link_onclick,
                                        link_ondblclick,
                                        link_onkeydown,
                                        link_onkeypress,
                                        link_onkeyup,
                                        link_onmousedown,
                                        link_onmousemove,
                                        link_onmouseout,
                                        link_onmouseover,
                                        link_onmouseup
                        } link_arg;
                        
                        
                        typedef enum {
                                // standard attributes
                                        meta_content=1,         // required
                                        meta_httpequiv,
                                        meta_name,
                                        meta_scheme,
                                        meta_url, 
                                // css attributes
                                        meta_class,
                                        meta_id,
                                        meta_style,
                                // accessibility attributes
                                        meta_title,
                                // language attributes
                                        meta_dir,
                                        meta_lang,
                                        meta_language
                        } meta_arg;
                        
                        
                        typedef enum {
                                // standard attributes
                                        script_charset=1,
                                        script_defer,
                                        script_event,
                                        script_for,
                                        script_language,
                                        script_src,
                                        script_type,
                                // css attributes
                                        script_class,
                                        script_id,
                                        script_style,
                                // accessibility attributes
                                        script_title
                        } script_arg;
                        
                        
                        typedef enum {
                                // standard attributes
                                        style_disabled=1,
                                        style_media,
                                        style_title,
                                        style_type,             // required
                                // language attributes
                                        style_dir,
                                        style_lang,
                                        style_language
                        } style_arg;
                        
                        
                        typedef enum {
                                // css attributes
                                        title_class=1,
                                        title_id,
                                        title_style,
                                // accessibility attributes
                                        title_title,
                                // language attributes
                                        title_dir,
                                        title_lang,
                                        title_language
                        } title_arg;
                        
                        
                        
                        // body tags
                        typedef enum {
                                // standard attributes
                                        body_background=1, 
                                        body_bgcolor, 
                                        body_bgproperties, 
                                        body_link,
                                        body_alink,
                                        body_vlink,
                                        body_topmargin,
                                        body_bottommargin,
                                        body_leftmargin,
                                        body_rightmargin,
                                        body_marginheight,
                                        body_marginwidth,
                                        body_scroll,
                                        body_text,
                                // css attributes
                                        body_class,
                                        body_id,
                                        body_style,
                                // accessibility attributes
                                        body_title,
                                // language attributes
                                        body_dir,
                                        body_lang,
                                        body_language
                        } body_arg;
                        
                        
                        
                        // anchor tags
                        typedef enum {
                                // standard attributes
                                        a_href=1,
                                        a_hreflang,
                                        a_charset,
                                        a_type,
                                        a_name,
                                        a_target,
                                        a_shape,
                                        a_coords,
                                        a_accesskey,
                                        a_tabindex,
                                        a_rel,
                                        a_rev,
                                // css attributes
                                        a_class,
                                        a_id,
                                        a_style,
                                // accessibility attributes
                                        a_title,
                                // language attributes
                                        a_dir,
                                        a_lang,
                                        a_language,
                                // event attributes
                                        a_onblur,
                                        a_onclick,
                                        a_ondblclick,
                                        a_onfocus,
                                        a_onhelp,
                                        a_onkeydown,
                                        a_onkeypress,
                                        a_onkeyup,
                                        a_onmousedown,
                                        a_onmousemove,
                                        a_onmouseout,
                                        a_onmouseover,
                                        a_onmouseup,
                                        a_onselectstart
                        } a_arg;
                        
                        
                        
                        // block formatting tags
                        typedef enum {
                                // css attributes
                                        address_class=1,
                                        address_id,
                                        address_style,
                                // accessibility attributes
                                        address_title,
                                // language attributes
                                        address_dir,
                                        address_lang,
                                        address_language,
                                // event attributes
                                        address_onclick,
                                        address_ondblclick,
                                        address_ondragstart,
                                        address_onhelp,
                                        address_onkeydown,
                                        address_onkeypress,
                                        address_onkeyup,
                                        address_onmousedown,
                                        address_onmousemove,
                                        address_onmouseout,
                                        address_onmouseover,
                                        address_onmouseup,
                                        address_onselectstart
                        } address_arg;
                        
                        
                        typedef enum {
                                // standard attributes
                                        blockquote_cite=1,
                                // css attributes
                                        blockquote_class,
                                        blockquote_id,
                                        blockquote_style,
                                // accessibility attributes
                                        blockquote_title,
                                // language attributes
                                        blockquote_dir,
                                        blockquote_lang,
                                        blockquote_language,
                                // event attributes
                                        blockquote_onclick,
                                        blockquote_ondblclick,
                                        blockquote_ondragstart,
                                        blockquote_onhelp,
                                        blockquote_onkeydown,
                                        blockquote_onkeypress,
                                        blockquote_onkeyup,
                                        blockquote_onmousedown,
                                        blockquote_onmousemove,
                                        blockquote_onmouseout,
                                        blockquote_onmouseover,
                                        blockquote_onmouseup,
                                        blockquote_onselectstart
                        } blockquote_arg;
                        
                        
                        typedef enum {
                                // css attributes
                                        center_class=1,
                                        center_id,
                                        center_style,
                                // accessibility attributes
                                        center_title,
                                // language attributes
                                        center_dir,
                                        center_lang,
                                        center_language,
                                // event attributes
                                        center_onclick,
                                        center_ondblclick,
                                        center_ondragstart,
                                        center_onhelp,
                                        center_onkeydown,
                                        center_onkeypress,
                                        center_onkeyup,
                                        center_onmousedown,
                                        center_onmousemove,
                                        center_onmouseout,
                                        center_onmouseover,
                                        center_onmouseup,
                                        center_onselectstart
                        } center_arg;
                        
                        
                        typedef enum {
                                // standard attributes
                                        h1_align=1,
                                        h1_clear,
                                // css attributes
                                        h1_class,
                                        h1_id,
                                        h1_style,
                                // accessibility attributes
                                        h1_title,
                                // language attributes
                                        h1_dir,
                                        h1_lang,
                                        h1_language,
                                // event attributes
                                        h1_onclick,
                                        h1_ondblclick,
                                        h1_ondragstart,
                                        h1_onhelp,
                                        h1_onkeydown,
                                        h1_onkeypress,
                                        h1_onkeyup,
                                        h1_onmousedown,
                                        h1_onmousemove,
                                        h1_onmouseout,
                                        h1_onmouseover,
                                        h1_onmouseup,
                                        h1_onselectstart
                        } h1_arg;
                        
                        
                        typedef enum {
                                // standard attributes
                                        h2_align=1,
                                        h2_clear,
                                // css attributes
                                        h2_class,
                                        h2_id,
                                        h2_style,
                                // accessibility attributes
                                        h2_title,
                                // language attributes
                                        h2_dir,
                                        h2_lang,
                                        h2_language,
                                // event attributes
                                        h2_onclick,
                                        h2_ondblclick,
                                        h2_ondragstart,
                                        h2_onhelp,
                                        h2_onkeydown,
                                        h2_onkeypress,
                                        h2_onkeyup,
                                        h2_onmousedown,
                                        h2_onmousemove,
                                        h2_onmouseout,
                                        h2_onmouseover,
                                        h2_onmouseup,
                                        h2_onselectstart
                        } h2_arg;
                        
                        
                        typedef enum {
                                // standard attributes
                                        h3_align=1,
                                        h3_clear,
                                // css attributes
                                        h3_class,
                                        h3_id,
                                        h3_style,
                                // accessibility attributes
                                        h3_title,
                                // language attributes
                                        h3_dir,
                                        h3_lang,
                                        h3_language,
                                // event attributes
                                        h3_onclick,
                                        h3_ondblclick,
                                        h3_ondragstart,
                                        h3_onhelp,
                                        h3_onkeydown,
                                        h3_onkeypress,
                                        h3_onkeyup,
                                        h3_onmousedown,
                                        h3_onmousemove,
                                        h3_onmouseout,
                                        h3_onmouseover,
                                        h3_onmouseup,
                                        h3_onselectstart
                        } h3_arg;
                        
                        
                        typedef enum {
                                // standard attributes
                                        h4_align=1,
                                        h4_clear,
                                // css attributes
                                        h4_class,
                                        h4_id,
                                        h4_style,
                                // accessibility attributes
                                        h4_title,
                                // language attributes
                                        h4_dir,
                                        h4_lang,
                                        h4_language,
                                // event attributes
                                        h4_onclick,
                                        h4_ondblclick,
                                        h4_ondragstart,
                                        h4_onhelp,
                                        h4_onkeydown,
                                        h4_onkeypress,
                                        h4_onkeyup,
                                        h4_onmousedown,
                                        h4_onmousemove,
                                        h4_onmouseout,
                                        h4_onmouseover,
                                        h4_onmouseup,
                                        h4_onselectstart
                        } h4_arg;
                        
                        
                        typedef enum {
                                // standard attributes
                                        h5_align=1,
                                        h5_clear,
                                // css attributes
                                        h5_class,
                                        h5_id,
                                        h5_style,
                                // accessibility attributes
                                        h5_title,
                                // language attributes
                                        h5_dir,
                                        h5_lang,
                                        h5_language,
                                // event attributes
                                        h5_onclick,
                                        h5_ondblclick,
                                        h5_ondragstart,
                                        h5_onhelp,
                                        h5_onkeydown,
                                        h5_onkeypress,
                                        h5_onkeyup,
                                        h5_onmousedown,
                                        h5_onmousemove,
                                        h5_onmouseout,
                                        h5_onmouseover,
                                        h5_onmouseup,
                                        h5_onselectstart
                        } h5_arg;
                        
                        
                        typedef enum {
                                // standard attributes
                                        h6_align=1,
                                        h6_clear,
                                // css attributes
                                        h6_class,
                                        h6_id,
                                        h6_style,
                                // accessibility attributes
                                        h6_title,
                                // language attributes
                                        h6_dir,
                                        h6_lang,
                                        h6_language,
                                // event attributes
                                        h6_onclick,
                                        h6_ondblclick,
                                        h6_ondragstart,
                                        h6_onhelp,
                                        h6_onkeydown,
                                        h6_onkeypress,
                                        h6_onkeyup,
                                        h6_onmousedown,
                                        h6_onmousemove,
                                        h6_onmouseout,
                                        h6_onmouseover,
                                        h6_onmouseup,
                                        h6_onselectstart
                        } h6_arg;


                        typedef enum {
                                // standard attributes
                                        marquee_align=1,
                                        marquee_loop,
                                        marquee_behavior,
                                        marquee_bgcolor,
                                        marquee_direction,
                                        marquee_height,
                                        marquee_width,
                                        marquee_vspace,
                                        marquee_hspace,
                                        marquee_scrollamount,
                                        marquee_scrolldelay,
                                        marquee_truespeed,
                                // css attributes
                                        marquee_class,
                                        marquee_id,
                                        marquee_style,
                                // accessibility attributes
                                        marquee_title,
                                // language attributes
                                        marquee_dir,
                                        marquee_lang,
                                        marquee_language,
                                // event attributes
                                        marquee_onafterupdate,
                                        marquee_onblur,
                                        marquee_onbounce,
                                        marquee_onclick,
                                        marquee_ondblclick,
                                        marquee_ondragstart,
                                        marquee_onfinish,
                                        marquee_onfocus,
                                        marquee_onhelp,
                                        marquee_onkeydown,
                                        marquee_onkeypress,
                                        marquee_onkeyup,
                                        marquee_onmousedown,
                                        marquee_onmousemove,
                                        marquee_onmouseout,
                                        marquee_onmouseover,
                                        marquee_onmouseup,
                                        marquee_onresize,
                                        marquee_onrowenter,
                                        marquee_onrowexit,
                                        marquee_onselectstart,
                                        marquee_onstart
                        } marquee_arg;


                        typedef enum {
                                // standard attributes
                                        multicol_cols=1,        // required
                                        multicol_gutter,
                                        multicol_width,
                                // css attributes
                                        multicol_class,
                                        multicol_id,
                                        multicol_style,
                                // accessibility attributes
                                        multicol_title
                        } multicol_arg;


                        typedef enum {
                                // standard attributes
                                        p_align=1,              
                                        p_clear,
                                // css attributes
                                        p_class,
                                        p_id,
                                        p_style,
                                // accessibility attributes
                                        p_title,
                                // language attributes
                                        p_dir,
                                        p_lang,
                                        p_language
                        } p_arg;


                        typedef enum {
                                // standard attributes
                                        pre_width=1,
                                // css attributes
                                        pre_class,
                                        pre_id,
                                        pre_style,
                                // accessibility attributes
                                        pre_title,
                                // language attributes
                                        pre_dir,
                                        pre_lang,
                                        pre_language,
                                // event attributes
                                        pre_onclick,
                                        pre_ondblclick,
                                        pre_ondragstart,
                                        pre_onhelp,
                                        pre_onkeydown,
                                        pre_onkeypress,
                                        pre_onkeyup,
                                        pre_onmousedown,
                                        pre_onmousemove,
                                        pre_onmouseout,
                                        pre_onmouseover,
                                        pre_onmouseup,
                                        pre_onselectstart
                        } pre_arg;



                        // embedded functionality tags
                        typedef enum {
                                // standard attributes
                                        embed_src=1,            // required
                                        embed_height,           // required
                                        embed_width,            // required
                                // css attributes
                                        embed_class,
                                        embed_id,
                                        embed_style,
                                // accessibility attributes
                                        embed_title,
                                // language attributes
                                        embed_dir,
                                        embed_lang,
                                        embed_language
                        } embed_arg;


                        typedef enum {
                                // standard attributes
                                        applet_code=1,          // required
                                        applet_codebase,
                                        applet_archive,
                                        applet_cabbase,
                                        applet_src,
                                        applet_height,          // required
                                        applet_width,           // required
                                        applet_vspace,
                                        applet_hspace,
                                        applet_align,
                                        applet_alt,
                                        applet_name,
                                        applet_object,
                                        applet_mayscript,
                                // css attributes
                                        applet_class,
                                        applet_id,
                                        applet_style,
                                // accessibility attributes
                                        applet_title,
                                // language attributes
                                        applet_dir,
                                        applet_lang,
                                        applet_language,
                                // event attributes
                                        applet_onafterupdate,
                                        applet_onbeforeupdate,
                                        applet_onblur,
                                        applet_onclick,
                                        applet_ondblclick,
                                        applet_ondragstart,
                                        applet_onerrorupdate,
                                        applet_onfocus,
                                        applet_onhelp,
                                        applet_onkeydown,
                                        applet_onkeypress,
                                        applet_onkeyup,
                                        applet_onmousedown,
                                        applet_onmousemove,
                                        applet_onmouseout,
                                        applet_onmouseover,
                                        applet_onmouseup,
                                        applet_onreadystatechange,
                                        applet_onresize,
                                        applet_onrowenter,
                                        applet_onrowexit
                        } applet_arg;


                        typedef enum {
                                // standard attributes
                                        param_name=1,           // required
                                        param_type,
                                        param_value,
                                        param_valuetype,
                                // css attributes
                                        param_class,
                                        param_id,
                                        param_style,
                                // accessibility attributes
                                        param_title
                        } param_arg;



                        // character formatting tags
                        typedef enum {
                                // css attributes
                                        abbr_class=1,
                                        abbr_id,
                                        abbr_style,
                                // accessibility attributes
                                        abbr_title,
                                // language attributes
                                        abbr_dir,
                                        abbr_lang,
                                        abbr_language,
                                // event attributes
                                        abbr_onclick,
                                        abbr_ondblclick,
                                        abbr_onkeydown,
                                        abbr_onkeypress,
                                        abbr_onkeyup,
                                        abbr_onmousedown,
                                        abbr_onmousemove,
                                        abbr_onmouseout,
                                        abbr_onmouseover,
                                        abbr_onmouseup
                        } abbr_arg;


                        typedef enum {
                                // css attributes
                                        acronym_class=1,
                                        acronym_id,
                                        acronym_style,
                                // accessibility attributes
                                        acronym_title,
                                // language attributes
                                        acronym_dir,
                                        acronym_lang,
                                        acronym_language,
                                // event attributes
                                        acronym_onclick,
                                        acronym_ondblclick,
                                        acronym_ondragstart,
                                        acronym_onhelp,
                                        acronym_onkeydown,
                                        acronym_onkeypress,
                                        acronym_onkeyup,
                                        acronym_onmousedown,
                                        acronym_onmousemove,
                                        acronym_onmouseout,
                                        acronym_onmouseover,
                                        acronym_onmouseup,
                                        acronym_onselectstart
                        } acronym_arg;


                        typedef enum {
                                // css attributes
                                        b_class=1,
                                        b_id,
                                        b_style,
                                // accessibility attributes
                                        b_title,
                                // language attributes
                                        b_dir,
                                        b_lang,
                                        b_language,
                                // event attributes
                                        b_onclick,
                                        b_ondblclick,
                                        b_ondragstart,
                                        b_onhelp,
                                        b_onkeydown,
                                        b_onkeypress,
                                        b_onkeyup,
                                        b_onmousedown,
                                        b_onmousemove,
                                        b_onmouseout,
                                        b_onmouseover,
                                        b_onmouseup,
                                        b_onselectstart
                        } b_arg;


                        typedef enum {
                                // css attributes
                                        big_class=1,
                                        big_id,
                                        big_style,
                                // accessibility attributes
                                        big_title,
                                // language attributes
                                        big_dir,
                                        big_lang,
                                        big_language,
                                // event attributes
                                        big_onclick,
                                        big_ondblclick,
                                        big_ondragstart,
                                        big_onhelp,
                                        big_onkeydown,
                                        big_onkeypress,
                                        big_onkeyup,
                                        big_onmousedown,
                                        big_onmousemove,
                                        big_onmouseout,
                                        big_onmouseover,
                                        big_onmouseup,
                                        big_onselectstart
                        } big_arg;


                        typedef enum {
                                // css attributes
                                        blink_class=1,
                                        blink_id,
                                        blink_style,
                                // accessibility attributes
                                        blink_title,
                                // language attributes
                                        blink_dir,
                                        blink_lang,
                                        blink_language
                        } blink_arg;


                        typedef enum {
                                // css attributes
                                        cite_class=1,
                                        cite_id,
                                        cite_style,
                                // accessibility attributes
                                        cite_title,
                                // language attributes
                                        cite_dir,
                                        cite_lang,
                                        cite_language,
                                // event attributes
                                        cite_onclick,
                                        cite_ondblclick,
                                        cite_ondragstart,
                                        cite_onhelp,
                                        cite_onkeydown,
                                        cite_onkeypress,
                                        cite_onkeyup,
                                        cite_onmousedown,
                                        cite_onmousemove,
                                        cite_onmouseout,
                                        cite_onmouseover,
                                        cite_onmouseup,
                                        cite_onselectstart
                        } cite_arg;


                        typedef enum {
                                // css attributes
                                        code_class=1,
                                        code_id,
                                        code_style,
                                // accessibility attributes
                                        code_title,
                                // language attributes
                                        code_dir,
                                        code_lang,
                                        code_language,
                                // event attributes
                                        code_onclick,
                                        code_ondblclick,
                                        code_ondragstart,
                                        code_onhelp,
                                        code_onkeydown,
                                        code_onkeypress,
                                        code_onkeyup,
                                        code_onmousedown,
                                        code_onmousemove,
                                        code_onmouseout,
                                        code_onmouseover,
                                        code_onmouseup,
                                        code_onselectstart
                        } code_arg;


                        typedef enum {
                                // css attributes
                                        dfn_class=1,
                                        dfn_id,
                                        dfn_style,
                                // accessibility attributes
                                        dfn_title,
                                // language attributes
                                        dfn_dir,
                                        dfn_lang,
                                        dfn_language,
                                // event attributes
                                        dfn_onclick,
                                        dfn_ondblclick,
                                        dfn_ondragstart,
                                        dfn_onhelp,
                                        dfn_onkeydown,
                                        dfn_onkeypress,
                                        dfn_onkeyup,
                                        dfn_onmousedown,
                                        dfn_onmousemove,
                                        dfn_onmouseout,
                                        dfn_onmouseover,
                                        dfn_onmouseup,
                                        dfn_onselectstart
                        } dfn_arg;


                        typedef enum {
                                // css attributes
                                        em_class=1,
                                        em_id,
                                        em_style,
                                // accessibility attributes
                                        em_title,
                                // language attributes
                                        em_dir,
                                        em_lang,
                                        em_language,
                                // event attributes
                                        em_onclick,
                                        em_ondblclick,
                                        em_ondragstart,
                                        em_onhelp,
                                        em_onkeydown,
                                        em_onkeypress,
                                        em_onkeyup,
                                        em_onmousedown,
                                        em_onmousemove,
                                        em_onmouseout,
                                        em_onmouseover,
                                        em_onmouseup,
                                        em_onselectstart
                        } em_arg;


                        typedef enum {
                                // standard attributes
                                        font_color=1, 
                                        font_face, 
                                        font_pointsize, 
                                        font_size,
                                // css attributes
                                        font_class,
                                        font_id,
                                        font_style,
                                // accessibility attributes
                                        font_title,
                                // language attributes
                                        font_dir,
                                        font_lang,
                                        font_language
                        } font_arg;


                        typedef enum {
                                // css attributes
                                        i_class=1,
                                        i_id,
                                        i_style,
                                // accessibility attributes
                                        i_title,
                                // language attributes
                                        i_dir,
                                        i_lang,
                                        i_language,
                                // event attributes
                                        i_onclick,
                                        i_ondblclick,
                                        i_ondragstart,
                                        i_onhelp,
                                        i_onkeydown,
                                        i_onkeypress,
                                        i_onkeyup,
                                        i_onmousedown,
                                        i_onmousemove,
                                        i_onmouseout,
                                        i_onmouseover,
                                        i_onmouseup,
                                        i_onselectstart
                        } i_arg;


                        typedef enum {
                                // css attributes
                                        kbd_class=1,
                                        kbd_id,
                                        kbd_style,
                                // accessibility attributes
                                        kbd_title,
                                // language attributes
                                        kbd_dir,
                                        kbd_lang,
                                        kbd_language,
                                // event attributes
                                        kbd_onclick,
                                        kbd_ondblclick,
                                        kbd_ondragstart,
                                        kbd_onhelp,
                                        kbd_onkeydown,
                                        kbd_onkeypress,
                                        kbd_onkeyup,
                                        kbd_onmousedown,
                                        kbd_onmousemove,
                                        kbd_onmouseout,
                                        kbd_onmouseover,
                                        kbd_onmouseup,
                                        kbd_onselectstart
                        } kbd_arg;


                        typedef enum {
                                // standard attributes
                                        q_cite=1,
                                // css attributes
                                        q_class,
                                        q_id,
                                        q_style,
                                // accessibility attributes
                                        q_title,
                                // language attributes
                                        q_dir,
                                        q_lang,
                                        q_language,
                                // event attributes
                                        q_onclick,
                                        q_ondblclick,
                                        q_ondragstart,
                                        q_onhelp,
                                        q_onkeydown,
                                        q_onkeypress,
                                        q_onkeyup,
                                        q_onmousedown,
                                        q_onmousemove,
                                        q_onmouseout,
                                        q_onmouseover,
                                        q_onmouseup,
                                        q_onselectstart
                        } q_arg;


                        typedef enum {
                                // css attributes
                                        samp_class=1,
                                        samp_id,
                                        samp_style,
                                // accessibility attributes
                                        samp_title,
                                // language attributes
                                        samp_dir,
                                        samp_lang,
                                        samp_language,
                                // event attributes
                                        samp_onclick,
                                        samp_ondblclick,
                                        samp_ondragstart,
                                        samp_onhelp,
                                        samp_onkeydown,
                                        samp_onkeypress,
                                        samp_onkeyup,
                                        samp_onmousedown,
                                        samp_onmousemove,
                                        samp_onmouseout,
                                        samp_onmouseover,
                                        samp_onmouseup,
                                        samp_onselectstart
                        } samp_arg;


                        typedef enum {
                                // css attributes
                                        small_class=1,
                                        small_id,
                                        small_style,
                                // accessibility attributes
                                        small_title,
                                // language attributes
                                        small_dir,
                                        small_lang,
                                        small_language,
                                // event attributes
                                        small_onclick,
                                        small_ondblclick,
                                        small_ondragstart,
                                        small_onhelp,
                                        small_onkeydown,
                                        small_onkeypress,
                                        small_onkeyup,
                                        small_onmousedown,
                                        small_onmousemove,
                                        small_onmouseout,
                                        small_onmouseover,
                                        small_onmouseup,
                                        small_onselectstart
                        } small_arg;


                        typedef enum {
                                // css attributes
                                        strike_class=1,
                                        strike_id,
                                        strike_style,
                                // accessibility attributes
                                        strike_title,
                                // language attributes
                                        strike_dir,
                                        strike_lang,
                                        strike_language,
                                // event attributes
                                        strike_onclick,
                                        strike_ondblclick,
                                        strike_ondragstart,
                                        strike_onhelp,
                                        strike_onkeydown,
                                        strike_onkeypress,
                                        strike_onkeyup,
                                        strike_onmousedown,
                                        strike_onmousemove,
                                        strike_onmouseout,
                                        strike_onmouseover,
                                        strike_onmouseup,
                                        strike_onselectstart
                        } strike_arg;


                        typedef enum {
                                // css attributes
                                        strong_class=1,
                                        strong_id,
                                        strong_style,
                                // accessibility attributes
                                        strong_title,
                                // language attributes
                                        strong_dir,
                                        strong_lang,
                                        strong_language,
                                // event attributes
                                        strong_onclick,
                                        strong_ondblclick,
                                        strong_ondragstart,
                                        strong_onhelp,
                                        strong_onkeydown,
                                        strong_onkeypress,
                                        strong_onkeyup,
                                        strong_onmousedown,
                                        strong_onmousemove,
                                        strong_onmouseout,
                                        strong_onmouseover,
                                        strong_onmouseup,
                                        strong_onselectstart
                        } strong_arg;


                        typedef enum {
                                // css attributes
                                        sub_class=1,
                                        sub_id,
                                        sub_style,
                                // accessibility attributes
                                        sub_title,
                                // language attributes
                                        sub_dir,
                                        sub_lang,
                                        sub_language,
                                // event attributes
                                        sub_onclick,
                                        sub_ondblclick,
                                        sub_ondragstart,
                                        sub_onhelp,
                                        sub_onkeydown,
                                        sub_onkeypress,
                                        sub_onkeyup,
                                        sub_onmousedown,
                                        sub_onmousemove,
                                        sub_onmouseout,
                                        sub_onmouseover,
                                        sub_onmouseup,
                                        sub_onselectstart
                        } sub_arg;


                        typedef enum {
                                // css attributes
                                        sup_class=1,
                                        sup_id,
                                        sup_style,
                                // accessibility attributes
                                        sup_title,
                                // language attributes
                                        sup_dir,
                                        sup_lang,
                                        sup_language,
                                // event attributes
                                        sup_onclick,
                                        sup_ondblclick,
                                        sup_ondragstart,
                                        sup_onhelp,
                                        sup_onkeydown,
                                        sup_onkeypress,
                                        sup_onkeyup,
                                        sup_onmousedown,
                                        sup_onmousemove,
                                        sup_onmouseout,
                                        sup_onmouseover,
                                        sup_onmouseup,
                                        sup_onselectstart
                        } sup_arg;


                        typedef enum {
                                // css attributes
                                        tt_class=1,
                                        tt_id,
                                        tt_style,
                                // accessibility attributes
                                        tt_title,
                                // language attributes
                                        tt_dir,
                                        tt_lang,
                                        tt_language,
                                // event attributes
                                        tt_onclick,
                                        tt_ondblclick,
                                        tt_ondragstart,
                                        tt_onhelp,
                                        tt_onkeydown,
                                        tt_onkeypress,
                                        tt_onkeyup,
                                        tt_onmousedown,
                                        tt_onmousemove,
                                        tt_onmouseout,
                                        tt_onmouseover,
                                        tt_onmouseup,
                                        tt_onselectstart
                        } tt_arg;


                        typedef enum {
                                // css attributes
                                        u_class=1,
                                        u_id,
                                        u_style,
                                // accessibility attributes
                                        u_title,
                                // language attributes
                                        u_dir,
                                        u_lang,
                                        u_language,
                                // event attributes
                                        u_onclick,
                                        u_ondblclick,
                                        u_ondragstart,
                                        u_onhelp,
                                        u_onkeydown,
                                        u_onkeypress,
                                        u_onkeyup,
                                        u_onmousedown,
                                        u_onmousemove,
                                        u_onmouseout,
                                        u_onmouseover,
                                        u_onmouseup,
                                        u_onselectstart
                        } u_arg;


                        typedef enum {
                                // standard attributes
                                        iframe_frameborder=1,
                                        iframe_longdesc,
                                        iframe_marginheight,
                                        iframe_marginwidth,
                                        iframe_name,
                                        iframe_scrolling,
                                        iframe_height,
                                        iframe_width,
                                        iframe_vspace,
                                        iframe_hspace,
                                        iframe_align,
                                        iframe_src,             // required
                                // css attributes
                                        iframe_class,
                                        iframe_id,
                                        iframe_style,
                                // accessibility attributes
                                        iframe_title,
                                // language attributes
                                        iframe_dir,
                                        iframe_lang,
                                        iframe_language
                        } iframe_arg;


                        typedef enum {
                                // css attributes
                                        var_class=1,
                                        var_id,
                                        var_style,
                                // accessibility attributes
                                        var_title,
                                // language attributes
                                        var_dir,
                                        var_lang,
                                        var_language,
                                // event attributes
                                        var_onclick,
                                        var_ondblclick,
                                        var_ondragstart,
                                        var_onhelp,
                                        var_onkeydown,
                                        var_onkeypress,
                                        var_onkeyup,
                                        var_onmousedown,
                                        var_onmousemove,
                                        var_onmouseout,
                                        var_onmouseover,
                                        var_onmouseup,
                                        var_onselectstart
                        } var_arg;



                        // form tags
                        typedef enum {
                                // standard attributes
                                        button_name=1,
                                        button_value,
                                        button_type,
                                        button_accesskey,
                                        button_tabindex,
                                        button_disabled,
                                // css attributes
                                        button_class,
                                        button_id,
                                        button_style,
                                // accessibility attributes
                                        button_title,
                                // language attributes
                                        button_dir,
                                        button_lang,
                                        button_language,
                                // event attributes
                                        button_onafterupdate,
                                        button_onbeforeupdate,
                                        button_onblur,
                                        button_onclick,
                                        button_ondblclick,
                                        button_ondragstart,
                                        button_onfocus,
                                        button_onhelp,
                                        button_onkeydown,
                                        button_onkeypress,
                                        button_onkeyup,
                                        button_onmousedown,
                                        button_onmousemove,
                                        button_onmouseout,
                                        button_onmouseover,
                                        button_onmouseup,
                                        button_onresize,
                                        button_onrowenter,
                                        button_onrowexit,
                                        button_onselectstart,
                                // data attributes
                                        button_datafld,
                                        button_dataformats,
                                        button_datasrc
                        } button_arg;

        
                        typedef enum {
                                // standard attributes
                                        fieldset_align=1,
                                // css attributes
                                        fieldset_class,
                                        fieldset_id,
                                        fieldset_style,
                                // accessibility attributes
                                        fieldset_title,
                                // language attributes
                                        fieldset_dir,
                                        fieldset_lang,
                                        fieldset_language,
                                // event attributes
                                        fieldset_onblur,
                                        fieldset_onchange,
                                        fieldset_onclick,
                                        fieldset_ondblclick,
                                        fieldset_ondragstart,
                                        fieldset_onfilterchange,
                                        fieldset_onfocus,
                                        fieldset_onhelp,
                                        fieldset_onkeydown,
                                        fieldset_onkeypress,
                                        fieldset_onkeyup,
                                        fieldset_onmousedown,
                                        fieldset_onmousemove,
                                        fieldset_onmouseout,
                                        fieldset_onmouseover,
                                        fieldset_onmouseup,
                                        fieldset_onresize,
                                        fieldset_onscroll,
                                        fieldset_onselect,
                                        fieldset_onselectstart
                        } fieldset_arg;


                        typedef enum {
                                // standard attributes
                                        htmlarea_name=1,        // required
                                        htmlarea_rows,          // required
                                        htmlarea_cols,          // required
                                        htmlarea_accesskey,
                                        htmlarea_tabindex,
                                        htmlarea_disabled,
                                        htmlarea_readonly,
                                        htmlarea_wrap,
                                // css attributes
                                        htmlarea_class,
                                        htmlarea_id,
                                        htmlarea_style,
                                // accessibility attributes
                                        htmlarea_title,
                                // language attributes
                                        htmlarea_dir,
                                        htmlarea_lang,
                                        htmlarea_language,
                                // data attributes
                                        htmlarea_datafld,
                                        htmlarea_dataformats,
                                        htmlarea_datasrc
                        } htmlarea_arg;


                        typedef enum {
                                // standard attributes
                                        form_action=1,          // required
                                        form_target,
                                        form_name,
                                        form_method,
                                        form_acceptcharset,
                                        form_enctype,
                                // css attributes
                                        form_class,
                                        form_id,
                                        form_style,
                                // accessibility attributes
                                        form_title,
                                // language attributes
                                        form_dir,
                                        form_lang,
                                        form_language,
                                // event attributes
                                        form_onclick,
                                        form_ondblclick,
                                        form_ondragstart,
                                        form_onhelp,
                                        form_onkeydown,
                                        form_onkeypress,
                                        form_onkeyup,
                                        form_onmousedown,
                                        form_onmousemove,
                                        form_onmouseout,
                                        form_onmouseover,
                                        form_onmouseup,
                                        form_onreset,
                                        form_onselectstart,
                                        form_onsubmit
                        } form_arg;


                        typedef enum {
                                // standard attributes
                                        label_accesskey=1,
                                        label_for,
                                // css attributes
                                        label_class,
                                        label_id,
                                        label_style,
                                // accessibility attributes
                                        label_title,
                                // language attributes
                                        label_dir,
                                        label_lang,
                                        label_language,
                                // event attributes
                                        label_onblur,
                                        label_onclick,
                                        label_ondblclick,
                                        label_ondragstart,
                                        label_onfocus,
                                        label_onhelp,
                                        label_onkeydown,
                                        label_onkeypress,
                                        label_onkeyup,
                                        label_onmousedown,
                                        label_onmousemove,
                                        label_onmouseout,
                                        label_onmouseover,
                                        label_onmouseup,
                                        label_onselectstart
                        } label_arg;


                        typedef enum {
                                // standard attributes
                                        legend_accesskey=1,
                                        legend_align,
                                // css attributes
                                        legend_class,
                                        legend_id,
                                        legend_style,
                                // accessibility attributes
                                        legend_title,
                                // language attributes
                                        legend_dir,
                                        legend_lang,
                                        legend_language,
                                // event attributes
                                        legend_onclick,
                                        legend_ondblclick,
                                        legend_ondragstart,
                                        legend_onhelp,
                                        legend_onkeydown,
                                        legend_onkeypress,
                                        legend_onkeyup,
                                        legend_onmousedown,
                                        legend_onmousemove,
                                        legend_onmouseout,
                                        legend_onmouseover,
                                        legend_onmouseup
                        } legend_arg;


                        typedef enum {
                                // standard attributes
                                        optgroup_label=1,
                                        optgroup_disabled,
                                // css attributes
                                        optgroup_class,
                                        optgroup_id,
                                        optgroup_style,
                                // accessibility attributes
                                        optgroup_title,
                                // language attributes
                                        optgroup_dir,
                                        optgroup_lang,
                                        optgroup_language,
                                // event attributes
                                        optgroup_onclick,
                                        optgroup_ondblclick,
                                        optgroup_onkeydown,
                                        optgroup_onkeypress,
                                        optgroup_onkeyup,
                                        optgroup_onmousedown,
                                        optgroup_onmousemove,
                                        optgroup_onmouseout,
                                        optgroup_onmouseover,
                                        optgroup_onmouseup
                        } optgroup_arg;


                        typedef enum {
                                // standard attributes
                                        option_label=1,
                                        option_value,
                                        option_selected,
                                        option_disabled,
                                // css attributes
                                        option_class,
                                        option_id,
                                        option_style,
                                // accessibility attributes
                                        option_title,
                                // language attributes
                                        option_dir,
                                        option_lang,
                                        option_language,
                                // event attributes
                                        option_onclick,
                                        option_ondblclick,
                                        option_ondragstart,
                                        option_onkeydown,
                                        option_onkeypress,
                                        option_onkeyup,
                                        option_onmousedown,
                                        option_onmousemove,
                                        option_onmouseout,
                                        option_onmouseover,
                                        option_onmouseup,
                                        option_onselect,
                                        option_onselectstart
                        } option_arg;


                        typedef enum {
                                // standard attributes
                                        select_name=1,          // required
                                        select_accesskey,
                                        select_tabindex,
                                        select_disabled,
                                        select_align,
                                        select_size,
                                        select_multiple,
                                // css attributes
                                        select_class,
                                        select_id,
                                        select_style,
                                // accessibility attributes
                                        select_title,
                                // language attributes
                                        select_dir,
                                        select_lang,
                                        select_language,
                                // event attributes
                                        select_onafterupdate,
                                        select_onbeforeupdate,
                                        select_onblur,
                                        select_onchange,
                                        select_onclick,
                                        select_ondblclick,
                                        select_ondragstart,
                                        select_onfocus,
                                        select_onhelp,
                                        select_onkeydown,
                                        select_onkeypress,
                                        select_onkeyup,
                                        select_onmousedown,
                                        select_onmousemove,
                                        select_onmouseout,
                                        select_onmouseover,
                                        select_onmouseup,
                                        select_onresize,
                                        select_onrowenter,
                                        select_onrowexit,
                                        select_onselectstart,
                                // data attributes
                                        select_datafld,
                                        select_dataformats,
                                        select_datasrc
                        } select_arg;


                        typedef enum {
                                // standard attributes
                                        input_type=1,           // required
                                        input_name,             // required
                                        input_value,
                                        input_size,
                                        input_maxlength,
                                        input_height,
                                        input_width,
                                        input_accesskey,
                                        input_tabindex,
                                        input_disabled,
                                        input_checked,
                                        input_readonly,
                                        input_align,
                                        input_alt,
                                        input_src,
                                        input_usemap,
                                        input_accept,
                                        input_border,
                                        input_cols,
                                        input_notab,
                                        input_rows,
                                        input_taborder,
                                        input_wrap,
                                // css attributes
                                        input_class,
                                        input_id,
                                        input_style,
                                // accessibility attributes
                                        input_title,
                                // language attributes
                                        input_dir,
                                        input_lang,
                                        input_language,
                                // event attributes
                                        input_onafterupdate,
                                        input_onbeforeupdate,
                                        input_onblur,
                                        input_onchange,
                                        input_onclick,
                                        input_ondblclick,
                                        input_ondragstart,
                                        input_onfocus,
                                        input_onhelp,
                                        input_onkeydown,
                                        input_onkeypress,
                                        input_onkeyup,
                                        input_onmousedown,
                                        input_onmousemove,
                                        input_onmouseout,
                                        input_onmouseover,
                                        input_onmouseup,
                                        input_onselect,
                                        input_onselectstart,
                                // data attributes
                                        input_datafld,
                                        input_dataformats,
                                        input_datasrc
                        } input_arg;



                        // line breaking tags
                        typedef enum {
                                // standard attributes
                                        br_clear=1,
                                // css attributes
                                        br_class,
                                        br_id,
                                        br_style,
                                // accessibility attributes
                                        br_title
                        } br_arg;


                        typedef enum {
                                // css attributes
                                        nolinebreak_class=1,
                                        nolinebreak_id,
                                        nolinebreak_style,
                                // accessibility attributes
                                        nolinebreak_title,
                                // language attributes
                                        nolinebreak_dir,
                                        nolinebreak_lang,
                                        nolinebreak_language
                        } nolinebreak_arg;



                        // list tags
                        typedef enum {
                                // standard attributes
                                        ol_clear=1, 
                                        ol_compact, 
                                        ol_start, 
                                        ol_type,
                                // css attributes
                                        ol_class,
                                        ol_id,
                                        ol_style,
                                // accessibility attributes
                                        ol_title,
                                // language attributes
                                        ol_dir,
                                        ol_lang,
                                        ol_language,
                                // events attributes
                                        ol_onclick,
                                        ol_ondblclick,
                                        ol_ondragstart,
                                        ol_onhelp,
                                        ol_onkeydown,
                                        ol_onkeypress,
                                        ol_onkeyup,
                                        ol_onmousedown,
                                        ol_onmousemove,
                                        ol_onmouseout,
                                        ol_onmouseover,
                                        ol_onmouseup,
                                        ol_onselectstart
                        } ol_arg;


                        typedef enum {
                                // standard attributes
                                        ul_clear=1, 
                                        ul_compact, 
                                        ul_start, 
                                // css attributes
                                        ul_class,
                                        ul_id,
                                        ul_style,
                                // accessibility attributes
                                        ul_title,
                                // language attributes
                                        ul_dir,
                                        ul_lang,
                                        ul_language,
                                // events attributes
                                        ul_onclick,
                                        ul_ondblclick,
                                        ul_ondragstart,
                                        ul_onhelp,
                                        ul_onkeydown,
                                        ul_onkeypress,
                                        ul_onkeyup,
                                        ul_onmousedown,
                                        ul_onmousemove,
                                        ul_onmouseout,
                                        ul_onmouseover,
                                        ul_onmouseup,
                                        ul_onselectstart
                        } ul_arg;


                        typedef enum {
                                // standard attributes
                                        menu_compact=1, 
                                // css attributes
                                        menu_class,
                                        menu_id,
                                        menu_style,
                                // accessibility attributes
                                        menu_title,
                                // language attributes
                                        menu_dir,
                                        menu_lang,
                                        menu_language,
                                // events attributes
                                        menu_onclick,
                                        menu_ondblclick,
                                        menu_ondragstart,
                                        menu_onhelp,
                                        menu_onkeydown,
                                        menu_onkeypress,
                                        menu_onkeyup,
                                        menu_onmousedown,
                                        menu_onmousemove,
                                        menu_onmouseout,
                                        menu_onmouseover,
                                        menu_onmouseup,
                                        menu_onselectstart
                        } menu_arg;


                        typedef enum {
                                // standard attributes
                                        dir_compact=1, 
                                // css attributes
                                        dir_class,
                                        dir_id,
                                        dir_style,
                                // accessibility attributes
                                        dir_title,
                                // language attributes
                                        dir_dir,
                                        dir_lang,
                                        dir_language,
                                // events attributes
                                        dir_onclick,
                                        dir_ondblclick,
                                        dir_ondragstart,
                                        dir_onhelp,
                                        dir_onkeydown,
                                        dir_onkeypress,
                                        dir_onkeyup,
                                        dir_onmousedown,
                                        dir_onmousemove,
                                        dir_onmouseout,
                                        dir_onmouseover,
                                        dir_onmouseup,
                                        dir_onselectstart
                        } dir_arg;


                        typedef enum {
                                // standard attributes
                                        li_clear=1, 
                                        li_type, 
                                        li_value,
                                // css attributes
                                        li_class,
                                        li_id,
                                        li_style,
                                // accessibility attributes
                                        li_title,
                                // language attributes
                                        li_dir,
                                        li_lang,
                                        li_language,
                                // events attributes
                                        li_onclick,
                                        li_ondblclick,
                                        li_ondragstart,
                                        li_onhelp,
                                        li_onkeydown,
                                        li_onkeypress,
                                        li_onkeyup,
                                        li_onmousedown,
                                        li_onmousemove,
                                        li_onmouseout,
                                        li_onmouseover,
                                        li_onmouseup,
                                        li_onselectstart
                        } li_arg;


                        typedef enum {
                                // standard attributes
                                        dl_clear=1, 
                                        dl_compact, 
                                // css attributes
                                        dl_class,
                                        dl_id,
                                        dl_style,
                                // accessibility attributes
                                        dl_title,
                                // language attributes
                                        dl_dir,
                                        dl_lang,
                                        dl_language,
                                // events attributes
                                        dl_onclick,
                                        dl_ondblclick,
                                        dl_ondragstart,
                                        dl_onhelp,
                                        dl_onkeydown,
                                        dl_onkeypress,
                                        dl_onkeyup,
                                        dl_onmousedown,
                                        dl_onmousemove,
                                        dl_onmouseout,
                                        dl_onmouseover,
                                        dl_onmouseup,
                                        dl_onselectstart
                        } dl_arg;


                        typedef enum {
                                // standard attributes
                                        dt_clear=1, 
                                // css attributes
                                        dt_class,
                                        dt_id,
                                        dt_style,
                                // accessibility attributes
                                        dt_title,
                                // language attributes
                                        dt_dir,
                                        dt_lang,
                                        dt_language,
                                // events attributes
                                        dt_onclick,
                                        dt_ondblclick,
                                        dt_ondragstart,
                                        dt_onhelp,
                                        dt_onkeydown,
                                        dt_onkeypress,
                                        dt_onkeyup,
                                        dt_onmousedown,
                                        dt_onmousemove,
                                        dt_onmouseout,
                                        dt_onmouseover,
                                        dt_onmouseup,
                                        dt_onselectstart
                        } dt_arg;


                        typedef enum {
                                // standard attributes
                                        dd_clear=1, 
                                // css attributes
                                        dd_class,
                                        dd_id,
                                        dd_style,
                                // accessibility attributes
                                        dd_title,
                                // language attributes
                                        dd_dir,
                                        dd_lang,
                                        dd_language,
                                // events attributes
                                        dd_onclick,
                                        dd_ondblclick,
                                        dd_ondragstart,
                                        dd_onhelp,
                                        dd_onkeydown,
                                        dd_onkeypress,
                                        dd_onkeyup,
                                        dd_onmousedown,
                                        dd_onmousemove,
                                        dd_onmouseout,
                                        dd_onmouseover,
                                        dd_onmouseup,
                                        dd_onselectstart
                        } dd_arg;



                        // miscellaneous tags
                        typedef enum {
                                // standard attributes
                                        basefont_color=1,
                                        basefont_face,
                                        basefont_size,
                                // css attributes
                                        basefont_class,
                                        basefont_id,
                                        basefont_style,
                                // accessibility attributes
                                        basefont_title,
                                // language attributes
                                        basefont_dir,
                                        basefont_lang,
                                        basefont_language
                        } basefont_arg;


                        typedef enum {
                                // standard attributes
                                        bdo_dir=1,              // required
                                        bdo_language,
                                // css attributes
                                        bdo_class,
                                        bdo_id,
                                        bdo_style,
                                // accessibility attributes
                                        bdo_title
                        } bdo_arg;


                        typedef enum {
                                // standard attributes
                                        hr_align=1,
                                        hr_color,
                                        hr_noshade,
                                        hr_size,
                                        hr_width,
                                // css attributes
                                        hr_class,
                                        hr_id,
                                        hr_style,
                                // accessibility attributes
                                        hr_title,
                                // event attributes
                                        hr_onclick,
                                        hr_ondblclick,
                                        hr_ondragstart,
                                        hr_onfilterchange,
                                        hr_onhelp,
                                        hr_onkeydown,
                                        hr_onkeypress,
                                        hr_onkeyup,
                                        hr_onmousedown,
                                        hr_onmousemove,
                                        hr_onmouseout,
                                        hr_onmouseover,
                                        hr_onmouseup,
                                        hr_onselectstart
                        } hr_arg;


                        typedef enum {
                                // standard attributes
                                        keygen_name=1,          // required
                                        keygen_challenge
                        } keygen_arg;


                        typedef enum {
                                // standard attributes
                                        spacer_type=1,          // required
                                        spacer_align,
                                        spacer_height,
                                        spacer_width,
                                        spacer_size
                        } spacer_arg;


                        typedef enum {
                                // standard attributes
                                        xml_ns=1,
                                        xml_prefix,
                                        xml_src,
                                // css attributes
                                        xml_class,
                                        xml_id,
                                        xml_style,
                                // accessibility attributes
                                        xml_title
                        } xml_arg;


                        typedef enum {
                                // standard attributes
                                        area_alt=1,             // required
                                        area_href,
                                        area_nohref,
                                        area_shape,
                                        area_coords,
                                        area_target,
                                        area_accesskey,
                                // css attributes
                                        area_class,
                                        area_id,
                                        area_style,
                                // accessibility attributes
                                        area_title,
                                // language attributes
                                        area_dir,
                                        area_lang,
                                        area_language,
                                // event attributes
                                        area_onblur,
                                        area_onclick,
                                        area_ondblclick,
                                        area_ondragstart,
                                        area_onfocus,
                                        area_onhelp,
                                        area_onkeydown,
                                        area_onkeypress,
                                        area_onkeyup,
                                        area_onmousedown,
                                        area_onmousemove,
                                        area_onmouseout,
                                        area_onmouseover,
                                        area_onmouseup,
                                        area_onselectstart
                        } area_arg;


                        typedef enum {
                                // standard attributes
                                        bgsound_src=1,
                                        bgsound_volume,
                                        bgsound_balance,
                                        bgsound_delay,
                                        bgsound_loop
                        } bgsound_arg;


                        typedef enum {
                                // standard attributes
                                        img_src=1,
                                        img_lowsrc,
                                        img_alt,
                                        img_longdesc,
                                        img_name,
                                        img_border,
                                        img_align,
                                        img_height,
                                        img_width,
                                        img_vspace,
                                        img_hspace,
                                        img_ismap,
                                        img_dynsrc,
                                        img_controls,
                                        img_start,
                                        img_loop,
                                        img_usemap,
                                        img_vrml,
                                // css attributes
                                        img_class,
                                        img_id,
                                        img_style,
                                // accessibility attributes
                                        img_title,
                                // language attributes
                                        img_dir,
                                        img_lang,
                                        img_language,
                                // event attributes
                                        img_onabort,
                                        img_onafterupdate,
                                        img_onbeforeupdate,
                                        img_onblur,
                                        img_onclick,
                                        img_ondblclick,
                                        img_ondragstart,
                                        img_onfocus,
                                        img_onhelp,
                                        img_onkeydown,
                                        img_onkeypress,
                                        img_onkeyup,
                                        img_onmousedown,
                                        img_onmousemove,
                                        img_onmouseout,
                                        img_onmouseover,
                                        img_onmouseup,
                                        img_onresize,
                                        img_onrowenter,
                                        img_onrowexit,
                                        img_onselectstart
                        } img_arg;


                        typedef enum {
                                // standard attributes
                                        map_name=1,
                                // css attributes
                                        map_class,
                                        map_id,
                                        map_style,
                                // accessibility attributes
                                        map_title,
                                // language attributes
                                        map_dir,
                                        map_lang,
                                        map_language,
                                // event attributes
                                        map_onclick,
                                        map_ondblclick,
                                        map_ondragstart,
                                        map_onhelp,
                                        map_onkeydown,
                                        map_onkeypress,
                                        map_onkeyup,
                                        map_onmousedown,
                                        map_onmousemove,
                                        map_onmouseout,
                                        map_onmouseover,
                                        map_onmouseup,
                                        map_onselectstart
                        } map_arg;


                        typedef enum {
                                // standard attributes
                                        object_code=1,
                                        object_codebase,
                                        object_codetype,
                                        object_data,
                                        object_type,
                                        object_classid,
                                        object_name,
                                        object_standby,
                                        object_align,
                                        object_border,
                                        object_height,
                                        object_width,
                                        object_vspace,
                                        object_hspace,
                                        object_tabindex,
                                        object_accesskey,
                                        object_usemap,
                                        object_declare,
                                // css attributes
                                        object_class,
                                        object_id,
                                        object_style,
                                // accessibility attributes
                                        object_title,
                                // language attributes
                                        object_dir,
                                        object_lang,
                                        object_language,
                                // event attributes
                                        object_onafterupdate,
                                        object_onbeforeupdate,
                                        object_onblur,
                                        object_onclick,
                                        object_ondblclick,
                                        object_ondragstart,
                                        object_onfocus,
                                        object_onhelp,
                                        object_onkeydown,
                                        object_onkeypress,
                                        object_onkeyup,
                                        object_onmousedown,
                                        object_onmousemove,
                                        object_onmouseout,
                                        object_onmouseover,
                                        object_onmouseup,
                                        object_onreadystatechange,
                                        object_onresize,
                                        object_onrowenter,
                                        object_onrowexit,
                                        object_onselectstart,
                                // data attributes
                                        object_datafld,
                                        object_dataformats,
                                        object_datasrc
                        } object_arg;


                        typedef enum {
                                // standard attributes
                                        sound_src=1,
                                        sound_delay,
                                        sound_loop
                        } sound_arg;



                        // positioning tags
                        typedef enum {
                                // standard attributes
                                        ilayer_name=1,
                                        ilayer_src,
                                        ilayer_left,
                                        ilayer_top,
                                        ilayer_height,
                                        ilayer_width,
                                        ilayer_pagex,
                                        ilayer_pagey,
                                        ilayer_zindex,
                                        ilayer_above,
                                        ilayer_below,
                                        ilayer_background,
                                        ilayer_bgcolor,
                                        ilayer_clip,
                                        ilayer_visibility,
                                // css attributes
                                        ilayer_class,
                                        ilayer_id,
                                        ilayer_style,
                                // accessibility attributes
                                        ilayer_title
                        } ilayer_arg;


                        typedef enum {
                                // standard attributes
                                        layer_name=1,
                                        layer_src,
                                        layer_left,
                                        layer_top,
                                        layer_height,
                                        layer_width,
                                        layer_pagex,
                                        layer_pagey,
                                        layer_zindex,
                                        layer_above,
                                        layer_below,
                                        layer_background,
                                        layer_bgcolor,
                                        layer_clip,
                                        layer_visibility,
                                // css attributes
                                        layer_class,
                                        layer_id,
                                        layer_style,
                                // accessibility attributes
                                        layer_title
                        } layer_arg;



                        // revision control tags
                        typedef enum {
                                // standard attributes
                                        del_cite=1,
                                        del_datetime,
                                // css attributes
                                        del_class,
                                        del_id,
                                        del_style,
                                // accessibility attributes
                                        del_title,
                                // language attributes
                                        del_dir,
                                        del_lang,
                                        del_language,
                                // event attributes
                                        del_onclick,
                                        del_ondblclick,
                                        del_ondragstart,
                                        del_onhelp,
                                        del_onkeydown,
                                        del_onkeypress,
                                        del_onkeyup,
                                        del_onmousedown,
                                        del_onmousemove,
                                        del_onmouseout,
                                        del_onmouseover,
                                        del_onmouseup,
                                        del_onselectstart
                        } del_arg;


                        typedef enum {
                                // standard attributes
                                        ins_cite=1,
                                        ins_datetime,
                                // css attributes
                                        ins_class,
                                        ins_id,
                                        ins_style,
                                // accessibility attributes
                                        ins_title,
                                // language attributes
                                        ins_dir,
                                        ins_lang,
                                        ins_language,
                                // event attributes
                                        ins_onclick,
                                        ins_ondblclick,
                                        ins_ondragstart,
                                        ins_onhelp,
                                        ins_onkeydown,
                                        ins_onkeypress,
                                        ins_onkeyup,
                                        ins_onmousedown,
                                        ins_onmousemove,
                                        ins_onmouseout,
                                        ins_onmouseover,
                                        ins_onmouseup,
                                        ins_onselectstart
                        } ins_arg;



                        // ruby tags
                        typedef enum {
                                // standard attributes
                                        rt_name=1,
                                // css attributes
                                        rt_class,
                                        rt_id,
                                        rt_style,
                                // accessibility attributes
                                        rt_title,
                                // language attributes
                                        rt_dir,
                                        rt_lang,
                                        rt_language
                        } rt_arg;


                        typedef enum {
                                // standard attributes
                                        ruby_name=1,
                                // css attributes
                                        ruby_class,
                                        ruby_id,
                                        ruby_style,
                                // accessibility attributes
                                        ruby_title,
                                // language attributes
                                        ruby_dir,
                                        ruby_lang,
                                        ruby_language
                        } ruby_arg;



                        // style sheet tags
                        typedef enum {
                                // standard attributes
                                        div_level=1,
                                        div_align,
                                        div_clear,
                                // css attributes
                                        div_class,
                                        div_id,
                                        div_style,
                                // accessibility attributes
                                        div_title,
                                // language attributes
                                        div_dir,
                                        div_lang,
                                        div_language,
                                // event attributes
                                        div_onafterupdate,
                                        div_onbeforeupdate,
                                        div_onblur,
                                        div_onclick,
                                        div_ondblclick,
                                        div_ondragstart,
                                        div_onfocus,
                                        div_onhelp,
                                        div_onkeydown,
                                        div_onkeypress,
                                        div_onkeyup,
                                        div_onmousedown,
                                        div_onmousemove,
                                        div_onmouseout,
                                        div_onmouseover,
                                        div_onmouseup,
                                        div_onresize,
                                        div_onrowenter,
                                        div_onrowexit,
                                        div_onscroll,
                                        div_onselectstart
                        } div_arg;


                        typedef enum {
                                // css attributes
                                        span_class=1,
                                        span_id,
                                        span_style,
                                // accessibility attributes
                                        span_title,
                                // language attributes
                                        span_dir,
                                        span_lang,
                                        span_language,
                                // event attributes
                                        span_onclick,
                                        span_ondblclick,
                                        span_ondragstart,
                                        span_onhelp,
                                        span_onkeydown,
                                        span_onkeypress,
                                        span_onkeyup,
                                        span_onmousedown,
                                        span_onmousemove,
                                        span_onmouseout,
                                        span_onmouseover,
                                        span_onmouseup,
                                        span_onselectstart
                        } span_arg;



                        // table tags
                        typedef enum {
                                // standard attributes
                                        caption_align=1,
                                        caption_valign,
                                // css attributes
                                        caption_class,
                                        caption_id,
                                        caption_style,
                                // accessibility attributes
                                        caption_title,
                                // language attributes
                                        caption_dir,
                                        caption_lang,
                                        caption_language,
                                // event attributes
                                        caption_onafterupdate,
                                        caption_onbeforeupdate,
                                        caption_onblur,
                                        caption_onclick,
                                        caption_ondblclick,
                                        caption_ondragstart,
                                        caption_onfocus,
                                        caption_onhelp,
                                        caption_onkeydown,
                                        caption_onkeypress,
                                        caption_onkeyup,
                                        caption_onmousedown,
                                        caption_onmousemove,
                                        caption_onmouseout,
                                        caption_onmouseover,
                                        caption_onmouseup,
                                        caption_onresize,
                                        caption_onrowenter,
                                        caption_onrowexit,
                                        caption_onselect,
                                        caption_onselectstart
                        } caption_arg;


                        typedef enum {
                                // standard attributes
                                        col_span=1,
                                        col_align,
                                        col_valign,
                                        col_width,
                                        col_char,
                                        col_charoff,
                                // css attributes
                                        col_class,
                                        col_id,
                                        col_style,
                                // accessibility attributes
                                        col_title,
                                // language attributes
                                        col_dir,
                                        col_lang,
                                        col_language,
                                // event attributes
                                        col_onclick,
                                        col_ondblclick,
                                        col_ondragstart,
                                        col_onkeydown,
                                        col_onkeypress,
                                        col_onkeyup,
                                        col_onmousedown,
                                        col_onmousemove,
                                        col_onmouseout,
                                        col_onmouseover,
                                        col_onmouseup
                        } col_arg;


                        typedef enum {
                                // standard attributes
                                        colgroup_span=1,
                                        colgroup_align,
                                        colgroup_valign,
                                        colgroup_width,
                                        colgroup_char,
                                        colgroup_charoff,
                                // css attributes
                                        colgroup_class,
                                        colgroup_id,
                                        colgroup_style,
                                // accessibility attributes
                                        colgroup_title,
                                // language attributes
                                        colgroup_dir,
                                        colgroup_lang,
                                        colgroup_language,
                                // event attributes
                                        colgroup_onclick,
                                        colgroup_ondblclick,
                                        colgroup_ondragstart,
                                        colgroup_onkeydown,
                                        colgroup_onkeypress,
                                        colgroup_onkeyup,
                                        colgroup_onmousedown,
                                        colgroup_onmousemove,
                                        colgroup_onmouseout,
                                        colgroup_onmouseover,
                                        colgroup_onmouseup
                        } colgroup_arg;


                        typedef enum {
                                // standard attributes
                                        thead_bgcolor=1,
                                        thead_align,
                                        thead_valign,
                                        thead_width,
                                        thead_char,
                                        thead_charoff,
                                // css attributes
                                        thead_class,
                                        thead_id,
                                        thead_style,
                                // accessibility attributes
                                        thead_title,
                                // language attributes
                                        thead_dir,
                                        thead_lang,
                                        thead_language,
                                // event attributes
                                        thead_onclick,
                                        thead_ondblclick,
                                        thead_ondragstart,
                                        thead_onhelp,
                                        thead_onkeydown,
                                        thead_onkeypress,
                                        thead_onkeyup,
                                        thead_onmousedown,
                                        thead_onmousemove,
                                        thead_onmouseout,
                                        thead_onmouseover,
                                        thead_onmouseup,
                                        thead_onselectstart
                        } thead_arg;


                        typedef enum {
                                // standard attributes
                                        tbody_bgcolor=1,
                                        tbody_align,
                                        tbody_valign,
                                        tbody_width,
                                        tbody_char,
                                        tbody_charoff,
                                // css attributes
                                        tbody_class,
                                        tbody_id,
                                        tbody_style,
                                // accessibility attributes
                                        tbody_title,
                                // language attributes
                                        tbody_dir,
                                        tbody_lang,
                                        tbody_language,
                                // event attributes
                                        tbody_onclick,
                                        tbody_ondblclick,
                                        tbody_ondragstart,
                                        tbody_onhelp,
                                        tbody_onkeydown,
                                        tbody_onkeypress,
                                        tbody_onkeyup,
                                        tbody_onmousedown,
                                        tbody_onmousemove,
                                        tbody_onmouseout,
                                        tbody_onmouseover,
                                        tbody_onmouseup,
                                        tbody_onselectstart
                        } tbody_arg;


                        typedef enum {
                                // standard attributes
                                        tfoot_bgcolor=1,
                                        tfoot_align,
                                        tfoot_valign,
                                        tfoot_width,
                                        tfoot_char,
                                        tfoot_charoff,
                                // css attributes
                                        tfoot_class,
                                        tfoot_id,
                                        tfoot_style,
                                // accessibility attributes
                                        tfoot_title,
                                // language attributes
                                        tfoot_dir,
                                        tfoot_lang,
                                        tfoot_language,
                                // event attributes
                                        tfoot_onclick,
                                        tfoot_ondblclick,
                                        tfoot_ondragstart,
                                        tfoot_onhelp,
                                        tfoot_onkeydown,
                                        tfoot_onkeypress,
                                        tfoot_onkeyup,
                                        tfoot_onmousedown,
                                        tfoot_onmousemove,
                                        tfoot_onmouseout,
                                        tfoot_onmouseover,
                                        tfoot_onmouseup,
                                        tfoot_onselectstart
                        } tfoot_arg;


                        typedef enum {
                                // standard attributes
                                        table_background=1,
                                        table_bgcolor,
                                        table_border,
                                        table_bordercolor,
                                        table_bordercolordark,
                                        table_bordercolorlight,
                                        table_align,
                                        table_cellpadding,
                                        table_cellspacing,
                                        table_height,
                                        table_width,
                                        table_cols,
                                        table_datapagesize,
                                        table_frame,
                                        table_rules,
                                        table_summary,
                                // css attributes
                                        table_class,
                                        table_id,
                                        table_style,
                                // accessibility attributes
                                        table_title,
                                // language attributes
                                        table_dir,
                                        table_lang,
                                        table_language,
                                // event attributes
                                        table_onafterupdate,
                                        table_onbeforeupdate,
                                        table_onblur,
                                        table_onclick,
                                        table_ondblclick,
                                        table_ondragstart,
                                        table_onfocus,
                                        table_onhelp,
                                        table_onkeydown,
                                        table_onkeypress,
                                        table_onkeyup,
                                        table_onmousedown,
                                        table_onmousemove,
                                        table_onmouseout,
                                        table_onmouseover,
                                        table_onmouseup,
                                        table_onresize,
                                        table_onrowenter,
                                        table_onrowexit,
                                        table_onscroll,
                                        table_onselectstart,
                                // data attributes
                                        table_datafld,
                                        table_dataformats,
                                        table_datasrc
                        } table_arg;


                        typedef enum {
                                // standard attributes
                                        th_background=1,
                                        th_bgcolor,
                                        th_bordercolor,
                                        th_bordercolordark,
                                        th_bordercolorlight,
                                        th_align,
                                        th_valign,
                                        th_axis,
                                        th_height,
                                        th_width,
                                        th_colspan,
                                        th_rowspan,
                                        th_char,
                                        html_charoff,
                                        th_headers,
                                        th_nowrap,
                                        th_scope,
                                        th_abbr,
                                // css attributes
                                        th_class,
                                        th_id,
                                        th_style,
                                // accessibility attributes
                                        th_title,
                                // language attributes
                                        th_dir,
                                        th_lang,
                                        th_language,
                                // event attributes
                                        th_onafterupdate,
                                        th_onbeforeupdate,
                                        th_onblur,
                                        th_onclick,
                                        th_ondblclick,
                                        th_ondragstart,
                                        th_onfocus,
                                        th_onhelp,
                                        th_onkeydown,
                                        th_keypress,
                                        th_onkeyup,
                                        th_onmousedown,
                                        th_onmousemove,
                                        th_onmouseout,
                                        th_onmouseover,
                                        th_onmouseup,
                                        th_onresize,
                                        th_onrowenter,
                                        th_onrowexit,
                                        th_onscroll,
                                        th_onselectstart
                        } th_arg;


                        typedef enum {
                                // standard attribute
                                        td_background=1,
                                        td_bgcolor,
                                        td_bordercolor,
                                        td_bordercolordark,
                                        td_bordercolorlight,
                                        td_align,
                                        td_valign,
                                        td_axis,
                                        td_height,
                                        td_width,
                                        td_colspan,
                                        td_rowspan,
                                        td_char,
                                        td_charoff,
                                        td_headers,
                                        td_nowrap,
                                        td_scope,
                                        td_abbr,
                                // css attributes
                                        td_class,
                                        td_id,
                                        td_style,
                                // accessibility attributes
                                        td_title,
                                // language attributes
                                        td_dir,
                                        td_lang,
                                        td_language,
                                // event attributes
                                        td_onafterupdate,
                                        td_onbeforeupdate,
                                        td_onblur,
                                        td_onclick,
                                        td_ondblclick,
                                        td_ondragstart,
                                        td_onfocus,
                                        td_onhelp,
                                        td_onkeydown,
                                        td_onkeypress,
                                        td_onkeyup,
                                        td_onmousedown,
                                        td_onmousemove,
                                        td_onmouseout,
                                        td_onmouseover,
                                        td_onmouseup,
                                        td_onresize,
                                        td_onrowenter,
                                        td_onrowexit,
                                        td_onscroll,
                                        td_onselectstart
                        } td_arg;


                        typedef enum {
                                // standard attributes
                                        tr_bgcolor=1,
                                        tr_bordercolor,
                                        tr_bordercolordark,
                                        tr_bordercolorlight,
                                        tr_align,
                                        tr_valign,
                                        tr_char,
                                        tr_charoff,
                                        tr_nowrap,
                                // css attributes
                                        tr_class,
                                        tr_id,
                                        tr_style,
                                // accessibility attributes
                                        tr_title,
                                // language attributes
                                        tr_dir,
                                        tr_lang,
                                        tr_language,
                                // event attributes
                                        tr_onafterupdate,
                                        tr_onbeforeupdate,
                                        tr_onblur,
                                        tr_onclick,
                                        tr_ondblclick,
                                        tr_ondragstart,
                                        tr_onfocus,
                                        tr_onhelp,
                                        tr_onkeydown,
                                        tr_onkeypress,
                                        tr_onkeyup,
                                        tr_onmousedown,
                                        tr_onmousemove,
                                        tr_onmouseout,
                                        tr_onmouseover,
                                        tr_onmouseup,
                                        tr_onresize,
                                        tr_onrowenter,
                                        tr_onrowexit,
                                        tr_onscroll,
                                        tr_onselectstart
                        } tr_arg;


                // the following functions output corresponding html tags

                // top level tags
                void    doctypeTag(strstream *container,
                                // standard attributes
                                char *doctype_topelement,
                                char *doctype_availability,
                                char *doctype_registration,
                                char *doctype_organization,
                                char *doctype_type,
                                char *doctype_label,
                                char *doctype_language
                                );

                void    htmlTag(strstream *container,
                                // standard attributes
                                char *html_registration,
                                char *html_organization,
                                char *html_type,
                                char *html_label,
                                char *html_languagestring,
                                // css attributes
                                char *html_class,
                                char *html_id,
                                char *html_style,
                                // accessibility attributes
                                char *html_title,
                                // language attributes
                                char *html_dir,
                                char *html_lang,
                                char *html_language
                                );
                void    endHtmlTag(strstream *container); 



                // frame tags
                void    framesetTag(strstream *container, ...);
                void    endFramesetTag(strstream *container); 


                void    frameTag(strstream *container, ...);
                void    endFrameTag(strstream *container); 


                void    noframesTag(strstream *container, ...);
                void    endNoframesTag(strstream *container); 



                // head tags
                void    headTag(strstream *container, ...);
                void    endHeadTag(strstream *container); 


                void    baseTag(strstream *container, ...);


                void    isindexTag(strstream *container, ...);


                void    linkTag(strstream *container, ...);


                void    metaTag(strstream *container, ...);


                void    nextidTag(strstream *container, char *n); 


                void    scriptTag(strstream *container, ...);
                void    endScriptTag(strstream *container);


                void    noscriptTag(strstream *container);
                void    endNoscriptTag(strstream *container); 


                void    styleTag(strstream *container, ...);

                void    titleTag(strstream *container, ...);
                void    endTitleTag(strstream *container); 



                // body tags
                void    bodyTag(strstream *container, ...);
                void    endBodyTag(strstream *container); 



                // anchor tags
                void    aTag(strstream *container, ...);
                void    endATag(strstream *container); 



                // block formatting tags
                void    addressTag(strstream *container, ...);
                void    endAddressTag(strstream *container); 


                void    blockquoteTag(strstream *container, ...);
                void    endBlockquoteTag(strstream *container);


                void    centerTag(strstream *container, ...);
                void    endCenterTag(strstream *container);


                void    h1Tag(strstream *container, ...);
                void    endH1Tag(strstream *container); 


                void    h2Tag(strstream *container, ...);
                void    endH2Tag(strstream *container); 


                void    h3Tag(strstream *container, ...);
                void    endH3Tag(strstream *container); 


                void    h4Tag(strstream *container, ...);
                void    endH4Tag(strstream *container); 


                void    h5Tag(strstream *container, ...);
                void    endH5Tag(strstream *container); 


                void    h6Tag(strstream *container, ...);
                void    endH6Tag(strstream *container); 


                void    marqueeTag(strstream *container, ...);
                void    endMarqueeTag(strstream *container); 


                void    multicolTag(strstream *container, ...);
                void    endMulticolTag(strstream *container); 


                void    pTag(strstream *container, ...);
                void    endPTag(strstream *container); 


                void    preTag(strstream *container, ...);
                void    endPreTag(strstream *container); 



                // embedded functionality tags
                void    embedTag(strstream *container, ...);


                void    noembedTag(strstream *container);
                void    endNoembedTag(strstream *container); 


                void    appletTag(strstream *container, ...);
                void    endAppletTag(strstream *container); 


                void    paramTag(strstream *container, ...);



                // character formatting tags
                void    abbrTag(strstream *container, ...);
                void    endAbbrTag(strstream *container); 


                void    acronymTag(strstream *container, ...);
                void    endAcronymTag(strstream *container); 


                void    bTag(strstream *container, ...);
                void    endBTag(strstream *container); 


                void    bigTag(strstream *container, ...);
                void    endBigTag(strstream *container); 


                void    blinkTag(strstream *container, ...);
                void    endBlinkTag(strstream *container); 


                void    citeTag(strstream *container, ...);
                void    endCiteTag(strstream *container); 


                void    codeTag(strstream *container, ...);
                void    endCodeTag(strstream *container); 


                void    dfnTag(strstream *container, ...);
                void    endDfnTag(strstream *container); 


                void    emTag(strstream *container, ...);
                void    endEmTag(strstream *container); 


                void    fontTag(strstream *container, ...);
                void    endFontTag(strstream *container); 


                void    iTag(strstream *container, ...);
                void    endITag(strstream *container); 


                void    kbdTag(strstream *container, ...);
                void    endKbdTag(strstream *container); 


                void    qTag(strstream *container, ...);
                void    endQTag(strstream *container); 

                void    sampTag(strstream *container, ...);
                void    endSampTag(strstream *container); 


                void    smallTag(strstream *container, ...);
                void    endSmallTag(strstream *container); 


                void    strikeTag(strstream *container, ...);
                void    endStrikeTag(strstream *container); 


                void    strongTag(strstream *container, ...);
                void    endStrongTag(strstream *container); 


                void    subTag(strstream *container, ...);
                void    endSubTag(strstream *container); 


                void    supTag(strstream *container, ...);
                void    endSupTag(strstream *container); 


                void    ttTag(strstream *container, ...);
                void    endTtTag(strstream *container); 


                void    uTag(strstream *container, ...);
                void    endUTag(strstream *container); 


                void    iframeTag(strstream *container, ...);
                void    endIframeTag(strstream *container); 


                void    varTag(strstream *container, ...);
                void    endVarTag(strstream *container); 



                // form tags
                void    buttonTag(strstream *container, ...);
                void    endButtonTag(strstream *container); 


                void    fieldsetTag(strstream *container, ...);
                void    endFieldsetTag(strstream *container); 


                void    htmlareaTag(strstream *container, ...);
                void    endHtmlareaTag(strstream *container); 


                void    formTag(strstream *container, ...);
                void    endFormTag(strstream *container); 


                void    labelTag(strstream *container, ...);
                void    endLabelTag(strstream *container); 


                void    legendTag(strstream *container, ...);
                void    endLegendTag(strstream *container); 


                void    optgroupTag(strstream *container, ...);
                void    endOptgroupTag(strstream *container); 


                void    optionTag(strstream *container, ...);
                void    endOptionTag(strstream *container); 


                void    selectTag(strstream *container, ...);
                void    endSelectTag(strstream *container); 


                void    inputTag(strstream *container, ...);



                // line breaking tags
                void    brTag(strstream *container, ...);


                void    nobrTag(strstream *container, ...);
                void    endNobrTag(strstream *container); 


                void    wbrTag(strstream *container);



                // list tags
                void    olTag(strstream *container, ...);
                void    endOlTag(strstream *container); 


                void    ulTag(strstream *container, ...);
                void    endUlTag(strstream *container); 


                void    menuTag(strstream *container, ...);
                void    endMenuTag(strstream *container); 


                void    dirTag(strstream *container, ...);
                void    endDirTag(strstream *container); 


                void    liTag(strstream *container, ...);
                void    endLiTag(strstream *container); 


                void    dlTag(strstream *container, ...);
                void    endDlTag(strstream *container); 


                void    dtTag(strstream *container, ...);
                void    endDtTag(strstream *container); 


                void    ddTag(strstream *container, ...);
                void    endDdTag(strstream *container); 



                // miscellaneous tags
                void    basefontTag(strstream *container, ...);
                void    endBasefontTag(strstream *container); 


                void    bdoTag(strstream *container, ...);
                void    endBdoTag(strstream *container); 


                void    commentTag(strstream *container); 
                void    endCommentTag(strstream *container); 


                void    hrTag(strstream *container, ...);


                void    keygenTag(strstream *container, ...);


                void    spacerTag(strstream *container, ...);


                void    xmlTag(strstream *container, ...);
                void    endXmlTag(strstream *container); 


                void    areaTag(strstream *container, ...);


                void    bgsoundTag(strstream *container, ...);


                void    imgTag(strstream *container, ...);


                void    mapTag(strstream *container, ...);
                void    endMapTag(strstream *container); 


                void    objectTag(strstream *container, ...);
                void    endObjectTag(strstream *container); 


                void    soundTag(strstream *container, ...);



                // positioning tags
                void    ilayerTag(strstream *container, ...);
                void    endIlayerTag(strstream *container); 


                void    layerTag(strstream *container, ...);
                void    endLayerTag(strstream *container); 


                void    nolayerTag(strstream *container);
                void    endNolayerTag(strstream *container); 



                // revision control tags
                void    delTag(strstream *container, ...);
                void    endDelTag(strstream *container); 


                void    insTag(strstream *container, ...);
                void    endInsTag(strstream *container); 



                // ruby tags
                void    rbTag(strstream *container);
                void    endRbTag(strstream *container); 


                void    rtTag(strstream *container, ...);
                void    endRtTag(strstream *container); 


                void    rubyTag(strstream *container, ...);
                void    endRubyTag(strstream *container); 



                // style sheet tags
                void    divTag(strstream *container, ...);
                void    endDivTag(strstream *container); 


                void    spanTag(strstream *container, ...);
                void    endSpanTag(strstream *container); 



                // table tags
                void    captionTag(strstream *container, ...);
                void    endCaptionTag(strstream *container); 


                void    colTag(strstream *container, ...);
                void    endColTag(strstream *container); 


                void    colgroupTag(strstream *container, ...);
                void    endColgroupTag(strstream *container); 


                void    theadTag(strstream *container, ...);
                void    endTheadTag(strstream *container); 


                void    tbodyTag(strstream *container, ...);
                void    endTbodyTag(strstream *container); 


                void    tfootTag(strstream *container, ...);
                void    endTfootTag(strstream *container); 


                void    tableTag(strstream *container, ...);
                void    endTableTag(strstream *container); 


                void    thTag(strstream *container, ...);
                void    endThTag(strstream *container); 


                void    tdTag(strstream *container, ...);
                void    endTdTag(strstream *container); 


                void    trTag(strstream *container, ...);
                void    endTrTag(strstream *container);

        private:
                #include <private/htmltags.h>

};


#endif