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