/*
 * THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT.
 *
 * This file was generated by the dom/make_names.pl script.
 *
 * Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

#ifndef DOM_HTMLNAMES_H
#define DOM_HTMLNAMES_H

#include "QualifiedName.h"

namespace WebCore {

 namespace HTMLNames {

#ifndef DOM_HTMLNAMES_HIDE_GLOBALS
// Namespace
extern const WebCore::AtomicString xhtmlNamespaceURI;

// Tags
extern const WebCore::QualifiedName aTag;
extern const WebCore::QualifiedName abbrTag;
extern const WebCore::QualifiedName acronymTag;
extern const WebCore::QualifiedName addressTag;
extern const WebCore::QualifiedName appletTag;
extern const WebCore::QualifiedName areaTag;
extern const WebCore::QualifiedName articleTag;
extern const WebCore::QualifiedName asideTag;
extern const WebCore::QualifiedName audioTag;
extern const WebCore::QualifiedName bTag;
extern const WebCore::QualifiedName baseTag;
extern const WebCore::QualifiedName basefontTag;
extern const WebCore::QualifiedName bdoTag;
extern const WebCore::QualifiedName bigTag;
extern const WebCore::QualifiedName blockquoteTag;
extern const WebCore::QualifiedName bodyTag;
extern const WebCore::QualifiedName brTag;
extern const WebCore::QualifiedName buttonTag;
extern const WebCore::QualifiedName canvasTag;
extern const WebCore::QualifiedName captionTag;
extern const WebCore::QualifiedName centerTag;
extern const WebCore::QualifiedName citeTag;
extern const WebCore::QualifiedName codeTag;
extern const WebCore::QualifiedName colTag;
extern const WebCore::QualifiedName colgroupTag;
extern const WebCore::QualifiedName datagridTag;
extern const WebCore::QualifiedName datalistTag;
extern const WebCore::QualifiedName dcellTag;
extern const WebCore::QualifiedName dcolTag;
extern const WebCore::QualifiedName ddTag;
extern const WebCore::QualifiedName delTag;
extern const WebCore::QualifiedName dfnTag;
extern const WebCore::QualifiedName dirTag;
extern const WebCore::QualifiedName divTag;
extern const WebCore::QualifiedName dlTag;
extern const WebCore::QualifiedName drowTag;
extern const WebCore::QualifiedName dtTag;
extern const WebCore::QualifiedName emTag;
extern const WebCore::QualifiedName embedTag;
extern const WebCore::QualifiedName fieldsetTag;
extern const WebCore::QualifiedName fontTag;
extern const WebCore::QualifiedName footerTag;
extern const WebCore::QualifiedName formTag;
extern const WebCore::QualifiedName frameTag;
extern const WebCore::QualifiedName framesetTag;
extern const WebCore::QualifiedName h1Tag;
extern const WebCore::QualifiedName h2Tag;
extern const WebCore::QualifiedName h3Tag;
extern const WebCore::QualifiedName h4Tag;
extern const WebCore::QualifiedName h5Tag;
extern const WebCore::QualifiedName h6Tag;
extern const WebCore::QualifiedName headTag;
extern const WebCore::QualifiedName headerTag;
extern const WebCore::QualifiedName hgroupTag;
extern const WebCore::QualifiedName hrTag;
extern const WebCore::QualifiedName htmlTag;
extern const WebCore::QualifiedName iTag;
extern const WebCore::QualifiedName iframeTag;
extern const WebCore::QualifiedName imageTag;
extern const WebCore::QualifiedName imgTag;
extern const WebCore::QualifiedName inputTag;
extern const WebCore::QualifiedName insTag;
extern const WebCore::QualifiedName isindexTag;
extern const WebCore::QualifiedName kbdTag;
extern const WebCore::QualifiedName keygenTag;
extern const WebCore::QualifiedName labelTag;
extern const WebCore::QualifiedName layerTag;
extern const WebCore::QualifiedName legendTag;
extern const WebCore::QualifiedName liTag;
extern const WebCore::QualifiedName linkTag;
extern const WebCore::QualifiedName listingTag;
extern const WebCore::QualifiedName mapTag;
extern const WebCore::QualifiedName marqueeTag;
extern const WebCore::QualifiedName menuTag;
extern const WebCore::QualifiedName metaTag;
extern const WebCore::QualifiedName navTag;
extern const WebCore::QualifiedName nobrTag;
extern const WebCore::QualifiedName noembedTag;
extern const WebCore::QualifiedName noframesTag;
extern const WebCore::QualifiedName nolayerTag;
extern const WebCore::QualifiedName noscriptTag;
extern const WebCore::QualifiedName objectTag;
extern const WebCore::QualifiedName olTag;
extern const WebCore::QualifiedName optgroupTag;
extern const WebCore::QualifiedName optionTag;
extern const WebCore::QualifiedName pTag;
extern const WebCore::QualifiedName paramTag;
extern const WebCore::QualifiedName plaintextTag;
extern const WebCore::QualifiedName preTag;
extern const WebCore::QualifiedName progressTag;
extern const WebCore::QualifiedName qTag;
extern const WebCore::QualifiedName rpTag;
extern const WebCore::QualifiedName rtTag;
extern const WebCore::QualifiedName rubyTag;
extern const WebCore::QualifiedName sTag;
extern const WebCore::QualifiedName sampTag;
extern const WebCore::QualifiedName scriptTag;
extern const WebCore::QualifiedName sectionTag;
extern const WebCore::QualifiedName selectTag;
extern const WebCore::QualifiedName smallTag;
extern const WebCore::QualifiedName sourceTag;
extern const WebCore::QualifiedName spanTag;
extern const WebCore::QualifiedName strikeTag;
extern const WebCore::QualifiedName strongTag;
extern const WebCore::QualifiedName styleTag;
extern const WebCore::QualifiedName subTag;
extern const WebCore::QualifiedName supTag;
extern const WebCore::QualifiedName tableTag;
extern const WebCore::QualifiedName tbodyTag;
extern const WebCore::QualifiedName tdTag;
extern const WebCore::QualifiedName textareaTag;
extern const WebCore::QualifiedName tfootTag;
extern const WebCore::QualifiedName thTag;
extern const WebCore::QualifiedName theadTag;
extern const WebCore::QualifiedName titleTag;
extern const WebCore::QualifiedName trTag;
extern const WebCore::QualifiedName ttTag;
extern const WebCore::QualifiedName uTag;
extern const WebCore::QualifiedName ulTag;
extern const WebCore::QualifiedName varTag;
extern const WebCore::QualifiedName videoTag;
extern const WebCore::QualifiedName wbrTag;
extern const WebCore::QualifiedName xmpTag;
// Attributes
extern const WebCore::QualifiedName abbrAttr;
extern const WebCore::QualifiedName acceptAttr;
extern const WebCore::QualifiedName accept_charsetAttr;
extern const WebCore::QualifiedName accesskeyAttr;
extern const WebCore::QualifiedName actionAttr;
extern const WebCore::QualifiedName alignAttr;
extern const WebCore::QualifiedName alinkAttr;
extern const WebCore::QualifiedName altAttr;
extern const WebCore::QualifiedName archiveAttr;
extern const WebCore::QualifiedName aria_activedescendantAttr;
extern const WebCore::QualifiedName aria_atomicAttr;
extern const WebCore::QualifiedName aria_busyAttr;
extern const WebCore::QualifiedName aria_checkedAttr;
extern const WebCore::QualifiedName aria_controlsAttr;
extern const WebCore::QualifiedName aria_describedbyAttr;
extern const WebCore::QualifiedName aria_disabledAttr;
extern const WebCore::QualifiedName aria_dropeffectAttr;
extern const WebCore::QualifiedName aria_expandedAttr;
extern const WebCore::QualifiedName aria_flowtoAttr;
extern const WebCore::QualifiedName aria_grabbedAttr;
extern const WebCore::QualifiedName aria_haspopupAttr;
extern const WebCore::QualifiedName aria_hiddenAttr;
extern const WebCore::QualifiedName aria_labelAttr;
extern const WebCore::QualifiedName aria_labeledbyAttr;
extern const WebCore::QualifiedName aria_labelledbyAttr;
extern const WebCore::QualifiedName aria_levelAttr;
extern const WebCore::QualifiedName aria_liveAttr;
extern const WebCore::QualifiedName aria_multiselectableAttr;
extern const WebCore::QualifiedName aria_orientationAttr;
extern const WebCore::QualifiedName aria_ownsAttr;
extern const WebCore::QualifiedName aria_pressedAttr;
extern const WebCore::QualifiedName aria_readonlyAttr;
extern const WebCore::QualifiedName aria_relevantAttr;
extern const WebCore::QualifiedName aria_requiredAttr;
extern const WebCore::QualifiedName aria_selectedAttr;
extern const WebCore::QualifiedName aria_valuemaxAttr;
extern const WebCore::QualifiedName aria_valueminAttr;
extern const WebCore::QualifiedName aria_valuenowAttr;
extern const WebCore::QualifiedName aria_valuetextAttr;
extern const WebCore::QualifiedName autocompleteAttr;
extern const WebCore::QualifiedName autofocusAttr;
extern const WebCore::QualifiedName autoplayAttr;
extern const WebCore::QualifiedName autosaveAttr;
extern const WebCore::QualifiedName axisAttr;
extern const WebCore::QualifiedName backgroundAttr;
extern const WebCore::QualifiedName behaviorAttr;
extern const WebCore::QualifiedName bgcolorAttr;
extern const WebCore::QualifiedName bgpropertiesAttr;
extern const WebCore::QualifiedName borderAttr;
extern const WebCore::QualifiedName bordercolorAttr;
extern const WebCore::QualifiedName cellborderAttr;
extern const WebCore::QualifiedName cellpaddingAttr;
extern const WebCore::QualifiedName cellspacingAttr;
extern const WebCore::QualifiedName challengeAttr;
extern const WebCore::QualifiedName charAttr;
extern const WebCore::QualifiedName charoffAttr;
extern const WebCore::QualifiedName charsetAttr;
extern const WebCore::QualifiedName checkedAttr;
extern const WebCore::QualifiedName citeAttr;
extern const WebCore::QualifiedName classAttr;
extern const WebCore::QualifiedName classidAttr;
extern const WebCore::QualifiedName clearAttr;
extern const WebCore::QualifiedName codeAttr;
extern const WebCore::QualifiedName codebaseAttr;
extern const WebCore::QualifiedName codetypeAttr;
extern const WebCore::QualifiedName colorAttr;
extern const WebCore::QualifiedName colsAttr;
extern const WebCore::QualifiedName colspanAttr;
extern const WebCore::QualifiedName compactAttr;
extern const WebCore::QualifiedName compositeAttr;
extern const WebCore::QualifiedName contentAttr;
extern const WebCore::QualifiedName contenteditableAttr;
extern const WebCore::QualifiedName controlsAttr;
extern const WebCore::QualifiedName coordsAttr;
extern const WebCore::QualifiedName dataAttr;
extern const WebCore::QualifiedName datetimeAttr;
extern const WebCore::QualifiedName declareAttr;
extern const WebCore::QualifiedName deferAttr;
extern const WebCore::QualifiedName dirAttr;
extern const WebCore::QualifiedName directionAttr;
extern const WebCore::QualifiedName disabledAttr;
extern const WebCore::QualifiedName draggableAttr;
extern const WebCore::QualifiedName enctypeAttr;
extern const WebCore::QualifiedName endAttr;
extern const WebCore::QualifiedName eventAttr;
extern const WebCore::QualifiedName expandedAttr;
extern const WebCore::QualifiedName faceAttr;
extern const WebCore::QualifiedName focusedAttr;
extern const WebCore::QualifiedName forAttr;
extern const WebCore::QualifiedName formnovalidateAttr;
extern const WebCore::QualifiedName frameAttr;
extern const WebCore::QualifiedName frameborderAttr;
extern const WebCore::QualifiedName headersAttr;
extern const WebCore::QualifiedName heightAttr;
extern const WebCore::QualifiedName hiddenAttr;
extern const WebCore::QualifiedName hrefAttr;
extern const WebCore::QualifiedName hreflangAttr;
extern const WebCore::QualifiedName hspaceAttr;
extern const WebCore::QualifiedName http_equivAttr;
extern const WebCore::QualifiedName idAttr;
extern const WebCore::QualifiedName incrementalAttr;
extern const WebCore::QualifiedName indeterminateAttr;
extern const WebCore::QualifiedName ismapAttr;
extern const WebCore::QualifiedName keytypeAttr;
extern const WebCore::QualifiedName labelAttr;
extern const WebCore::QualifiedName langAttr;
extern const WebCore::QualifiedName languageAttr;
extern const WebCore::QualifiedName leftmarginAttr;
extern const WebCore::QualifiedName linkAttr;
extern const WebCore::QualifiedName listAttr;
extern const WebCore::QualifiedName longdescAttr;
extern const WebCore::QualifiedName loopAttr;
extern const WebCore::QualifiedName loopendAttr;
extern const WebCore::QualifiedName loopstartAttr;
extern const WebCore::QualifiedName lowsrcAttr;
extern const WebCore::QualifiedName manifestAttr;
extern const WebCore::QualifiedName marginheightAttr;
extern const WebCore::QualifiedName marginwidthAttr;
extern const WebCore::QualifiedName maxAttr;
extern const WebCore::QualifiedName maxlengthAttr;
extern const WebCore::QualifiedName mayscriptAttr;
extern const WebCore::QualifiedName mediaAttr;
extern const WebCore::QualifiedName methodAttr;
extern const WebCore::QualifiedName minAttr;
extern const WebCore::QualifiedName multipleAttr;
extern const WebCore::QualifiedName nameAttr;
extern const WebCore::QualifiedName nohrefAttr;
extern const WebCore::QualifiedName noresizeAttr;
extern const WebCore::QualifiedName noshadeAttr;
extern const WebCore::QualifiedName novalidateAttr;
extern const WebCore::QualifiedName nowrapAttr;
extern const WebCore::QualifiedName objectAttr;
extern const WebCore::QualifiedName onabortAttr;
extern const WebCore::QualifiedName onbeforecopyAttr;
extern const WebCore::QualifiedName onbeforecutAttr;
extern const WebCore::QualifiedName onbeforeloadAttr;
extern const WebCore::QualifiedName onbeforepasteAttr;
extern const WebCore::QualifiedName onbeforeunloadAttr;
extern const WebCore::QualifiedName onblurAttr;
extern const WebCore::QualifiedName oncanplayAttr;
extern const WebCore::QualifiedName oncanplaythroughAttr;
extern const WebCore::QualifiedName onchangeAttr;
extern const WebCore::QualifiedName onclickAttr;
extern const WebCore::QualifiedName oncontextmenuAttr;
extern const WebCore::QualifiedName oncopyAttr;
extern const WebCore::QualifiedName oncutAttr;
extern const WebCore::QualifiedName ondblclickAttr;
extern const WebCore::QualifiedName ondragAttr;
extern const WebCore::QualifiedName ondragendAttr;
extern const WebCore::QualifiedName ondragenterAttr;
extern const WebCore::QualifiedName ondragleaveAttr;
extern const WebCore::QualifiedName ondragoverAttr;
extern const WebCore::QualifiedName ondragstartAttr;
extern const WebCore::QualifiedName ondropAttr;
extern const WebCore::QualifiedName ondurationchangeAttr;
extern const WebCore::QualifiedName onemptiedAttr;
extern const WebCore::QualifiedName onendedAttr;
extern const WebCore::QualifiedName onerrorAttr;
extern const WebCore::QualifiedName onfocusAttr;
extern const WebCore::QualifiedName onfocusinAttr;
extern const WebCore::QualifiedName onfocusoutAttr;
extern const WebCore::QualifiedName onhashchangeAttr;
extern const WebCore::QualifiedName oninputAttr;
extern const WebCore::QualifiedName oninvalidAttr;
extern const WebCore::QualifiedName onkeydownAttr;
extern const WebCore::QualifiedName onkeypressAttr;
extern const WebCore::QualifiedName onkeyupAttr;
extern const WebCore::QualifiedName onloadAttr;
extern const WebCore::QualifiedName onloadeddataAttr;
extern const WebCore::QualifiedName onloadedmetadataAttr;
extern const WebCore::QualifiedName onloadstartAttr;
extern const WebCore::QualifiedName onmousedownAttr;
extern const WebCore::QualifiedName onmousemoveAttr;
extern const WebCore::QualifiedName onmouseoutAttr;
extern const WebCore::QualifiedName onmouseoverAttr;
extern const WebCore::QualifiedName onmouseupAttr;
extern const WebCore::QualifiedName onmousewheelAttr;
extern const WebCore::QualifiedName onofflineAttr;
extern const WebCore::QualifiedName ononlineAttr;
extern const WebCore::QualifiedName onorientationchangeAttr;
extern const WebCore::QualifiedName onpagehideAttr;
extern const WebCore::QualifiedName onpageshowAttr;
extern const WebCore::QualifiedName onpasteAttr;
extern const WebCore::QualifiedName onpauseAttr;
extern const WebCore::QualifiedName onplayAttr;
extern const WebCore::QualifiedName onplayingAttr;
extern const WebCore::QualifiedName onpopstateAttr;
extern const WebCore::QualifiedName onprogressAttr;
extern const WebCore::QualifiedName onratechangeAttr;
extern const WebCore::QualifiedName onresetAttr;
extern const WebCore::QualifiedName onresizeAttr;
extern const WebCore::QualifiedName onscrollAttr;
extern const WebCore::QualifiedName onsearchAttr;
extern const WebCore::QualifiedName onseekedAttr;
extern const WebCore::QualifiedName onseekingAttr;
extern const WebCore::QualifiedName onselectAttr;
extern const WebCore::QualifiedName onselectstartAttr;
extern const WebCore::QualifiedName onstalledAttr;
extern const WebCore::QualifiedName onstorageAttr;
extern const WebCore::QualifiedName onsubmitAttr;
extern const WebCore::QualifiedName onsuspendAttr;
extern const WebCore::QualifiedName ontimeupdateAttr;
extern const WebCore::QualifiedName ontouchcancelAttr;
extern const WebCore::QualifiedName ontouchendAttr;
extern const WebCore::QualifiedName ontouchmoveAttr;
extern const WebCore::QualifiedName ontouchstartAttr;
extern const WebCore::QualifiedName onunloadAttr;
extern const WebCore::QualifiedName onvolumechangeAttr;
extern const WebCore::QualifiedName onwaitingAttr;
extern const WebCore::QualifiedName onwebkitanimationendAttr;
extern const WebCore::QualifiedName onwebkitanimationiterationAttr;
extern const WebCore::QualifiedName onwebkitanimationstartAttr;
extern const WebCore::QualifiedName onwebkitbeginfullscreenAttr;
extern const WebCore::QualifiedName onwebkitendfullscreenAttr;
extern const WebCore::QualifiedName onwebkittransitionendAttr;
extern const WebCore::QualifiedName patternAttr;
extern const WebCore::QualifiedName placeholderAttr;
extern const WebCore::QualifiedName playcountAttr;
extern const WebCore::QualifiedName pluginurlAttr;
extern const WebCore::QualifiedName posterAttr;
extern const WebCore::QualifiedName precisionAttr;
extern const WebCore::QualifiedName preloadAttr;
extern const WebCore::QualifiedName primaryAttr;
extern const WebCore::QualifiedName profileAttr;
extern const WebCore::QualifiedName progressAttr;
extern const WebCore::QualifiedName promptAttr;
extern const WebCore::QualifiedName readonlyAttr;
extern const WebCore::QualifiedName relAttr;
extern const WebCore::QualifiedName requiredAttr;
extern const WebCore::QualifiedName resultsAttr;
extern const WebCore::QualifiedName revAttr;
extern const WebCore::QualifiedName roleAttr;
extern const WebCore::QualifiedName rowsAttr;
extern const WebCore::QualifiedName rowspanAttr;
extern const WebCore::QualifiedName rulesAttr;
extern const WebCore::QualifiedName sandboxAttr;
extern const WebCore::QualifiedName schemeAttr;
extern const WebCore::QualifiedName scopeAttr;
extern const WebCore::QualifiedName scrollamountAttr;
extern const WebCore::QualifiedName scrolldelayAttr;
extern const WebCore::QualifiedName scrollingAttr;
extern const WebCore::QualifiedName selectedAttr;
extern const WebCore::QualifiedName shapeAttr;
extern const WebCore::QualifiedName sizeAttr;
extern const WebCore::QualifiedName sortableAttr;
extern const WebCore::QualifiedName sortdirectionAttr;
extern const WebCore::QualifiedName spanAttr;
extern const WebCore::QualifiedName spellcheckAttr;
extern const WebCore::QualifiedName srcAttr;
extern const WebCore::QualifiedName standbyAttr;
extern const WebCore::QualifiedName startAttr;
extern const WebCore::QualifiedName stepAttr;
extern const WebCore::QualifiedName styleAttr;
extern const WebCore::QualifiedName summaryAttr;
extern const WebCore::QualifiedName tabindexAttr;
extern const WebCore::QualifiedName tableborderAttr;
extern const WebCore::QualifiedName targetAttr;
extern const WebCore::QualifiedName textAttr;
extern const WebCore::QualifiedName titleAttr;
extern const WebCore::QualifiedName topAttr;
extern const WebCore::QualifiedName topmarginAttr;
extern const WebCore::QualifiedName truespeedAttr;
extern const WebCore::QualifiedName typeAttr;
extern const WebCore::QualifiedName usemapAttr;
extern const WebCore::QualifiedName valignAttr;
extern const WebCore::QualifiedName valueAttr;
extern const WebCore::QualifiedName valuetypeAttr;
extern const WebCore::QualifiedName versionAttr;
extern const WebCore::QualifiedName viewsourceAttr;
extern const WebCore::QualifiedName vlinkAttr;
extern const WebCore::QualifiedName vspaceAttr;
extern const WebCore::QualifiedName widthAttr;
extern const WebCore::QualifiedName wrapAttr;
#endif

WebCore::QualifiedName** getHTMLTags(size_t* size);
WebCore::QualifiedName** getHTMLAttrs(size_t* size);

void init();

} }

#endif

