blob: d4f9f996005e4936fecd6539cd5d66a1f171a067 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2011 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.util.Arrays;
import java.util.Iterator;
import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
/**
* Factory for attribute declarations.
*/
class AttributeCollection extends CMNamedNodeMapImpl implements HTML40Namespace {
/** bodycolors. */
private static final String[] BODYCOLORS = {ATTR_NAME_BGCOLOR, ATTR_NAME_TEXT, ATTR_NAME_LINK, ATTR_NAME_VLINK, ATTR_NAME_ALINK};
/** coreattrs. */
private static final String[] CORE = {ATTR_NAME_ID, ATTR_NAME_CLASS, ATTR_NAME_STYLE, ATTR_NAME_TITLE};
/** events. */
private static final String[] EVENTS = {ATTR_NAME_ONCLICK, ATTR_NAME_ONDBLCLICK, ATTR_NAME_ONMOUSEDOWN, ATTR_NAME_ONMOUSEUP, ATTR_NAME_ONMOUSEOVER, ATTR_NAME_ONMOUSEMOVE, ATTR_NAME_ONMOUSEOUT, ATTR_NAME_ONKEYPRESS, ATTR_NAME_ONKEYDOWN, ATTR_NAME_ONKEYUP, ATTR_NAME_ONHELP};
/** i18n. lang, dir */
private static final String[] I18N = {ATTR_NAME_LANG, ATTR_NAME_DIR};
/** cellhaligh. */
private static final String[] CELLHALIGN = {ATTR_NAME_CHAR, ATTR_NAME_CHAROFF};
/**
* constructor.
*/
public AttributeCollection() {
super();
}
/**
* Create an attribute declaration.
*
* @param attrName
* java.lang.String
*/
protected HTMLAttrDeclImpl create(String attrName) {
HTMLAttrDeclImpl attr = null;
HTMLCMDataTypeImpl atype = null;
if (attrName.equalsIgnoreCase(ATTR_NAME_ABBR)) {
// (abbr %Text; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ABBR, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ACCEPT)) {
// (accept %ContentTypes; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ACCEPT, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ACCEPT_CHARSET)) {
// (accept-charset %Charsets;; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CHARSETS);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ACCEPT_CHARSET, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ACTION)) {
// (action %URI #REQUIRED)
atype = new HTMLCMDataTypeImpl(CMDataType.URI);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ACTION, atype, CMAttributeDeclaration.REQUIRED);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ARCHIVE)) {
// (archive CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ARCHIVE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ACCESSKEY)) {
// (accesskey %Character; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CHARACTER);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ACCESSKEY, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ALINK)) {
// (alink %Color; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ALINK, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ALT)) {
// (alt %Text; #REQUIRED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ALT, atype, CMAttributeDeclaration.REQUIRED);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_AUTOSTART)) {
// (autostart (true|false) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_AUTOSTART, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_AUTOPLAY)) {
// (autoplay (true|false) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_AUTOPLAY, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_AUTOSIZE)) {
// (autosize (true|false) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_AUTOSIZE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_AXIS)) {
// (axis CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_AXIS, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_BACKGROUND)) {
// (background %URI; #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.URI);
attr = new HTMLAttrDeclImpl(ATTR_NAME_BACKGROUND, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_BEHAVIOR)) {
// (behavior (scroll|slide|alternate) scroll)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_SCROLL, ATTR_VALUE_SLIDE, ATTR_VALUE_ALTERNATE};
atype.setEnumValues(values);
atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_SCROLL);
attr = new HTMLAttrDeclImpl(ATTR_NAME_BEHAVIOR, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_BGCOLOR)) {
// (bgcolor %Color; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR);
attr = new HTMLAttrDeclImpl(ATTR_NAME_BGCOLOR, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_BORDER)) {
// (border %Pixels; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS);
attr = new HTMLAttrDeclImpl(ATTR_NAME_BORDER, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_CELLSPACING)) {
// (cellspacing %Length; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LENGTH);
attr = new HTMLAttrDeclImpl(ATTR_NAME_CELLSPACING, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_CELLPADDING)) {
// (cellpadding %Length; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LENGTH);
attr = new HTMLAttrDeclImpl(ATTR_NAME_CELLPADDING, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_CGI)) {
// (cgi %URI; #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.URI);
attr = new HTMLAttrDeclImpl(ATTR_NAME_CGI, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_CHAR)) {
// (char %Character; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CHARACTER);
attr = new HTMLAttrDeclImpl(ATTR_NAME_CHAR, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_CHAROFF)) {
// (charoff %Length; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LENGTH);
attr = new HTMLAttrDeclImpl(ATTR_NAME_CHAROFF, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_CHARSET)) {
// (charset %Charset; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CHARSET);
attr = new HTMLAttrDeclImpl(ATTR_NAME_CHARSET, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_CITE)) {
// (cite %URI; #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.URI);
attr = new HTMLAttrDeclImpl(ATTR_NAME_CITE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_CLASS)) {
// (class CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_CLASS, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_CLASSID)) {
// (classid %URI #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.URI);
attr = new HTMLAttrDeclImpl(ATTR_NAME_CLASSID, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_CMD)) {
// (cmd CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_CMD, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_CHECKED)) {
// (checked (checked) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_NAME_CHECKED};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_CHECKED, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_CLEAR)) {
// (clear (left | all | right | none) none)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_LEFT, ATTR_VALUE_ALL, ATTR_VALUE_RIGHT, ATTR_VALUE_NONE};
atype.setEnumValues(values);
atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_NONE);
attr = new HTMLAttrDeclImpl(ATTR_NAME_CLEAR, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_CODE)) {
// (code CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_CODE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_CODEBASE)) {
// (codebase %URI; #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.URI);
attr = new HTMLAttrDeclImpl(ATTR_NAME_CODEBASE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_CODETYPE)) {
// (codetype %CotentType; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE);
attr = new HTMLAttrDeclImpl(ATTR_NAME_CODETYPE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_COLOR)) {
// (color %Color; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR);
attr = new HTMLAttrDeclImpl(ATTR_NAME_COLOR, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_COMPACT)) {
// (compact (compact) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_NAME_COMPACT};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_COMPACT, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_COLS)) {
// (cols NUMBER #REQUIRED)
atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
attr = new HTMLAttrDeclImpl(ATTR_NAME_COLS, atype, CMAttributeDeclaration.REQUIRED);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_COLSPAN)) {
// (colspan NUMBER 1)
atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_1);
attr = new HTMLAttrDeclImpl(ATTR_NAME_COLSPAN, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_CONTENT)) {
// (content CDATA #REQUIRED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_CONTENT, atype, CMAttributeDeclaration.REQUIRED);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_CONTROLLER)) {
// (controller (true|false) true)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
atype.setEnumValues(values);
atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_TRUE);
attr = new HTMLAttrDeclImpl(ATTR_NAME_CONTROLLER, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_COORDS)) {
// (coords %Coords; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COORDS);
attr = new HTMLAttrDeclImpl(ATTR_NAME_COORDS, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_DATA)) {
// (data %URI; #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.URI);
attr = new HTMLAttrDeclImpl(ATTR_NAME_DATA, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_DATETIME)) {
// (datetime %Datetime; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.DATETIME);
attr = new HTMLAttrDeclImpl(ATTR_NAME_DATETIME, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_DATAPAGESIZE)) {
// (datapagesize CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_DATAPAGESIZE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_DECLARE)) {
// (declare (declare) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_NAME_DECLARE};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_DECLARE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_DEFER)) {
// (defer (defer) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_NAME_DEFER};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_DEFER, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_DIR)) {
// (dir (ltr|rtl) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_LTR, ATTR_VALUE_RTL};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_DIR, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_DIRECTION)) {
// (direction (left|right|up|down) left)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT, ATTR_VALUE_UP, ATTR_VALUE_DOWN};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_DIRECTION, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_DIRECTKEY)) {
// (directkey %Character; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CHARACTER);
attr = new HTMLAttrDeclImpl(ATTR_NAME_DIRECTKEY, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_DISABLED)) {
// (disabled (disabled) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
// boolean attribute must have the same value as its name.
String[] values = {ATTR_NAME_DISABLED};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_DISABLED, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ENCTYPE)) {
// (enctype %ContentType; "application/x-www-form-urlencoded")
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE);
atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_WWW_FORM_URLENCODED);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ENCTYPE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ERRMSG)) {
// (errmsg CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ERRMSG, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_EVENT)) {
// (event CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_EVENT, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_FACE)) {
// (face CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_FACE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_FILE)) {
// (file %URI; #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.URI);
attr = new HTMLAttrDeclImpl(ATTR_NAME_FILE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_FOR)) {
// (for %URI; #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.URI);
attr = new HTMLAttrDeclImpl(ATTR_NAME_FOR, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_FRAME)) {
// (frame %TFrame; #IMPLIED)
// %TFrame; is
// (void|above|below|hsides|lhs|rhs|vsides|box|border).
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_VOID, ATTR_VALUE_ABOVE, ATTR_VALUE_BELOW, ATTR_VALUE_HSIDES, ATTR_VALUE_LHS, ATTR_VALUE_RHS, ATTR_VALUE_VSIDES, ATTR_VALUE_BOX, ATTR_VALUE_BORDER};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_FRAME, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_FRAMEBORDER)) {
// (frameborder (1|0) 1)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_1, ATTR_VALUE_0};
atype.setEnumValues(values);
atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_1);
attr = new HTMLAttrDeclImpl(ATTR_NAME_FRAMEBORDER, atype, CMAttributeDeclaration.OPTIONAL);
// <<D215684
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_FRAMESPACING)) {
// (framespacing CDATA; #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_FRAMESPACING, atype, CMAttributeDeclaration.OPTIONAL);
// D215684
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_HEADERS)) {
// (HEADERS IDREFS; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.IDREFS);
attr = new HTMLAttrDeclImpl(ATTR_NAME_HEADERS, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_HEIGHT)) {
// (height %Length; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LENGTH);
attr = new HTMLAttrDeclImpl(ATTR_NAME_HEIGHT, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_HIDDEN)) {
// (hidden CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_HIDDEN, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_HREF)) {
// (href %URI; #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.URI);
attr = new HTMLAttrDeclImpl(ATTR_NAME_HREF, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_HREFLANG)) {
// (hreflang %LanguageCode; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LANGUAGE_CODE);
attr = new HTMLAttrDeclImpl(ATTR_NAME_HREFLANG, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_HSPACE)) {
// (hspace %Pixels; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS);
attr = new HTMLAttrDeclImpl(ATTR_NAME_HSPACE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_HTTP_EQUIV)) {
// (http-equiv NAME #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.NAME);
attr = new HTMLAttrDeclImpl(ATTR_NAME_HTTP_EQUIV, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ID)) {
// (id ID #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ID);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ID, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ISMAP)) {
// (ismap (ismap) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_NAME_ISMAP};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ISMAP, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ISTYLE)) {
// (istyle CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ISTYLE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_LABEL)) {
// (label %Text; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_LABEL, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_LANG)) {
// (lang %LanguageCode; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LANGUAGE_CODE);
attr = new HTMLAttrDeclImpl(ATTR_NAME_LANG, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_LANGUAGE)) {
// (language %CDATA; #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_LANGUAGE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_LINK)) {
// (link %Color; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR);
attr = new HTMLAttrDeclImpl(ATTR_NAME_LINK, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_LONGDESC)) {
// (longdesc %URI; #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.URI);
attr = new HTMLAttrDeclImpl(ATTR_NAME_LONGDESC, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_LOOP)) {
// (loop CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_LOOP, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_MACRO)) {
// (macro CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_MACRO, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_MAPFILE)) {
// (mapfile %URI; #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.URI);
attr = new HTMLAttrDeclImpl(ATTR_NAME_MAPFILE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_MARGINWIDTH)) {
// (marginwidth %Pixels; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS);
attr = new HTMLAttrDeclImpl(ATTR_NAME_MARGINWIDTH, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_MARGINHEIGHT)) {
// (marginheight %Pixels; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS);
attr = new HTMLAttrDeclImpl(ATTR_NAME_MARGINHEIGHT, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_MAXLENGTH)) {
// (maxlength NUMBER #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
attr = new HTMLAttrDeclImpl(ATTR_NAME_MAXLENGTH, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_MAYSCRIPT)) {
// (mayscript (mayscript) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_NAME_MAYSCRIPT};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_MAYSCRIPT, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_MEDIA)) {
// (media %MediaDesc; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.MEDIA_DESC);
attr = new HTMLAttrDeclImpl(ATTR_NAME_MEDIA, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_METHOD)) {
// (method (GET|POST) GET)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_GET, ATTR_VALUE_POST};
atype.setEnumValues(values);
atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_GET);
attr = new HTMLAttrDeclImpl(ATTR_NAME_METHOD, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_MULTIPLE)) {
// (multiple (multiple) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_NAME_MULTIPLE};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_MULTIPLE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_NAME)) {
// (name CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_NAME, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_NOHREF)) {
// (nohref (nohref) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_NAME_NOHREF};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_NOHREF, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_NORESIZE)) {
// (noresize (noresize) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_NAME_NORESIZE};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_NORESIZE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_NOSHADE)) {
// (noshade (noshade) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_NAME_NOSHADE};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_NOSHADE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_NOWRAP)) {
// (nowrap (nowrap) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_NAME_NOWRAP};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_NOWRAP, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_OBJECT)) {
// (object CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_NAME_OBJECT};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_OBJECT, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONBLUR)) {
// (onblur %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONBLUR, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONCLICK)) {
// (onclick %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONCLICK, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONCHANGE)) {
// (onchange %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONCHANGE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONDBLCLICK)) {
// (ondblclick %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONDBLCLICK, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONFOCUS)) {
// (onfocus %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONFOCUS, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONHELP)) {
// (onhelp %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONHELP, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONKEYPRESS)) {
// (onkeypress %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONKEYPRESS, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONKEYDOWN)) {
// (onkeydown %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONKEYDOWN, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONKEYUP)) {
// (onkyeup %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONKEYUP, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONLOAD)) {
// (onload %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONLOAD, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONMOUSEDOWN)) {
// (onmousedown %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONMOUSEDOWN, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONMOUSEUP)) {
// (onmouseup %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONMOUSEUP, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONMOUSEOVER)) {
// (onmouseover %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONMOUSEOVER, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONMOUSEMOVE)) {
// (onmousemove %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONMOUSEMOVE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONMOUSEOUT)) {
// (onmouseout %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONMOUSEOUT, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONRESET)) {
// (onreset %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONRESET, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONSELECT)) {
// (onselect %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONSELECT, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONSUBMIT)) {
// (onsubmit %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONSUBMIT, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONUNLOAD)) {
// (onunload %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONUNLOAD, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_PALETTE)) {
// (palette CDATA; #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_PALETTE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_PANEL)) {
// (panel CDATA; #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_PANEL, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_PLAYCOUNT)) {
// (playcount NUMBER; #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
attr = new HTMLAttrDeclImpl(ATTR_NAME_PLAYCOUNT, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_PROFILE)) {
// (profile %URI; #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.URI);
attr = new HTMLAttrDeclImpl(ATTR_NAME_PROFILE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_PROMPT)) {
// (prompt %Text; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_PROMPT, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_READONLY)) {
// (readonly (readonly) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_NAME_READONLY};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_READONLY, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_REPEAT)) {
// (repeat CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_REPEAT, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_REL)) {
// (rel %LinkTypes; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LINK_TYPES);
attr = new HTMLAttrDeclImpl(ATTR_NAME_REL, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_REV)) {
// (rev %LinkTypes; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LINK_TYPES);
attr = new HTMLAttrDeclImpl(ATTR_NAME_REV, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ROWS)) {
// (rows NUMBER #REQUIRED)
atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ROWS, atype, CMAttributeDeclaration.REQUIRED);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ROWSPAN)) {
// (rowspan NUMBER 1)
atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_1);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ROWSPAN, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_RULES)) {
// (rules %TRules; #IMPLIED)
// %TRules; is (none | groups | rows | cols | all).
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_NONE, ATTR_VALUE_GROUPS, ATTR_VALUE_ROWS, ATTR_VALUE_COLS, ATTR_VALUE_ALL};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_RULES, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_SCALE)) {
// (scale CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_SCALE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_SCHEME)) {
// (scheme CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_SCHEME, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_SELECTED)) {
// (selected (selected) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_NAME_SELECTED};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_SELECTED, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_SCOPE)) {
// (SCOPE %Scope; #IMPLIED)
// %Scope; is (row|col|rowgroup|colgroup)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_ROW, ATTR_VALUE_COL, ATTR_VALUE_ROWGROUP, ATTR_VALUE_COLGROUP};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_SCOPE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_SCROLLAMOUNT)) {
// (scrollamount NUMBER #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
attr = new HTMLAttrDeclImpl(ATTR_NAME_SCROLLAMOUNT, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_SCROLLDELAY)) {
// (scrolldelay NUMBER #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
attr = new HTMLAttrDeclImpl(ATTR_NAME_SCROLLDELAY, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_SCROLLING)) {
// (scrolling (yes|no|auto) auto)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_YES, ATTR_VALUE_NO, ATTR_VALUE_AUTO};
atype.setEnumValues(values);
atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_AUTO);
attr = new HTMLAttrDeclImpl(ATTR_NAME_SCROLLING, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_SHAPE)) {
// (shape %Shape; rect): %Shape; is (rect|circle|poly|default).
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_RECT, ATTR_VALUE_CIRCLE, ATTR_VALUE_POLY, ATTR_VALUE_DEFAULT};
atype.setEnumValues(values);
atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_RECT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_SHAPE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_SHOWCONTROLS)) {
// (showcontrols (true|false) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_SHOWCONTROLS, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_SIZE)) {
// (size %Pixels; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS);
attr = new HTMLAttrDeclImpl(ATTR_NAME_SIZE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_SIZEFMT)) {
// (sizefmt CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_SIZEFMT, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_SPAN)) {
// (span NUMBER 1)
atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_1);
attr = new HTMLAttrDeclImpl(ATTR_NAME_SPAN, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_SRC)) {
// (src %URI; #IMPLIED)
// NOTE: "src" attributes are defined in several elements.
// The definition of IMG is different from others.
// So, it should be locally defined.
atype = new HTMLCMDataTypeImpl(CMDataType.URI);
attr = new HTMLAttrDeclImpl(ATTR_NAME_SRC, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_START)) {
// (start NUMBER #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
attr = new HTMLAttrDeclImpl(ATTR_NAME_START, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_STANDBY)) {
// (standby %Text; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_STANDBY, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_STYLE)) {
// (style %StyleSheet; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.STYLE_SHEET);
attr = new HTMLAttrDeclImpl(ATTR_NAME_STYLE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_SUMMARY)) {
// (summary %Text; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_SUMMARY, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_TABINDEX)) {
// (tabindex NUMBER #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
attr = new HTMLAttrDeclImpl(ATTR_NAME_TABINDEX, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_TARGET)) {
// (target %FrameTarget; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.FRAME_TARGET);
attr = new HTMLAttrDeclImpl(ATTR_NAME_TARGET, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_TEXT)) {
// (text %Color; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR);
attr = new HTMLAttrDeclImpl(ATTR_NAME_TEXT, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_TEXTFOCUS)) {
// (textfocus CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_TEXTFOCUS, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_TITLE)) {
// (title %Text; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_TITLE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_TIMEFMT)) {
// (timefmt CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_TIMEFMT, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_TRUESPEED)) {
// (truespeed (truespeed) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_NAME_TRUESPEED};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_TRUESPEED, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_TYPE)) {
// (type %CotentType; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE);
attr = new HTMLAttrDeclImpl(ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_USEMAP)) {
// (usemap %URI; #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.URI);
attr = new HTMLAttrDeclImpl(ATTR_NAME_USEMAP, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_VALIGN)) {
// (valign (top|middle|bottom|baseline) #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_TOP, ATTR_VALUE_MIDDLE, ATTR_VALUE_BOTTOM, ATTR_VALUE_BASELINE};
atype.setEnumValues(values);
attr = new HTMLAttrDeclImpl(ATTR_NAME_VALIGN, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_VALUE)) {
// (value CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_VALUE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_VALUETYPE)) {
// (valuetype (DATA|REF|OBJECT) DATA)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_DATA, ATTR_VALUE_REF, ATTR_VALUE_OBJECT};
atype.setEnumValues(values);
atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_DATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_VALUETYPE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_VAR)) {
// (var CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_VAR, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_VERSION)) {
// (version CDATA #FIXED '%HTML.Version;)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
atype.setImpliedValue(CMDataType.IMPLIED_VALUE_FIXED, ATTR_VALUE_VERSION_TRANSITIONAL);
attr = new HTMLAttrDeclImpl(ATTR_NAME_VERSION, atype, CMAttributeDeclaration.FIXED);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_VIRTUAL)) {
// (virtual %URI; #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.URI);
attr = new HTMLAttrDeclImpl(ATTR_NAME_VIRTUAL, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_VLINK)) {
// (vlink %Color; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR);
attr = new HTMLAttrDeclImpl(ATTR_NAME_VLINK, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_VOLUME)) {
// (volume CDATA #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_VOLUME, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_WIDTH)) {
// (width %Length; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LENGTH);
attr = new HTMLAttrDeclImpl(ATTR_NAME_WIDTH, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_VSPACE)) {
// (vspace %Pixels; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS);
attr = new HTMLAttrDeclImpl(ATTR_NAME_VSPACE, atype, CMAttributeDeclaration.OPTIONAL);
// <<D205514
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_TOPMARGIN)) {
// (topmargin, CDATA, #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_TOPMARGIN, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_BOTTOMMARGIN)) {
// (bottommargin, CDATA, #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_BOTTOMMARGIN, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_LEFTMARGIN)) {
// (leftmargin, CDATA, #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_LEFTMARGIN, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_RIGHTMARGIN)) {
// (rightmargin, CDATA, #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_RIGHTMARGIN, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_BORDERCOLOR)) {
// (bordercolor, %Color; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR);
attr = new HTMLAttrDeclImpl(ATTR_NAME_BORDERCOLOR, atype, CMAttributeDeclaration.OPTIONAL);
// D205514
}
else {
// unknown attribute; maybe error.
// should warn.
attr = null;
}
return attr;
}
/**
* Get align attribute which has %CAlign; as values.. At this time
* (4/19/2001), it is identical to %LAlign;.
*
*/
public static final HTMLAttrDeclImpl createAlignForCaption() {
// align (local)
HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
// set enum values
String[] values = {ATTR_VALUE_TOP, ATTR_VALUE_BOTTOM, ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT};
atype.setEnumValues(values);
HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL);
return attr;
}
/**
* Get align attribute which has %IAlign; as values..
*/
public static final HTMLAttrDeclImpl createAlignForImage() {
// align (local)
HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
// set enum values
String[] values = {ATTR_VALUE_TOP, ATTR_VALUE_MIDDLE, ATTR_VALUE_BOTTOM, ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT};
atype.setEnumValues(values);
HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL);
return attr;
}
/**
* Get align attribute which has %LAlign; as values..
*/
public static final HTMLAttrDeclImpl createAlignForLegend() {
// align (local)
HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
// set enum values
String[] values = {ATTR_VALUE_TOP, ATTR_VALUE_BOTTOM, ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT};
atype.setEnumValues(values);
HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL);
return attr;
}
/**
* Create an attribute declaration for <code>align</code> in several
* elements, like <code>P</code>, <code>DIV</code>. The values are
* different from attributes those have the same name in other elements (<code>IMG</code>
* and <code>TABLE</code>). So, it can't treat as global attributes.
* <strong>NOTE: These attribute declaration has no owner CMDocument
* instance.</strong>
*/
public static final HTMLAttrDeclImpl createAlignForParagraph() {
HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
// set enum values: left|center|right|justify
String[] values = {ATTR_VALUE_LEFT, ATTR_VALUE_CENTER, ATTR_VALUE_RIGHT, ATTR_VALUE_JUSTIFY};
atype.setEnumValues(values);
HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL);
return attr;
}
/**
* Get %attrs; declarations. %attrs; consists of %coreattrs;, %i18n, and
* %events;.
*/
public void getAttrs(CMNamedNodeMapImpl declarations) {
// %coreattrs;
Iterator names = Arrays.asList(CORE).iterator();
getDeclarations(declarations, names);
// %i18n;
names = Arrays.asList(I18N).iterator();
getDeclarations(declarations, names);
// %events;
names = Arrays.asList(EVENTS).iterator();
getDeclarations(declarations, names);
}
/**
* Get %bodycolors; declarations.
*/
public void getBodycolors(CMNamedNodeMapImpl declarations) {
Iterator names = Arrays.asList(BODYCOLORS).iterator();
getDeclarations(declarations, names);
}
/**
* Get %cellhalign; declarations. %cellhaligh; consists of: - (align
* (left|center|right|justify|char) #IMPLIED) - (char %Character;
* #IMPLIED) - (charoff %Length; #IMPLIED)
*/
public void getCellhalign(CMNamedNodeMapImpl declarations) {
// (align (left|center|right|justify|char) #IMPLIED) should be defined
// locally.
HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
// set enum values
String[] values = {ATTR_VALUE_LEFT, ATTR_VALUE_CENTER, ATTR_VALUE_RIGHT, ATTR_VALUE_JUSTIFY, ATTR_VALUE_CHAR};
atype.setEnumValues(values);
HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL);
declarations.putNamedItem(ATTR_NAME_ALIGN, attr);
// the rest.
Iterator names = Arrays.asList(CELLHALIGN).iterator();
getDeclarations(declarations, names);
}
/**
* Get %cellvalign; declarations. %cellhaligh; is: - (valign
* (top|middle|bottom|baseline) #IMPLIED)
*/
public void getCellvalign(CMNamedNodeMapImpl declarations) {
HTMLAttributeDeclaration dec = getDeclaration(ATTR_NAME_VALIGN);
if (dec != null)
declarations.putNamedItem(ATTR_NAME_VALIGN, dec);
}
/**
* Get %coreattrs; declarations.
*/
public void getCore(CMNamedNodeMapImpl declarations) {
Iterator names = Arrays.asList(CORE).iterator();
getDeclarations(declarations, names);
}
/**
* Get a global attribute declaration.
*
* @param attrName
* java.lang.String
*/
public HTMLAttributeDeclaration getDeclaration(String attrName) {
CMNode cmnode = getNamedItem(attrName);
if (cmnode != null)
return (HTMLAttributeDeclaration) cmnode; // already exists.
HTMLAttrDeclImpl dec = create(attrName);
if (dec != null)
putNamedItem(attrName, dec);
return dec;
}
/**
* Get declarations which are specified by names.
*
* @param names
* java.util.Iterator
*/
public void getDeclarations(CMNamedNodeMapImpl declarations, Iterator names) {
while (names.hasNext()) {
String attrName = (String) names.next();
HTMLAttributeDeclaration dec = getDeclaration(attrName);
if (dec != null)
declarations.putNamedItem(attrName, dec);
}
}
/**
* Get %events; declarations.
*/
public void getEvents(CMNamedNodeMapImpl declarations) {
Iterator names = Arrays.asList(EVENTS).iterator();
getDeclarations(declarations, names);
}
/**
* Get %i18n; declarations.
*/
public void getI18n(CMNamedNodeMapImpl declarations) {
Iterator names = Arrays.asList(I18N).iterator();
getDeclarations(declarations, names);
}
/**
* create declarations.
*/
public void createAttributeDeclarations(String elementName, CMNamedNodeMapImpl attributes) {
/* (type %InputType; TEXT) ... should be defined locally.
* (name CDATA #IMPLIED)
* (value CDATA #IMPLIED)
* (checked (checked) #IMPLIED)
* (disabled (disabled) #IMPLIED)
* (readonly (readonly) #IMPLIED)
* (size CDATA #IMPLIED) ... should be defined locally.
* (maxlength NUMBER #IMPLIED)
* (src %URI; #IMPLIED)
* (alt CDATA #IMPLIED) ... should be defined locally.
* (usemap %URI; #IMPLIED)
* (ismap (ismap) #IMPLIED)
* (tabindex NUMBER #IMPLIED)
* (accesskey %Character; #IMPLIED)
* (onfocus %Script; #IMPLIED)
* (onblur %Script; #IMPLIED)
* (onselect %Script; #IMPLIED)
* (onchange %Script; #IMPLIED)
* (accept %ContentTypes; #IMPLIED)
* (align %IAlign; #IMPLIED) ... should be defined locally.
* (istyle CDATA #IMPLIED)
* <<D215684
* (width CDATA; #IMPLIED)
* (height CDATA; #IMPLIED)
* (border CDATA; #IMPLIED)
* D215684
*/
if (elementName.equals(HTML40Namespace.ElementName.INPUT)){
HTMLCMDataTypeImpl atype = null;
HTMLAttrDeclImpl attr = null;
// (type %InputType; TEXT) ... should be defined locally.
// NOTE: %InputType is ENUM;
// (text | password | checkbox | radio | submit | reset |
// file | hidden | image | button)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_TEXT, ATTR_VALUE_PASSWORD, ATTR_VALUE_CHECKBOX, ATTR_VALUE_RADIO, ATTR_VALUE_SUBMIT, ATTR_VALUE_RESET, ATTR_VALUE_FILE, ATTR_VALUE_HIDDEN, ATTR_VALUE_IMAGE, ATTR_VALUE_BUTTON};
atype.setEnumValues(values);
atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_TEXT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL);
attributes.putNamedItem(ATTR_NAME_TYPE, attr);
// (size CDATA #IMPLIED) ... should be defined locally.
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_SIZE, atype, CMAttributeDeclaration.OPTIONAL);
attributes.putNamedItem(ATTR_NAME_SIZE, attr);
// (alt CDATA #IMPLIED) ... should be defined locally.
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ALT, atype, CMAttributeDeclaration.OPTIONAL);
attributes.putNamedItem(ATTR_NAME_ALT, attr);
// (align %IAlign; #IMPLIED) ... should be defined locally.
attr = AttributeCollection.createAlignForImage();
attributes.putNamedItem(ATTR_NAME_ALIGN, attr);
// the rest.
String[] names = {ATTR_NAME_NAME, ATTR_NAME_VALUE, ATTR_NAME_CHECKED, ATTR_NAME_DISABLED, ATTR_NAME_READONLY, ATTR_NAME_SIZE, ATTR_NAME_MAXLENGTH, ATTR_NAME_SRC, ATTR_NAME_ALT, ATTR_NAME_USEMAP, ATTR_NAME_ISMAP, ATTR_NAME_TABINDEX, ATTR_NAME_ACCESSKEY, ATTR_NAME_ONFOCUS, ATTR_NAME_ONBLUR, ATTR_NAME_ONSELECT, ATTR_NAME_ONCHANGE, ATTR_NAME_ACCEPT, ATTR_NAME_ALIGN, ATTR_NAME_ISTYLE,
//<<D215684
ATTR_NAME_WIDTH, ATTR_NAME_HEIGHT, ATTR_NAME_BORDER
//<D215684
};
getDeclarations(attributes, Arrays.asList(names).iterator());
}
/* (charset %Charset; #IMPLIED)
* (href %URI; #IMPLIED)
* (hreflang %LanguageCode; #IMPLIED)
* (type %ContentType; #IMPLIED): should be defined locally.
* (rel %LinkTypes; #IMPLIED)
* (rev %LinkTypes; #IMPLIED)
* (media %MediaDesc; #IMPLIED)
* (target %FrameTarget; #IMPLIED)
*/
else if (elementName.equals(HTML40Namespace.ElementName.LINK)){
String[] names = {ATTR_NAME_CHARSET, ATTR_NAME_HREF, ATTR_NAME_HREFLANG, ATTR_NAME_REL, ATTR_NAME_REV, ATTR_NAME_MEDIA, ATTR_NAME_TARGET};
getDeclarations(attributes, Arrays.asList(names).iterator());
// (type %ContentType; #IMPLIED)
HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE);
HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL);
attributes.putNamedItem(ATTR_NAME_TYPE, attr);
}
/* (charset %Charset; #IMPLIED)
* (type %ContentType; #IMPLIED)
* (name CDATA #IMPLIED)
* (href %URI; #IMPLIED)
* (hreflang %LanguageCode; #IMPLIED)
* (target %FrameTarget; #IMPLIED)
* (rel %LinkTypes; #IMPLIED)
* (rev %LinkTypes; #IMPLIED)
* (accesskey %Character; #IMPLIED)
* (directkey %Character; #IMPLIED)
* (shape %Shape; rect)
* (coords %Coords; #IMPLIED)
* (tabindex NUMBER #IMPLIED)
* (onfocus %Script; #IMPLIED)
* (onblur %Script; #IMPLIED)
*/
else if (elementName.equals(HTML40Namespace.ElementName.A)){
String[] names = {ATTR_NAME_CHARSET, ATTR_NAME_TYPE, ATTR_NAME_NAME, ATTR_NAME_HREF, ATTR_NAME_HREFLANG, ATTR_NAME_TARGET, ATTR_NAME_REL, ATTR_NAME_REV, ATTR_NAME_ACCESSKEY, ATTR_NAME_DIRECTKEY, ATTR_NAME_SHAPE, ATTR_NAME_COORDS, ATTR_NAME_TABINDEX, ATTR_NAME_ONFOCUS, ATTR_NAME_ONBLUR};
getDeclarations(attributes, Arrays.asList(names).iterator());
}
else if (elementName.equals(HTML40Namespace.ElementName.FORM)) {
String[] names = {HTML40Namespace.ATTR_NAME_ACTION, HTML40Namespace.ATTR_NAME_METHOD, HTML40Namespace.ATTR_NAME_ENCTYPE, HTML40Namespace.ATTR_NAME_ACCEPT, HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_ONSUBMIT, HTML40Namespace.ATTR_NAME_ONRESET, HTML40Namespace.ATTR_NAME_TARGET, HTML40Namespace.ATTR_NAME_ACCEPT_CHARSET};
getDeclarations(attributes, Arrays.asList(names).iterator());
}
/*
* (shape %Shape; rect)
* (coords %Coords; #IMPLIED)
* (href %URI; #IMPLIED)
* (target %FrameTarget; #IMPLIED)
* (nohref (nohref) #IMPLIED)
* (alt %Text; #REQUIRED)
* (tabindex NUMBER #IMPLIED)
* (accesskey %Character; #IMPLIED)
* (onfocus %Script; #IMPLIED)
* (onblur %Script; #IMPLIED)
*/
else if (elementName.equals(HTML40Namespace.ElementName.AREA)){
String[] names = {ATTR_NAME_SHAPE, ATTR_NAME_COORDS, ATTR_NAME_HREF, ATTR_NAME_TARGET, ATTR_NAME_NOHREF, ATTR_NAME_ALT, ATTR_NAME_TABINDEX, ATTR_NAME_ACCESSKEY, ATTR_NAME_ONFOCUS, ATTR_NAME_ONBLUR};
getDeclarations(attributes, Arrays.asList(names).iterator());
}
/*
* %i18n;
* (http-equiv NAME #IMPLIED)
* (name NAME #IMPLIED) ... should be defined locally.
* (content CDATA #REQUIRED)
* (scheme CDATA #IMPLIED)
*/
else if (elementName.equals(HTML40Namespace.ElementName.META)){
// %i18n;
getI18n(attributes);
// (name NAME #IMPLIED) ... should be defined locally.
HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.NAME);
HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_NAME, atype, CMAttributeDeclaration.OPTIONAL);
attributes.putNamedItem(ATTR_NAME_NAME, attr);
String[] names = {ATTR_NAME_HTTP_EQUIV, ATTR_NAME_CONTENT, ATTR_NAME_SCHEME};
getDeclarations(attributes, Arrays.asList(names).iterator());
}
/*
* (src %URI; #REQUIRED): should be defined locally.
* (alt %Text; #REQUIRED)
* (longdesc %URI; #IMPLIED)
* (name CDATA #IMPLIED)
* (height %Length; #IMPLIED)
* (width %Length; #IMPLIED)
* (usemap %URI; #IMPLIED)
* (ismap (ismap) #IMPLIED)
* (align %IAlign; #IMPLIED): should be defined locally.
* (border %Pixels; #IMPLIED)
* (hspace %Pixels; #IMPLIED)
* (vspace %Pixels; #IMPLIED)
* (mapfile %URI; #IMPLIED)
*/
else if (elementName.equals(HTML40Namespace.ElementName.IMG)){
// (src %URI; #REQUIRED): should be defined locally.
HTMLCMDataTypeImpl atype = null;
HTMLAttrDeclImpl attr = null;
atype = new HTMLCMDataTypeImpl(CMDataType.URI);
attr = new HTMLAttrDeclImpl(ATTR_NAME_SRC, atype, CMAttributeDeclaration.REQUIRED);
attributes.putNamedItem(ATTR_NAME_SRC, attr);
String[] names = {ATTR_NAME_ALT, ATTR_NAME_LONGDESC, ATTR_NAME_NAME, ATTR_NAME_HEIGHT, ATTR_NAME_WIDTH, ATTR_NAME_USEMAP, ATTR_NAME_ISMAP, ATTR_NAME_BORDER, ATTR_NAME_HSPACE, ATTR_NAME_VSPACE, ATTR_NAME_MAPFILE};
getDeclarations(attributes, Arrays.asList(names).iterator());
// align (local); should be defined locally.
attr = AttributeCollection.createAlignForImage();
attributes.putNamedItem(ATTR_NAME_ALIGN, attr);
}
/*
* (id ID #IMPLIED)
* (name CDATA #REQUIRED) ... should be defined locally.
* (value CDATA #IMPLIED)
* (valuetype (DATA|REF|OBJECT) DATA)
* (type %ContentType; #IMPLIED)
*/
else if (elementName.equals(HTML40Namespace.ElementName.PARAM)){
String[] names = {ATTR_NAME_ID, ATTR_NAME_VALUE, ATTR_NAME_VALUETYPE, ATTR_NAME_TYPE};
getDeclarations(attributes, Arrays.asList(names).iterator());
// (name CDATA #REQUIRED) ... should be defined locally.
HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_NAME, atype, CMAttributeDeclaration.REQUIRED);
attributes.putNamedItem(ATTR_NAME_NAME, attr);
}
/*
* %reserved; ... empty
* (name CDATA #IMPLIED)
* (rows NUMBER #REQUIRED)
* (cols NUMBER #REQUIRED)
* (disabled (disabled) #IMPLIED)
* (readonly (readonly) #IMPLIED)
* (tabindex NUMBER #IMPLIED)
* (accesskey %Character; #IMPLIED)
* (onfocus %Script; #IMPLIED)
* (onblur %Script; #IMPLIED)
* (onselect %Script; #IMPLIED)
* (onchange %Script; #IMPLIED)
* (istyle CDATA #IMPLIED)
*/
else if (elementName.equals(HTML40Namespace.ElementName.TEXTAREA)){
String[] names = {ATTR_NAME_NAME, ATTR_NAME_ROWS, ATTR_NAME_COLS, ATTR_NAME_DISABLED, ATTR_NAME_READONLY, ATTR_NAME_TABINDEX, ATTR_NAME_ACCESSKEY, ATTR_NAME_ONFOCUS, ATTR_NAME_ONBLUR, ATTR_NAME_ONSELECT, ATTR_NAME_ONCHANGE, ATTR_NAME_ISTYLE};
getDeclarations(attributes, Arrays.asList(names).iterator());
}
/*
* (charset %Charset; #IMPLIED)
* (type %ContentType; #REQUIRED) ... should be defined locally.
* (language CDATA #IMPLIED)
* (src %URI; #IMPLIED)
* (defer (defer) #IMPLIED)
* (event CDATA #IMPLIED)
* (for %URI; #IMPLIED)
*/
else if (elementName.equals(HTML40Namespace.ElementName.SCRIPT)){
String[] names = {ATTR_NAME_CHARSET, ATTR_NAME_LANGUAGE, ATTR_NAME_SRC, ATTR_NAME_DEFER, ATTR_NAME_EVENT, ATTR_NAME_FOR};
getDeclarations(attributes, Arrays.asList(names).iterator());
// (type %ContentType; #REQUIRED) ... should be defined locally.
HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE);
atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, "text/javascript"); //$NON-NLS-1$
HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_TYPE, atype, CMAttributeDeclaration.REQUIRED);
attributes.putNamedItem(ATTR_NAME_TYPE, attr);
}
/*
* %i18n;
* (type %ContentType; #REQUIRED) ... should be defined locally.
* (media %MediaDesc; #IMPLIED)
* (title %Text; #IMPLIED)
*/
else if (elementName.equals(HTML40Namespace.ElementName.STYLE)){
// %i18n;
getI18n(attributes);
String[] names = {ATTR_NAME_MEDIA, ATTR_NAME_TITLE};
getDeclarations(attributes, Arrays.asList(names).iterator());
// (type %ContentType; #REQUIRED) ... should be defined locally.
HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE);
atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, "text/css"); //$NON-NLS-1$
HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_TYPE, atype, CMAttributeDeclaration.REQUIRED);
attributes.putNamedItem(ATTR_NAME_TYPE, attr);
}
/*
* %reserved;
* (name CDATA #IMPLIED)
* (size NUMBER #IMPLIED) ... should be defined locally.
* (multiple (multiple) #IMPLIED)
* (disabled (disabled) #IMPLIED)
* (tabindex NUMBER #IMPLIED)
* (onfocus %Script; #IMPLIED)
* (onblur %Script; #IMPLIED)
* (onchange %Script; #IMPLIED)
*/
else if (elementName.equals(HTML40Namespace.ElementName.SELECT)){
// (size NUMBER #IMPLIED) ... should be defined locally.
HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_SIZE, atype, CMAttributeDeclaration.OPTIONAL);
attributes.putNamedItem(ATTR_NAME_SIZE, attr);
String[] names = {ATTR_NAME_NAME, ATTR_NAME_MULTIPLE, ATTR_NAME_DISABLED, ATTR_NAME_TABINDEX, ATTR_NAME_ONFOCUS, ATTR_NAME_ONBLUR, ATTR_NAME_ONCHANGE};
getDeclarations(attributes, Arrays.asList(names).iterator());
}
/*
* (type %LIStyle; #IMPLIED) ... should be defined locally.
* (value NUMBER #IMPLIED) ... should be defined locally.
*/
else if (elementName.equals(HTML40Namespace.ElementName.LI)){
// (type %LIStyle; #IMPLIED) ... should be defined locally.
HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LI_STYLE);
HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL);
attributes.putNamedItem(ATTR_NAME_TYPE, attr);
// (value NUMBER #IMPLIED) ... should be defined locally.
atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER);
attr = new HTMLAttrDeclImpl(ATTR_NAME_VALUE, atype, CMAttributeDeclaration.OPTIONAL);
attributes.putNamedItem(ATTR_NAME_VALUE, attr);
}
/*
* (type %OLStyle; #IMPLIED) ... should be defined locally.
* (compact (compact) #IMPLIED)
* (start NUMBER #IMPLIED)
*/
else if (elementName.equals(HTML40Namespace.ElementName.OL)){
// (type %OLStyle; #IMPLIED) ... should be defined locally.
HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.OL_STYLE);
HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL);
attributes.putNamedItem(ATTR_NAME_TYPE, attr);
// the rest.
String[] names = {ATTR_NAME_COMPACT, ATTR_NAME_START};
getDeclarations(attributes, Arrays.asList(names).iterator());
}
/**
* %coreattrs;
* (longdesc %URI; #IMPLIED)
* (name CDATA #IMPLIED)
* (src %URI; #IMPLIED)
* (frameborder (1|0) 1)
* (marginwidth %Pixels; #IMPLIED)
* (marginheight %Pixels; #IMPLIED)
* (scrolling (yes|no|auto) auto)
* (align %IAlign; #IMPLIED) ... should be defined locally.
* (height %Length; #IMPLIED)
* (width %Length; #IMPLIED)
*/
else if (elementName.equals(HTML40Namespace.ElementName.IFRAME)){
// %coreattrs;
getCore(attributes);
String[] names = {ATTR_NAME_LONGDESC, ATTR_NAME_NAME, ATTR_NAME_SRC, ATTR_NAME_FRAMEBORDER, ATTR_NAME_MARGINWIDTH, ATTR_NAME_MARGINHEIGHT, ATTR_NAME_SCROLLING, ATTR_NAME_HEIGHT, ATTR_NAME_WIDTH};
getDeclarations(attributes, Arrays.asList(names).iterator());
// align
HTMLAttrDeclImpl attr = AttributeCollection.createAlignForImage();
if (attr != null)
attributes.putNamedItem(ATTR_NAME_ALIGN, attr);
}
/*
* %i18n attrs
* %version
*/
else if (elementName.equals(HTML40Namespace.ElementName.HTML)){
// %i18n;
getI18n(attributes);
// version
HTMLAttributeDeclaration adec = getDeclaration(ATTR_NAME_VERSION);
if (adec != null)
attributes.putNamedItem(ATTR_NAME_VERSION, adec);
}
/*
* (compact (compact) #IMPLIED)
*/
else if (elementName.equals(HTML40Namespace.ElementName.MENU)){
String[] names = {ATTR_NAME_COMPACT};
getDeclarations(attributes, Arrays.asList(names).iterator());
}
/*
* %reserved; ... empty.
* (name CDATA #IMPLIED)
* (value CDATA #IMPLIED)
* (type (button|submit|reset) submit) ... should be defined locally.
* (disabled (disabled) #IMPLIED)
* (tabindex NUMBER #IMPLIED)
* (accesskey %Character; #IMPLIED)
* (onfocus %Script; #IMPLIED)
* (onblur %Script; #IMPLIED)
*/
else if (elementName.equals(HTML40Namespace.ElementName.BUTTON)){
String[] names = {ATTR_NAME_NAME, ATTR_NAME_VALUE, ATTR_NAME_DISABLED, ATTR_NAME_TABINDEX, ATTR_NAME_ACCESSKEY, ATTR_NAME_ONFOCUS, ATTR_NAME_ONBLUR};
getDeclarations(attributes, Arrays.asList(names).iterator());
// (type (button|submit|reset) submit) ... should be defined locally.
HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_BUTTON, ATTR_VALUE_SUBMIT, ATTR_VALUE_RESET};
atype.setEnumValues(values);
HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL);
attributes.putNamedItem(ATTR_NAME_TYPE, attr);
}
/*
* %reserved;
* (summary %Text; #IMPLIED)
* (width %Length; #IMPLIED)
* (border %Pixels; #IMPLIED)
* (frame %TFrame; #IMPLIED)
* (rules %TRules; #IMPLIED)
* (cellspacing %Length; #IMPLIED)
* (cellpadding %Length; #IMPLIED)
* (align %TAlign; #IMPLIED)
* (bgcolor %Color; #IMPLIED)
* (datapagesize CDATA #IMPLIED)
* (height %Pixels; #IMPLIED)
* (background %URI; #IMPLIED)
* (bordercolor %Color #IMPLIED) ... D205514
*/
else if (elementName.equals(HTML40Namespace.ElementName.TABLE)){
// %reserved;
// ... %reserved; is empty in the current DTD.
String[] names = {ATTR_NAME_SUMMARY, ATTR_NAME_WIDTH, ATTR_NAME_BORDER, ATTR_NAME_FRAME, ATTR_NAME_RULES, ATTR_NAME_CELLSPACING, ATTR_NAME_CELLPADDING, ATTR_NAME_BGCOLOR, ATTR_NAME_DATAPAGESIZE, ATTR_NAME_HEIGHT, ATTR_NAME_BACKGROUND, ATTR_NAME_BORDERCOLOR // D205514
};
getDeclarations(attributes, Arrays.asList(names).iterator());
// align (local)
HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] alignValues = {ATTR_VALUE_LEFT, ATTR_VALUE_CENTER, ATTR_VALUE_RIGHT};
atype.setEnumValues(alignValues);
HTMLAttrDeclImpl adec = new HTMLAttrDeclImpl(ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL);
attributes.putNamedItem(ATTR_NAME_ALIGN, adec);
}
}
}