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

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