Source for gnu.javax.swing.text.html.parser.HTML_401F

   1: /* HTML_401F.java -- HTML 4.01 FRAMESET DTD java conception.
   2:    Copyright (C) 2005 Free Software Foundation, Inc.
   3: 
   4: This file is part of GNU Classpath.
   5: 
   6: GNU Classpath is free software; you can redistribute it and/or modify
   7: it under the terms of the GNU General Public License as published by
   8: the Free Software Foundation; either version 2, or (at your option)
   9: any later version.
  10: 
  11: GNU Classpath is distributed in the hope that it will be useful, but
  12: WITHOUT ANY WARRANTY; without even the implied warranty of
  13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  14: General Public License for more details.
  15: 
  16: You should have received a copy of the GNU General Public License
  17: along with GNU Classpath; see the file COPYING.  If not, write to the
  18: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  19: 02110-1301 USA.
  20: 
  21: Linking this library statically or dynamically with other modules is
  22: making a combined work based on this library.  Thus, the terms and
  23: conditions of the GNU General Public License cover the whole
  24: combination.
  25: 
  26: As a special exception, the copyright holders of this library give you
  27: permission to link this library with independent modules to produce an
  28: executable, regardless of the license terms of these independent
  29: modules, and to copy and distribute the resulting executable under
  30: terms of your choice, provided that you also meet, for each linked
  31: independent module, the terms and conditions of the license of that
  32: module.  An independent module is a module which is not derived from
  33: or based on this library.  If you modify this library, you may extend
  34: this exception to your version of the library, but you are not
  35: obligated to do so.  If you do not wish to do so, delete this
  36: exception statement from your version. */
  37: 
  38: 
  39: package gnu.javax.swing.text.html.parser;
  40: 
  41: import gnu.javax.swing.text.html.parser.models.PCDATAonly_model;
  42: import gnu.javax.swing.text.html.parser.models.TableRowContentModel;
  43: import gnu.javax.swing.text.html.parser.models.noTagModel;
  44: 
  45: import java.io.IOException;
  46: import java.io.Serializable;
  47: 
  48: import javax.swing.text.html.parser.*;
  49: import javax.swing.text.html.parser.ContentModel;
  50: import javax.swing.text.html.parser.DTDConstants;
  51: 
  52: /**
  53:  * This class represents the java implementation of the HTML 4.01
  54:  * ( -//W3C//DTD HTML 4.01 Frameset//EN ) Frameset version. The
  55:  * Frameset version includes as recommended, as obsoleted features and
  56:  * also the frameset support. This the default DTD to parse HTML
  57:  * documents in this implementation, containing 315 pre-defined general
  58:  * entities and 92 elements.
  59:  *
  60:  * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
  61:  */
  62: public class HTML_401F
  63:   extends gnuDTD
  64:   implements DTDConstants, Serializable
  65: {
  66:    private static final long serialVersionUID = 1;
  67: 
  68:    /**
  69:     * The standard name of this DTD,
  70:     * '-//W3C//DTD HTML 4.01 Frameset//EN'
  71:     */
  72:    public static final String DTD_NAME = "-//W3C//DTD HTML 4.01 Frameset//EN";
  73: 
  74:    /**
  75:     * The integer representing length in pixels.
  76:     */
  77:     static final int PIXELS = NUMBER;
  78: 
  79:     static final String[] NONE = new String[0];
  80: 
  81:   /* Define the HTML tags. */
  82:     static final String PCDATA = "#pcdata";
  83:     static final String A = "a";
  84:     static final String ABBR = "abbr";
  85:     static final String ACRONYM = "acronym";
  86:     static final String ADDRESS = "address";
  87:     static final String APPLET = "applet";
  88:     static final String AREA = "area";
  89:     static final String B = "b";
  90:     static final String BASE = "base";
  91:     static final String BASEFONT = "basefont";
  92:     static final String BDO = "bdo";
  93:     static final String BIG = "big";
  94:     static final String BLOCKQUOTE = "blockquote";
  95:     static final String BODY = "body";
  96:     static final String BR = "br";
  97:     static final String BUTTON = "button";
  98:     static final String CAPTION = "caption";
  99:     static final String CENTER = "center";
 100:     static final String CITE = "cite";
 101:     static final String CODE = "code";
 102:     static final String COL = "col";
 103:     static final String COLGROUP = "colgroup";
 104:     static final String DEFAULTS = "default";
 105:     static final String DD = "dd";
 106:     static final String DEL = "del";
 107:     static final String DFN = "dfn";
 108:     static final String DIR = "dir";
 109:     static final String DIV = "div";
 110:     static final String DL = "dl";
 111:     static final String DT = "dt";
 112:     static final String EM = "em";
 113:     static final String FIELDSET = "fieldset";
 114:     static final String FONT = "font";
 115:     static final String FORM = "form";
 116:     static final String FRAME = "frame";
 117:     static final String FRAMESET = "frameset";
 118:     static final String H1 = "h1";
 119:     static final String H2 = "h2";
 120:     static final String H3 = "h3";
 121:     static final String H4 = "h4";
 122:     static final String H5 = "h5";
 123:     static final String H6 = "h6";
 124:     static final String HEAD = "head";
 125:     static final String HR = "hr";
 126:     static final String HTML = "html";
 127:     static final String I = "i";
 128:     static final String IFRAME = "iframe";
 129:     static final String IMG = "img";
 130:     static final String INPUT = "input";
 131:     static final String INS = "ins";
 132:     static final String ISINDEX = "isindex";
 133:     static final String KBD = "kbd";
 134:     static final String LABEL = "label";
 135:     static final String LEGEND = "legend";
 136:     static final String LI = "li";
 137:     static final String LINK = "link";
 138:     static final String MAP = "map";
 139:     static final String MENU = "menu";
 140:     static final String META = "meta";
 141:     static final String NOFRAMES = "noframes";
 142:     static final String NOSCRIPT = "noscript";
 143:     static final String NONES    = "none";
 144:     static final String sNAME    = "name";
 145:     static final String OBJECT = "object";
 146:     static final String OL = "ol";
 147:     static final String OPTGROUP = "optgroup";
 148:     static final String OPTION = "option";
 149:     static final String P = "p";
 150:     static final String PARAM = "param";
 151:     static final String PRE = "pre";
 152:     static final String Q = "q";
 153:     static final String S = "s";
 154:     static final String SAMP = "samp";
 155:     static final String SCRIPT = "script";
 156:     static final String SELECT = "select";
 157:     static final String SMALL = "small";
 158:     static final String SPAN = "span";
 159:     static final String STRIKE = "strike";
 160:     static final String STRONG = "strong";
 161:     static final String STYLE = "style";
 162:     static final String SUB = "sub";
 163:     static final String SUP = "sup";
 164:     static final String TABLE = "table";
 165:     static final String TBODY = "tbody";
 166:     static final String TD = "td";
 167:     static final String TEXTAREA = "textarea";
 168:     static final String TFOOT = "tfoot";
 169:     static final String TH = "th";
 170:     static final String THEAD = "thead";
 171:     static final String TITLE = "title";
 172:     static final String TR = "tr";
 173:     static final String TT = "tt";
 174:     static final String U = "u";
 175:     static final String UL = "ul";
 176:     static final String VAR = "var";
 177: 
 178:   /* Define the attribute constants. */
 179:     static final String C_0 = "0";
 180:     static final String C_1 = "1";
 181:     static final String CHECKBOX = "checkbox";
 182:     static final String DATA = "data";
 183:     static final String FILE = "file";
 184:     static final String GET = "get";
 185:     static final String HIDDEN = "hidden";
 186:     static final String IMAGE = "image";
 187:     static final String PASSWORD = "password";
 188:     static final String POST = "post";
 189:     static final String RADIO = "radio";
 190:     static final String REF = "ref";
 191:     static final String RESET = "reset";
 192:     static final String SUBMIT = "submit";
 193:     static final String TEXT = "text";
 194:     static final String ABOVE = "above";
 195:     static final String ACCEPT = "accept";
 196:     static final String ACCEPTCHARSET = "accept-charset";
 197:     static final String ACCESSKEY = "accesskey";
 198:     static final String ACTION = "action";
 199:     static final String ALIGN = "align";
 200:     static final String ALINK = "alink";
 201:     static final String ALL = "all";
 202:     static final String ALT = "alt";
 203:     static final String APPLICATION_X_WWW_FORM_URLENCODED
 204:      = "application/x-www-form-urlencoded";
 205:     static final String ARCHIVE = "archive";
 206:     static final String AUTO = "auto";
 207:     static final String AXIS = "axis";
 208:     static final String BACKGROUND = "background";
 209:     static final String BASELINE = "baseline";
 210:     static final String BELOW = "below";
 211:     static final String BGCOLOR = "bgcolor";
 212:     static final String BORDER = "border";
 213:     static final String BOTTOM = "bottom";
 214:     static final String BOX = "box";
 215:     static final String CELLPADDING = "cellpadding";
 216:     static final String CELLSPACING = "cellspacing";
 217:     static final String CHAR = "char";
 218:     static final String CHAROFF = "charoff";
 219:     static final String CHARSET = "charset";
 220:     static final String CHECKED = "checked";
 221:     static final String CIRCLE = "circle";
 222:     static final String CLASS = "class";
 223:     static final String CLASSID = "classid";
 224:     static final String CLEAR = "clear";
 225:     static final String CODEBASE = "codebase";
 226:     static final String CODETYPE = "codetype";
 227:     static final String COLOR = "color";
 228:     static final String COLS = "cols";
 229:     static final String COLSPAN = "colspan";
 230:     static final String COMPACT = "compact";
 231:     static final String CONTENT = "content";
 232:     static final String COORDS = "coords";
 233:     static final String DATAPAGESIZE = "datapagesize";
 234:     static final String DATETIME = "datetime";
 235:     static final String DECLARE = "declare";
 236:     static final String DEFER = "defer";
 237:     static final String DISABLED = "disabled";
 238:     static final String DISC = "disc";
 239:     static final String ENCTYPE = "enctype";
 240:     static final String EVENT = "event";
 241:     static final String FACE = "face";
 242:     static final String FOR = "for";
 243:     static final String FRAMEBORDER = "frameborder";
 244:     static final String GROUPS = "groups";
 245:     static final String HEADERS = "headers";
 246:     static final String HEIGHT = "height";
 247:     static final String HREF = "href";
 248:     static final String HREFLANG = "hreflang";
 249:     static final String HSIDES = "hsides";
 250:     static final String HSPACE = "hspace";
 251:     static final String HTTPEQUIV = "http-equiv";
 252:     static final String sID = "id";
 253:     static final String ISMAP = "ismap";
 254:     static final String JUSTIFY = "justify";
 255:     static final String LANG = "lang";
 256:     static final String LANGUAGE = "language";
 257:     static final String LEFT = "left";
 258:     static final String LHS = "lhs";
 259:     static final String LONGDESC = "longdesc";
 260:     static final String LTR = "ltr";
 261:     static final String MARGINHEIGHT = "marginheight";
 262:     static final String MARGINWIDTH = "marginwidth";
 263:     static final String MAXLENGTH = "maxlength";
 264:     static final String MEDIA = "media";
 265:     static final String METHOD = "method";
 266:     static final String MIDDLE = "middle";
 267:     static final String MULTIPLE = "multiple";
 268:     static final String NO = "no";
 269:     static final String NOHREF = "nohref";
 270:     static final String NORESIZE = "noresize";
 271:     static final String NOSHADE = "noshade";
 272:     static final String NOWRAP = "nowrap";
 273:     static final String ONBLUR = "onblur";
 274:     static final String ONCHANGE = "onchange";
 275:     static final String ONCLICK = "onclick";
 276:     static final String ONDBLCLICK = "ondblclick";
 277:     static final String ONFOCUS = "onfocus";
 278:     static final String ONKEYDOWN = "onkeydown";
 279:     static final String ONKEYPRESS = "onkeypress";
 280:     static final String ONKEYUP = "onkeyup";
 281:     static final String ONLOAD = "onload";
 282:     static final String ONMOUSEDOWN = "onmousedown";
 283:     static final String ONMOUSEMOVE = "onmousemove";
 284:     static final String ONMOUSEOUT = "onmouseout";
 285:     static final String ONMOUSEOVER = "onmouseover";
 286:     static final String ONMOUSEUP = "onmouseup";
 287:     static final String ONRESET = "onreset";
 288:     static final String ONSELECT = "onselect";
 289:     static final String ONSUBMIT = "onsubmit";
 290:     static final String ONUNLOAD = "onunload";
 291:     static final String POLY = "poly";
 292:     static final String PROFILE = "profile";
 293:     static final String PROMPT = "prompt";
 294:     static final String READONLY = "readonly";
 295:     static final String RECT = "rect";
 296:     static final String REL = "rel";
 297:     static final String REV = "rev";
 298:     static final String RHS = "rhs";
 299:     static final String RIGHT = "right";
 300:     static final String ROW = "row";
 301:     static final String ROWGROUP = "rowgroup";
 302:     static final String ROWS = "rows";
 303:     static final String ROWSPAN = "rowspan";
 304:     static final String RTL = "rtl";
 305:     static final String RULES = "rules";
 306:     static final String SCHEME = "scheme";
 307:     static final String SCOPE = "scope";
 308:     static final String SCROLLING = "scrolling";
 309:     static final String SELECTED = "selected";
 310:     static final String SHAPE = "shape";
 311:     static final String SIZE = "size";
 312:     static final String SQUARE = "square";
 313:     static final String SRC = "src";
 314:     static final String STANDBY = "standby";
 315:     static final String START = "start";
 316:     static final String SUMMARY = "summary";
 317:     static final String TABINDEX = "tabindex";
 318:     static final String TARGET = "target";
 319:     static final String TOP = "top";
 320:     static final String TYPE = "type";
 321:     static final String USEMAP = "usemap";
 322:     static final String VALIGN = "valign";
 323:     static final String VALUE = "value";
 324:     static final String VALUETYPE = "valuetype";
 325:     static final String VERSION = "version";
 326:     static final String VLINK = "vlink";
 327:     static final String VOID = "void";
 328:     static final String VSIDES = "vsides";
 329:     static final String VSPACE = "vspace";
 330:     static final String WIDTH = "width";
 331:     static final String YES = "yes";
 332: 
 333:     static final String[] BLOCK =
 334:     new String[] {
 335:       ADDRESS, BLOCKQUOTE, CENTER, DIR,
 336:       DIV, DL, FIELDSET, FORM,
 337:       H1, H2, H3, H4, H5, H6,
 338:       HR, ISINDEX, MENU, NOFRAMES, NOSCRIPT,
 339:       OL, P, PRE, TABLE, UL
 340:     };
 341: 
 342:    /**
 343:    * Creates this DTD, filling in the entities and attributes data
 344:    * as defined in -//W3C//DTD HTML 4.01 Frameset//EN.
 345:    */
 346:   protected HTML_401F()
 347:   {
 348:     super(DTD_NAME);
 349:     defineEntities();
 350:     defineElements();
 351:   }
 352: 
 353:   /**
 354:    * Either takes the document (by name) from DTD table, or
 355:    * creates a new instance and registers it in the tabe.
 356:    * The document is registerd under name "-//W3C//DTD HTML 4.01 Frameset//EN".
 357:    * @return The new or existing DTD for parsing HTML 4.01 Frameset.
 358:    */
 359:   public static DTD getInstance()
 360:   {
 361:     try
 362:       {
 363:         DTD dtd = getDTD(DTD_NAME);
 364:         if (dtd == null || dtd.getClass().equals(DTD.class))
 365:           {
 366:             dtd = new HTML_401F();
 367:             putDTDHash(DTD_NAME, dtd);
 368:           }
 369:         return dtd;
 370:       }
 371:     catch (IOException ex)
 372:       {
 373:         throw new Error("This should never happen. Report the bug.", ex);
 374:       }
 375:   }
 376: 
 377:   /**
 378:    * Define all elements of this DTD.
 379:    */
 380:   protected void defineElements()
 381:   {
 382:     /* Define the elements. */
 383:       defElement(PCDATA, 0, false, false, null, NONE, NONE,
 384:         new AttributeList[ 0 ]);
 385: 
 386:       defElement(A, 0, false, false, null,
 387:       new String[] {
 388:         A
 389:       }
 390:       ,
 391:       new String[] {
 392:         PCDATA, ABBR, ACRONYM, APPLET,
 393:         B, BASEFONT, BDO, BIG, BR,
 394:         BUTTON, CITE, CODE, DFN, EM,
 395:         FONT, I, IFRAME, IMG, INPUT,
 396:         KBD, LABEL, MAP, OBJECT, Q,
 397:         S, SAMP, SCRIPT, SELECT, SMALL,
 398:         SPAN, STRIKE, STRONG, SUB, SUP,
 399:         TEXTAREA, TT, U, VAR
 400:       }
 401:     ,
 402:       new AttributeList[] {
 403:         attr(sID, null, null, ID, IMPLIED),
 404:         attr(CLASS, null, null, 0, IMPLIED),
 405:         attr(STYLE, null, null, 0, IMPLIED),
 406:         attr(TITLE, null, null, 0, IMPLIED),
 407:         attr(LANG, null, null, 0, IMPLIED),
 408:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
 409:         attr(ONCLICK, null, null, 0, IMPLIED),
 410:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
 411:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
 412:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
 413:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
 414:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
 415:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
 416:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
 417:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
 418:         attr(ONKEYUP, null, null, 0, IMPLIED),
 419:         attr(CHARSET, null, null, 0, IMPLIED),
 420:         attr(TYPE, null, null, 0, IMPLIED),
 421:         attr(sNAME, null, null, 0, IMPLIED),
 422:         attr(HREF, null, null, 0, IMPLIED),
 423:         attr(HREFLANG, null, null, 0, IMPLIED),
 424:         attr(TARGET, null, null, 0, IMPLIED),
 425:         attr(REL, null, null, 0, IMPLIED),
 426:         attr(REV, null, null, 0, IMPLIED),
 427:         attr(ACCESSKEY, null, null, 0, IMPLIED),
 428:         attr(SHAPE, RECT,  new String[] { RECT, CIRCLE, POLY,  DEFAULTS },
 429:           0, DEFAULT),
 430:         attr(COORDS, null, null, 0, IMPLIED),
 431:         attr(TABINDEX, null, null, NUMBER, IMPLIED),
 432:         attr(ONFOCUS, null, null, 0, IMPLIED),
 433:         attr(ONBLUR, null, null, 0, IMPLIED)
 434:       }
 435:     );
 436:       defElement(ABBR, 0, false, false, null,
 437:       NONE
 438:       ,
 439:       new String[] {
 440:         PCDATA, A, ABBR, ACRONYM,
 441:         APPLET, B, BASEFONT, BDO, BIG,
 442:         BR, BUTTON, CITE, CODE, DFN,
 443:         EM, FONT, I, IFRAME, IMG,
 444:         INPUT, KBD, LABEL, MAP, OBJECT,
 445:         Q, S, SAMP, SCRIPT, SELECT,
 446:         SMALL, SPAN, STRIKE, STRONG, SUB,
 447:         SUP, TEXTAREA, TT, U, VAR
 448:       }
 449:     ,
 450:       new AttributeList[] {
 451:         attr(sID, null, null, ID, IMPLIED),
 452:         attr(CLASS, null, null, 0, IMPLIED),
 453:         attr(STYLE, null, null, 0, IMPLIED),
 454:         attr(TITLE, null, null, 0, IMPLIED),
 455:         attr(LANG, null, null, 0, IMPLIED),
 456:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
 457:         attr(ONCLICK, null, null, 0, IMPLIED),
 458:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
 459:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
 460:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
 461:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
 462:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
 463:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
 464:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
 465:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
 466:         attr(ONKEYUP, null, null, 0, IMPLIED)
 467:       }
 468:     );
 469:       defElement(ACRONYM, 0, false, false, null,
 470:       NONE
 471:       ,
 472:       new String[] {
 473:         PCDATA, A, ABBR, ACRONYM,
 474:         APPLET, B, BASEFONT, BDO, BIG,
 475:         BR, BUTTON, CITE, CODE, DFN,
 476:         EM, FONT, I, IFRAME, IMG,
 477:         INPUT, KBD, LABEL, MAP, OBJECT,
 478:         Q, S, SAMP, SCRIPT, SELECT,
 479:         SMALL, SPAN, STRIKE, STRONG, SUB,
 480:         SUP, TEXTAREA, TT, U, VAR
 481:       }
 482:     ,
 483:       new AttributeList[] {
 484:         attr(sID, null, null, ID, IMPLIED),
 485:         attr(CLASS, null, null, 0, IMPLIED),
 486:         attr(STYLE, null, null, 0, IMPLIED),
 487:         attr(TITLE, null, null, 0, IMPLIED),
 488:         attr(LANG, null, null, 0, IMPLIED),
 489:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
 490:         attr(ONCLICK, null, null, 0, IMPLIED),
 491:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
 492:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
 493:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
 494:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
 495:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
 496:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
 497:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
 498:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
 499:         attr(ONKEYUP, null, null, 0, IMPLIED)
 500:       }
 501:     );
 502:       defElement(ADDRESS, 0, false, false, null,
 503:       NONE
 504:       ,
 505:       new String[] {
 506:         PCDATA, A, ABBR, ACRONYM,
 507:         APPLET, B, BASEFONT, BDO, BIG,
 508:         BR, BUTTON, CITE, CODE, DFN,
 509:         EM, FONT, I, IFRAME, IMG,
 510:         INPUT, KBD, LABEL, MAP, OBJECT,
 511:         Q, S, SAMP, SCRIPT, SELECT,
 512:         SMALL, SPAN, STRIKE, STRONG, SUB,
 513:         SUP, TEXTAREA, TT, U, VAR,
 514:         P
 515:       }
 516:     ,
 517:       new AttributeList[] {
 518:         attr(sID, null, null, ID, IMPLIED),
 519:         attr(CLASS, null, null, 0, IMPLIED),
 520:         attr(STYLE, null, null, 0, IMPLIED),
 521:         attr(TITLE, null, null, 0, IMPLIED),
 522:         attr(LANG, null, null, 0, IMPLIED),
 523:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
 524:         attr(ONCLICK, null, null, 0, IMPLIED),
 525:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
 526:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
 527:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
 528:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
 529:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
 530:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
 531:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
 532:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
 533:         attr(ONKEYUP, null, null, 0, IMPLIED)
 534:       }
 535:     );
 536:       defElement(APPLET, 0, false, false, null,
 537:       NONE
 538:       ,
 539:       new String[] {
 540:         PCDATA, A, ABBR, ACRONYM,
 541:         APPLET, B, BASEFONT, BDO, BIG,
 542:         BR, BUTTON, CITE, CODE, DFN,
 543:         EM, FONT, I, IFRAME, IMG,
 544:         INPUT, KBD, LABEL, MAP, OBJECT,
 545:         Q, S, SAMP, SCRIPT, SELECT,
 546:         SMALL, SPAN, STRIKE, STRONG, SUB,
 547:         SUP, TEXTAREA, TT, U, VAR,
 548:         ADDRESS, BLOCKQUOTE, CENTER, DIR, DIV,
 549:         DL, FIELDSET, FORM, H1, H2,
 550:         H3, H4, H5, H6, HR,
 551:         ISINDEX, MENU, NOFRAMES, NOSCRIPT, OL,
 552:         P, PRE, TABLE, UL, PARAM
 553:       }
 554:     ,
 555:       new AttributeList[] {
 556:         attr(sID, null, null, ID, IMPLIED),
 557:         attr(CLASS, null, null, 0, IMPLIED),
 558:         attr(STYLE, null, null, 0, IMPLIED),
 559:         attr(TITLE, null, null, 0, IMPLIED),
 560:         attr(CODEBASE, null, null, 0, IMPLIED),
 561:         attr(ARCHIVE, null, null, 0, IMPLIED),
 562:         attr(CODE, null, null, 0, IMPLIED),
 563:         attr(OBJECT, null, null, 0, IMPLIED),
 564:         attr(ALT, null, null, 0, IMPLIED),
 565:         attr(sNAME, null, null, 0, IMPLIED),
 566:         attr(WIDTH, null, null, 0, REQUIRED),
 567:         attr(HEIGHT, null, null, 0, REQUIRED),
 568:         attr(ALIGN, null,  new String[] { TOP, MIDDLE, BOTTOM, LEFT, RIGHT },
 569:           0, IMPLIED),
 570:         attr(HSPACE, null, null, 0, IMPLIED),
 571:         attr(VSPACE, null, null, 0, IMPLIED)
 572:       }
 573:     );
 574:       defElement(AREA, EMPTY, false, true, null,
 575:       NONE
 576:       ,
 577:       NONE
 578:     ,
 579:       new AttributeList[] {
 580:         attr(sID, null, null, ID, IMPLIED),
 581:         attr(CLASS, null, null, 0, IMPLIED),
 582:         attr(STYLE, null, null, 0, IMPLIED),
 583:         attr(TITLE, null, null, 0, IMPLIED),
 584:         attr(LANG, null, null, 0, IMPLIED),
 585:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
 586:         attr(ONCLICK, null, null, 0, IMPLIED),
 587:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
 588:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
 589:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
 590:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
 591:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
 592:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
 593:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
 594:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
 595:         attr(ONKEYUP, null, null, 0, IMPLIED),
 596:         attr(SHAPE, RECT,  new String[] { RECT, CIRCLE, POLY, DEFAULTS },
 597:           0, DEFAULT),
 598:         attr(COORDS, null, null, 0, IMPLIED),
 599:         attr(HREF, null, null, 0, IMPLIED),
 600:         attr(TARGET, null, null, 0, IMPLIED),
 601:         attr(NOHREF, null,  new String[] { NOHREF }, 0, IMPLIED),
 602:         attr(ALT, null, null, 0, REQUIRED),
 603:         attr(TABINDEX, null, null, NUMBER, IMPLIED),
 604:         attr(ACCESSKEY, null, null, 0, IMPLIED),
 605:         attr(ONFOCUS, null, null, 0, IMPLIED),
 606:         attr(ONBLUR, null, null, 0, IMPLIED)
 607:       }
 608:     );
 609:       defElement(B, 0, false, false, null,
 610:       NONE
 611:       ,
 612:       new String[] {
 613:         PCDATA, A, ABBR, ACRONYM,
 614:         APPLET, B, BASEFONT, BDO, BIG,
 615:         BR, BUTTON, CITE, CODE, DFN,
 616:         EM, FONT, I, IFRAME, IMG,
 617:         INPUT, KBD, LABEL, MAP, OBJECT,
 618:         Q, S, SAMP, SCRIPT, SELECT,
 619:         SMALL, SPAN, STRIKE, STRONG, SUB,
 620:         SUP, TEXTAREA, TT, U, VAR
 621:       }
 622:     ,
 623:       new AttributeList[] {
 624:         attr(sID, null, null, ID, IMPLIED),
 625:         attr(CLASS, null, null, 0, IMPLIED),
 626:         attr(STYLE, null, null, 0, IMPLIED),
 627:         attr(TITLE, null, null, 0, IMPLIED),
 628:         attr(LANG, null, null, 0, IMPLIED),
 629:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
 630:         attr(ONCLICK, null, null, 0, IMPLIED),
 631:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
 632:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
 633:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
 634:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
 635:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
 636:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
 637:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
 638:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
 639:         attr(ONKEYUP, null, null, 0, IMPLIED)
 640:       }
 641:     );
 642:       defElement(BASE, EMPTY, false, true, null,
 643:       NONE
 644:       ,
 645:       NONE
 646:     ,
 647:       new AttributeList[] {
 648:         attr(HREF, null, null, 0, IMPLIED),
 649:         attr(TARGET, null, null, 0, IMPLIED)
 650:       }
 651:     );
 652:       defElement(BASEFONT, EMPTY, false, true, null,
 653:       NONE
 654:       ,
 655:       NONE
 656:     ,
 657:       new AttributeList[] {
 658:         attr(sID, null, null, ID, IMPLIED),
 659:         attr(SIZE, null, null, 0, REQUIRED),
 660:         attr(COLOR, null, null, 0, IMPLIED),
 661:         attr(FACE, null, null, 0, IMPLIED)
 662:       }
 663:     );
 664:       defElement(BDO, 0, false, false, null,
 665:       NONE
 666:       ,
 667:       new String[] {
 668:         PCDATA, A, ABBR, ACRONYM,
 669:         APPLET, B, BASEFONT, BDO, BIG,
 670:         BR, BUTTON, CITE, CODE, DFN,
 671:         EM, FONT, I, IFRAME, IMG,
 672:         INPUT, KBD, LABEL, MAP, OBJECT,
 673:         Q, S, SAMP, SCRIPT, SELECT,
 674:         SMALL, SPAN, STRIKE, STRONG, SUB,
 675:         SUP, TEXTAREA, TT, U, VAR
 676:       }
 677:     ,
 678:       new AttributeList[] {
 679:         attr(sID, null, null, ID, IMPLIED),
 680:         attr(CLASS, null, null, 0, IMPLIED),
 681:         attr(STYLE, null, null, 0, IMPLIED),
 682:         attr(TITLE, null, null, 0, IMPLIED),
 683:         attr(LANG, null, null, 0, IMPLIED),
 684:         attr(DIR, null,  new String[] { LTR, RTL }, 0, REQUIRED)
 685:       }
 686:     );
 687:       defElement(BIG, 0, false, false, null,
 688:       NONE
 689:       ,
 690:       new String[] {
 691:         PCDATA, A, ABBR, ACRONYM,
 692:         APPLET, B, BASEFONT, BDO, BIG,
 693:         BR, BUTTON, CITE, CODE, DFN,
 694:         EM, FONT, I, IFRAME, IMG,
 695:         INPUT, KBD, LABEL, MAP, OBJECT,
 696:         Q, S, SAMP, SCRIPT, SELECT,
 697:         SMALL, SPAN, STRIKE, STRONG, SUB,
 698:         SUP, TEXTAREA, TT, U, VAR
 699:       }
 700:     ,
 701:       new AttributeList[] {
 702:         attr(sID, null, null, ID, IMPLIED),
 703:         attr(CLASS, null, null, 0, IMPLIED),
 704:         attr(STYLE, null, null, 0, IMPLIED),
 705:         attr(TITLE, null, null, 0, IMPLIED),
 706:         attr(LANG, null, null, 0, IMPLIED),
 707:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
 708:         attr(ONCLICK, null, null, 0, IMPLIED),
 709:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
 710:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
 711:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
 712:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
 713:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
 714:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
 715:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
 716:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
 717:         attr(ONKEYUP, null, null, 0, IMPLIED)
 718:       }
 719:     );
 720:       defElement(BLOCKQUOTE, 0, false, false, null,
 721:       NONE
 722:       ,
 723:       new String[] {
 724:         PCDATA, A, ABBR, ACRONYM,
 725:         APPLET, B, BASEFONT, BDO, BIG,
 726:         BR, BUTTON, CITE, CODE, DFN,
 727:         EM, FONT, I, IFRAME, IMG,
 728:         INPUT, KBD, LABEL, MAP, OBJECT,
 729:         Q, S, SAMP, SCRIPT, SELECT,
 730:         SMALL, SPAN, STRIKE, STRONG, SUB,
 731:         SUP, TEXTAREA, TT, U, VAR,
 732:         ADDRESS, BLOCKQUOTE, CENTER, DIR, DIV,
 733:         DL, FIELDSET, FORM, H1, H2,
 734:         H3, H4, H5, H6, HR,
 735:         ISINDEX, MENU, NOFRAMES, NOSCRIPT, OL,
 736:         P, PRE, TABLE, UL
 737:       }
 738:     ,
 739:       new AttributeList[] {
 740:         attr(sID, null, null, ID, IMPLIED),
 741:         attr(CLASS, null, null, 0, IMPLIED),
 742:         attr(STYLE, null, null, 0, IMPLIED),
 743:         attr(TITLE, null, null, 0, IMPLIED),
 744:         attr(LANG, null, null, 0, IMPLIED),
 745:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
 746:         attr(ONCLICK, null, null, 0, IMPLIED),
 747:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
 748:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
 749:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
 750:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
 751:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
 752:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
 753:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
 754:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
 755:         attr(ONKEYUP, null, null, 0, IMPLIED),
 756:         attr(CITE, null, null, 0, IMPLIED)
 757:       }
 758:     );
 759:       defElement(BODY, 0, true, true, null,
 760:       NONE
 761:       ,
 762:       getBodyElements()
 763:       ,
 764:       new AttributeList[] {
 765:         attr(sID, null, null, ID, IMPLIED),
 766:         attr(CLASS, null, null, 0, IMPLIED),
 767:         attr(STYLE, null, null, 0, IMPLIED),
 768:         attr(TITLE, null, null, 0, IMPLIED),
 769:         attr(LANG, null, null, 0, IMPLIED),
 770:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
 771:         attr(ONCLICK, null, null, 0, IMPLIED),
 772:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
 773:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
 774:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
 775:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
 776:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
 777:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
 778:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
 779:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
 780:         attr(ONKEYUP, null, null, 0, IMPLIED),
 781:         attr(ONLOAD, null, null, 0, IMPLIED),
 782:         attr(ONUNLOAD, null, null, 0, IMPLIED),
 783:         attr(BACKGROUND, null, null, 0, IMPLIED),
 784:         attr(BGCOLOR, null, null, 0, IMPLIED),
 785:         attr(TEXT, null, null, 0, IMPLIED),
 786:         attr(LINK, null, null, 0, IMPLIED),
 787:         attr(VLINK, null, null, 0, IMPLIED),
 788:         attr(ALINK, null, null, 0, IMPLIED)
 789:       }
 790:     );
 791:       defElement(BR, EMPTY, false, true, null,
 792:       NONE
 793:       ,
 794:       NONE
 795:     ,
 796:       new AttributeList[] {
 797:         attr(sID, null, null, ID, IMPLIED),
 798:         attr(CLASS, null, null, 0, IMPLIED),
 799:         attr(STYLE, null, null, 0, IMPLIED),
 800:         attr(TITLE, null, null, 0, IMPLIED),
 801:         attr(CLEAR, "NONE",  new String[] { LEFT, ALL, RIGHT, NONES },
 802:           0, DEFAULT)
 803:       }
 804:     );
 805:       defElement(BUTTON, 0, false, false, null,
 806:       new String[] {
 807:         A, BUTTON, IFRAME, INPUT,
 808:         LABEL, SELECT, TEXTAREA, FIELDSET, FORM,
 809:         ISINDEX
 810:       }
 811:       ,
 812:       new String[] {
 813:         PCDATA, ABBR, ACRONYM, APPLET,
 814:         B, BASEFONT, BDO, BIG, BR,
 815:         CITE, CODE, DFN, EM, FONT,
 816:         I, IMG, KBD, MAP, OBJECT,
 817:         Q, S, SAMP, SCRIPT, SMALL,
 818:         SPAN, STRIKE, STRONG, SUB, SUP,
 819:         TT, U, VAR, ADDRESS, BLOCKQUOTE,
 820:         CENTER, DIR, DIV, DL, H1,
 821:         H2, H3, H4, H5, H6,
 822:         HR, MENU, NOFRAMES, NOSCRIPT, OL,
 823:         P, PRE, TABLE, UL
 824:       }
 825:     ,
 826:       new AttributeList[] {
 827:         attr(sID, null, null, ID, IMPLIED),
 828:         attr(CLASS, null, null, 0, IMPLIED),
 829:         attr(STYLE, null, null, 0, IMPLIED),
 830:         attr(TITLE, null, null, 0, IMPLIED),
 831:         attr(LANG, null, null, 0, IMPLIED),
 832:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
 833:         attr(ONCLICK, null, null, 0, IMPLIED),
 834:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
 835:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
 836:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
 837:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
 838:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
 839:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
 840:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
 841:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
 842:         attr(ONKEYUP, null, null, 0, IMPLIED),
 843:         attr(sNAME, null, null, 0, IMPLIED),
 844:         attr(VALUE, null, null, 0, IMPLIED),
 845:         attr(TYPE, SUBMIT,  new String[] { BUTTON, SUBMIT, RESET }, 0, DEFAULT),
 846:         attr(DISABLED, null,  new String[] { DISABLED }, 0, IMPLIED),
 847:         attr(TABINDEX, null, null, NUMBER, IMPLIED),
 848:         attr(ACCESSKEY, null, null, 0, IMPLIED),
 849:         attr(ONFOCUS, null, null, 0, IMPLIED),
 850:         attr(ONBLUR, null, null, 0, IMPLIED)
 851:       }
 852:     );
 853:       defElement(CAPTION, 0, false, false, null,
 854:       NONE
 855:       ,
 856:       new String[] {
 857:         PCDATA, A, ABBR, ACRONYM,
 858:         APPLET, B, BASEFONT, BDO, BIG,
 859:         BR, BUTTON, CITE, CODE, DFN,
 860:         EM, FONT, I, IFRAME, IMG,
 861:         INPUT, KBD, LABEL, MAP, OBJECT,
 862:         Q, S, SAMP, SCRIPT, SELECT,
 863:         SMALL, SPAN, STRIKE, STRONG, SUB,
 864:         SUP, TEXTAREA, TT, U, VAR
 865:       }
 866:     ,
 867:       new AttributeList[] {
 868:         attr(sID, null, null, ID, IMPLIED),
 869:         attr(CLASS, null, null, 0, IMPLIED),
 870:         attr(STYLE, null, null, 0, IMPLIED),
 871:         attr(TITLE, null, null, 0, IMPLIED),
 872:         attr(LANG, null, null, 0, IMPLIED),
 873:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
 874:         attr(ONCLICK, null, null, 0, IMPLIED),
 875:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
 876:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
 877:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
 878:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
 879:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
 880:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
 881:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
 882:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
 883:         attr(ONKEYUP, null, null, 0, IMPLIED),
 884:         attr(ALIGN, null,  new String[] { TOP, BOTTOM, LEFT, RIGHT },
 885:           0, IMPLIED)
 886:       }
 887:     );
 888:       defElement(CENTER, 0, false, false, null,
 889:       NONE
 890:       ,
 891:       new String[] {
 892:         PCDATA, A, ABBR, ACRONYM,
 893:         APPLET, B, BASEFONT, BDO, BIG,
 894:         BR, BUTTON, CITE, CODE, DFN,
 895:         EM, FONT, I, IFRAME, IMG,
 896:         INPUT, KBD, LABEL, MAP, OBJECT,
 897:         Q, S, SAMP, SCRIPT, SELECT,
 898:         SMALL, SPAN, STRIKE, STRONG, SUB,
 899:         SUP, TEXTAREA, TT, U, VAR,
 900:         ADDRESS, BLOCKQUOTE, CENTER, DIR, DIV,
 901:         DL, FIELDSET, FORM, H1, H2,
 902:         H3, H4, H5, H6, HR,
 903:         ISINDEX, MENU, NOFRAMES, NOSCRIPT, OL,
 904:         P, PRE, TABLE, UL
 905:       }
 906:     ,
 907:       new AttributeList[] {
 908:         attr(sID, null, null, ID, IMPLIED),
 909:         attr(CLASS, null, null, 0, IMPLIED),
 910:         attr(STYLE, null, null, 0, IMPLIED),
 911:         attr(TITLE, null, null, 0, IMPLIED),
 912:         attr(LANG, null, null, 0, IMPLIED),
 913:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
 914:         attr(ONCLICK, null, null, 0, IMPLIED),
 915:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
 916:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
 917:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
 918:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
 919:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
 920:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
 921:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
 922:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
 923:         attr(ONKEYUP, null, null, 0, IMPLIED)
 924:       }
 925:     );
 926:       defElement(CITE, 0, false, false, null,
 927:       NONE
 928:       ,
 929:       new String[] {
 930:         PCDATA, A, ABBR, ACRONYM,
 931:         APPLET, B, BASEFONT, BDO, BIG,
 932:         BR, BUTTON, CITE, CODE, DFN,
 933:         EM, FONT, I, IFRAME, IMG,
 934:         INPUT, KBD, LABEL, MAP, OBJECT,
 935:         Q, S, SAMP, SCRIPT, SELECT,
 936:         SMALL, SPAN, STRIKE, STRONG, SUB,
 937:         SUP, TEXTAREA, TT, U, VAR
 938:       }
 939:     ,
 940:       new AttributeList[] {
 941:         attr(sID, null, null, ID, IMPLIED),
 942:         attr(CLASS, null, null, 0, IMPLIED),
 943:         attr(STYLE, null, null, 0, IMPLIED),
 944:         attr(TITLE, null, null, 0, IMPLIED),
 945:         attr(LANG, null, null, 0, IMPLIED),
 946:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
 947:         attr(ONCLICK, null, null, 0, IMPLIED),
 948:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
 949:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
 950:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
 951:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
 952:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
 953:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
 954:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
 955:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
 956:         attr(ONKEYUP, null, null, 0, IMPLIED)
 957:       }
 958:     );
 959:       defElement(CODE, 0, false, false, null,
 960:       NONE
 961:       ,
 962:       new String[] {
 963:         PCDATA, A, ABBR, ACRONYM,
 964:         APPLET, B, BASEFONT, BDO, BIG,
 965:         BR, BUTTON, CITE, CODE, DFN,
 966:         EM, FONT, I, IFRAME, IMG,
 967:         INPUT, KBD, LABEL, MAP, OBJECT,
 968:         Q, S, SAMP, SCRIPT, SELECT,
 969:         SMALL, SPAN, STRIKE, STRONG, SUB,
 970:         SUP, TEXTAREA, TT, U, VAR
 971:       }
 972:     ,
 973:       new AttributeList[] {
 974:         attr(sID, null, null, ID, IMPLIED),
 975:         attr(CLASS, null, null, 0, IMPLIED),
 976:         attr(STYLE, null, null, 0, IMPLIED),
 977:         attr(TITLE, null, null, 0, IMPLIED),
 978:         attr(LANG, null, null, 0, IMPLIED),
 979:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
 980:         attr(ONCLICK, null, null, 0, IMPLIED),
 981:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
 982:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
 983:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
 984:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
 985:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
 986:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
 987:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
 988:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
 989:         attr(ONKEYUP, null, null, 0, IMPLIED)
 990:       }
 991:     );
 992:       defElement(COL, EMPTY, false, true, null,
 993:       NONE
 994:       ,
 995:       NONE
 996:     ,
 997:       new AttributeList[] {
 998:         attr(sID, null, null, ID, IMPLIED),
 999:         attr(CLASS, null, null, 0, IMPLIED),
1000:         attr(STYLE, null, null, 0, IMPLIED),
1001:         attr(TITLE, null, null, 0, IMPLIED),
1002:         attr(LANG, null, null, 0, IMPLIED),
1003:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1004:         attr(ONCLICK, null, null, 0, IMPLIED),
1005:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1006:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1007:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1008:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1009:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1010:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1011:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1012:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1013:         attr(ONKEYUP, null, null, 0, IMPLIED),
1014:         attr(SPAN, C_1, null, NUMBER, DEFAULT),
1015:         attr(WIDTH, null, null, 0, IMPLIED),
1016:         attr(ALIGN, null,  new String[] { LEFT, CENTER, RIGHT, JUSTIFY, CHAR },
1017:           0, IMPLIED),
1018:         attr(CHAR, null, null, 0, IMPLIED),
1019:         attr(CHAROFF, null, null, 0, IMPLIED),
1020:         attr(VALIGN, null,  new String[] { TOP, MIDDLE, BOTTOM, BASELINE },
1021:           0, IMPLIED)
1022:       }
1023:     );
1024:       defElement(COLGROUP, 0, false, true, null,
1025:       NONE
1026:       ,
1027:       new String[] {
1028:         COL
1029:       }
1030:     ,
1031:       new AttributeList[] {
1032:         attr(sID, null, null, ID, IMPLIED),
1033:         attr(CLASS, null, null, 0, IMPLIED),
1034:         attr(STYLE, null, null, 0, IMPLIED),
1035:         attr(TITLE, null, null, 0, IMPLIED),
1036:         attr(LANG, null, null, 0, IMPLIED),
1037:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1038:         attr(ONCLICK, null, null, 0, IMPLIED),
1039:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1040:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1041:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1042:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1043:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1044:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1045:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1046:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1047:         attr(ONKEYUP, null, null, 0, IMPLIED),
1048:         attr(SPAN, C_1, null, NUMBER, DEFAULT),
1049:         attr(WIDTH, null, null, 0, IMPLIED),
1050:         attr(ALIGN, null,  new String[] { LEFT, CENTER, RIGHT, JUSTIFY, CHAR },
1051:           0, IMPLIED),
1052:         attr(CHAR, null, null, 0, IMPLIED),
1053:         attr(CHAROFF, null, null, 0, IMPLIED),
1054:         attr(VALIGN, null,  new String[] { TOP, MIDDLE, BOTTOM, BASELINE },
1055:           0, IMPLIED)
1056:       }
1057:     );
1058:       defElement(DD, 0, false, true, new ContentModel(0,
1059:         new noTagModel( new String[] { DD, DT } ), null ),
1060:       NONE
1061:       ,
1062:       new String[] {
1063:         PCDATA, A, ABBR, ACRONYM,
1064:         APPLET, B, BASEFONT, BDO, BIG,
1065:         BR, BUTTON, CITE, CODE, DFN,
1066:         EM, FONT, I, IFRAME, IMG,
1067:         INPUT, KBD, LABEL, MAP, OBJECT,
1068:         Q, S, SAMP, SCRIPT, SELECT,
1069:         SMALL, SPAN, STRIKE, STRONG, SUB,
1070:         SUP, TEXTAREA, TT, U, VAR,
1071:         ADDRESS, BLOCKQUOTE, CENTER, DIR, DIV,
1072:         DL, FIELDSET, FORM, H1, H2,
1073:         H3, H4, H5, H6, HR,
1074:         ISINDEX, MENU, NOFRAMES, NOSCRIPT, OL,
1075:         P, PRE, TABLE, UL
1076:       }
1077:     ,
1078:       new AttributeList[] {
1079:         attr(sID, null, null, ID, IMPLIED),
1080:         attr(CLASS, null, null, 0, IMPLIED),
1081:         attr(STYLE, null, null, 0, IMPLIED),
1082:         attr(TITLE, null, null, 0, IMPLIED),
1083:         attr(LANG, null, null, 0, IMPLIED),
1084:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1085:         attr(ONCLICK, null, null, 0, IMPLIED),
1086:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1087:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1088:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1089:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1090:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1091:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1092:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1093:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1094:         attr(ONKEYUP, null, null, 0, IMPLIED)
1095:       }
1096:     );
1097:       defElement(DEL, 0, false, false, null,
1098:       NONE
1099:       ,
1100:       new String[] {
1101:         PCDATA, A, ABBR, ACRONYM,
1102:         APPLET, B, BASEFONT, BDO, BIG,
1103:         BR, BUTTON, CITE, CODE, DFN,
1104:         EM, FONT, I, IFRAME, IMG,
1105:         INPUT, KBD, LABEL, MAP, OBJECT,
1106:         Q, S, SAMP, SCRIPT, SELECT,
1107:         SMALL, SPAN, STRIKE, STRONG, SUB,
1108:         SUP, TEXTAREA, TT, U, VAR,
1109:         ADDRESS, BLOCKQUOTE, CENTER, DIR, DIV,
1110:         DL, FIELDSET, FORM, H1, H2,
1111:         H3, H4, H5, H6, HR,
1112:         ISINDEX, MENU, NOFRAMES, NOSCRIPT, OL,
1113:         P, PRE, TABLE, UL
1114:       }
1115:     ,
1116:       new AttributeList[] {
1117:         attr(sID, null, null, ID, IMPLIED),
1118:         attr(CLASS, null, null, 0, IMPLIED),
1119:         attr(STYLE, null, null, 0, IMPLIED),
1120:         attr(TITLE, null, null, 0, IMPLIED),
1121:         attr(LANG, null, null, 0, IMPLIED),
1122:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1123:         attr(ONCLICK, null, null, 0, IMPLIED),
1124:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1125:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1126:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1127:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1128:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1129:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1130:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1131:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1132:         attr(ONKEYUP, null, null, 0, IMPLIED),
1133:         attr(CITE, null, null, 0, IMPLIED),
1134:         attr(DATETIME, null, null, 0, IMPLIED)
1135:       }
1136:     );
1137:       defElement(DFN, 0, false, false, null,
1138:       NONE
1139:       ,
1140:       new String[] {
1141:         PCDATA, A, ABBR, ACRONYM,
1142:         APPLET, B, BASEFONT, BDO, BIG,
1143:         BR, BUTTON, CITE, CODE, DFN,
1144:         EM, FONT, I, IFRAME, IMG,
1145:         INPUT, KBD, LABEL, MAP, OBJECT,
1146:         Q, S, SAMP, SCRIPT, SELECT,
1147:         SMALL, SPAN, STRIKE, STRONG, SUB,
1148:         SUP, TEXTAREA, TT, U, VAR
1149:       }
1150:     ,
1151:       new AttributeList[] {
1152:         attr(sID, null, null, ID, IMPLIED),
1153:         attr(CLASS, null, null, 0, IMPLIED),
1154:         attr(STYLE, null, null, 0, IMPLIED),
1155:         attr(TITLE, null, null, 0, IMPLIED),
1156:         attr(LANG, null, null, 0, IMPLIED),
1157:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1158:         attr(ONCLICK, null, null, 0, IMPLIED),
1159:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1160:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1161:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1162:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1163:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1164:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1165:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1166:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1167:         attr(ONKEYUP, null, null, 0, IMPLIED)
1168:       }
1169:     );
1170:       defElement(DIR, 0, false, false, createListModel(),
1171:       new String[] {
1172:         ADDRESS, BLOCKQUOTE, CENTER, DIR,
1173:         DIV, DL, FIELDSET, FORM, H1,
1174:         H2, H3, H4, H5, H6,
1175:         HR, ISINDEX, MENU, NOFRAMES, NOSCRIPT,
1176:         OL, P, PRE, TABLE, UL
1177:       }
1178:       ,
1179:       new String[] {
1180:         LI, UL, OL
1181:       }
1182:     ,
1183:       new AttributeList[] {
1184:         attr(sID, null, null, ID, IMPLIED),
1185:         attr(CLASS, null, null, 0, IMPLIED),
1186:         attr(STYLE, null, null, 0, IMPLIED),
1187:         attr(TITLE, null, null, 0, IMPLIED),
1188:         attr(LANG, null, null, 0, IMPLIED),
1189:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1190:         attr(ONCLICK, null, null, 0, IMPLIED),
1191:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1192:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1193:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1194:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1195:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1196:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1197:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1198:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1199:         attr(ONKEYUP, null, null, 0, IMPLIED),
1200:         attr(COMPACT, null,  new String[] { COMPACT }, 0, IMPLIED)
1201:       }
1202:     );
1203:       defElement(DIV, 0, false, false, null,
1204:       NONE
1205:       ,
1206:       new String[] {
1207:         PCDATA, A, ABBR, ACRONYM,
1208:         APPLET, B, BASEFONT, BDO, BIG,
1209:         BR, BUTTON, CITE, CODE, DFN,
1210:         EM, FONT, I, IFRAME, IMG,
1211:         INPUT, KBD, LABEL, MAP, OBJECT,
1212:         Q, S, SAMP, SCRIPT, SELECT,
1213:         SMALL, SPAN, STRIKE, STRONG, SUB,
1214:         SUP, TEXTAREA, TT, U, VAR,
1215:         ADDRESS, BLOCKQUOTE, CENTER, DIR, DIV,
1216:         DL, FIELDSET, FORM, H1, H2,
1217:         H3, H4, H5, H6, HR,
1218:         ISINDEX, MENU, NOFRAMES, NOSCRIPT, OL,
1219:         P, PRE, TABLE, UL
1220:       }
1221:     ,
1222:       new AttributeList[] {
1223:         attr(sID, null, null, ID, IMPLIED),
1224:         attr(CLASS, null, null, 0, IMPLIED),
1225:         attr(STYLE, null, null, 0, IMPLIED),
1226:         attr(TITLE, null, null, 0, IMPLIED),
1227:         attr(LANG, null, null, 0, IMPLIED),
1228:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1229:         attr(ONCLICK, null, null, 0, IMPLIED),
1230:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1231:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1232:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1233:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1234:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1235:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1236:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1237:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1238:         attr(ONKEYUP, null, null, 0, IMPLIED),
1239:         attr(ALIGN, null,  new String[] { LEFT, CENTER, RIGHT, JUSTIFY },
1240:           0, IMPLIED)
1241:       }
1242:     );
1243:       defElement(DL, 0, false, false, createDefListModel(),
1244:       NONE
1245:       ,
1246:       new String[] {
1247:         DD, DT
1248:       }
1249:     ,
1250:       new AttributeList[] {
1251:         attr(sID, null, null, ID, IMPLIED),
1252:         attr(CLASS, null, null, 0, IMPLIED),
1253:         attr(STYLE, null, null, 0, IMPLIED),
1254:         attr(TITLE, null, null, 0, IMPLIED),
1255:         attr(LANG, null, null, 0, IMPLIED),
1256:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1257:         attr(ONCLICK, null, null, 0, IMPLIED),
1258:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1259:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1260:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1261:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1262:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1263:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1264:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1265:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1266:         attr(ONKEYUP, null, null, 0, IMPLIED),
1267:         attr(COMPACT, null,  new String[] { COMPACT }, 0, IMPLIED)
1268:       }
1269:     );
1270:       defElement(DT, 0, false, true,
1271:         new ContentModel(0,
1272:          new noTagModel( new String[] { DT, DD } ), null),
1273:         BLOCK
1274:       ,
1275:       new String[] {
1276:         PCDATA, A, ABBR, ACRONYM,
1277:         APPLET, B, BASEFONT, BDO, BIG,
1278:         BR, BUTTON, CITE, CODE, DFN,
1279:         EM, FONT, I, IFRAME, IMG,
1280:         INPUT, KBD, LABEL, MAP, OBJECT,
1281:         Q, S, SAMP, SCRIPT, SELECT,
1282:         SMALL, SPAN, STRIKE, STRONG, SUB,
1283:         SUP, TEXTAREA, TT, U, VAR
1284:       }
1285:     ,
1286:       new AttributeList[] {
1287:         attr(sID, null, null, ID, IMPLIED),
1288:         attr(CLASS, null, null, 0, IMPLIED),
1289:         attr(STYLE, null, null, 0, IMPLIED),
1290:         attr(TITLE, null, null, 0, IMPLIED),
1291:         attr(LANG, null, null, 0, IMPLIED),
1292:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1293:         attr(ONCLICK, null, null, 0, IMPLIED),
1294:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1295:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1296:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1297:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1298:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1299:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1300:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1301:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1302:         attr(ONKEYUP, null, null, 0, IMPLIED)
1303:       }
1304:     );
1305:       defElement(EM, 0, false, false, null,
1306:       NONE
1307:       ,
1308:       new String[] {
1309:         PCDATA, A, ABBR, ACRONYM,
1310:         APPLET, B, BASEFONT, BDO, BIG,
1311:         BR, BUTTON, CITE, CODE, DFN,
1312:         EM, FONT, I, IFRAME, IMG,
1313:         INPUT, KBD, LABEL, MAP, OBJECT,
1314:         Q, S, SAMP, SCRIPT, SELECT,
1315:         SMALL, SPAN, STRIKE, STRONG, SUB,
1316:         SUP, TEXTAREA, TT, U, VAR
1317:       }
1318:     ,
1319:       new AttributeList[] {
1320:         attr(sID, null, null, ID, IMPLIED),
1321:         attr(CLASS, null, null, 0, IMPLIED),
1322:         attr(STYLE, null, null, 0, IMPLIED),
1323:         attr(TITLE, null, null, 0, IMPLIED),
1324:         attr(LANG, null, null, 0, IMPLIED),
1325:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1326:         attr(ONCLICK, null, null, 0, IMPLIED),
1327:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1328:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1329:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1330:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1331:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1332:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1333:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1334:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1335:         attr(ONKEYUP, null, null, 0, IMPLIED)
1336:       }
1337:     );
1338:       defElement(FIELDSET, 0, false, false, null,
1339:       NONE
1340:       ,
1341:       new String[] {
1342:         PCDATA, A, ABBR, ACRONYM,
1343:         APPLET, B, BASEFONT, BDO, BIG,
1344:         BR, BUTTON, CITE, CODE, DFN,
1345:         EM, FONT, I, IFRAME, IMG,
1346:         INPUT, KBD, LABEL, MAP, OBJECT,
1347:         Q, S, SAMP, SCRIPT, SELECT,
1348:         SMALL, SPAN, STRIKE, STRONG, SUB,
1349:         SUP, TEXTAREA, TT, U, VAR,
1350:         ADDRESS, BLOCKQUOTE, CENTER, DIR, DIV,
1351:         DL, FIELDSET, FORM, H1, H2,
1352:         H3, H4, H5, H6, HR,
1353:         ISINDEX, MENU, NOFRAMES, NOSCRIPT, OL,
1354:         P, PRE, TABLE, UL, LEGEND
1355:       }
1356:     ,
1357:       new AttributeList[] {
1358:         attr(sID, null, null, ID, IMPLIED),
1359:         attr(CLASS, null, null, 0, IMPLIED),
1360:         attr(STYLE, null, null, 0, IMPLIED),
1361:         attr(TITLE, null, null, 0, IMPLIED),
1362:         attr(LANG, null, null, 0, IMPLIED),
1363:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1364:         attr(ONCLICK, null, null, 0, IMPLIED),
1365:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1366:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1367:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1368:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1369:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1370:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1371:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1372:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1373:         attr(ONKEYUP, null, null, 0, IMPLIED)
1374:       }
1375:     );
1376:       defElement(FONT, 0, false, false, null,
1377:       NONE
1378:       ,
1379:       new String[] {
1380:         PCDATA, A, ABBR, ACRONYM,
1381:         APPLET, B, BASEFONT, BDO, BIG,
1382:         BR, BUTTON, CITE, CODE, DFN,
1383:         EM, FONT, I, IFRAME, IMG,
1384:         INPUT, KBD, LABEL, MAP, OBJECT,
1385:         Q, S, SAMP, SCRIPT, SELECT,
1386:         SMALL, SPAN, STRIKE, STRONG, SUB,
1387:         SUP, TEXTAREA, TT, U, VAR
1388:       }
1389:     ,
1390:       new AttributeList[] {
1391:         attr(sID, null, null, ID, IMPLIED),
1392:         attr(CLASS, null, null, 0, IMPLIED),
1393:         attr(STYLE, null, null, 0, IMPLIED),
1394:         attr(TITLE, null, null, 0, IMPLIED),
1395:         attr(LANG, null, null, 0, IMPLIED),
1396:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1397:         attr(SIZE, null, null, 0, IMPLIED),
1398:         attr(COLOR, null, null, 0, IMPLIED),
1399:         attr(FACE, null, null, 0, IMPLIED)
1400:       }
1401:     );
1402:       defElement(FORM, 0, false, false, null,
1403:       new String[] {
1404:         FORM
1405:       }
1406:       ,
1407:       new String[] {
1408:         PCDATA, A, ABBR, ACRONYM,
1409:         APPLET, B, BASEFONT, BDO, BIG,
1410:         BR, BUTTON, CITE, CODE, DFN,
1411:         EM, FONT, I, IFRAME, IMG,
1412:         INPUT, KBD, LABEL, MAP, OBJECT,
1413:         Q, S, SAMP, SCRIPT, SELECT,
1414:         SMALL, SPAN, STRIKE, STRONG, SUB,
1415:         SUP, TEXTAREA, TT, U, VAR,
1416:         ADDRESS, BLOCKQUOTE, CENTER, DIR, DIV,
1417:         DL, FIELDSET, H1, H2, H3,
1418:         H4, H5, H6, HR, ISINDEX,
1419:         MENU, NOFRAMES, NOSCRIPT, OL, P,
1420:         PRE, TABLE, UL
1421:       }
1422:     ,
1423:       new AttributeList[] {
1424:         attr(sID, null, null, ID, IMPLIED),
1425:         attr(CLASS, null, null, 0, IMPLIED),
1426:         attr(STYLE, null, null, 0, IMPLIED),
1427:         attr(TITLE, null, null, 0, IMPLIED),
1428:         attr(LANG, null, null, 0, IMPLIED),
1429:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1430:         attr(ONCLICK, null, null, 0, IMPLIED),
1431:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1432:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1433:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1434:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1435:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1436:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1437:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1438:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1439:         attr(ONKEYUP, null, null, 0, IMPLIED),
1440:         attr(ACTION, null, null, 0, REQUIRED),
1441:         attr(METHOD, GET,  new String[] { GET, POST }, 0, DEFAULT),
1442:         attr(ENCTYPE, APPLICATION_X_WWW_FORM_URLENCODED, null, 0, DEFAULT),
1443:         attr(ACCEPT, null, null, 0, IMPLIED),
1444:         attr(sNAME, null, null, 0, IMPLIED),
1445:         attr(ONSUBMIT, null, null, 0, IMPLIED),
1446:         attr(ONRESET, null, null, 0, IMPLIED),
1447:         attr(TARGET, null, null, 0, IMPLIED),
1448:         attr(ACCEPTCHARSET, null, null, 0, IMPLIED)
1449:       }
1450:     );
1451:       defElement(FRAME, EMPTY, false, true, null,
1452:       NONE
1453:       ,
1454:       NONE
1455:     ,
1456:       new AttributeList[] {
1457:         attr(sID, null, null, ID, IMPLIED),
1458:         attr(CLASS, null, null, 0, IMPLIED),
1459:         attr(STYLE, null, null, 0, IMPLIED),
1460:         attr(TITLE, null, null, 0, IMPLIED),
1461:         attr(LONGDESC, null, null, 0, IMPLIED),
1462:         attr(sNAME, null, null, 0, IMPLIED),
1463:         attr(SRC, null, null, 0, IMPLIED),
1464:         attr(FRAMEBORDER, C_1,  new String[] { C_1, C_0 }, 0, DEFAULT),
1465:         attr(MARGINWIDTH, null, null, PIXELS, IMPLIED),
1466:         attr(MARGINHEIGHT, null, null, PIXELS, IMPLIED),
1467:         attr(NORESIZE, null,  new String[] { NORESIZE }, 0, IMPLIED),
1468:         attr(SCROLLING, AUTO,  new String[] { YES, NO, AUTO }, 0, DEFAULT)
1469:       }
1470:     );
1471:       defElement(FRAMESET, 0, false, false, null,
1472:       NONE
1473:       ,
1474:       new String[] {
1475:         NOFRAMES, FRAME, FRAMESET
1476:       }
1477:     ,
1478:       new AttributeList[] {
1479:         attr(sID, null, null, ID, IMPLIED),
1480:         attr(CLASS, null, null, 0, IMPLIED),
1481:         attr(STYLE, null, null, 0, IMPLIED),
1482:         attr(TITLE, null, null, 0, IMPLIED),
1483:         attr(ROWS, null, null, 0, IMPLIED),
1484:         attr(COLS, null, null, 0, IMPLIED),
1485:         attr(ONLOAD, null, null, 0, IMPLIED),
1486:         attr(ONUNLOAD, null, null, 0, IMPLIED)
1487:       }
1488:     );
1489:       defElement(H1, 0, false, false, null,
1490:       NONE
1491:       ,
1492:       new String[] {
1493:         PCDATA, A, ABBR, ACRONYM,
1494:         APPLET, B, BASEFONT, BDO, BIG,
1495:         BR, BUTTON, CITE, CODE, DFN,
1496:         EM, FONT, I, IFRAME, IMG,
1497:         INPUT, KBD, LABEL, MAP, OBJECT,
1498:         Q, S, SAMP, SCRIPT, SELECT,
1499:         SMALL, SPAN, STRIKE, STRONG, SUB,
1500:         SUP, TEXTAREA, TT, U, VAR
1501:       }
1502:     ,
1503:       new AttributeList[] {
1504:         attr(sID, null, null, ID, IMPLIED),
1505:         attr(CLASS, null, null, 0, IMPLIED),
1506:         attr(STYLE, null, null, 0, IMPLIED),
1507:         attr(TITLE, null, null, 0, IMPLIED),
1508:         attr(LANG, null, null, 0, IMPLIED),
1509:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1510:         attr(ONCLICK, null, null, 0, IMPLIED),
1511:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1512:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1513:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1514:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1515:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1516:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1517:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1518:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1519:         attr(ONKEYUP, null, null, 0, IMPLIED),
1520:         attr(ALIGN, null,  new String[] { LEFT, CENTER, RIGHT, JUSTIFY },
1521:           0, IMPLIED)
1522:       }
1523:     );
1524:       defElement(H2, 0, false, false, null,
1525:       NONE
1526:       ,
1527:       new String[] {
1528:         PCDATA, A, ABBR, ACRONYM,
1529:         APPLET, B, BASEFONT, BDO, BIG,
1530:         BR, BUTTON, CITE, CODE, DFN,
1531:         EM, FONT, I, IFRAME, IMG,
1532:         INPUT, KBD, LABEL, MAP, OBJECT,
1533:         Q, S, SAMP, SCRIPT, SELECT,
1534:         SMALL, SPAN, STRIKE, STRONG, SUB,
1535:         SUP, TEXTAREA, TT, U, VAR
1536:       }
1537:     ,
1538:       new AttributeList[] {
1539:         attr(sID, null, null, ID, IMPLIED),
1540:         attr(CLASS, null, null, 0, IMPLIED),
1541:         attr(STYLE, null, null, 0, IMPLIED),
1542:         attr(TITLE, null, null, 0, IMPLIED),
1543:         attr(LANG, null, null, 0, IMPLIED),
1544:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1545:         attr(ONCLICK, null, null, 0, IMPLIED),
1546:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1547:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1548:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1549:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1550:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1551:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1552:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1553:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1554:         attr(ONKEYUP, null, null, 0, IMPLIED),
1555:         attr(ALIGN, null,  new String[] { LEFT, CENTER, RIGHT, JUSTIFY },
1556:           0, IMPLIED)
1557:       }
1558:     );
1559:       defElement(H3, 0, false, false, null,
1560:       NONE
1561:       ,
1562:       new String[] {
1563:         PCDATA, A, ABBR, ACRONYM,
1564:         APPLET, B, BASEFONT, BDO, BIG,
1565:         BR, BUTTON, CITE, CODE, DFN,
1566:         EM, FONT, I, IFRAME, IMG,
1567:         INPUT, KBD, LABEL, MAP, OBJECT,
1568:         Q, S, SAMP, SCRIPT, SELECT,
1569:         SMALL, SPAN, STRIKE, STRONG, SUB,
1570:         SUP, TEXTAREA, TT, U, VAR
1571:       }
1572:     ,
1573:       new AttributeList[] {
1574:         attr(sID, null, null, ID, IMPLIED),
1575:         attr(CLASS, null, null, 0, IMPLIED),
1576:         attr(STYLE, null, null, 0, IMPLIED),
1577:         attr(TITLE, null, null, 0, IMPLIED),
1578:         attr(LANG, null, null, 0, IMPLIED),
1579:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1580:         attr(ONCLICK, null, null, 0, IMPLIED),
1581:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1582:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1583:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1584:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1585:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1586:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1587:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1588:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1589:         attr(ONKEYUP, null, null, 0, IMPLIED),
1590:         attr(ALIGN, null,  new String[] { LEFT, CENTER, RIGHT, JUSTIFY },
1591:           0, IMPLIED)
1592:       }
1593:     );
1594:       defElement(H4, 0, false, false, null,
1595:       NONE
1596:       ,
1597:       new String[] {
1598:         PCDATA, A, ABBR, ACRONYM,
1599:         APPLET, B, BASEFONT, BDO, BIG,
1600:         BR, BUTTON, CITE, CODE, DFN,
1601:         EM, FONT, I, IFRAME, IMG,
1602:         INPUT, KBD, LABEL, MAP, OBJECT,
1603:         Q, S, SAMP, SCRIPT, SELECT,
1604:         SMALL, SPAN, STRIKE, STRONG, SUB,
1605:         SUP, TEXTAREA, TT, U, VAR
1606:       }
1607:     ,
1608:       new AttributeList[] {
1609:         attr(sID, null, null, ID, IMPLIED),
1610:         attr(CLASS, null, null, 0, IMPLIED),
1611:         attr(STYLE, null, null, 0, IMPLIED),
1612:         attr(TITLE, null, null, 0, IMPLIED),
1613:         attr(LANG, null, null, 0, IMPLIED),
1614:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1615:         attr(ONCLICK, null, null, 0, IMPLIED),
1616:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1617:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1618:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1619:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1620:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1621:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1622:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1623:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1624:         attr(ONKEYUP, null, null, 0, IMPLIED),
1625:         attr(ALIGN, null,  new String[] { LEFT, CENTER, RIGHT, JUSTIFY },
1626:           0, IMPLIED)
1627:       }
1628:     );
1629:       defElement(H5, 0, false, false, null,
1630:       NONE
1631:       ,
1632:       new String[] {
1633:         PCDATA, A, ABBR, ACRONYM,
1634:         APPLET, B, BASEFONT, BDO, BIG,
1635:         BR, BUTTON, CITE, CODE, DFN,
1636:         EM, FONT, I, IFRAME, IMG,
1637:         INPUT, KBD, LABEL, MAP, OBJECT,
1638:         Q, S, SAMP, SCRIPT, SELECT,
1639:         SMALL, SPAN, STRIKE, STRONG, SUB,
1640:         SUP, TEXTAREA, TT, U, VAR
1641:       }
1642:     ,
1643:       new AttributeList[] {
1644:         attr(sID, null, null, ID, IMPLIED),
1645:         attr(CLASS, null, null, 0, IMPLIED),
1646:         attr(STYLE, null, null, 0, IMPLIED),
1647:         attr(TITLE, null, null, 0, IMPLIED),
1648:         attr(LANG, null, null, 0, IMPLIED),
1649:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1650:         attr(ONCLICK, null, null, 0, IMPLIED),
1651:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1652:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1653:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1654:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1655:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1656:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1657:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1658:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1659:         attr(ONKEYUP, null, null, 0, IMPLIED),
1660:         attr(ALIGN, null,  new String[] { LEFT, CENTER, RIGHT, JUSTIFY },
1661:           0, IMPLIED)
1662:       }
1663:     );
1664:       defElement(H6, 0, false, false, null,
1665:       NONE
1666:       ,
1667:       new String[] {
1668:         PCDATA, A, ABBR, ACRONYM,
1669:         APPLET, B, BASEFONT, BDO, BIG,
1670:         BR, BUTTON, CITE, CODE, DFN,
1671:         EM, FONT, I, IFRAME, IMG,
1672:         INPUT, KBD, LABEL, MAP, OBJECT,
1673:         Q, S, SAMP, SCRIPT, SELECT,
1674:         SMALL, SPAN, STRIKE, STRONG, SUB,
1675:         SUP, TEXTAREA, TT, U, VAR
1676:       }
1677:     ,
1678:       new AttributeList[] {
1679:         attr(sID, null, null, ID, IMPLIED),
1680:         attr(CLASS, null, null, 0, IMPLIED),
1681:         attr(STYLE, null, null, 0, IMPLIED),
1682:         attr(TITLE, null, null, 0, IMPLIED),
1683:         attr(LANG, null, null, 0, IMPLIED),
1684:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1685:         attr(ONCLICK, null, null, 0, IMPLIED),
1686:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1687:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1688:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1689:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1690:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1691:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1692:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1693:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1694:         attr(ONKEYUP, null, null, 0, IMPLIED),
1695:         attr(ALIGN, null,  new String[] { LEFT, CENTER, RIGHT, JUSTIFY },
1696:           0, IMPLIED)
1697:       }
1698:     );
1699:       defElement(HEAD, 0, true, true, null,
1700:       new String[] {
1701:         BODY
1702:       }
1703:       ,
1704:       new String[] {
1705:        TITLE, ISINDEX, BASE,
1706:        SCRIPT, STYLE, META, LINK, OBJECT
1707:       }
1708:     ,
1709:       new AttributeList[] {
1710:         attr(LANG, null, null, 0, IMPLIED),
1711:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1712:         attr(PROFILE, null, null, 0, IMPLIED)
1713:       }
1714:     );
1715: 
1716:       defElement(HR, EMPTY, false, true, null,
1717:       NONE
1718:       ,
1719:       NONE
1720:     ,
1721:       new AttributeList[] {
1722:         attr(sID, null, null, ID, IMPLIED),
1723:         attr(CLASS, null, null, 0, IMPLIED),
1724:         attr(STYLE, null, null, 0, IMPLIED),
1725:         attr(TITLE, null, null, 0, IMPLIED),
1726:         attr(LANG, null, null, 0, IMPLIED),
1727:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1728:         attr(ONCLICK, null, null, 0, IMPLIED),
1729:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1730:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1731:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1732:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1733:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1734:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1735:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1736:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1737:         attr(ONKEYUP, null, null, 0, IMPLIED),
1738:         attr(ALIGN, null,  new String[] { LEFT, CENTER, RIGHT }, 0, IMPLIED),
1739:         attr(NOSHADE, null,  new String[] { NOSHADE }, 0, IMPLIED),
1740:         attr(SIZE, null, null, 0, IMPLIED),
1741:         attr(WIDTH, null, null, 0, IMPLIED)
1742:       }
1743:     );
1744:       defElement(HTML, 0, true, true, createHtmlContentModel(),
1745:       NONE
1746:       ,
1747:       new String[] {
1748:         HEAD, BODY
1749:       }
1750:     ,
1751:       new AttributeList[] {
1752:         attr(LANG, null, null, 0, IMPLIED),
1753:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1754:         attr(VERSION, DTD_NAME, null, 0, FIXED)
1755:       }
1756:     );
1757:       defElement(I, 0, false, false, null,
1758:       NONE
1759:       ,
1760:       new String[] {
1761:         PCDATA, A, ABBR, ACRONYM,
1762:         APPLET, B, BASEFONT, BDO, BIG,
1763:         BR, BUTTON, CITE, CODE, DFN,
1764:         EM, FONT, I, IFRAME, IMG,
1765:         INPUT, KBD, LABEL, MAP, OBJECT,
1766:         Q, S, SAMP, SCRIPT, SELECT,
1767:         SMALL, SPAN, STRIKE, STRONG, SUB,
1768:         SUP, TEXTAREA, TT, U, VAR
1769:       }
1770:     ,
1771:       new AttributeList[] {
1772:         attr(sID, null, null, ID, IMPLIED),
1773:         attr(CLASS, null, null, 0, IMPLIED),
1774:         attr(STYLE, null, null, 0, IMPLIED),
1775:         attr(TITLE, null, null, 0, IMPLIED),
1776:         attr(LANG, null, null, 0, IMPLIED),
1777:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1778:         attr(ONCLICK, null, null, 0, IMPLIED),
1779:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1780:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1781:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1782:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1783:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1784:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1785:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1786:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1787:         attr(ONKEYUP, null, null, 0, IMPLIED)
1788:       }
1789:     );
1790:       defElement(IFRAME, 0, false, false, null,
1791:       NONE
1792:       ,
1793:       new String[] {
1794:         PCDATA, A, ABBR, ACRONYM,
1795:         APPLET, B, BASEFONT, BDO, BIG,
1796:         BR, BUTTON, CITE, CODE, DFN,
1797:         EM, FONT, I, IFRAME, IMG,
1798:         INPUT, KBD, LABEL, MAP, OBJECT,
1799:         Q, S, SAMP, SCRIPT, SELECT,
1800:         SMALL, SPAN, STRIKE, STRONG, SUB,
1801:         SUP, TEXTAREA, TT, U, VAR,
1802:         ADDRESS, BLOCKQUOTE, CENTER, DIR, DIV,
1803:         DL, FIELDSET, FORM, H1, H2,
1804:         H3, H4, H5, H6, HR,
1805:         ISINDEX, MENU, NOFRAMES, NOSCRIPT, OL,
1806:         P, PRE, TABLE, UL
1807:       }
1808:     ,
1809:       new AttributeList[] {
1810:         attr(sID, null, null, ID, IMPLIED),
1811:         attr(CLASS, null, null, 0, IMPLIED),
1812:         attr(STYLE, null, null, 0, IMPLIED),
1813:         attr(TITLE, null, null, 0, IMPLIED),
1814:         attr(LONGDESC, null, null, 0, IMPLIED),
1815:         attr(sNAME, null, null, 0, IMPLIED),
1816:         attr(SRC, null, null, 0, IMPLIED),
1817:         attr(FRAMEBORDER, C_1,  new String[] { C_1, C_0 }, 0, DEFAULT),
1818:         attr(MARGINWIDTH, null, null, PIXELS, IMPLIED),
1819:         attr(MARGINHEIGHT, null, null, PIXELS, IMPLIED),
1820:         attr(SCROLLING, AUTO,  new String[] { YES, NO, AUTO }, 0, DEFAULT),
1821:         attr(ALIGN, null,  new String[] { TOP, MIDDLE, BOTTOM, LEFT, RIGHT },
1822:           0, IMPLIED),
1823:         attr(HEIGHT, null, null, 0, IMPLIED),
1824:         attr(WIDTH, null, null, 0, IMPLIED)
1825:       }
1826:     );
1827:       defElement(IMG, EMPTY, false, true, null,
1828:       NONE
1829:       ,
1830:       NONE
1831:     ,
1832:       new AttributeList[] {
1833:         attr(sID, null, null, ID, IMPLIED),
1834:         attr(CLASS, null, null, 0, IMPLIED),
1835:         attr(STYLE, null, null, 0, IMPLIED),
1836:         attr(TITLE, null, null, 0, IMPLIED),
1837:         attr(LANG, null, null, 0, IMPLIED),
1838:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1839:         attr(ONCLICK, null, null, 0, IMPLIED),
1840:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1841:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1842:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1843:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1844:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1845:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1846:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1847:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1848:         attr(ONKEYUP, null, null, 0, IMPLIED),
1849:         attr(SRC, null, null, 0, REQUIRED),
1850:         attr(ALT, null, null, 0, REQUIRED),
1851:         attr(LONGDESC, null, null, 0, IMPLIED),
1852:         attr(sNAME, null, null, 0, IMPLIED),
1853:         attr(HEIGHT, null, null, 0, IMPLIED),
1854:         attr(WIDTH, null, null, 0, IMPLIED),
1855:         attr(USEMAP, null, null, 0, IMPLIED),
1856:         attr(ISMAP, null,  new String[] { ISMAP }, 0, IMPLIED),
1857:         attr(ALIGN, null,  new String[] { TOP, MIDDLE, BOTTOM, LEFT, RIGHT },
1858:           0, IMPLIED),
1859:         attr(BORDER, null, null, PIXELS, IMPLIED),
1860:         attr(HSPACE, null, null, 0, IMPLIED),
1861:         attr(VSPACE, null, null, 0, IMPLIED)
1862:       }
1863:     );
1864:       defElement(INPUT, EMPTY, false, true, null,
1865:       NONE
1866:       ,
1867:       NONE
1868:     ,
1869:       new AttributeList[] {
1870:         attr(sID, null, null, ID, IMPLIED),
1871:         attr(CLASS, null, null, 0, IMPLIED),
1872:         attr(STYLE, null, null, 0, IMPLIED),
1873:         attr(TITLE, null, null, 0, IMPLIED),
1874:         attr(LANG, null, null, 0, IMPLIED),
1875:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1876:         attr(ONCLICK, null, null, 0, IMPLIED),
1877:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1878:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1879:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1880:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1881:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1882:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1883:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1884:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1885:         attr(ONKEYUP, null, null, 0, IMPLIED),
1886:         attr(TYPE, TEXT,  new String[] { TEXT, PASSWORD, CHECKBOX, RADIO,
1887:           SUBMIT, RESET, FILE, HIDDEN, IMAGE, BUTTON }, 0, DEFAULT),
1888:         attr(sNAME, null, null, 0, IMPLIED),
1889:         attr(VALUE, null, null, 0, IMPLIED),
1890:         attr(CHECKED, null,  new String[] { CHECKED }, 0, IMPLIED),
1891:         attr(DISABLED, null,  new String[] { DISABLED }, 0, IMPLIED),
1892:         attr(READONLY, null,  new String[] { READONLY }, 0, IMPLIED),
1893:         attr(SIZE, null, null, 0, IMPLIED),
1894:         attr(MAXLENGTH, null, null, 0, IMPLIED),
1895:         attr(SRC, null, null, 0, IMPLIED),
1896:         attr(ALT, null, null, 0, IMPLIED),
1897:         attr(USEMAP, null, null, 0, IMPLIED),
1898:         attr(ISMAP, null,  new String[] { ISMAP }, 0, IMPLIED),
1899:         attr(TABINDEX, null, null, NUMBER, IMPLIED),
1900:         attr(ACCESSKEY, null, null, 0, IMPLIED),
1901:         attr(ONFOCUS, null, null, 0, IMPLIED),
1902:         attr(ONBLUR, null, null, 0, IMPLIED),
1903:         attr(ONSELECT, null, null, 0, IMPLIED),
1904:         attr(ONCHANGE, null, null, 0, IMPLIED),
1905:         attr(ACCEPT, null, null, 0, IMPLIED),
1906:         attr(ALIGN, null,  new String[] { TOP, MIDDLE, BOTTOM, LEFT, RIGHT },
1907:           0, IMPLIED)
1908:       }
1909:     );
1910:       defElement(INS, 0, false, false, null,
1911:       NONE
1912:       ,
1913:       new String[] {
1914:         PCDATA, A, ABBR, ACRONYM,
1915:         APPLET, B, BASEFONT, BDO, BIG,
1916:         BR, BUTTON, CITE, CODE, DFN,
1917:         EM, FONT, I, IFRAME, IMG,
1918:         INPUT, KBD, LABEL, MAP, OBJECT,
1919:         Q, S, SAMP, SCRIPT, SELECT,
1920:         SMALL, SPAN, STRIKE, STRONG, SUB,
1921:         SUP, TEXTAREA, TT, U, VAR,
1922:         ADDRESS, BLOCKQUOTE, CENTER, DIR, DIV,
1923:         DL, FIELDSET, FORM, H1, H2,
1924:         H3, H4, H5, H6, HR,
1925:         ISINDEX, MENU, NOFRAMES, NOSCRIPT, OL,
1926:         P, PRE, TABLE, UL
1927:       }
1928:     ,
1929:       new AttributeList[] {
1930:         attr(sID, null, null, ID, IMPLIED),
1931:         attr(CLASS, null, null, 0, IMPLIED),
1932:         attr(STYLE, null, null, 0, IMPLIED),
1933:         attr(TITLE, null, null, 0, IMPLIED),
1934:         attr(LANG, null, null, 0, IMPLIED),
1935:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1936:         attr(ONCLICK, null, null, 0, IMPLIED),
1937:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1938:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1939:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1940:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1941:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1942:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1943:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1944:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1945:         attr(ONKEYUP, null, null, 0, IMPLIED),
1946:         attr(CITE, null, null, 0, IMPLIED),
1947:         attr(DATETIME, null, null, 0, IMPLIED)
1948:       }
1949:     );
1950:       defElement(ISINDEX, EMPTY, false, true, null,
1951:       NONE
1952:       ,
1953:       NONE
1954:     ,
1955:       new AttributeList[] {
1956:         attr(sID, null, null, ID, IMPLIED),
1957:         attr(CLASS, null, null, 0, IMPLIED),
1958:         attr(STYLE, null, null, 0, IMPLIED),
1959:         attr(TITLE, null, null, 0, IMPLIED),
1960:         attr(LANG, null, null, 0, IMPLIED),
1961:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1962:         attr(PROMPT, null, null, 0, IMPLIED)
1963:       }
1964:     );
1965:       defElement(KBD, 0, false, false, null,
1966:       NONE
1967:       ,
1968:       new String[] {
1969:         PCDATA, A, ABBR, ACRONYM,
1970:         APPLET, B, BASEFONT, BDO, BIG,
1971:         BR, BUTTON, CITE, CODE, DFN,
1972:         EM, FONT, I, IFRAME, IMG,
1973:         INPUT, KBD, LABEL, MAP, OBJECT,
1974:         Q, S, SAMP, SCRIPT, SELECT,
1975:         SMALL, SPAN, STRIKE, STRONG, SUB,
1976:         SUP, TEXTAREA, TT, U, VAR
1977:       }
1978:     ,
1979:       new AttributeList[] {
1980:         attr(sID, null, null, ID, IMPLIED),
1981:         attr(CLASS, null, null, 0, IMPLIED),
1982:         attr(STYLE, null, null, 0, IMPLIED),
1983:         attr(TITLE, null, null, 0, IMPLIED),
1984:         attr(LANG, null, null, 0, IMPLIED),
1985:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
1986:         attr(ONCLICK, null, null, 0, IMPLIED),
1987:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
1988:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
1989:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
1990:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
1991:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
1992:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
1993:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
1994:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
1995:         attr(ONKEYUP, null, null, 0, IMPLIED)
1996:       }
1997:     );
1998:       defElement(LABEL, 0, false, false, null,
1999:       new String[] {
2000:         LABEL
2001:       }
2002:       ,
2003:       new String[] {
2004:         PCDATA, A, ABBR, ACRONYM,
2005:         APPLET, B, BASEFONT, BDO, BIG,
2006:         BR, BUTTON, CITE, CODE, DFN,
2007:         EM, FONT, I, IFRAME, IMG,
2008:         INPUT, KBD, MAP, OBJECT, Q,
2009:         S, SAMP, SCRIPT, SELECT, SMALL,
2010:         SPAN, STRIKE, STRONG, SUB, SUP,
2011:         TEXTAREA, TT, U, VAR
2012:       }
2013:     ,
2014:       new AttributeList[] {
2015:         attr(sID, null, null, ID, IMPLIED),
2016:         attr(CLASS, null, null, 0, IMPLIED),
2017:         attr(STYLE, null, null, 0, IMPLIED),
2018:         attr(TITLE, null, null, 0, IMPLIED),
2019:         attr(LANG, null, null, 0, IMPLIED),
2020:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2021:         attr(ONCLICK, null, null, 0, IMPLIED),
2022:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2023:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2024:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2025:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2026:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2027:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2028:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2029:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2030:         attr(ONKEYUP, null, null, 0, IMPLIED),
2031:         attr(FOR, null, null, 0, IMPLIED),
2032:         attr(ACCESSKEY, null, null, 0, IMPLIED),
2033:         attr(ONFOCUS, null, null, 0, IMPLIED),
2034:         attr(ONBLUR, null, null, 0, IMPLIED)
2035:       }
2036:     );
2037:       defElement(LEGEND, 0, false, false, null,
2038:       NONE
2039:       ,
2040:       new String[] {
2041:         PCDATA, A, ABBR, ACRONYM,
2042:         APPLET, B, BASEFONT, BDO, BIG,
2043:         BR, BUTTON, CITE, CODE, DFN,
2044:         EM, FONT, I, IFRAME, IMG,
2045:         INPUT, KBD, LABEL, MAP, OBJECT,
2046:         Q, S, SAMP, SCRIPT, SELECT,
2047:         SMALL, SPAN, STRIKE, STRONG, SUB,
2048:         SUP, TEXTAREA, TT, U, VAR
2049:       }
2050:     ,
2051:       new AttributeList[] {
2052:         attr(sID, null, null, ID, IMPLIED),
2053:         attr(CLASS, null, null, 0, IMPLIED),
2054:         attr(STYLE, null, null, 0, IMPLIED),
2055:         attr(TITLE, null, null, 0, IMPLIED),
2056:         attr(LANG, null, null, 0, IMPLIED),
2057:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2058:         attr(ONCLICK, null, null, 0, IMPLIED),
2059:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2060:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2061:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2062:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2063:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2064:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2065:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2066:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2067:         attr(ONKEYUP, null, null, 0, IMPLIED),
2068:         attr(ACCESSKEY, null, null, 0, IMPLIED),
2069:         attr(ALIGN, null,  new String[] { TOP, BOTTOM, LEFT, RIGHT },
2070:           0, IMPLIED)
2071:       }
2072:     );
2073:       // LI has a special content model that will be resolved into
2074:       // by transformer.
2075:       defElement(LI, 0, false, true,
2076:         new ContentModel(0,
2077:           new noTagModel(LI), null),
2078:       NONE
2079:       ,
2080:       new String[] {
2081:         PCDATA, A, ABBR, ACRONYM,
2082:         APPLET, B, BASEFONT, BDO, BIG,
2083:         BR, BUTTON, CITE, CODE, DFN,
2084:         EM, FONT, I, IFRAME, IMG,
2085:         INPUT, KBD, LABEL, MAP, OBJECT,
2086:         Q, S, SAMP, SCRIPT, SELECT,
2087:         SMALL, SPAN, STRIKE, STRONG, SUB,
2088:         SUP, TEXTAREA, TT, U, VAR,
2089:         ADDRESS, BLOCKQUOTE, CENTER, DIR, DIV,
2090:         DL, FIELDSET, FORM, H1, H2,
2091:         H3, H4, H5, H6, HR,
2092:         ISINDEX, MENU, NOFRAMES, NOSCRIPT, OL,
2093:         P, PRE, TABLE, UL
2094:       }
2095:     ,
2096:       new AttributeList[] {
2097:         attr(sID, null, null, ID, IMPLIED),
2098:         attr(CLASS, null, null, 0, IMPLIED),
2099:         attr(STYLE, null, null, 0, IMPLIED),
2100:         attr(TITLE, null, null, 0, IMPLIED),
2101:         attr(LANG, null, null, 0, IMPLIED),
2102:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2103:         attr(ONCLICK, null, null, 0, IMPLIED),
2104:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2105:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2106:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2107:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2108:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2109:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2110:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2111:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2112:         attr(ONKEYUP, null, null, 0, IMPLIED),
2113:         attr(TYPE, null, null, 0, IMPLIED),
2114:         attr(VALUE, null, null, NUMBER, IMPLIED)
2115:       }
2116:     );
2117:       defElement(LINK, EMPTY, false, true, null,
2118:       NONE
2119:       ,
2120:       NONE
2121:     ,
2122:       new AttributeList[] {
2123:         attr(sID, null, null, ID, IMPLIED),
2124:         attr(CLASS, null, null, 0, IMPLIED),
2125:         attr(STYLE, null, null, 0, IMPLIED),
2126:         attr(TITLE, null, null, 0, IMPLIED),
2127:         attr(LANG, null, null, 0, IMPLIED),
2128:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2129:         attr(ONCLICK, null, null, 0, IMPLIED),
2130:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2131:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2132:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2133:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2134:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2135:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2136:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2137:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2138:         attr(ONKEYUP, null, null, 0, IMPLIED),
2139:         attr(CHARSET, null, null, 0, IMPLIED),
2140:         attr(HREF, null, null, 0, IMPLIED),
2141:         attr(HREFLANG, null, null, 0, IMPLIED),
2142:         attr(TYPE, null, null, 0, IMPLIED),
2143:         attr(REL, null, null, 0, IMPLIED),
2144:         attr(REV, null, null, 0, IMPLIED),
2145:         attr(MEDIA, null, null, 0, IMPLIED),
2146:         attr(TARGET, null, null, 0, IMPLIED)
2147:       }
2148:     );
2149:       defElement(MAP, 0, false, false, null,
2150:       NONE
2151:       ,
2152:       new String[] {
2153:         ADDRESS, BLOCKQUOTE, CENTER, DIR,
2154:         DIV, DL, FIELDSET, FORM, H1,
2155:         H2, H3, H4, H5, H6,
2156:         HR, ISINDEX, MENU, NOFRAMES, NOSCRIPT,
2157:         OL, P, PRE, TABLE, UL,
2158:         AREA
2159:       }
2160:     ,
2161:       new AttributeList[] {
2162:         attr(sID, null, null, ID, IMPLIED),
2163:         attr(CLASS, null, null, 0, IMPLIED),
2164:         attr(STYLE, null, null, 0, IMPLIED),
2165:         attr(TITLE, null, null, 0, IMPLIED),
2166:         attr(LANG, null, null, 0, IMPLIED),
2167:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2168:         attr(ONCLICK, null, null, 0, IMPLIED),
2169:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2170:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2171:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2172:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2173:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2174:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2175:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2176:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2177:         attr(ONKEYUP, null, null, 0, IMPLIED),
2178:         attr(sNAME, null, null, 0, REQUIRED)
2179:       }
2180:     );
2181:       defElement(MENU, 0, false, false, createListModel(),
2182:       new String[] {
2183:         ADDRESS, BLOCKQUOTE, CENTER, DIR,
2184:         DIV, DL, FIELDSET, FORM, H1,
2185:         H2, H3, H4, H5, H6,
2186:         HR, ISINDEX, MENU, NOFRAMES, NOSCRIPT,
2187:         OL, P, PRE, TABLE, UL
2188:       }
2189:       ,
2190:       new String[] {
2191:         LI, UL, OL
2192:       }
2193:     ,
2194:       new AttributeList[] {
2195:         attr(sID, null, null, ID, IMPLIED),
2196:         attr(CLASS, null, null, 0, IMPLIED),
2197:         attr(STYLE, null, null, 0, IMPLIED),
2198:         attr(TITLE, null, null, 0, IMPLIED),
2199:         attr(LANG, null, null, 0, IMPLIED),
2200:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2201:         attr(ONCLICK, null, null, 0, IMPLIED),
2202:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2203:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2204:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2205:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2206:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2207:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2208:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2209:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2210:         attr(ONKEYUP, null, null, 0, IMPLIED),
2211:         attr(COMPACT, null,  new String[] { COMPACT }, 0, IMPLIED)
2212:       }
2213:     );
2214:       defElement(META, EMPTY, false, true, null,
2215:       NONE
2216:       ,
2217:       NONE
2218:     ,
2219:       new AttributeList[] {
2220:         attr(LANG, null, null, 0, IMPLIED),
2221:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2222:         attr(HTTPEQUIV, null, null, 0, IMPLIED),
2223:         attr(sNAME, null, null, NAME, IMPLIED),
2224:         attr(CONTENT, null, null, 0, REQUIRED),
2225:         attr(SCHEME, null, null, 0, IMPLIED)
2226:       }
2227:     );
2228:       defElement(NOFRAMES, 0, false, false, null,
2229:       NONE
2230:       ,
2231:       new String[] {
2232:         PCDATA, A, ABBR, ACRONYM,
2233:         APPLET, B, BASEFONT, BDO, BIG,
2234:         BR, BUTTON, CITE, CODE, DFN,
2235:         EM, FONT, I, IFRAME, IMG,
2236:         INPUT, KBD, LABEL, MAP, OBJECT,
2237:         Q, S, SAMP, SCRIPT, SELECT,
2238:         SMALL, SPAN, STRIKE, STRONG, SUB,
2239:         SUP, TEXTAREA, TT, U, VAR,
2240:         ADDRESS, BLOCKQUOTE, CENTER, DIR, DIV,
2241:         DL, FIELDSET, FORM, H1, H2,
2242:         H3, H4, H5, H6, HR,
2243:         ISINDEX, MENU, NOFRAMES, NOSCRIPT, OL,
2244:         P, PRE, TABLE, UL
2245:       }
2246:     ,
2247:       new AttributeList[] {
2248:         attr(sID, null, null, ID, IMPLIED),
2249:         attr(CLASS, null, null, 0, IMPLIED),
2250:         attr(STYLE, null, null, 0, IMPLIED),
2251:         attr(TITLE, null, null, 0, IMPLIED),
2252:         attr(LANG, null, null, 0, IMPLIED),
2253:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2254:         attr(ONCLICK, null, null, 0, IMPLIED),
2255:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2256:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2257:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2258:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2259:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2260:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2261:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2262:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2263:         attr(ONKEYUP, null, null, 0, IMPLIED)
2264:       }
2265:     );
2266:       defElement(NOSCRIPT, 0, false, false, null,
2267:       NONE
2268:       ,
2269:       new String[] {
2270:         PCDATA, A, ABBR, ACRONYM,
2271:         APPLET, B, BASEFONT, BDO, BIG,
2272:         BR, BUTTON, CITE, CODE, DFN,
2273:         EM, FONT, I, IFRAME, IMG,
2274:         INPUT, KBD, LABEL, MAP, OBJECT,
2275:         Q, S, SAMP, SCRIPT, SELECT,
2276:         SMALL, SPAN, STRIKE, STRONG, SUB,
2277:         SUP, TEXTAREA, TT, U, VAR,
2278:         ADDRESS, BLOCKQUOTE, CENTER, DIR, DIV,
2279:         DL, FIELDSET, FORM, H1, H2,
2280:         H3, H4, H5, H6, HR,
2281:         ISINDEX, MENU, NOFRAMES, NOSCRIPT, OL,
2282:         P, PRE, TABLE, UL
2283:       }
2284:     ,
2285:       new AttributeList[] {
2286:         attr(sID, null, null, ID, IMPLIED),
2287:         attr(CLASS, null, null, 0, IMPLIED),
2288:         attr(STYLE, null, null, 0, IMPLIED),
2289:         attr(TITLE, null, null, 0, IMPLIED),
2290:         attr(LANG, null, null, 0, IMPLIED),
2291:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2292:         attr(ONCLICK, null, null, 0, IMPLIED),
2293:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2294:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2295:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2296:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2297:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2298:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2299:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2300:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2301:         attr(ONKEYUP, null, null, 0, IMPLIED)
2302:       }
2303:     );
2304:       defElement(OBJECT, 0, false, false, null,
2305:       NONE
2306:       ,
2307:       new String[] {
2308:         PCDATA, A, ABBR, ACRONYM,
2309:         APPLET, B, BASEFONT, BDO, BIG,
2310:         BR, BUTTON, CITE, CODE, DFN,
2311:         EM, FONT, I, IFRAME, IMG,
2312:         INPUT, KBD, LABEL, MAP, OBJECT,
2313:         Q, S, SAMP, SCRIPT, SELECT,
2314:         SMALL, SPAN, STRIKE, STRONG, SUB,
2315:         SUP, TEXTAREA, TT, U, VAR,
2316:         ADDRESS, BLOCKQUOTE, CENTER, DIR, DIV,
2317:         DL, FIELDSET, FORM, H1, H2,
2318:         H3, H4, H5, H6, HR,
2319:         ISINDEX, MENU, NOFRAMES, NOSCRIPT, OL,
2320:         P, PRE, TABLE, UL, PARAM
2321:       }
2322:     ,
2323:       new AttributeList[] {
2324:         attr(sID, null, null, ID, IMPLIED),
2325:         attr(CLASS, null, null, 0, IMPLIED),
2326:         attr(STYLE, null, null, 0, IMPLIED),
2327:         attr(TITLE, null, null, 0, IMPLIED),
2328:         attr(LANG, null, null, 0, IMPLIED),
2329:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2330:         attr(ONCLICK, null, null, 0, IMPLIED),
2331:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2332:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2333:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2334:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2335:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2336:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2337:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2338:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2339:         attr(ONKEYUP, null, null, 0, IMPLIED),
2340:         attr(DECLARE, null,  new String[] { DECLARE }, 0, IMPLIED),
2341:         attr(CLASSID, null, null, 0, IMPLIED),
2342:         attr(CODEBASE, null, null, 0, IMPLIED),
2343:         attr(DATA, null, null, 0, IMPLIED),
2344:         attr(TYPE, null, null, 0, IMPLIED),
2345:         attr(CODETYPE, null, null, 0, IMPLIED),
2346:         attr(ARCHIVE, null, null, 0, IMPLIED),
2347:         attr(STANDBY, null, null, 0, IMPLIED),
2348:         attr(HEIGHT, null, null, 0, IMPLIED),
2349:         attr(WIDTH, null, null, 0, IMPLIED),
2350:         attr(USEMAP, null, null, 0, IMPLIED),
2351:         attr(sNAME, null, null, 0, IMPLIED),
2352:         attr(TABINDEX, null, null, NUMBER, IMPLIED),
2353:         attr(ALIGN, null,  new String[] { TOP, MIDDLE, BOTTOM, LEFT, RIGHT },
2354:           0, IMPLIED),
2355:         attr(BORDER, null, null, PIXELS, IMPLIED),
2356:         attr(HSPACE, null, null, 0, IMPLIED),
2357:         attr(VSPACE, null, null, 0, IMPLIED)
2358:       }
2359:     );
2360:       defElement(OL, 0, false, false, createListModel(),
2361:       NONE
2362:       ,
2363:       new String[] {
2364:       // See note on the createListModel method
2365:       LI, UL, OL
2366:       }
2367:     ,
2368:       new AttributeList[] {
2369:         attr(sID, null, null, ID, IMPLIED),
2370:         attr(CLASS, null, null, 0, IMPLIED),
2371:         attr(STYLE, null, null, 0, IMPLIED),
2372:         attr(TITLE, null, null, 0, IMPLIED),
2373:         attr(LANG, null, null, 0, IMPLIED),
2374:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2375:         attr(ONCLICK, null, null, 0, IMPLIED),
2376:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2377:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2378:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2379:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2380:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2381:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2382:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2383:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2384:         attr(ONKEYUP, null, null, 0, IMPLIED),
2385:         attr(TYPE, null, null, 0, IMPLIED),
2386:         attr(COMPACT, null,  new String[] { COMPACT }, 0, IMPLIED),
2387:         attr(START, null, null, 0, IMPLIED)
2388:       }
2389:     );
2390:       defElement(OPTGROUP, 0, false, false, null,
2391:       NONE
2392:       ,
2393:       new String[] {
2394:         OPTION
2395:       }
2396:     ,
2397:       new AttributeList[] {
2398:         attr(sID, null, null, ID, IMPLIED),
2399:         attr(CLASS, null, null, 0, IMPLIED),
2400:         attr(STYLE, null, null, 0, IMPLIED),
2401:         attr(TITLE, null, null, 0, IMPLIED),
2402:         attr(LANG, null, null, 0, IMPLIED),
2403:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2404:         attr(ONCLICK, null, null, 0, IMPLIED),
2405:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2406:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2407:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2408:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2409:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2410:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2411:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2412:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2413:         attr(ONKEYUP, null, null, 0, IMPLIED),
2414:         attr(DISABLED, null,  new String[] { DISABLED }, 0, IMPLIED),
2415:         attr(LABEL, null, null, 0, REQUIRED)
2416:       }
2417:     );
2418:       defElement(OPTION, 0, false, true, new ContentModel(0,
2419:        new PCDATAonly_model(), null),
2420:        NONE,
2421:        new String[] {
2422:          PCDATA
2423:        }
2424:       ,
2425:       new AttributeList[] {
2426:         attr(sID, null, null, ID, IMPLIED),
2427:         attr(CLASS, null, null, 0, IMPLIED),
2428:         attr(STYLE, null, null, 0, IMPLIED),
2429:         attr(TITLE, null, null, 0, IMPLIED),
2430:         attr(LANG, null, null, 0, IMPLIED),
2431:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2432:         attr(ONCLICK, null, null, 0, IMPLIED),
2433:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2434:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2435:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2436:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2437:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2438:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2439:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2440:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2441:         attr(ONKEYUP, null, null, 0, IMPLIED),
2442:         attr(SELECTED, null,  new String[] { SELECTED }, 0, IMPLIED),
2443:         attr(DISABLED, null,  new String[] { DISABLED }, 0, IMPLIED),
2444:         attr(LABEL, null, null, 0, IMPLIED),
2445:         attr(VALUE, null, null, 0, IMPLIED)
2446:       }
2447:     );
2448:       defElement(P, 0, false, true, new ContentModel( 0,
2449:        new noTagModel(P), null),
2450:       NONE
2451:       ,
2452:       new String[] {
2453:         PCDATA, A, ABBR, ACRONYM,
2454:         APPLET, B, BASEFONT, BDO, BIG,
2455:         BR, BUTTON, CITE, CODE, DFN,
2456:         EM, FONT, I, IFRAME, IMG,
2457:         INPUT, KBD, LABEL, MAP, OBJECT,
2458:         Q, S, SAMP, SCRIPT, SELECT,
2459:         SMALL, SPAN, STRIKE, STRONG, SUB,
2460:         SUP, TEXTAREA, TT, U, VAR
2461:       }
2462:     ,
2463:       new AttributeList[] {
2464:         attr(sID, null, null, ID, IMPLIED),
2465:         attr(CLASS, null, null, 0, IMPLIED),
2466:         attr(STYLE, null, null, 0, IMPLIED),
2467:         attr(TITLE, null, null, 0, IMPLIED),
2468:         attr(LANG, null, null, 0, IMPLIED),
2469:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2470:         attr(ONCLICK, null, null, 0, IMPLIED),
2471:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2472:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2473:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2474:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2475:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2476:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2477:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2478:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2479:         attr(ONKEYUP, null, null, 0, IMPLIED),
2480:         attr(ALIGN, null,  new String[] { LEFT, CENTER, RIGHT, JUSTIFY },
2481:           0, IMPLIED)
2482:       }
2483:     );
2484:       defElement(PARAM, EMPTY, false, true, null,
2485:       NONE
2486:       ,
2487:       NONE
2488:     ,
2489:       new AttributeList[] {
2490:         attr(sID, null, null, ID, IMPLIED),
2491:         attr(sNAME, null, null, 0, REQUIRED),
2492:         attr(VALUE, null, null, 0, IMPLIED),
2493:         attr(VALUETYPE, DATA,  new String[] { DATA, REF, OBJECT }, 0, DEFAULT),
2494:         attr(TYPE, null, null, 0, IMPLIED)
2495:       }
2496:     );
2497:       defElement(PRE, 0, false, false, null,
2498:       new String[] {
2499:         APPLET, BASEFONT, BIG, FONT,
2500:         IMG, OBJECT, SMALL, SUB, SUP
2501:       }
2502:       ,
2503:       new String[] {
2504:         PCDATA, A, ABBR, ACRONYM,
2505:         B, BDO, BR, BUTTON, CITE,
2506:         CODE, DFN, EM, I, IFRAME,
2507:         INPUT, KBD, LABEL, MAP, Q,
2508:         S, SAMP, SCRIPT, SELECT, SPAN,
2509:         STRIKE, STRONG, TEXTAREA, TT, U,
2510:         VAR
2511:       }
2512:     ,
2513:       new AttributeList[] {
2514:         attr(sID, null, null, ID, IMPLIED),
2515:         attr(CLASS, null, null, 0, IMPLIED),
2516:         attr(STYLE, null, null, 0, IMPLIED),
2517:         attr(TITLE, null, null, 0, IMPLIED),
2518:         attr(LANG, null, null, 0, IMPLIED),
2519:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2520:         attr(ONCLICK, null, null, 0, IMPLIED),
2521:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2522:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2523:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2524:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2525:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2526:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2527:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2528:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2529:         attr(ONKEYUP, null, null, 0, IMPLIED),
2530:         attr(WIDTH, null, null, NUMBER, IMPLIED)
2531:       }
2532:     );
2533:       defElement(Q, 0, false, false, null,
2534:       NONE
2535:       ,
2536:       new String[] {
2537:         PCDATA, A, ABBR, ACRONYM,
2538:         APPLET, B, BASEFONT, BDO, BIG,
2539:         BR, BUTTON, CITE, CODE, DFN,
2540:         EM, FONT, I, IFRAME, IMG,
2541:         INPUT, KBD, LABEL, MAP, OBJECT,
2542:         Q, S, SAMP, SCRIPT, SELECT,
2543:         SMALL, SPAN, STRIKE, STRONG, SUB,
2544:         SUP, TEXTAREA, TT, U, VAR
2545:       }
2546:     ,
2547:       new AttributeList[] {
2548:         attr(sID, null, null, ID, IMPLIED),
2549:         attr(CLASS, null, null, 0, IMPLIED),
2550:         attr(STYLE, null, null, 0, IMPLIED),
2551:         attr(TITLE, null, null, 0, IMPLIED),
2552:         attr(LANG, null, null, 0, IMPLIED),
2553:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2554:         attr(ONCLICK, null, null, 0, IMPLIED),
2555:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2556:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2557:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2558:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2559:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2560:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2561:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2562:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2563:         attr(ONKEYUP, null, null, 0, IMPLIED),
2564:         attr(CITE, null, null, 0, IMPLIED)
2565:       }
2566:     );
2567:       defElement(S, 0, false, false, null,
2568:       NONE
2569:       ,
2570:       new String[] {
2571:         PCDATA, A, ABBR, ACRONYM,
2572:         APPLET, B, BASEFONT, BDO, BIG,
2573:         BR, BUTTON, CITE, CODE, DFN,
2574:         EM, FONT, I, IFRAME, IMG,
2575:         INPUT, KBD, LABEL, MAP, OBJECT,
2576:         Q, S, SAMP, SCRIPT, SELECT,
2577:         SMALL, SPAN, STRIKE, STRONG, SUB,
2578:         SUP, TEXTAREA, TT, U, VAR
2579:       }
2580:     ,
2581:       new AttributeList[] {
2582:         attr(sID, null, null, ID, IMPLIED),
2583:         attr(CLASS, null, null, 0, IMPLIED),
2584:         attr(STYLE, null, null, 0, IMPLIED),
2585:         attr(TITLE, null, null, 0, IMPLIED),
2586:         attr(LANG, null, null, 0, IMPLIED),
2587:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2588:         attr(ONCLICK, null, null, 0, IMPLIED),
2589:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2590:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2591:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2592:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2593:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2594:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2595:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2596:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2597:         attr(ONKEYUP, null, null, 0, IMPLIED)
2598:       }
2599:     );
2600:       defElement(SAMP, 0, false, false, null,
2601:       NONE
2602:       ,
2603:       new String[] {
2604:         PCDATA, A, ABBR, ACRONYM,
2605:         APPLET, B, BASEFONT, BDO, BIG,
2606:         BR, BUTTON, CITE, CODE, DFN,
2607:         EM, FONT, I, IFRAME, IMG,
2608:         INPUT, KBD, LABEL, MAP, OBJECT,
2609:         Q, S, SAMP, SCRIPT, SELECT,
2610:         SMALL, SPAN, STRIKE, STRONG, SUB,
2611:         SUP, TEXTAREA, TT, U, VAR
2612:       }
2613:     ,
2614:       new AttributeList[] {
2615:         attr(sID, null, null, ID, IMPLIED),
2616:         attr(CLASS, null, null, 0, IMPLIED),
2617:         attr(STYLE, null, null, 0, IMPLIED),
2618:         attr(TITLE, null, null, 0, IMPLIED),
2619:         attr(LANG, null, null, 0, IMPLIED),
2620:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2621:         attr(ONCLICK, null, null, 0, IMPLIED),
2622:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2623:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2624:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2625:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2626:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2627:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2628:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2629:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2630:         attr(ONKEYUP, null, null, 0, IMPLIED)
2631:       }
2632:     );
2633:       defElement(SCRIPT, CDATA, false, false, null,
2634:       NONE
2635:       ,
2636:       NONE
2637:     ,
2638:       new AttributeList[] {
2639:         attr(CHARSET, null, null, 0, IMPLIED),
2640:         attr(TYPE, null, null, 0, REQUIRED),
2641:         attr(LANGUAGE, null, null, 0, IMPLIED),
2642:         attr(SRC, null, null, 0, IMPLIED),
2643:         attr(DEFER, null,  new String[] { DEFER }, 0, IMPLIED),
2644:         attr(EVENT, null, null, 0, IMPLIED),
2645:         attr(FOR, null, null, 0, IMPLIED)
2646:       }
2647:     );
2648:       defElement(SELECT, 0, false, false, null,
2649:       NONE
2650:       ,
2651:       new String[] {
2652:         OPTGROUP, OPTION
2653:       }
2654:     ,
2655:       new AttributeList[] {
2656:         attr(sID, null, null, ID, IMPLIED),
2657:         attr(CLASS, null, null, 0, IMPLIED),
2658:         attr(STYLE, null, null, 0, IMPLIED),
2659:         attr(TITLE, null, null, 0, IMPLIED),
2660:         attr(LANG, null, null, 0, IMPLIED),
2661:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2662:         attr(ONCLICK, null, null, 0, IMPLIED),
2663:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2664:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2665:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2666:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2667:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2668:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2669:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2670:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2671:         attr(ONKEYUP, null, null, 0, IMPLIED),
2672:         attr(sNAME, null, null, 0, IMPLIED),
2673:         attr(SIZE, null, null, NUMBER, IMPLIED),
2674:         attr(MULTIPLE, null,  new String[] { MULTIPLE }, 0, IMPLIED),
2675:         attr(DISABLED, null,  new String[] { DISABLED }, 0, IMPLIED),
2676:         attr(TABINDEX, null, null, NUMBER, IMPLIED),
2677:         attr(ONFOCUS, null, null, 0, IMPLIED),
2678:         attr(ONBLUR, null, null, 0, IMPLIED),
2679:         attr(ONCHANGE, null, null, 0, IMPLIED)
2680:       }
2681:     );
2682:       defElement(SMALL, 0, false, false, null,
2683:       NONE
2684:       ,
2685:       new String[] {
2686:         PCDATA, A, ABBR, ACRONYM,
2687:         APPLET, B, BASEFONT, BDO, BIG,
2688:         BR, BUTTON, CITE, CODE, DFN,
2689:         EM, FONT, I, IFRAME, IMG,
2690:         INPUT, KBD, LABEL, MAP, OBJECT,
2691:         Q, S, SAMP, SCRIPT, SELECT,
2692:         SMALL, SPAN, STRIKE, STRONG, SUB,
2693:         SUP, TEXTAREA, TT, U, VAR
2694:       }
2695:     ,
2696:       new AttributeList[] {
2697:         attr(sID, null, null, ID, IMPLIED),
2698:         attr(CLASS, null, null, 0, IMPLIED),
2699:         attr(STYLE, null, null, 0, IMPLIED),
2700:         attr(TITLE, null, null, 0, IMPLIED),
2701:         attr(LANG, null, null, 0, IMPLIED),
2702:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2703:         attr(ONCLICK, null, null, 0, IMPLIED),
2704:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2705:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2706:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2707:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2708:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2709:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2710:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2711:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2712:         attr(ONKEYUP, null, null, 0, IMPLIED)
2713:       }
2714:     );
2715:       defElement(SPAN, 0, false, false, null,
2716:       NONE
2717:       ,
2718:       new String[] {
2719:         PCDATA, A, ABBR, ACRONYM,
2720:         APPLET, B, BASEFONT, BDO, BIG,
2721:         BR, BUTTON, CITE, CODE, DFN,
2722:         EM, FONT, I, IFRAME, IMG,
2723:         INPUT, KBD, LABEL, MAP, OBJECT,
2724:         Q, S, SAMP, SCRIPT, SELECT,
2725:         SMALL, SPAN, STRIKE, STRONG, SUB,
2726:         SUP, TEXTAREA, TT, U, VAR
2727:       }
2728:     ,
2729:       new AttributeList[] {
2730:         attr(sID, null, null, ID, IMPLIED),
2731:         attr(CLASS, null, null, 0, IMPLIED),
2732:         attr(STYLE, null, null, 0, IMPLIED),
2733:         attr(TITLE, null, null, 0, IMPLIED),
2734:         attr(LANG, null, null, 0, IMPLIED),
2735:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2736:         attr(ONCLICK, null, null, 0, IMPLIED),
2737:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2738:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2739:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2740:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2741:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2742:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2743:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2744:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2745:         attr(ONKEYUP, null, null, 0, IMPLIED)
2746:       }
2747:     );
2748:       defElement(STRIKE, 0, false, false, null,
2749:       NONE
2750:       ,
2751:       new String[] {
2752:         PCDATA, A, ABBR, ACRONYM,
2753:         APPLET, B, BASEFONT, BDO, BIG,
2754:         BR, BUTTON, CITE, CODE, DFN,
2755:         EM, FONT, I, IFRAME, IMG,
2756:         INPUT, KBD, LABEL, MAP, OBJECT,
2757:         Q, S, SAMP, SCRIPT, SELECT,
2758:         SMALL, SPAN, STRIKE, STRONG, SUB,
2759:         SUP, TEXTAREA, TT, U, VAR
2760:       }
2761:     ,
2762:       new AttributeList[] {
2763:         attr(sID, null, null, ID, IMPLIED),
2764:         attr(CLASS, null, null, 0, IMPLIED),
2765:         attr(STYLE, null, null, 0, IMPLIED),
2766:         attr(TITLE, null, null, 0, IMPLIED),
2767:         attr(LANG, null, null, 0, IMPLIED),
2768:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2769:         attr(ONCLICK, null, null, 0, IMPLIED),
2770:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2771:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2772:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2773:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2774:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2775:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2776:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2777:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2778:         attr(ONKEYUP, null, null, 0, IMPLIED)
2779:       }
2780:     );
2781:       defElement(STRONG, 0, false, false, null,
2782:       NONE
2783:       ,
2784:       new String[] {
2785:         PCDATA, A, ABBR, ACRONYM,
2786:         APPLET, B, BASEFONT, BDO, BIG,
2787:         BR, BUTTON, CITE, CODE, DFN,
2788:         EM, FONT, I, IFRAME, IMG,
2789:         INPUT, KBD, LABEL, MAP, OBJECT,
2790:         Q, S, SAMP, SCRIPT, SELECT,
2791:         SMALL, SPAN, STRIKE, STRONG, SUB,
2792:         SUP, TEXTAREA, TT, U, VAR
2793:       }
2794:     ,
2795:       new AttributeList[] {
2796:         attr(sID, null, null, ID, IMPLIED),
2797:         attr(CLASS, null, null, 0, IMPLIED),
2798:         attr(STYLE, null, null, 0, IMPLIED),
2799:         attr(TITLE, null, null, 0, IMPLIED),
2800:         attr(LANG, null, null, 0, IMPLIED),
2801:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2802:         attr(ONCLICK, null, null, 0, IMPLIED),
2803:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2804:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2805:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2806:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2807:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2808:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2809:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2810:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2811:         attr(ONKEYUP, null, null, 0, IMPLIED)
2812:       }
2813:     );
2814:       defElement(STYLE, CDATA, false, false, null,
2815:       NONE
2816:       ,
2817:       NONE
2818:     ,
2819:       new AttributeList[] {
2820:         attr(LANG, null, null, 0, IMPLIED),
2821:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2822:         attr(TYPE, null, null, 0, REQUIRED),
2823:         attr(MEDIA, null, null, 0, IMPLIED),
2824:         attr(TITLE, null, null, 0, IMPLIED)
2825:       }
2826:     );
2827:       defElement(SUB, 0, false, false, null,
2828:       NONE
2829:       ,
2830:       new String[] {
2831:         PCDATA, A, ABBR, ACRONYM,
2832:         APPLET, B, BASEFONT, BDO, BIG,
2833:         BR, BUTTON, CITE, CODE, DFN,
2834:         EM, FONT, I, IFRAME, IMG,
2835:         INPUT, KBD, LABEL, MAP, OBJECT,
2836:         Q, S, SAMP, SCRIPT, SELECT,
2837:         SMALL, SPAN, STRIKE, STRONG, SUB,
2838:         SUP, TEXTAREA, TT, U, VAR
2839:       }
2840:     ,
2841:       new AttributeList[] {
2842:         attr(sID, null, null, ID, IMPLIED),
2843:         attr(CLASS, null, null, 0, IMPLIED),
2844:         attr(STYLE, null, null, 0, IMPLIED),
2845:         attr(TITLE, null, null, 0, IMPLIED),
2846:         attr(LANG, null, null, 0, IMPLIED),
2847:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2848:         attr(ONCLICK, null, null, 0, IMPLIED),
2849:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2850:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2851:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2852:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2853:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2854:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2855:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2856:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2857:         attr(ONKEYUP, null, null, 0, IMPLIED)
2858:       }
2859:     );
2860:       defElement(SUP, 0, false, false, null,
2861:       NONE
2862:       ,
2863:       new String[] {
2864:         PCDATA, A, ABBR, ACRONYM,
2865:         APPLET, B, BASEFONT, BDO, BIG,
2866:         BR, BUTTON, CITE, CODE, DFN,
2867:         EM, FONT, I, IFRAME, IMG,
2868:         INPUT, KBD, LABEL, MAP, OBJECT,
2869:         Q, S, SAMP, SCRIPT, SELECT,
2870:         SMALL, SPAN, STRIKE, STRONG, SUB,
2871:         SUP, TEXTAREA, TT, U, VAR
2872:       }
2873:     ,
2874:       new AttributeList[] {
2875:         attr(sID, null, null, ID, IMPLIED),
2876:         attr(CLASS, null, null, 0, IMPLIED),
2877:         attr(STYLE, null, null, 0, IMPLIED),
2878:         attr(TITLE, null, null, 0, IMPLIED),
2879:         attr(LANG, null, null, 0, IMPLIED),
2880:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2881:         attr(ONCLICK, null, null, 0, IMPLIED),
2882:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2883:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2884:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2885:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2886:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2887:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2888:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2889:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2890:         attr(ONKEYUP, null, null, 0, IMPLIED)
2891:       }
2892:     );
2893:       defElement(TABLE, 0, false, false, createTableContentModel(),
2894:       NONE
2895:       ,
2896:       new String[] {
2897:         CAPTION, COL, COLGROUP, TBODY,
2898:         TFOOT, THEAD
2899:       }
2900:     ,
2901:       new AttributeList[] {
2902:         attr(sID, null, null, ID, IMPLIED),
2903:         attr(CLASS, null, null, 0, IMPLIED),
2904:         attr(STYLE, null, null, 0, IMPLIED),
2905:         attr(TITLE, null, null, 0, IMPLIED),
2906:         attr(LANG, null, null, 0, IMPLIED),
2907:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2908:         attr(ONCLICK, null, null, 0, IMPLIED),
2909:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2910:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2911:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2912:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2913:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2914:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2915:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2916:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2917:         attr(ONKEYUP, null, null, 0, IMPLIED),
2918:         attr(SUMMARY, null, null, 0, IMPLIED),
2919:         attr(WIDTH, null, null, 0, IMPLIED),
2920:         attr(BORDER, null, null, PIXELS, IMPLIED),
2921:         attr(FRAME, null,  new String[] { VOID, ABOVE, BELOW, HSIDES, LHS, RHS,
2922:          VSIDES, BOX, BORDER }, 0, IMPLIED),
2923:         attr(RULES, null,  new String[] { NONES, GROUPS, ROWS, COLS, ALL },
2924:          0, IMPLIED),
2925:         attr(CELLSPACING, null, null, 0, IMPLIED),
2926:         attr(CELLPADDING, null, null, 0, IMPLIED),
2927:         attr(ALIGN, null,  new String[] { LEFT, CENTER, RIGHT }, 0, IMPLIED),
2928:         attr(BGCOLOR, null, null, 0, IMPLIED),
2929:         attr(DATAPAGESIZE, null, null, 0, IMPLIED)
2930:       }
2931:     );
2932:       defElement(TBODY, 0, true, true, model(TR,'+'),
2933:       NONE
2934:       ,
2935:       new String[] {
2936:         TR
2937:       }
2938:     ,
2939:       new AttributeList[] {
2940:         attr(sID, null, null, ID, IMPLIED),
2941:         attr(CLASS, null, null, 0, IMPLIED),
2942:         attr(STYLE, null, null, 0, IMPLIED),
2943:         attr(TITLE, null, null, 0, IMPLIED),
2944:         attr(LANG, null, null, 0, IMPLIED),
2945:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2946:         attr(ONCLICK, null, null, 0, IMPLIED),
2947:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2948:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2949:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2950:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2951:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2952:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
2953:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
2954:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
2955:         attr(ONKEYUP, null, null, 0, IMPLIED),
2956:         attr(ALIGN, null,  new String[] { LEFT, CENTER, RIGHT, JUSTIFY, CHAR },
2957:           0, IMPLIED),
2958:         attr(CHAR, null, null, 0, IMPLIED),
2959:         attr(CHAROFF, null, null, 0, IMPLIED),
2960:         attr(VALIGN, null,  new String[] { TOP, MIDDLE, BOTTOM, BASELINE },
2961:           0, IMPLIED)
2962:       }
2963:     );
2964: 
2965:       defElement(TD, 0, false, true,
2966:        new ContentModel(0,
2967:         new noTagModel(new String[] {"TD", "TH", "TR" } ), null),
2968:       NONE
2969:       ,
2970:       new String[] {
2971:         PCDATA, A, ABBR, ACRONYM,
2972:         APPLET, B, BASEFONT, BDO, BIG,
2973:         BR, BUTTON, CITE, CODE, DFN,
2974:         EM, FONT, I, IFRAME, IMG,
2975:         INPUT, KBD, LABEL, MAP, OBJECT,
2976:         Q, S, SAMP, SCRIPT, SELECT,
2977:         SMALL, SPAN, STRIKE, STRONG, SUB,
2978:         SUP, TEXTAREA, TT, U, VAR,
2979:         ADDRESS, BLOCKQUOTE, CENTER, DIR, DIV,
2980:         DL, FIELDSET, FORM, H1, H2,
2981:         H3, H4, H5, H6, HR,
2982:         ISINDEX, MENU, NOFRAMES, NOSCRIPT, OL,
2983:         P, PRE, TABLE, UL
2984:       }
2985:     ,
2986:       new AttributeList[] {
2987:         attr(sID, null, null, ID, IMPLIED),
2988:         attr(CLASS, null, null, 0, IMPLIED),
2989:         attr(STYLE, null, null, 0, IMPLIED),
2990:         attr(TITLE, null, null, 0, IMPLIED),
2991:         attr(LANG, null, null, 0, IMPLIED),
2992:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
2993:         attr(ONCLICK, null, null, 0, IMPLIED),
2994:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
2995:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
2996:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
2997:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
2998:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
2999:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
3000:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
3001:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
3002:         attr(ONKEYUP, null, null, 0, IMPLIED),
3003:         attr(ABBR, null, null, 0, IMPLIED),
3004:         attr(AXIS, null, null, 0, IMPLIED),
3005:         attr(HEADERS, null, null, 0, IMPLIED),
3006:         attr(SCOPE, null,  new String[] { ROW, COL, ROWGROUP, COLGROUP },
3007:           0, IMPLIED),
3008:         attr(ROWSPAN, C_1, null, NUMBER, DEFAULT),
3009:         attr(COLSPAN, C_1, null, NUMBER, DEFAULT),
3010:         attr(ALIGN, null,  new String[] { LEFT, CENTER, RIGHT, JUSTIFY, CHAR },
3011:           0, IMPLIED),
3012:         attr(CHAR, null, null, 0, IMPLIED),
3013:         attr(CHAROFF, null, null, 0, IMPLIED),
3014:         attr(VALIGN, null,  new String[] { TOP, MIDDLE, BOTTOM, BASELINE },
3015:           0, IMPLIED),
3016:         attr(NOWRAP, null,  new String[] { NOWRAP }, 0, IMPLIED),
3017:         attr(BGCOLOR, null, null, 0, IMPLIED),
3018:         attr(WIDTH, null, null, 0, IMPLIED),
3019:         attr(HEIGHT, null, null, 0, IMPLIED)
3020:       }
3021:     );
3022:       defElement(TEXTAREA, 0, false, false, null,
3023:       NONE
3024:       ,
3025:       new String[] {
3026:         PCDATA
3027:       }
3028:     ,
3029:       new AttributeList[] {
3030:         attr(sID, null, null, ID, IMPLIED),
3031:         attr(CLASS, null, null, 0, IMPLIED),
3032:         attr(STYLE, null, null, 0, IMPLIED),
3033:         attr(TITLE, null, null, 0, IMPLIED),
3034:         attr(LANG, null, null, 0, IMPLIED),
3035:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
3036:         attr(ONCLICK, null, null, 0, IMPLIED),
3037:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
3038:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
3039:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
3040:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
3041:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
3042:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
3043:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
3044:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
3045:         attr(ONKEYUP, null, null, 0, IMPLIED),
3046:         attr(sNAME, null, null, 0, IMPLIED),
3047:         attr(ROWS, null, null, NUMBER, REQUIRED),
3048:         attr(COLS, null, null, NUMBER, REQUIRED),
3049:         attr(DISABLED, null,  new String[] { DISABLED }, 0, IMPLIED),
3050:         attr(READONLY, null,  new String[] { READONLY }, 0, IMPLIED),
3051:         attr(TABINDEX, null, null, NUMBER, IMPLIED),
3052:         attr(ACCESSKEY, null, null, 0, IMPLIED),
3053:         attr(ONFOCUS, null, null, 0, IMPLIED),
3054:         attr(ONBLUR, null, null, 0, IMPLIED),
3055:         attr(ONSELECT, null, null, 0, IMPLIED),
3056:         attr(ONCHANGE, null, null, 0, IMPLIED)
3057:       }
3058:     );
3059:       defElement(TFOOT, 0, false, true, model(TR,'+'),
3060:       NONE
3061:       ,
3062:       new String[] {
3063:         TR
3064:       }
3065:     ,
3066:       new AttributeList[] {
3067:         attr(sID, null, null, ID, IMPLIED),
3068:         attr(CLASS, null, null, 0, IMPLIED),
3069:         attr(STYLE, null, null, 0, IMPLIED),
3070:         attr(TITLE, null, null, 0, IMPLIED),
3071:         attr(LANG, null, null, 0, IMPLIED),
3072:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
3073:         attr(ONCLICK, null, null, 0, IMPLIED),
3074:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
3075:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
3076:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
3077:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
3078:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
3079:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
3080:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
3081:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
3082:         attr(ONKEYUP, null, null, 0, IMPLIED),
3083:         attr(ALIGN, null,  new String[] { LEFT, CENTER, RIGHT, JUSTIFY, CHAR },
3084:           0, IMPLIED),
3085:         attr(CHAR, null, null, 0, IMPLIED),
3086:         attr(CHAROFF, null, null, 0, IMPLIED),
3087:         attr(VALIGN, null,  new String[] { TOP, MIDDLE, BOTTOM, BASELINE },
3088:          0, IMPLIED)
3089:       }
3090:     );
3091:       defElement(TH, 0, false, true, null,
3092:       NONE
3093:       ,
3094:       new String[] {
3095:         PCDATA, A, ABBR, ACRONYM,
3096:         APPLET, B, BASEFONT, BDO, BIG,
3097:         BR, BUTTON, CITE, CODE, DFN,
3098:         EM, FONT, I, IFRAME, IMG,
3099:         INPUT, KBD, LABEL, MAP, OBJECT,
3100:         Q, S, SAMP, SCRIPT, SELECT,
3101:         SMALL, SPAN, STRIKE, STRONG, SUB,
3102:         SUP, TEXTAREA, TT, U, VAR,
3103:         ADDRESS, BLOCKQUOTE, CENTER, DIR, DIV,
3104:         DL, FIELDSET, FORM, H1, H2,
3105:         H3, H4, H5, H6, HR,
3106:         ISINDEX, MENU, NOFRAMES, NOSCRIPT, OL,
3107:         P, PRE, TABLE, UL
3108:       }
3109:     ,
3110:       new AttributeList[] {
3111:         attr(sID, null, null, ID, IMPLIED),
3112:         attr(CLASS, null, null, 0, IMPLIED),
3113:         attr(STYLE, null, null, 0, IMPLIED),
3114:         attr(TITLE, null, null, 0, IMPLIED),
3115:         attr(LANG, null, null, 0, IMPLIED),
3116:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
3117:         attr(ONCLICK, null, null, 0, IMPLIED),
3118:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
3119:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
3120:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
3121:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
3122:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
3123:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
3124:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
3125:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
3126:         attr(ONKEYUP, null, null, 0, IMPLIED),
3127:         attr(ABBR, null, null, 0, IMPLIED),
3128:         attr(AXIS, null, null, 0, IMPLIED),
3129:         attr(HEADERS, null, null, 0, IMPLIED),
3130:         attr(SCOPE, null,  new String[] { ROW, COL, ROWGROUP, COLGROUP },
3131:           0, IMPLIED),
3132:         attr(ROWSPAN, C_1, null, NUMBER, DEFAULT),
3133:         attr(COLSPAN, C_1, null, NUMBER, DEFAULT),
3134:         attr(ALIGN, null,  new String[] { LEFT, CENTER, RIGHT, JUSTIFY, CHAR },
3135:           0, IMPLIED),
3136:         attr(CHAR, null, null, 0, IMPLIED),
3137:         attr(CHAROFF, null, null, 0, IMPLIED),
3138:         attr(VALIGN, null,  new String[] { TOP, MIDDLE, BOTTOM, BASELINE },
3139:           0, IMPLIED),
3140:         attr(NOWRAP, null,  new String[] { NOWRAP }, 0, IMPLIED),
3141:         attr(BGCOLOR, null, null, 0, IMPLIED),
3142:         attr(WIDTH, null, null, 0, IMPLIED),
3143:         attr(HEIGHT, null, null, 0, IMPLIED)
3144:       }
3145:     );
3146:       defElement(THEAD, 0, false, true, model(TR,'+'),
3147:       NONE
3148:       ,
3149:       new String[] {
3150:         TR
3151:       }
3152:     ,
3153:       new AttributeList[] {
3154:         attr(sID, null, null, ID, IMPLIED),
3155:         attr(CLASS, null, null, 0, IMPLIED),
3156:         attr(STYLE, null, null, 0, IMPLIED),
3157:         attr(TITLE, null, null, 0, IMPLIED),
3158:         attr(LANG, null, null, 0, IMPLIED),
3159:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
3160:         attr(ONCLICK, null, null, 0, IMPLIED),
3161:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
3162:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
3163:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
3164:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
3165:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
3166:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
3167:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
3168:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
3169:         attr(ONKEYUP, null, null, 0, IMPLIED),
3170:         attr(ALIGN, null,  new String[] { LEFT, CENTER, RIGHT, JUSTIFY, CHAR },
3171:           0, IMPLIED),
3172:         attr(CHAR, null, null, 0, IMPLIED),
3173:         attr(CHAROFF, null, null, 0, IMPLIED),
3174:         attr(VALIGN, null,  new String[] { TOP, MIDDLE, BOTTOM, BASELINE },
3175:           0, IMPLIED)
3176:       }
3177:     );
3178:       defElement(TITLE, 0, false, false, null,
3179:       new String[] {
3180:         OBJECT, SCRIPT, LINK, META,
3181:         STYLE
3182:       }
3183:       ,
3184:       new String[] {
3185:         PCDATA
3186:       }
3187:     ,
3188:       new AttributeList[] {
3189:         attr(LANG, null, null, 0, IMPLIED),
3190:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED)
3191:       }
3192:     );
3193:       defElement(TR, 0, false, true,
3194:        new ContentModel(0, new TableRowContentModel(this), null),
3195:       NONE
3196:       ,
3197:       new String[] {
3198:         TD, TH
3199:       }
3200:     ,
3201:       new AttributeList[] {
3202:         attr(sID, null, null, ID, IMPLIED),
3203:         attr(CLASS, null, null, 0, IMPLIED),
3204:         attr(STYLE, null, null, 0, IMPLIED),
3205:         attr(TITLE, null, null, 0, IMPLIED),
3206:         attr(LANG, null, null, 0, IMPLIED),
3207:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
3208:         attr(ONCLICK, null, null, 0, IMPLIED),
3209:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
3210:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
3211:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
3212:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
3213:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
3214:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
3215:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
3216:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
3217:         attr(ONKEYUP, null, null, 0, IMPLIED),
3218:         attr(ALIGN, null,  new String[] { LEFT, CENTER, RIGHT, JUSTIFY, CHAR },
3219:           0, IMPLIED),
3220:         attr(CHAR, null, null, 0, IMPLIED),
3221:         attr(CHAROFF, null, null, 0, IMPLIED),
3222:         attr(VALIGN, null,  new String[] { TOP, MIDDLE, BOTTOM, BASELINE },
3223:           0, IMPLIED),
3224:         attr(BGCOLOR, null, null, 0, IMPLIED)
3225:       }
3226:     );
3227:       defElement(TT, 0, false, false, null,
3228:       NONE
3229:       ,
3230:       new String[] {
3231:         PCDATA, A, ABBR, ACRONYM,
3232:         APPLET, B, BASEFONT, BDO, BIG,
3233:         BR, BUTTON, CITE, CODE, DFN,
3234:         EM, FONT, I, IFRAME, IMG,
3235:         INPUT, KBD, LABEL, MAP, OBJECT,
3236:         Q, S, SAMP, SCRIPT, SELECT,
3237:         SMALL, SPAN, STRIKE, STRONG, SUB,
3238:         SUP, TEXTAREA, TT, U, VAR
3239:       }
3240:     ,
3241:       new AttributeList[] {
3242:         attr(sID, null, null, ID, IMPLIED),
3243:         attr(CLASS, null, null, 0, IMPLIED),
3244:         attr(STYLE, null, null, 0, IMPLIED),
3245:         attr(TITLE, null, null, 0, IMPLIED),
3246:         attr(LANG, null, null, 0, IMPLIED),
3247:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
3248:         attr(ONCLICK, null, null, 0, IMPLIED),
3249:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
3250:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
3251:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
3252:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
3253:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
3254:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
3255:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
3256:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
3257:         attr(ONKEYUP, null, null, 0, IMPLIED)
3258:       }
3259:     );
3260:       defElement(U, 0, false, false, null,
3261:       NONE
3262:       ,
3263:       new String[] {
3264:         PCDATA, A, ABBR, ACRONYM,
3265:         APPLET, B, BASEFONT, BDO, BIG,
3266:         BR, BUTTON, CITE, CODE, DFN,
3267:         EM, FONT, I, IFRAME, IMG,
3268:         INPUT, KBD, LABEL, MAP, OBJECT,
3269:         Q, S, SAMP, SCRIPT, SELECT,
3270:         SMALL, SPAN, STRIKE, STRONG, SUB,
3271:         SUP, TEXTAREA, TT, U, VAR
3272:       }
3273:     ,
3274:       new AttributeList[] {
3275:         attr(sID, null, null, ID, IMPLIED),
3276:         attr(CLASS, null, null, 0, IMPLIED),
3277:         attr(STYLE, null, null, 0, IMPLIED),
3278:         attr(TITLE, null, null, 0, IMPLIED),
3279:         attr(LANG, null, null, 0, IMPLIED),
3280:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
3281:         attr(ONCLICK, null, null, 0, IMPLIED),
3282:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
3283:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
3284:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
3285:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
3286:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
3287:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
3288:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
3289:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
3290:         attr(ONKEYUP, null, null, 0, IMPLIED)
3291:       }
3292:     );
3293:       defElement(UL, 0, false, false, createListModel(),
3294:       NONE
3295:       ,
3296:       new String[] {
3297:         // See note on the createListModel method
3298:         LI, UL, OL
3299:       }
3300:     ,
3301:       new AttributeList[] {
3302:         attr(sID, null, null, ID, IMPLIED),
3303:         attr(CLASS, null, null, 0, IMPLIED),
3304:         attr(STYLE, null, null, 0, IMPLIED),
3305:         attr(TITLE, null, null, 0, IMPLIED),
3306:         attr(LANG, null, null, 0, IMPLIED),
3307:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
3308:         attr(ONCLICK, null, null, 0, IMPLIED),
3309:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
3310:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
3311:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
3312:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
3313:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
3314:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
3315:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
3316:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
3317:         attr(ONKEYUP, null, null, 0, IMPLIED),
3318:         attr(TYPE, null,  new String[] { DISC, SQUARE, CIRCLE }, 0, IMPLIED),
3319:         attr(COMPACT, null,  new String[] { COMPACT }, 0, IMPLIED)
3320:       }
3321:     );
3322:       defElement(VAR, 0, false, false, null,
3323:       NONE
3324:       ,
3325:       new String[] {
3326:         PCDATA, A, ABBR, ACRONYM,
3327:         APPLET, B, BASEFONT, BDO, BIG,
3328:         BR, BUTTON, CITE, CODE, DFN,
3329:         EM, FONT, I, IFRAME, IMG,
3330:         INPUT, KBD, LABEL, MAP, OBJECT,
3331:         Q, S, SAMP, SCRIPT, SELECT,
3332:         SMALL, SPAN, STRIKE, STRONG, SUB,
3333:         SUP, TEXTAREA, TT, U, VAR
3334:       }
3335:     ,
3336:       new AttributeList[] {
3337:         attr(sID, null, null, ID, IMPLIED),
3338:         attr(CLASS, null, null, 0, IMPLIED),
3339:         attr(STYLE, null, null, 0, IMPLIED),
3340:         attr(TITLE, null, null, 0, IMPLIED),
3341:         attr(LANG, null, null, 0, IMPLIED),
3342:         attr(DIR, null,  new String[] { LTR, RTL }, 0, IMPLIED),
3343:         attr(ONCLICK, null, null, 0, IMPLIED),
3344:         attr(ONDBLCLICK, null, null, 0, IMPLIED),
3345:         attr(ONMOUSEDOWN, null, null, 0, IMPLIED),
3346:         attr(ONMOUSEUP, null, null, 0, IMPLIED),
3347:         attr(ONMOUSEOVER, null, null, 0, IMPLIED),
3348:         attr(ONMOUSEMOVE, null, null, 0, IMPLIED),
3349:         attr(ONMOUSEOUT, null, null, 0, IMPLIED),
3350:         attr(ONKEYPRESS, null, null, 0, IMPLIED),
3351:         attr(ONKEYDOWN, null, null, 0, IMPLIED),
3352:         attr(ONKEYUP, null, null, 0, IMPLIED)
3353:       }
3354:     );
3355: 
3356:   }
3357: 
3358:   /**
3359:    * Define all entities in this DTD.
3360:    */
3361:   protected void defineEntities()
3362:   {
3363:     /* Define general entities */
3364:     defineEntity("AElig", 198);
3365:     defineEntity("Aacute", 193);
3366:     defineEntity("Acirc", 194);
3367:     defineEntity("Agrave", 192);
3368:     defineEntity("Alpha", 913);
3369:     defineEntity("Aring", 197);
3370:     defineEntity("Atilde", 195);
3371:     defineEntity("Auml", 196);
3372:     defineEntity("Beta", 914);
3373:     defineEntity("Ccedil", 199);
3374:     defineEntity("Chi", 935);
3375:     defineEntity("Dagger", 8225);
3376:     defineEntity("Delta", 916);
3377:     defineEntity("ETH", 208);
3378:     defineEntity("Eacute", 201);
3379:     defineEntity("Ecirc", 202);
3380:     defineEntity("Egrave", 200);
3381:     defineEntity("Epsilon", 917);
3382:     defineEntity("Eta", 919);
3383:     defineEntity("Euml", 203);
3384:     defineEntity("Gamma", 915);
3385:     defineEntity("Iacute", 205);
3386:     defineEntity("Icirc", 206);
3387:     defineEntity("Igrave", 204);
3388:     defineEntity("Iota", 921);
3389:     defineEntity("Iuml", 207);
3390:     defineEntity("Kappa", 922);
3391:     defineEntity("Lambda", 923);
3392:     defineEntity("Mu", 924);
3393:     defineEntity("Ntilde", 209);
3394:     defineEntity("Nu", 925);
3395:     defineEntity("OElig", 338);
3396:     defineEntity("Oacute", 211);
3397:     defineEntity("Ocirc", 212);
3398:     defineEntity("Ograve", 210);
3399:     defineEntity("Omega", 937);
3400:     defineEntity("Omicron", 927);
3401:     defineEntity("Oslash", 216);
3402:     defineEntity("Otilde", 213);
3403:     defineEntity("Ouml", 214);
3404:     defineEntity("Phi", 934);
3405:     defineEntity("Pi", 928);
3406:     defineEntity("Prime", 8243);
3407:     defineEntity("Psi", 936);
3408:     defineEntity("Rho", 929);
3409:     defineEntity("Scaron", 352);
3410:     defineEntity("Sigma", 931);
3411:     defineEntity("THORN", 222);
3412:     defineEntity("Tau", 932);
3413:     defineEntity("Theta", 920);
3414:     defineEntity("Uacute", 218);
3415:     defineEntity("Ucirc", 219);
3416:     defineEntity("Ugrave", 217);
3417:     defineEntity("Upsilon", 933);
3418:     defineEntity("Uuml", 220);
3419:     defineEntity("Xi", 926);
3420:     defineEntity("Yacute", 221);
3421:     defineEntity("Yuml", 376);
3422:     defineEntity("Zeta", 918);
3423:     defineEntity("aacute", 225);
3424:     defineEntity("acirc", 226);
3425:     defineEntity("acute", 180);
3426:     defineEntity("aelig", 230);
3427:     defineEntity("agrave", 224);
3428:     defineEntity("alefsym", 8501);
3429:     defineEntity("alpha", 945);
3430:     defineEntity("amp", 38);
3431:     defineEntity("and", 8743);
3432:     defineEntity("ang", 8736);
3433:     defineEntity("aring", 229);
3434:     defineEntity("asymp", 8776);
3435:     defineEntity("atilde", 227);
3436:     defineEntity("auml", 228);
3437:     defineEntity("bdquo", 8222);
3438:     defineEntity("beta", 946);
3439:     defineEntity("brvbar", 166);
3440:     defineEntity("bull", 8226);
3441:     defineEntity("cap", 8745);
3442:     defineEntity("ccedil", 231);
3443:     defineEntity("cedil", 184);
3444:     defineEntity("cent", 162);
3445:     defineEntity("chi", 967);
3446:     defineEntity("circ", 710);
3447:     defineEntity("clubs", 9827);
3448:     defineEntity("cong", 8773);
3449:     defineEntity("copy", 169);
3450:     defineEntity("crarr", 8629);
3451:     defineEntity("cup", 8746);
3452:     defineEntity("curren", 164);
3453:     defineEntity("dArr", 8659);
3454:     defineEntity("dagger", 8224);
3455:     defineEntity("darr", 8595);
3456:     defineEntity("deg", 176);
3457:     defineEntity("delta", 948);
3458:     defineEntity("diams", 9830);
3459:     defineEntity("divide", 247);
3460:     defineEntity("eacute", 233);
3461:     defineEntity("ecirc", 234);
3462:     defineEntity("egrave", 232);
3463:     defineEntity("empty", 8709);
3464:     defineEntity("emsp", 8195);
3465:     defineEntity("ensp", 8194);
3466:     defineEntity("epsilon", 949);
3467:     defineEntity("equiv", 8801);
3468:     defineEntity("eta", 951);
3469:     defineEntity("eth", 240);
3470:     defineEntity("euml", 235);
3471:     defineEntity("euro", 8364);
3472:     defineEntity("exist", 8707);
3473:     defineEntity("fnof", 402);
3474:     defineEntity("forall", 8704);
3475:     defineEntity("frac12", 189);
3476:     defineEntity("frac14", 188);
3477:     defineEntity("frac34", 190);
3478:     defineEntity("frasl", 8260);
3479:     defineEntity("gamma", 947);
3480:     defineEntity("ge", 8805);
3481:     defineEntity("gt", 62);
3482:     defineEntity("hArr", 8660);
3483:     defineEntity("harr", 8596);
3484:     defineEntity("hearts", 9829);
3485:     defineEntity("hellip", 8230);
3486:     defineEntity("iacute", 237);
3487:     defineEntity("icirc", 238);
3488:     defineEntity("iexcl", 161);
3489:     defineEntity("igrave", 236);
3490:     defineEntity("image", 8465);
3491:     defineEntity("infin", 8734);
3492:     defineEntity("int", 8747);
3493:     defineEntity("iota", 953);
3494:     defineEntity("iquest", 191);
3495:     defineEntity("isin", 8712);
3496:     defineEntity("iuml", 239);
3497:     defineEntity("kappa", 954);
3498:     defineEntity("lArr", 8656);
3499:     defineEntity("lambda", 955);
3500:     defineEntity("lang", 9001);
3501:     defineEntity("laquo", 171);
3502:     defineEntity("larr", 8592);
3503:     defineEntity("lceil", 8968);
3504:     defineEntity("ldquo", 8220);
3505:     defineEntity("le", 8804);
3506:     defineEntity("lfloor", 8970);
3507:     defineEntity("lowast", 8727);
3508:     defineEntity("loz", 9674);
3509:     defineEntity("lrm", 8206);
3510:     defineEntity("lsaquo", 8249);
3511:     defineEntity("lsquo", 8216);
3512:     defineEntity("lt", 60);
3513:     defineEntity("macr", 175);
3514:     defineEntity("mdash", 8212);
3515:     defineEntity("micro", 181);
3516:     defineEntity("middot", 183);
3517:     defineEntity("minus", 8722);
3518:     defineEntity("mu", 956);
3519:     defineEntity("nabla", 8711);
3520:     defineEntity("nbsp", 160);
3521:     defineEntity("ndash", 8211);
3522:     defineEntity("ne", 8800);
3523:     defineEntity("ni", 8715);
3524:     defineEntity("not", 172);
3525:     defineEntity("notin", 8713);
3526:     defineEntity("nsub", 8836);
3527:     defineEntity("ntilde", 241);
3528:     defineEntity("nu", 957);
3529:     defineEntity("oacute", 243);
3530:     defineEntity("ocirc", 244);
3531:     defineEntity("oelig", 339);
3532:     defineEntity("ograve", 242);
3533:     defineEntity("oline", 8254);
3534:     defineEntity("omega", 969);
3535:     defineEntity("omicron", 959);
3536:     defineEntity("oplus", 8853);
3537:     defineEntity("or", 8744);
3538:     defineEntity("ordf", 170);
3539:     defineEntity("ordm", 186);
3540:     defineEntity("oslash", 248);
3541:     defineEntity("otilde", 245);
3542:     defineEntity("otimes", 8855);
3543:     defineEntity("ouml", 246);
3544:     defineEntity("para", 182);
3545:     defineEntity("part", 8706);
3546:     defineEntity("permil", 8240);
3547:     defineEntity("perp", 8869);
3548:     defineEntity("phi", 966);
3549:     defineEntity("pi", 960);
3550:     defineEntity("piv", 982);
3551:     defineEntity("plusmn", 177);
3552:     defineEntity("pound", 163);
3553:     defineEntity("prime", 8242);
3554:     defineEntity("prod", 8719);
3555:     defineEntity("prop", 8733);
3556:     defineEntity("psi", 968);
3557:     defineEntity("quot", 34);
3558:     defineEntity("rArr", 8658);
3559:     defineEntity("radic", 8730);
3560:     defineEntity("rang", 9002);
3561:     defineEntity("raquo", 187);
3562:     defineEntity("rarr", 8594);
3563:     defineEntity("rceil", 8969);
3564:     defineEntity("rdquo", 8221);
3565:     defineEntity("real", 8476);
3566:     defineEntity("reg", 174);
3567:     defineEntity("rfloor", 8971);
3568:     defineEntity("rho", 961);
3569:     defineEntity("rlm", 8207);
3570:     defineEntity("rsaquo", 8250);
3571:     defineEntity("rsquo", 8217);
3572:     defineEntity("sbquo", 8218);
3573:     defineEntity("scaron", 353);
3574:     defineEntity("sdot", 8901);
3575:     defineEntity("sect", 167);
3576:     defineEntity("shy", 173);
3577:     defineEntity("sigma", 963);
3578:     defineEntity("sigmaf", 962);
3579:     defineEntity("sim", 8764);
3580:     defineEntity("spades", 9824);
3581:     defineEntity("sub", 8834);
3582:     defineEntity("sube", 8838);
3583:     defineEntity("sum", 8721);
3584:     defineEntity("sup", 8835);
3585:     defineEntity("sup1", 185);
3586:     defineEntity("sup2", 178);
3587:     defineEntity("sup3", 179);
3588:     defineEntity("supe", 8839);
3589:     defineEntity("szlig", 223);
3590:     defineEntity("tau", 964);
3591:     defineEntity("there4", 8756);
3592:     defineEntity("theta", 952);
3593:     defineEntity("thetasym", 977);
3594:     defineEntity("thinsp", 8201);
3595:     defineEntity("thorn", 254);
3596:     defineEntity("tilde", 732);
3597:     defineEntity("times", 215);
3598:     defineEntity("trade", 8482);
3599:     defineEntity("uArr", 8657);
3600:     defineEntity("uacute", 250);
3601:     defineEntity("uarr", 8593);
3602:     defineEntity("ucirc", 251);
3603:     defineEntity("ugrave", 249);
3604:     defineEntity("uml", 168);
3605:     defineEntity("upsih", 978);
3606:     defineEntity("upsilon", 965);
3607:     defineEntity("uuml", 252);
3608:     defineEntity("weierp", 8472);
3609:     defineEntity("xi", 958);
3610:     defineEntity("yacute", 253);
3611:     defineEntity("yen", 165);
3612:     defineEntity("yuml", 255);
3613:     defineEntity("zeta", 950);
3614:     defineEntity("zwj", 8205);
3615:     defineEntity("zwnj", 8204);
3616:   }
3617: 
3618:   /**
3619:    * Crate a content model, consisting of the single
3620:    * element, specified by name.
3621:    */
3622:   protected ContentModel model(String element)
3623:   {
3624:     return new ContentModel(getElement(element));
3625:   }
3626: 
3627:   /**
3628:    * Crate a chain from the two content models,
3629:    * the last containing the given element and
3630:    * the specified unary operation.
3631:    */
3632:   private ContentModel model(String element, int unary)
3633:   {
3634:     ContentModel ct = model(element);
3635:     ct.type = unary;
3636:     return new ContentModel(0, ct);
3637:   }
3638: 
3639:   /**
3640:    * Create the model HEAD, BODY
3641:    * @return the HTML content model of the whole document
3642:    */
3643:   protected ContentModel createHtmlContentModel()
3644:   {
3645:     ContentModel head = model(HEAD);
3646:     ContentModel body = model(BODY);
3647:     head.next = body;
3648:     head.type = ',';
3649:     return head;
3650:   }
3651: 
3652:   /**
3653:    * Create the model
3654:    * ( CAPTION ? , ( COL * | COLGROUP * ) , THEAD ? , TFOOT ? , TBODY + )
3655:    */
3656:   protected ContentModel createTableContentModel()
3657:   {
3658:      ContentModel col_colgroup = new ContentModel
3659:       ('|', model(COL,'*'), model(COLGROUP,'*') );
3660: 
3661:      col_colgroup = new ContentModel('*', col_colgroup);
3662:      col_colgroup = new ContentModel(',', col_colgroup);
3663: 
3664:      ContentModel caption = model(CAPTION,'?');
3665:      ContentModel thead   = model(THEAD, '?');
3666:      ContentModel tfoot   = model(TFOOT, '?');
3667:      ContentModel tbody   = model(TBODY, '+');
3668: 
3669:      caption.next = col_colgroup;
3670:      col_colgroup.next = thead;
3671:      thead.next = tfoot;
3672:      tfoot.next = tbody;
3673: 
3674:      caption.type = col_colgroup.type = thead.type = tfoot.type =
3675:      tbody.type = ',';
3676: 
3677:      return caption;
3678:   }
3679: 
3680:   /**
3681:    * Creates a model for <DL> tag:
3682:    * <code> DT+ | DL+ </code>.
3683:    * @return
3684:    */
3685:   protected ContentModel createDefListModel()
3686:   {
3687:     ContentModel dt = model(DT, '+');
3688:     ContentModel dd = model(DD, '+');
3689: 
3690:     dt.next = dd;
3691:     dt.type = dd.type = '|';
3692:     return dt;
3693:   }
3694: 
3695:   /**
3696:    * This model is used for UL, OL, MENU and DIR.
3697:    *  HTML 4.01 specifies LI only, but the nested
3698:    * list seems rendered correctly only if
3699:    * it is not enclosed into <LI>-</LI> of the
3700:    * parent list.
3701:    */
3702:   protected ContentModel createListModel()
3703:   {
3704:     ContentModel li = model(LI, '+');
3705:     ContentModel ul = model(UL, '+');
3706:     ContentModel ol = model(OL, '+');
3707: 
3708:     li.next = ul;
3709:     ul.next = ol;
3710:     li.type = ul.type = ol.type = '|';
3711:     return li;
3712:   }
3713:   
3714:   /**
3715:    * Get elements that are allowed in the document body, at the zero level.
3716:    */
3717:   protected String[] getBodyElements()
3718:   {
3719:     return new String[] {
3720:         PCDATA, A, ABBR, ACRONYM,
3721:         APPLET, B, BASEFONT, BDO, BIG,
3722:         BR, BUTTON, CITE, CODE, DFN,
3723:         EM, FONT, I, IFRAME, IMG,
3724:         INPUT, KBD, LABEL, MAP, OBJECT,
3725:         Q, S, SAMP, SCRIPT, SELECT,
3726:         SMALL, SPAN, STRIKE, STRONG, SUB,
3727:         SUP, TEXTAREA, TT, U, VAR,
3728:         ADDRESS, BLOCKQUOTE, CENTER, DEL, DIR,
3729:         DIV, DL, FIELDSET, FORM, H1,
3730:         H2, H3, H4, H5, H6,
3731:         HR, INS, ISINDEX, MENU, NOFRAMES,
3732:         NOSCRIPT, OL, P, PRE, TABLE,
3733:         UL
3734:       };
3735:   }
3736: }