blob: 92ddfdf5a2cf59a3a2a71a68cd90d90fef80bd5b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.wst.html.core.internal.contentmodel;
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.Collection;
import java.util.Vector;
import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
/**
* Factory for element declarations.
*/
class ElementCollection extends DeclCollection implements org.eclipse.wst.html.core.internal.provisional.HTML40Namespace.ElementName {
// Element IDs
protected static class Ids {
public static final int ID_A = 0;
public static final int ID_ABBR = 1;
public static final int ID_ACRONYM = 2;
public static final int ID_ADDRESS = 3;
public static final int ID_APPLET = 4;
public static final int ID_AREA = 5;
public static final int ID_B = 6;
public static final int ID_BASE = 7;
public static final int ID_BASEFONT = 8;
public static final int ID_BDO = 9;
public static final int ID_BIG = 10;
public static final int ID_BLINK = 11;
public static final int ID_BLOCKQUOTE = 12;
public static final int ID_BODY = 13;
public static final int ID_BR = 14;
public static final int ID_BUTTON = 15;
public static final int ID_CAPTION = 16;
public static final int ID_CENTER = 17;
public static final int ID_CITE = 18;
public static final int ID_CODE = 19;
public static final int ID_COL = 20;
public static final int ID_COLGROUP = 21;
public static final int ID_DD = 22;
public static final int ID_DEL = 23;
public static final int ID_DFN = 24;
public static final int ID_DIR = 25;
public static final int ID_DIV = 26;
public static final int ID_DL = 27;
public static final int ID_DT = 28;
public static final int ID_EM = 29;
public static final int ID_EMBED = 30;
public static final int ID_FIELDSET = 31;
public static final int ID_FONT = 32;
public static final int ID_FORM = 33;
public static final int ID_FRAME = 34;
public static final int ID_FRAMESET = 35;
public static final int ID_H1 = 36;
public static final int ID_H2 = 37;
public static final int ID_H3 = 38;
public static final int ID_H4 = 39;
public static final int ID_H5 = 40;
public static final int ID_H6 = 41;
public static final int ID_HEAD = 42;
public static final int ID_HR = 43;
public static final int ID_HTML = 44;
public static final int ID_I = 45;
public static final int ID_IFRAME = 46;
public static final int ID_IMG = 47;
public static final int ID_INPUT = 48;
public static final int ID_INS = 49;
public static final int ID_ISINDEX = 50;
public static final int ID_KBD = 51;
public static final int ID_LABEL = 52;
public static final int ID_LEGEND = 53;
public static final int ID_LI = 54;
public static final int ID_LINK = 55;
public static final int ID_MAP = 56;
public static final int ID_MENU = 57;
public static final int ID_META = 58;
public static final int ID_NOEMBED = 59;
public static final int ID_NOFRAMES = 60;
public static final int ID_NOSCRIPT = 61;
public static final int ID_OBJECT = 62;
public static final int ID_OL = 63;
public static final int ID_OPTGROUP = 64;
public static final int ID_OPTION = 65;
public static final int ID_P = 66;
public static final int ID_PARAM = 67;
public static final int ID_PRE = 68;
public static final int ID_Q = 69;
public static final int ID_S = 70;
public static final int ID_SAMP = 71;
public static final int ID_SCRIPT = 72;
public static final int ID_SELECT = 73;
public static final int ID_SMALL = 74;
public static final int ID_SPAN = 75;
public static final int ID_STRIKE = 76;
public static final int ID_STRONG = 77;
public static final int ID_STYLE = 78;
public static final int ID_SUB = 79;
public static final int ID_SUP = 80;
public static final int ID_TABLE = 81;
public static final int ID_TBODY = 82;
public static final int ID_TD = 83;
public static final int ID_TEXTAREA = 84;
public static final int ID_TFOOT = 85;
public static final int ID_TH = 86;
public static final int ID_THEAD = 87;
public static final int ID_TITLE = 88;
public static final int ID_TR = 89;
public static final int ID_TT = 90;
public static final int ID_U = 91;
public static final int ID_UL = 92;
public static final int ID_VAR = 93;
public static final int ID_MARQUEE = 94;
public static final int ID_SSI_CONFIG = 95;
public static final int ID_SSI_ECHO = 96;
public static final int ID_SSI_EXEC = 97;
public static final int ID_SSI_FSIZE = 98;
public static final int ID_SSI_FLASTMOD = 99;
public static final int ID_SSI_INCLUDE = 100;
public static final int ID_SSI_PRINTENV = 101;
public static final int ID_SSI_SET = 102;
// <<D205513
public static final int ID_BGSOUND = 103;
public static final int ID_NOBR = 104;
public static final int ID_WBR = 105;
// D205513
public static int getNumOfIds() {
if (numofids != -1)
return numofids;
// NOTE: If the reflection is too slow, this method should
// just return the literal value, like 105.
// -- 5/25/2001
Class clazz = Ids.class;
Field[] fields = clazz.getFields();
numofids = 0;
for (int i = 0; i < fields.length; i++) {
String name = fields[i].getName();
if (name.startsWith("ID_"))//$NON-NLS-1$
numofids++;
}
return numofids;
}
// chache the result of the reflection.
private static int numofids = -1;
}
/** %fontstyle;. TT | I | B | U | S | STRIKE | BIG | SMALL | BLINK */
private static final String[] FONTSTYLE = {TT, I, B, U, S, STRIKE, BIG, SMALL, BLINK};
/** %formctl;. INPUT | SELECT | TEXTAREA | LABEL | BUTTON */
private static final String[] FORMCTL = {INPUT, SELECT, TEXTAREA, LABEL, BUTTON};
/** %phrase;.
* EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE | ABBR | ACRONYM
*/
private static final String[] PHRASE = {EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE, ABBR, ACRONYM};
/** %special;.
* A | IMG | APPLET | OBJECT | FONT | BASEFONT | BR | SCRIPT |
* MAP | Q | SUB | SUP | SPAN | BDO | IFRAME | EMBED | MARQUEE |
* D2W | SUBMIT
* WBR | NOBR | BGSOUND
*/
private static final String[] SPECIAL = {A, IMG, APPLET, OBJECT, FONT, BASEFONT, BR, WBR, // D205513
SCRIPT, MAP, Q, SUB, SUP, SPAN, BDO, IFRAME, EMBED, BGSOUND, // D205513
MARQUEE, NOBR // D205513
};
/** %heading;. H[1-6] */
private static final String[] HEADING = {H1, H2, H3, H4, H5, H6};
/** %list;. UL | OL | DIR | MENU */
private static final String[] LIST = {UL, OL, DIR, MENU};
/** %preformatted;. PRE */
private static final String[] PREFORMATTED = {PRE};
protected AttributeCollection attributeCollection = null;
private static String[] fNames = null;
/**
*/
public ElementCollection(AttributeCollection collection) {
super(getNames(), TOLERANT_CASE);
attributeCollection = collection;
}
public ElementCollection(String[] names, AttributeCollection collection) {
super(names, TOLERANT_CASE);
attributeCollection = collection;
}
/**
* Actually creates HTMLElementDeclaration instance.
* @return HTMLElementDeclaration
*/
protected CMNode create(String elementName) {
HTMLElemDeclImpl edec = null;
if (elementName.equalsIgnoreCase(A)) {
edec = new HedA(this);
}
else if (elementName.equalsIgnoreCase(ABBR)) {
edec = new HedPhrase(ABBR, this);
}
else if (elementName.equalsIgnoreCase(ACRONYM)) {
edec = new HedPhrase(ACRONYM, this);
}
else if (elementName.equalsIgnoreCase(ADDRESS)) {
edec = new HedADDRESS(this);
}
else if (elementName.equalsIgnoreCase(APPLET)) {
edec = new HedAPPLET(this);
}
else if (elementName.equalsIgnoreCase(AREA)) {
edec = new HedAREA(this);
}
else if (elementName.equalsIgnoreCase(B)) {
edec = new HedFontStyle(B, this);
}
else if (elementName.equalsIgnoreCase(BASE)) {
edec = new HedBASE(this);
}
else if (elementName.equalsIgnoreCase(BASEFONT)) {
edec = new HedBASEFONT(this);
}
else if (elementName.equalsIgnoreCase(BDO)) {
edec = new HedBDO(this);
}
else if (elementName.equalsIgnoreCase(BIG)) {
edec = new HedFontStyle(BIG, this);
}
else if (elementName.equalsIgnoreCase(BLINK)) {
edec = new HedFontStyle(BLINK, this);
}
else if (elementName.equalsIgnoreCase(BLOCKQUOTE)) {
edec = new HedBLOCKQUOTE(this);
}
else if (elementName.equalsIgnoreCase(BODY)) {
edec = new HedBODY(this);
}
else if (elementName.equalsIgnoreCase(BR)) {
edec = new HedBR(this);
}
else if (elementName.equalsIgnoreCase(BUTTON)) {
edec = new HedBUTTON(this);
}
else if (elementName.equalsIgnoreCase(CAPTION)) {
edec = new HedCAPTION(this);
}
else if (elementName.equalsIgnoreCase(CENTER)) {
edec = new HedCENTER(this);
}
else if (elementName.equalsIgnoreCase(CITE)) {
edec = new HedPhrase(CITE, this);
}
else if (elementName.equalsIgnoreCase(CODE)) {
edec = new HedPhrase(CODE, this);
}
else if (elementName.equalsIgnoreCase(COL)) {
edec = new HedCOL(this);
}
else if (elementName.equalsIgnoreCase(COLGROUP)) {
edec = new HedCOLGROUP(this);
}
else if (elementName.equalsIgnoreCase(DD)) {
edec = new HedDD(this);
}
else if (elementName.equalsIgnoreCase(DEL)) {
edec = new HedMarkChanges(DEL, this);
}
else if (elementName.equalsIgnoreCase(DFN)) {
edec = new HedPhrase(DFN, this);
}
else if (elementName.equalsIgnoreCase(DIR)) {
edec = new HedMENU(DIR, this);
}
else if (elementName.equalsIgnoreCase(DIV)) {
edec = new HedDIV(this);
}
else if (elementName.equalsIgnoreCase(DL)) {
edec = new HedDL(this);
}
else if (elementName.equalsIgnoreCase(DT)) {
edec = new HedDT(this);
}
else if (elementName.equalsIgnoreCase(EM)) {
edec = new HedPhrase(EM, this);
}
else if (elementName.equalsIgnoreCase(EMBED)) {
edec = new HedEMBED(this);
}
else if (elementName.equalsIgnoreCase(FIELDSET)) {
edec = new HedFIELDSET(this);
}
else if (elementName.equalsIgnoreCase(FONT)) {
edec = new HedFONT(this);
}
else if (elementName.equalsIgnoreCase(FORM)) {
edec = new HedFORM(this);
}
else if (elementName.equalsIgnoreCase(FRAME)) {
edec = new HedFRAME(this);
}
else if (elementName.equalsIgnoreCase(FRAMESET)) {
edec = new HedFRAMESET(this);
}
else if (elementName.equalsIgnoreCase(H1)) {
edec = new HedHeading(H1, this);
}
else if (elementName.equalsIgnoreCase(H2)) {
edec = new HedHeading(H2, this);
}
else if (elementName.equalsIgnoreCase(H3)) {
edec = new HedHeading(H3, this);
}
else if (elementName.equalsIgnoreCase(H4)) {
edec = new HedHeading(H4, this);
}
else if (elementName.equalsIgnoreCase(H5)) {
edec = new HedHeading(H5, this);
}
else if (elementName.equalsIgnoreCase(H6)) {
edec = new HedHeading(H6, this);
}
else if (elementName.equalsIgnoreCase(HEAD)) {
edec = new HedHEAD(this);
}
else if (elementName.equalsIgnoreCase(HR)) {
edec = new HedHR(this);
}
else if (elementName.equalsIgnoreCase(HTML)) {
edec = new HedHTML(this);
}
else if (elementName.equalsIgnoreCase(I)) {
edec = new HedFontStyle(I, this);
}
else if (elementName.equalsIgnoreCase(IFRAME)) {
edec = new HedIFRAME(this);
}
else if (elementName.equalsIgnoreCase(IMG)) {
edec = new HedIMG(this);
}
else if (elementName.equalsIgnoreCase(INPUT)) {
edec = new HedINPUT(this);
}
else if (elementName.equalsIgnoreCase(INS)) {
edec = new HedMarkChanges(INS, this);
}
else if (elementName.equalsIgnoreCase(ISINDEX)) {
edec = new HedISINDEX(this);
}
else if (elementName.equalsIgnoreCase(KBD)) {
edec = new HedPhrase(KBD, this);
}
else if (elementName.equalsIgnoreCase(LABEL)) {
edec = new HedLABEL(this);
}
else if (elementName.equalsIgnoreCase(LEGEND)) {
edec = new HedLEGEND(this);
}
else if (elementName.equalsIgnoreCase(LI)) {
edec = new HedLI(this);
}
else if (elementName.equalsIgnoreCase(LINK)) {
edec = new HedLINK(this);
}
else if (elementName.equalsIgnoreCase(MAP)) {
edec = new HedMAP(this);
}
else if (elementName.equalsIgnoreCase(MARQUEE)) {
edec = new HedMARQUEE(this);
}
else if (elementName.equalsIgnoreCase(MENU)) {
edec = new HedMENU(MENU, this);
}
else if (elementName.equalsIgnoreCase(META)) {
edec = new HedMETA(this);
}
else if (elementName.equalsIgnoreCase(NOEMBED)) {
edec = new HedNOEMBED(this);
}
else if (elementName.equalsIgnoreCase(NOFRAMES)) {
edec = new HedNOFRAMES(this);
}
else if (elementName.equalsIgnoreCase(NOSCRIPT)) {
edec = new HedNOSCRIPT(this);
}
else if (elementName.equalsIgnoreCase(OBJECT)) {
edec = new HedOBJECT(this);
}
else if (elementName.equalsIgnoreCase(OL)) {
edec = new HedOL(this);
}
else if (elementName.equalsIgnoreCase(OPTGROUP)) {
edec = new HedOPTGROUP(this);
}
else if (elementName.equalsIgnoreCase(OPTION)) {
edec = new HedOPTION(this);
}
else if (elementName.equalsIgnoreCase(P)) {
edec = new HedP(this);
}
else if (elementName.equalsIgnoreCase(PARAM)) {
edec = new HedPARAM(this);
}
else if (elementName.equalsIgnoreCase(PRE)) {
edec = new HedPRE(this);
}
else if (elementName.equalsIgnoreCase(Q)) {
edec = new HedQ(this);
}
else if (elementName.equalsIgnoreCase(S)) {
edec = new HedFontStyle(S, this);
}
else if (elementName.equalsIgnoreCase(SAMP)) {
edec = new HedPhrase(SAMP, this);
}
else if (elementName.equalsIgnoreCase(SCRIPT)) {
edec = new HedSCRIPT(this);
}
else if (elementName.equalsIgnoreCase(SELECT)) {
edec = new HedSELECT(this);
}
else if (elementName.equalsIgnoreCase(SMALL)) {
edec = new HedFontStyle(SMALL, this);
}
else if (elementName.equalsIgnoreCase(SPAN)) {
edec = new HedSPAN(this);
}
else if (elementName.equalsIgnoreCase(STRIKE)) {
edec = new HedFontStyle(STRIKE, this);
}
else if (elementName.equalsIgnoreCase(STRONG)) {
edec = new HedPhrase(STRONG, this);
}
else if (elementName.equalsIgnoreCase(STYLE)) {
edec = new HedSTYLE(this);
}
else if (elementName.equalsIgnoreCase(SUB)) {
edec = new HedScripts(SUB, this);
}
else if (elementName.equalsIgnoreCase(SUP)) {
edec = new HedScripts(SUP, this);
}
else if (elementName.equalsIgnoreCase(TABLE)) {
edec = new HedTABLE(this);
}
else if (elementName.equalsIgnoreCase(TBODY)) {
edec = new HedTableBody(TBODY, this);
}
else if (elementName.equalsIgnoreCase(TD)) {
edec = new HedTableCell(TD, this);
}
else if (elementName.equalsIgnoreCase(TEXTAREA)) {
edec = new HedTEXTAREA(this);
}
else if (elementName.equalsIgnoreCase(TFOOT)) {
edec = new HedTableBody(TFOOT, this);
}
else if (elementName.equalsIgnoreCase(TH)) {
edec = new HedTableCell(TH, this);
}
else if (elementName.equalsIgnoreCase(THEAD)) {
edec = new HedTableBody(THEAD, this);
}
else if (elementName.equalsIgnoreCase(TITLE)) {
edec = new HedTITLE(this);
}
else if (elementName.equalsIgnoreCase(TR)) {
edec = new HedTR(this);
}
else if (elementName.equalsIgnoreCase(TT)) {
edec = new HedFontStyle(TT, this);
}
else if (elementName.equalsIgnoreCase(U)) {
edec = new HedFontStyle(U, this);
}
else if (elementName.equalsIgnoreCase(UL)) {
edec = new HedUL(this);
}
else if (elementName.equalsIgnoreCase(VAR)) {
edec = new HedPhrase(VAR, this);
}
else if (elementName.equalsIgnoreCase(SSI_CONFIG)) {
edec = new HedSSIConfig(this);
}
else if (elementName.equalsIgnoreCase(SSI_ECHO)) {
edec = new HedSSIEcho(this);
}
else if (elementName.equalsIgnoreCase(SSI_EXEC)) {
edec = new HedSSIExec(this);
}
else if (elementName.equalsIgnoreCase(SSI_FSIZE)) {
edec = new HedSSIFsize(this);
}
else if (elementName.equalsIgnoreCase(SSI_FLASTMOD)) {
edec = new HedSSIFlastmod(this);
}
else if (elementName.equalsIgnoreCase(SSI_INCLUDE)) {
edec = new HedSSIInclude(this);
}
else if (elementName.equalsIgnoreCase(SSI_PRINTENV)) {
edec = new HedSSIPrintenv(this);
}
else if (elementName.equalsIgnoreCase(SSI_SET)) {
edec = new HedSSISet(this);
}
else if (elementName.equalsIgnoreCase(BGSOUND)) {
edec = new HedBGSOUND(this);
}
else if (elementName.equalsIgnoreCase(NOBR)) {
edec = new HedNOBR(this);
}
else if (elementName.equalsIgnoreCase(WBR)) {
edec = new HedWBR(this);
} // unknown
else {
// NOTE: We don't define the UNKNOWN element declaration.
// <code>null</code> for a declaration is a sign of
// the target element is unknown.
// -- 3/9/2001
edec = null;
}
return edec;
}
public AttributeCollection getAttributeCollection() {
return attributeCollection;
}
public Collection getNamesOfBlock() {
// P, DL, DIV, CENTER, NOSCRIPT, NOFRAMES, BLOCKQUOTE, FORM, ISINDEX, HR,
// TABLE, FIELDSET, ADDRESS
String[] blockMisc = {P, DL, DIV, CENTER, NOSCRIPT, NOFRAMES, BLOCKQUOTE, FORM, ISINDEX, HR, TABLE, FIELDSET, ADDRESS};
Vector names = new Vector(Arrays.asList(blockMisc));
// %heading;
names.addAll(Arrays.asList(HEADING));
// %list;
names.addAll(Arrays.asList(LIST));
// %preformatted;
names.addAll(Arrays.asList(PREFORMATTED));
return names;
}
/**
* %block;.
* %block; is:
* P | %heading; | %list; | %preformatted; | DL | DIV | CENTER |
* NOSCRIPT | NOFRAMES | BLOCKQUOTE | FORM | ISINDEX | HR |
* TABLE | FIELDSET | ADDRESS.<br>
* @param group CMGroupImpl Return values.
*/
public final void getBlock(CMGroupImpl group) {
if (group == null)
return;
getDeclarations(group, getNamesOfBlock().iterator());
}
/**
* Create element declarations and store them
* into a <code>CMGroupImpl</code> instance.
* @param group CMGroupImpl Return values.
*/
public void getFlow(CMGroupImpl group) {
if (group == null)
return;
getBlock(group);
getInline(group);
}
/**
* Create element declarations and store them into a <code>CMGroupImpl</code>
* instance.<br>
* @param group CMGroupImpl Return values.
*/
public void getFontstyle(CMGroupImpl group) {
if (group == null)
return;
getDeclarations(group, Arrays.asList(FONTSTYLE).iterator());
}
/**
* Create element declarations and store them into a <code>CMGroupImpl</code>
* instance.<br>
* @param group CMGroupImpl Return values.
*/
public void getFormctrl(CMGroupImpl group) {
if (group == null)
return;
getDeclarations(group, Arrays.asList(FORMCTL).iterator());
}
/**
* %heading;.
* @param group CMGroupImpl Return values.
*/
public void getHeading(CMGroupImpl group) {
if (group == null)
return;
getDeclarations(group, Arrays.asList(HEADING).iterator());
}
/**
* Create element declarations and store them
* into a <code>CMGroupImpl</code> instance.
* @param group CMGroupImpl Return values.
*/
public void getInline(CMGroupImpl group) {
if (group == null)
return;
getFontstyle(group);
getPhrase(group);
getSpecial(group);
getFormctrl(group);
}
/**
* %list;.
* @param group CMGroupImpl Return values.
*/
public void getList(CMGroupImpl group) {
if (group == null)
return;
getDeclarations(group, Arrays.asList(LIST).iterator());
}
/**
* Create element declarations and store them into a <code>CMGroupImpl</code>
* instance.<br>
* @param group CMGroupImpl Return values.
*/
public void getPhrase(CMGroupImpl group) {
if (group == null)
return;
getDeclarations(group, Arrays.asList(PHRASE).iterator());
}
/**
* %preformatted;
* @param group CMGroupImpl Return values.
*/
public void getPreformatted(CMGroupImpl group) {
if (group == null)
return;
getDeclarations(group, Arrays.asList(PREFORMATTED).iterator());
}
/**
* Create element declarations and store them into a <code>CMGroupImpl</code>
* instance.<br>
* @param group CMGroupImpl Return values.
*/
public void getSpecial(CMGroupImpl group) {
if (group == null)
return;
getDeclarations(group, Arrays.asList(SPECIAL).iterator());
}
private static String[] getNames() {
if (fNames == null) {
fNames = new String[Ids.getNumOfIds()];
fNames[Ids.ID_A] = A;
fNames[Ids.ID_ABBR] = ABBR;
fNames[Ids.ID_ACRONYM] = ACRONYM;
fNames[Ids.ID_ADDRESS] = ADDRESS;
fNames[Ids.ID_APPLET] = APPLET;
fNames[Ids.ID_AREA] = AREA;
fNames[Ids.ID_B] = B;
fNames[Ids.ID_BASE] = BASE;
fNames[Ids.ID_BASEFONT] = BASEFONT;
fNames[Ids.ID_BDO] = BDO;
fNames[Ids.ID_BIG] = BIG;
fNames[Ids.ID_BLINK] = BLINK;
fNames[Ids.ID_BLOCKQUOTE] = BLOCKQUOTE;
fNames[Ids.ID_BODY] = BODY;
fNames[Ids.ID_BR] = BR;
fNames[Ids.ID_BUTTON] = BUTTON;
fNames[Ids.ID_CAPTION] = CAPTION;
fNames[Ids.ID_CENTER] = CENTER;
fNames[Ids.ID_CITE] = CITE;
fNames[Ids.ID_CODE] = CODE;
fNames[Ids.ID_COL] = COL;
fNames[Ids.ID_COLGROUP] = COLGROUP;
fNames[Ids.ID_DD] = DD;
fNames[Ids.ID_DEL] = DEL;
fNames[Ids.ID_DFN] = DFN;
fNames[Ids.ID_DIR] = DIR;
fNames[Ids.ID_DIV] = DIV;
fNames[Ids.ID_DL] = DL;
fNames[Ids.ID_DT] = DT;
fNames[Ids.ID_EM] = EM;
fNames[Ids.ID_EMBED] = EMBED;
fNames[Ids.ID_FIELDSET] = FIELDSET;
fNames[Ids.ID_FONT] = FONT;
fNames[Ids.ID_FORM] = FORM;
fNames[Ids.ID_FRAME] = FRAME;
fNames[Ids.ID_FRAMESET] = FRAMESET;
fNames[Ids.ID_H1] = H1;
fNames[Ids.ID_H2] = H2;
fNames[Ids.ID_H3] = H3;
fNames[Ids.ID_H4] = H4;
fNames[Ids.ID_H5] = H5;
fNames[Ids.ID_H6] = H6;
fNames[Ids.ID_HEAD] = HEAD;
fNames[Ids.ID_HR] = HR;
fNames[Ids.ID_HTML] = HTML;
fNames[Ids.ID_I] = I;
fNames[Ids.ID_IFRAME] = IFRAME;
fNames[Ids.ID_IMG] = IMG;
fNames[Ids.ID_INPUT] = INPUT;
fNames[Ids.ID_INS] = INS;
fNames[Ids.ID_ISINDEX] = ISINDEX;
fNames[Ids.ID_KBD] = KBD;
fNames[Ids.ID_LABEL] = LABEL;
fNames[Ids.ID_LEGEND] = LEGEND;
fNames[Ids.ID_LI] = LI;
fNames[Ids.ID_LINK] = LINK;
fNames[Ids.ID_MAP] = MAP;
fNames[Ids.ID_MENU] = MENU;
fNames[Ids.ID_META] = META;
fNames[Ids.ID_NOEMBED] = NOEMBED;
fNames[Ids.ID_NOFRAMES] = NOFRAMES;
fNames[Ids.ID_NOSCRIPT] = NOSCRIPT;
fNames[Ids.ID_OBJECT] = OBJECT;
fNames[Ids.ID_OL] = OL;
fNames[Ids.ID_OPTGROUP] = OPTGROUP;
fNames[Ids.ID_OPTION] = OPTION;
fNames[Ids.ID_P] = P;
fNames[Ids.ID_PARAM] = PARAM;
fNames[Ids.ID_PRE] = PRE;
fNames[Ids.ID_Q] = Q;
fNames[Ids.ID_S] = S;
fNames[Ids.ID_SAMP] = SAMP;
fNames[Ids.ID_SCRIPT] = SCRIPT;
fNames[Ids.ID_SELECT] = SELECT;
fNames[Ids.ID_SMALL] = SMALL;
fNames[Ids.ID_SPAN] = SPAN;
fNames[Ids.ID_STRIKE] = STRIKE;
fNames[Ids.ID_STRONG] = STRONG;
fNames[Ids.ID_STYLE] = STYLE;
fNames[Ids.ID_SUB] = SUB;
fNames[Ids.ID_SUP] = SUP;
fNames[Ids.ID_TABLE] = TABLE;
fNames[Ids.ID_TBODY] = TBODY;
fNames[Ids.ID_TD] = TD;
fNames[Ids.ID_TEXTAREA] = TEXTAREA;
fNames[Ids.ID_TFOOT] = TFOOT;
fNames[Ids.ID_TH] = TH;
fNames[Ids.ID_THEAD] = THEAD;
fNames[Ids.ID_TITLE] = TITLE;
fNames[Ids.ID_TR] = TR;
fNames[Ids.ID_TT] = TT;
fNames[Ids.ID_U] = U;
fNames[Ids.ID_UL] = UL;
fNames[Ids.ID_VAR] = VAR;
fNames[Ids.ID_MARQUEE] = MARQUEE;
fNames[Ids.ID_SSI_CONFIG] = SSI_CONFIG;
fNames[Ids.ID_SSI_ECHO] = SSI_ECHO;
fNames[Ids.ID_SSI_EXEC] = SSI_EXEC;
fNames[Ids.ID_SSI_FSIZE] = SSI_FSIZE;
fNames[Ids.ID_SSI_FLASTMOD] = SSI_FLASTMOD;
fNames[Ids.ID_SSI_INCLUDE] = SSI_INCLUDE;
fNames[Ids.ID_SSI_PRINTENV] = SSI_PRINTENV;
fNames[Ids.ID_SSI_SET] = SSI_SET;
fNames[Ids.ID_BGSOUND] = BGSOUND;
fNames[Ids.ID_NOBR] = NOBR;
fNames[Ids.ID_WBR] = WBR;
}
return fNames;
}
}