/* This file is automatically generated from htmltags.in and htmlattrs.in by gennames.py, do not edit */
/* Copyright 2008 Vyacheslav Tokarev */

#ifndef HTMLNames_h
#define HTMLNames_h

#include "misc/idstring.h"

#define XHTML_NAMESPACE "http://www.w3.org/1999/xhtml"
#define SVG_NAMESPACE "http://www.w3.org/2000/svg"
#define XLINK_NAMESPACE "http://www.w3.org/1999/xlink"

#define ID_A 1
#define ID_ABBR 2
#define ATTR_ABBR 65538
#define ID_ACRONYM 3
#define ID_ADDRESS 4
#define ID_APPLET 5
#define ID_AREA 6
#define ID_AUDIO 7
#define ID_B 8
#define ID_BASE 9
#define ID_BASEFONT 10
#define ID_BDO 11
#define ID_BIG 12
#define ID_BLOCKQUOTE 13
#define ID_BODY 14
#define ID_BR 15
#define ID_BUTTON 16
#define ID_CANVAS 17
#define ID_CAPTION 18
#define ID_CENTER 19
#define ID_CITE 20
#define ATTR_CITE 65556
#define ID_CODE 21
#define ATTR_CODE 65557
#define ID_COL 22
#define ID_COLGROUP 23
#define ID_DD 24
#define ID_DEL 25
#define ID_DFN 26
#define ID_DIR 27
#define ATTR_DIR 65563
#define ID_DIV 28
#define ID_DL 29
#define ID_DT 30
#define ID_EM 31
#define ID_EMBED 32
#define ID_FIELDSET 33
#define ID_FONT 34
#define ID_FORM 35
#define ID_FRAME 36
#define ATTR_FRAME 65572
#define ID_FRAMESET 37
#define ID_H1 38
#define ID_H2 39
#define ID_H3 40
#define ID_H4 41
#define ID_H5 42
#define ID_H6 43
#define ID_HEAD 44
#define ID_HR 45
#define ID_HTML 46
#define ATTR_HTML 65582
#define ID_I 47
#define ID_IFRAME 48
#define ID_ILAYER 49
#define ID_IMAGE 50
#define ID_IMG 51
#define ID_INPUT 52
#define ID_INS 53
#define ID_ISINDEX 54
#define ID_KBD 55
#define ID_KEYGEN 56
#define ID_LABEL 57
#define ATTR_LABEL 65593
#define ID_LAYER 58
#define ID_LEGEND 59
#define ID_LI 60
#define ID_LINK 61
#define ATTR_LINK 65597
#define ID_LISTING 62
#define ID_MAP 63
#define ID_MARQUEE 64
#define ID_MENU 65
#define ID_META 66
#define ID_NOBR 67
#define ID_NOEMBED 68
#define ID_NOFRAMES 69
#define ID_NOSCRIPT 70
#define ID_NOLAYER 71
#define ID_OBJECT 72
#define ATTR_OBJECT 65608
#define ID_OL 73
#define ID_OPTGROUP 74
#define ID_OPTION 75
#define ID_P 76
#define ID_PARAM 77
#define ID_PLAINTEXT 78
#define ID_PRE 79
#define ID_Q 80
#define ID_S 81
#define ID_SAMP 82
#define ID_SCRIPT 83
#define ID_SELECT 84
#define ID_SMALL 85
#define ID_SOURCE 86
#define ID_SPAN 87
#define ATTR_SPAN 65623
#define ID_STRIKE 88
#define ID_STRONG 89
#define ID_STYLE 90
#define ATTR_STYLE 65626
#define ID_SUB 91
#define ID_SUP 92
#define ID_TABLE 93
#define ID_TBODY 94
#define ID_TD 95
#define ID_TEXTAREA 96
#define ID_TFOOT 97
#define ID_TH 98
#define ID_THEAD 99
#define ID_TITLE 100
#define ATTR_TITLE 65636
#define ID_TR 101
#define ID_TT 102
#define ID_U 103
#define ID_UL 104
#define ID_VAR 105
#define ID_VIDEO 106
#define ID_WBR 107
#define ID_XMP 108
#define ID_TEXT 109
#define ID_COMMENT 110
#define ATTR_ACCEPT_CHARSET 65647
#define ATTR_ACCEPT 65648
#define ATTR_ACCESSKEY 65649
#define ATTR_ALIGN 65650
#define ATTR_ALINK 65651
#define ATTR_AUTOCOMPLETE 65652
#define ATTR_AUTOPLAY 65653
#define ATTR_AXIS 65654
#define ATTR_BEHAVIOR 65655
#define ATTR_BGCOLOR 65656
#define ATTR_BGPROPERTIES 65657
#define ATTR_BORDER 65658
#define ATTR_BORDERCOLOR 65659
#define ATTR_CELLPADDING 65660
#define ATTR_CELLSPACING 65661
#define ATTR_CHAR 65662
#define ATTR_CHALLENGE 65663
#define ATTR_CHAROFF 65664
#define ATTR_CHARSET 65665
#define ATTR_CHECKED 65666
#define ATTR_CLEAR 65667
#define ATTR_CODETYPE 65668
#define ATTR_COLOR 65669
#define ATTR_COLS 65670
#define ATTR_COLSPAN 65671
#define ATTR_COMPACT 65672
#define ATTR_CONTENTEDITABLE 65673
#define ATTR_CONTROLS 65674
#define ATTR_COORDS 65675
#define ATTR_DECLARE 65676
#define ATTR_DEFER 65677
#define ATTR_DIRECTION 65678
#define ATTR_DISABLED 65679
#define ATTR_ENCTYPE 65680
#define ATTR_END 65681
#define ATTR_FACE 65682
#define ATTR_FRAMEBORDER 65683
#define ATTR_HEIGHT 65684
#define ATTR_HIDDEN 65685
#define ATTR_HREFLANG 65686
#define ATTR_HSPACE 65687
#define ATTR_HTTP_EQUIV 65688
#define ATTR_ISMAP 65689
#define ATTR_LANG 65690
#define ATTR_LANGUAGE 65691
#define ATTR_LEFT 65692
#define ATTR_LEFTMARGIN 65693
#define ATTR_LOOP 65694
#define ATTR_LOOPEND 65695
#define ATTR_LOOPSTART 65696
#define ATTR_MARGINHEIGHT 65697
#define ATTR_MARGINWIDTH 65698
#define ATTR_MAXLENGTH 65699
#define ATTR_MEDIA 65700
#define ATTR_METHOD 65701
#define ATTR_MULTIPLE 65702
#define ATTR_NOHREF 65703
#define ATTR_NORESIZE 65704
#define ATTR_NOSAVE 65705
#define ATTR_NOSHADE 65706
#define ATTR_NOWRAP 65707
#define ATTR_ONABORT 65708
#define ATTR_ONERROR 65709
#define ATTR_ONRESIZE 65710
#define ATTR_OVERSRC 65711
#define ATTR_PAGEX 65712
#define ATTR_PAGEY 65713
#define ATTR_PLAIN 65714
#define ATTR_PLAYCOUNT 65715
#define ATTR_PLUGINPAGE 65716
#define ATTR_PLUGINSPAGE 65717
#define ATTR_PLUGINURL 65718
#define ATTR_POSTER 65719
#define ATTR_READONLY 65720
#define ATTR_REL 65721
#define ATTR_REV 65722
#define ATTR_ROWS 65723
#define ATTR_ROWSPAN 65724
#define ATTR_RULES 65725
#define ATTR_SCOPE 65726
#define ATTR_SCROLLAMOUNT 65727
#define ATTR_SCROLLDELAY 65728
#define ATTR_SCROLLING 65729
#define ATTR_SELECTED 65730
#define ATTR_SHAPE 65731
#define ATTR_SIZE 65732
#define ATTR_START 65733
#define ATTR_TABINDEX 65734
#define ATTR_TARGET 65735
#define ATTR_TEXT 65736
#define ATTR_TOP 65737
#define ATTR_TOPMARGIN 65738
#define ATTR_TRUESPEED 65739
#define ATTR_TYPE 65740
#define ATTR_UNKNOWN 65741
#define ATTR_VALIGN 65742
#define ATTR_VALUETYPE 65743
#define ATTR_VERSION 65744
#define ATTR_VISIBILITY 65745
#define ATTR_VLINK 65746
#define ATTR_VSPACE 65747
#define ATTR_WIDTH 65748
#define ATTR_WRAP 65749
#define ATTR_Z_INDEX 65750
#define ATTR_ACTION 65751
#define ATTR_ALT 65752
#define ATTR_ARCHIVE 65753
#define ATTR_BACKGROUND 65754
#define ATTR_CLASS 65755
#define ATTR_CLASSID 65756
#define ATTR_CODEBASE 65757
#define ATTR_CONTENT 65758
#define ATTR_DATA 65759
#define ATTR_DATETIME 65760
#define ATTR_FOR 65761
#define ATTR_HEADERS 65762
#define ATTR_HREF 65763
#define ATTR_ID 65764
#define ATTR_LONGDESC 65765
#define ATTR_NAME 65766
#define ATTR_ONBLUR 65767
#define ATTR_ONCHANGE 65768
#define ATTR_ONCLICK 65769
#define ATTR_ONDBLCLICK 65770
#define ATTR_ONFOCUS 65771
#define ATTR_ONKEYDOWN 65772
#define ATTR_ONKEYPRESS 65773
#define ATTR_ONKEYUP 65774
#define ATTR_ONLOAD 65775
#define ATTR_ONMOUSEDOWN 65776
#define ATTR_ONMOUSEMOVE 65777
#define ATTR_ONMOUSEOUT 65778
#define ATTR_ONMOUSEOVER 65779
#define ATTR_ONMOUSEUP 65780
#define ATTR_ONRESET 65781
#define ATTR_ONSELECT 65782
#define ATTR_ONSCROLL 65783
#define ATTR_ONSUBMIT 65784
#define ATTR_ONUNLOAD 65785
#define ATTR_PROFILE 65786
#define ATTR_PROMPT 65787
#define ATTR_SCHEME 65788
#define ATTR_SRC 65789
#define ATTR_STANDBY 65790
#define ATTR_SUMMARY 65791
#define ATTR_USEMAP 65792
#define ATTR_VALUE 65793
#define ID_ALTGLYPH 258
#define ID_ALTGLYPHDEF 259
#define ID_ALTGLYPHITEM 260
#define ID_ANIMATE 261
#define ATTR_ANIMATE 65797
#define ID_ANIMATECOLOR 262
#define ID_ANIMATEMOTION 263
#define ID_ANIMATETRANSFORM 264
#define ID_SET 265
#define ID_CIRCLE 266
#define ID_CLIPPATH 267
#define ID_COLOR_PROFILE 268
#define ID_CURSOR 269
#define ATTR_CURSOR 65805
#define ID_DEFINITION_SRC 270
#define ID_DEFS 271
#define ID_DESC 272
#define ID_ELLIPSE 273
#define ID_FEBLEND 274
#define ID_FECOLORMATRIX 275
#define ATTR_FECOLORMATRIX 65811
#define ID_FECOMPONENTTRANSFER 276
#define ID_FECOMPOSITE 277
#define ATTR_FECOMPOSITE 65813
#define ID_FECONVOLVEMATRIX 278
#define ID_FEDIFFUSELIGHTING 279
#define ID_FEDISPLACEMENTMAP 280
#define ID_FEDISTANTLIGHT 281
#define ID_FEFLOOD 282
#define ID_FEFUNCA 283
#define ID_FEFUNCB 284
#define ID_FEFUNCG 285
#define ID_FEFUNCR 286
#define ID_FEGAUSSIANBLUR 287
#define ATTR_FEGAUSSIANBLUR 65823
#define ID_FEIMAGE 288
#define ID_FEMERGE 289
#define ID_FEMERGENODE 290
#define ID_FEMORPHOLOGY 291
#define ATTR_FEMORPHOLOGY 65827
#define ID_FEOFFSET 292
#define ID_FEPOINTLIGHT 293
#define ID_FESPECULARLIGHTING 294
#define ID_FESPOTLIGHT 295
#define ID_FETILE 296
#define ATTR_FETILE 65832
#define ID_FETURBULENCE 297
#define ID_FILTER 298
#define ATTR_FILTER 65834
#define ID_FONT_FACE 299
#define ID_FONT_FACE_FORMAT 300
#define ID_FONT_FACE_NAME 301
#define ID_FONT_FACE_SRC 302
#define ID_FONT_FACE_URI 303
#define ID_FOREIGNOBJECT 304
#define ID_G 305
#define ID_GLYPH 306
#define ID_GLYPHREF 307
#define ATTR_GLYPHREF 65843
#define ID_HKERN 308
#define ID_LINE 309
#define ID_LINEARGRADIENT 310
#define ID_MARKER 311
#define ID_MASK 312
#define ATTR_MASK 65848
#define ID_METADATA 313
#define ID_MISSING_GLYPH 314
#define ID_MPATH 315
#define ID_PATH 316
#define ATTR_PATH 65852
#define ID_PATTERN 317
#define ID_POLYGON 318
#define ID_POLYLINE 319
#define ID_RADIALGRADIENT 320
#define ID_RECT 321
#define ID_STOP 322
#define ID_SVG 323
#define ID_SWITCH 324
#define ID_SYMBOL 325
#define ID_TEXTPATH 326
#define ID_TREF 327
#define ID_TSPAN 328
#define ID_USE 329
#define ID_VIEW 330
#define ID_VKERN 331
#define ATTR_ACCENT_HEIGHT 65868
#define ATTR_ACCUMULATE 65869
#define ATTR_ADDITIVE 65870
#define ATTR_ALIGNMENT_BASELINE 65871
#define ATTR_ALPHABETIC 65872
#define ATTR_AMPLITUDE 65873
#define ATTR_ARABIC_FORM 65874
#define ATTR_ASCENT 65875
#define ATTR_ATTRIBUTENAME 65876
#define ATTR_ATTRIBUTETYPE 65877
#define ATTR_AZIMUTH 65878
#define ATTR_BASEFREQUENCY 65879
#define ATTR_BASELINE_SHIFT 65880
#define ATTR_BASEPROFILE 65881
#define ATTR_BBOX 65882
#define ATTR_BEGIN 65883
#define ATTR_BIAS 65884
#define ATTR_BY 65885
#define ATTR_CALCMODE 65886
#define ATTR_CAP_HEIGHT 65887
#define ATTR_CLIP 65888
#define ATTR_CLIP_PATH 65889
#define ATTR_CLIP_RULE 65890
#define ATTR_CLIPPATHUNITS 65891
#define ATTR_COLOR_INTERPOLATION 65892
#define ATTR_COLOR_INTERPOLATION_FILTERS 65893
#define ATTR_COLOR_PROFILE 65894
#define ATTR_COLOR_RENDERING 65895
#define ATTR_CONTENTSCRIPTTYPE 65896
#define ATTR_CONTENTSTYLETYPE 65897
#define ATTR_CX 65898
#define ATTR_CY 65899
#define ATTR_D 65900
#define ATTR_DESCENT 65901
#define ATTR_DIFFUSECONSTANT 65902
#define ATTR_DISPLAY 65903
#define ATTR_DIVISOR 65904
#define ATTR_DOMINANT_BASELINE 65905
#define ATTR_DUR 65906
#define ATTR_DX 65907
#define ATTR_DY 65908
#define ATTR_EDGEMODE 65909
#define ATTR_ELEVATION 65910
#define ATTR_ENABLE_BACKGROUND 65911
#define ATTR_EXPONENT 65912
#define ATTR_EXTERNALRESOURCESREQUIRED 65913
#define ATTR_FILL 65914
#define ATTR_FILL_OPACITY 65915
#define ATTR_FILL_RULE 65916
#define ATTR_FILTERRES 65917
#define ATTR_FILTERUNITS 65918
#define ATTR_FLOOD_COLOR 65919
#define ATTR_FLOOD_OPACITY 65920
#define ATTR_FONT_FAMILY 65921
#define ATTR_FONT_SIZE 65922
#define ATTR_FONT_SIZE_ADJUST 65923
#define ATTR_FONT_STRETCH 65924
#define ATTR_FONT_STYLE 65925
#define ATTR_FONT_VARIANT 65926
#define ATTR_FONT_WEIGHT 65927
#define ATTR_FORMAT 65928
#define ATTR_FROM 65929
#define ATTR_FX 65930
#define ATTR_FY 65931
#define ATTR_G1 65932
#define ATTR_G2 65933
#define ATTR_GLYPH_NAME 65934
#define ATTR_GLYPH_ORIENTATION_HORIZONTAL 65935
#define ATTR_GLYPH_ORIENTATION_VERTICAL 65936
#define ATTR_GRADIENTTRANSFORM 65937
#define ATTR_GRADIENTUNITS 65938
#define ATTR_HANGING 65939
#define ATTR_HORIZ_ADV_X 65940
#define ATTR_HORIZ_ORIGIN_X 65941
#define ATTR_HORIZ_ORIGIN_Y 65942
#define ATTR_IDEOGRAPHIC 65943
#define ATTR_IMAGE_RENDERING 65944
#define ATTR_IN 65945
#define ATTR_IN2 65946
#define ATTR_INTERCEPT 65947
#define ATTR_K 65948
#define ATTR_K1 65949
#define ATTR_K2 65950
#define ATTR_K3 65951
#define ATTR_K4 65952
#define ATTR_KERNELMATRIX 65953
#define ATTR_KERNELUNITLENGTH 65954
#define ATTR_KERNING 65955
#define ATTR_KEYPOINTS 65956
#define ATTR_KEYSPLINES 65957
#define ATTR_KEYTIMES 65958
#define ATTR_LENGTHADJUST 65959
#define ATTR_LETTER_SPACING 65960
#define ATTR_LIGHTING_COLOR 65961
#define ATTR_LIMITINGCONEANGLE 65962
#define ATTR_LOCAL 65963
#define ATTR_MARKER_END 65964
#define ATTR_MARKER_MID 65965
#define ATTR_MARKER_START 65966
#define ATTR_MARKERHEIGHT 65967
#define ATTR_MARKERUNITS 65968
#define ATTR_MARKERWIDTH 65969
#define ATTR_MASKCONTENTUNITS 65970
#define ATTR_MASKUNITS 65971
#define ATTR_MATHEMATICAL 65972
#define ATTR_MAX 65973
#define ATTR_MIN 65974
#define ATTR_MODE 65975
#define ATTR_NUMOCTAVES 65976
#define ATTR_OFFSET 65977
#define ATTR_ONACTIVATE 65978
#define ATTR_ONBEGIN 65979
#define ATTR_ONEND 65980
#define ATTR_ONFOCUSIN 65981
#define ATTR_ONFOCUSOUT 65982
#define ATTR_ONREPEAT 65983
#define ATTR_ONZOOM 65984
#define ATTR_OPACITY 65985
#define ATTR_OPERATOR 65986
#define ATTR_ORDER 65987
#define ATTR_ORIENT 65988
#define ATTR_ORIENTATION 65989
#define ATTR_ORIGIN 65990
#define ATTR_OVERFLOW 65991
#define ATTR_OVERLINE_POSITION 65992
#define ATTR_OVERLINE_THICKNESS 65993
#define ATTR_PANOSE_1 65994
#define ATTR_PATHLENGTH 65995
#define ATTR_PATTERNCONTENTUNITS 65996
#define ATTR_PATTERNTRANSFORM 65997
#define ATTR_PATTERNUNITS 65998
#define ATTR_POINTER_EVENTS 65999
#define ATTR_POINTS 66000
#define ATTR_POINTSATX 66001
#define ATTR_POINTSATY 66002
#define ATTR_POINTSATZ 66003
#define ATTR_PRESERVEALPHA 66004
#define ATTR_PRESERVEASPECTRATIO 66005
#define ATTR_PRIMITIVEUNITS 66006
#define ATTR_R 66007
#define ATTR_RADIUS 66008
#define ATTR_REFX 66009
#define ATTR_REFY 66010
#define ATTR_RENDERING_INTENT 66011
#define ATTR_REPEATCOUNT 66012
#define ATTR_REPEATDUR 66013
#define ATTR_REQUIREDEXTENSIONS 66014
#define ATTR_REQUIREDFEATURES 66015
#define ATTR_RESTART 66016
#define ATTR_RESULT 66017
#define ATTR_ROTATE 66018
#define ATTR_RX 66019
#define ATTR_RY 66020
#define ATTR_SCALE 66021
#define ATTR_SEED 66022
#define ATTR_SHAPE_RENDERING 66023
#define ATTR_SLOPE 66024
#define ATTR_SPACING 66025
#define ATTR_SPECULARCONSTANT 66026
#define ATTR_SPECULAREXPONENT 66027
#define ATTR_SPREADMETHOD 66028
#define ATTR_STARTOFFSET 66029
#define ATTR_STDDEVIATION 66030
#define ATTR_STEMH 66031
#define ATTR_STEMV 66032
#define ATTR_STITCHTILES 66033
#define ATTR_STOP_COLOR 66034
#define ATTR_STOP_OPACITY 66035
#define ATTR_STRIKETHROUGH_POSITION 66036
#define ATTR_STRIKETHROUGH_THICKNESS 66037
#define ATTR_STROKE 66038
#define ATTR_STROKE_DASHARRAY 66039
#define ATTR_STROKE_DASHOFFSET 66040
#define ATTR_STROKE_LINECAP 66041
#define ATTR_STROKE_LINEJOIN 66042
#define ATTR_STROKE_MITERLIMIT 66043
#define ATTR_STROKE_OPACITY 66044
#define ATTR_STROKE_WIDTH 66045
#define ATTR_SURFACESCALE 66046
#define ATTR_SYSTEMLANGUAGE 66047
#define ATTR_TABLEVALUES 66048
#define ATTR_TARGETX 66049
#define ATTR_TARGETY 66050
#define ATTR_TEXT_ANCHOR 66051
#define ATTR_TEXT_DECORATION 66052
#define ATTR_TEXT_RENDERING 66053
#define ATTR_TEXTLENGTH 66054
#define ATTR_TO 66055
#define ATTR_TRANSFORM 66056
#define ATTR_U1 66057
#define ATTR_U2 66058
#define ATTR_UNDERLINE_POSITION 66059
#define ATTR_UNDERLINE_THICKNESS 66060
#define ATTR_UNICODE 66061
#define ATTR_UNICODE_BIDI 66062
#define ATTR_UNICODE_RANGE 66063
#define ATTR_UNITS_PER_EM 66064
#define ATTR_V_ALPHABETIC 66065
#define ATTR_V_HANGING 66066
#define ATTR_V_IDEOGRAPHIC 66067
#define ATTR_V_MATHEMATICAL 66068
#define ATTR_VALUES 66069
#define ATTR_VERT_ADV_Y 66070
#define ATTR_VERT_ORIGIN_X 66071
#define ATTR_VERT_ORIGIN_Y 66072
#define ATTR_VIEWBOX 66073
#define ATTR_VIEWTARGET 66074
#define ATTR_WIDTHS 66075
#define ATTR_WORD_SPACING 66076
#define ATTR_WRITING_MODE 66077
#define ATTR_X 66078
#define ATTR_X_HEIGHT 66079
#define ATTR_X1 66080
#define ATTR_X2 66081
#define ATTR_XCHANNELSELECTOR 66082
#define ATTR_Y 66083
#define ATTR_Y1 66084
#define ATTR_Y2 66085
#define ATTR_YCHANNELSELECTOR 66086
#define ATTR_Z 66087
#define ATTR_ZOOMANDPAN 66088
#define ATTR_ACTUATE 66089
#define ATTR_ARCROLE 66090
#define ATTR_ROLE 66091
#define ATTR_SHOW 66092
#define ID_LAST_TAG 110
#define ID_CLOSE_TAG 16384
#define ATTR_LAST_ATTR 257
#define ATTR_LAST_CI_ATTR 214

#define caseSensitiveAttr(id) (((localNamePart(id)) > ATTR_LAST_CI_ATTR || (id) == ATTR_ABBR || (id) == ATTR_CITE || (id) == ATTR_CODE || (id) == ATTR_LABEL || (id) == ATTR_OBJECT || (id) == ATTR_TITLE))

namespace DOM {

#define NodeImpl_IdNSMask    0xffff0000
#define NodeImpl_IdLocalMask 0x0000ffff

const quint16 xhtmlNamespace = 0;
const quint16 emptyNamespace = 1;
const quint16 svgNamespace = 2;
const quint16 xlinkNamespace = 3;
const quint16 anyNamespace = 0xffff;
const quint16 anyLocalName = 0xffff;
const quint16 emptyPrefix = 0;

inline quint16 localNamePart(quint32 id) { return id & NodeImpl_IdLocalMask; }
inline quint16 namespacePart(quint32 id) { return (((unsigned int)id) & NodeImpl_IdNSMask) >> 16; }
inline quint32 makeId(quint16 n, quint16 l) { return (n << 16) | l; }

const quint32 anyQName = makeId(anyNamespace, anyLocalName);

}

namespace khtml {

class NamespaceFactory {
public:
    static IDTable<NamespaceFactory>* idTable() {
        return s_idTable;
    }
    static IDTable<NamespaceFactory>* initIdTable();
protected:
    static IDTable<NamespaceFactory>* s_idTable;
};

class LocalNameFactory {
public:
    static IDTable<LocalNameFactory>* idTable() {
        return s_idTable;
    }
    static IDTable<LocalNameFactory>* initIdTable();
protected:
    static IDTable<LocalNameFactory>* s_idTable;
};

class PrefixFactory {
public:
    static IDTable<PrefixFactory>* idTable() {
        return s_idTable;
    }
    static IDTable<PrefixFactory>* initIdTable();
protected:
    static IDTable<PrefixFactory>* s_idTable;
};

}

namespace DOM {

    typedef khtml::IDString<khtml::NamespaceFactory> NamespaceName;
    typedef khtml::IDString<khtml::LocalNameFactory> LocalName;
    typedef khtml::IDString<khtml::PrefixFactory> PrefixName;
    extern PrefixName emptyPrefixName;
    extern LocalName emptyLocalName;
    extern NamespaceName emptyNamespaceName;

    QString getPrintableName(int id);

}

#endif
