You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@corinthia.apache.org by ja...@apache.org on 2015/08/14 15:23:02 UTC

[41/84] [partial] incubator-corinthia git commit: Moved experimentel code to /experiments

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/8eda56a5/Editor/src/dtdsource/gen_dtd_data.html
----------------------------------------------------------------------
diff --git a/Editor/src/dtdsource/gen_dtd_data.html b/Editor/src/dtdsource/gen_dtd_data.html
deleted file mode 100644
index ac09ad2..0000000
--- a/Editor/src/dtdsource/gen_dtd_data.html
+++ /dev/null
@@ -1,247 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html> <head>
-<title></title>
-<script src="../DOM_js"></script>
-<script>
-
-function ElementDeclaration(name)
-{
-    this.name = name;
-    this.allowedChildren = new Object();
-}
-
-ElementDeclaration.prototype.addAllowedChild = function(name)
-{
-    this.allowedChildren[name] = true;
-}
-
-ElementDeclaration.prototype.removeAllowedChild = function(name)
-{
-    delete this.allowedChildren[name];
-}
-
-ElementDeclaration.prototype.print = function()
-{
-    for (var childName in this.allowedChildren)
-        println(this.name+" -> "+childName);
-}
-
-ElementDeclaration.prototype.printAllowedChildren = function()
-{
-    println("    \""+this.name+"\": {");
-    for (var childName in this.allowedChildren)
-        println("        \""+childName+"\": true,");
-    println("    },");
-}
-
-ElementDeclaration.prototype.setAllowedParents = function(allowedParents)
-{
-    for (var childName in this.allowedChildren) {
-        if (allowedParents[childName] == null)
-            allowedParents[childName] = new Object();
-        allowedParents[childName][this.name] = true;
-    }
-}
-
-function debug(str)
-{
-    console.log(str);
-}
-
-function println(str)
-{
-    var text = DOM_createTextNode(document,str+"\n");
-    var output = document.getElementById("output");
-    DOM_appendChild(output,text);
-}
-
-function readFile(filename)
-{
-    var req = new XMLHttpRequest();
-    req.open("GET",filename,false);
-    req.send();
-    return req.responseXML;
-}
-
-function printTree(node,indent)
-{
-    if (indent == null)
-        indent = "";
-    println(indent+node);
-    for (var child = node.firstChild; child != null; child = child.nextSibling)
-        printTree(child,indent+"    ");
-}
-
-function parseOrGroup(decl,element)
-{
-    for (var child = element.firstChild; child != null; child = child.nextSibling) {
-        if (child.nodeName == "element-name") {
-            decl.addAllowedChild(child.getAttribute("name"));
-        }
-        else if (child.nodeName == "pcdata") {
-        }
-        else if (child.nodeName == "or-group") {
-            parseOrGroup(decl,child);
-        }
-        else if (child.nodeType == Node.ELEMENT_NODE) {
-            println("ERROR: unexpected element: "+child.nodeName+" (parent "+element.nodeName+")");
-        }
-    }
-}
-
-function parseSequenceGroup(decl,element)
-{
-    for (var child = element.firstChild; child != null; child = child.nextSibling) {
-        if (child.nodeName == "element-name") {
-            decl.addAllowedChild(child.getAttribute("name"));
-        }
-        else if (child.nodeName == "or-group") {
-            parseOrGroup(decl,child);
-        }
-        else if (child.nodeName == "pcdata") {
-        }
-        else if (child.nodeType == Node.ELEMENT_NODE) {
-            println("ERROR: unexpected element: "+child.nodeName+" (parent "+element.nodeName+")");
-        }
-    }
-}
-
-function parseContentModelExpanded(decl,element)
-{
-    for (var child = element.firstChild; child != null; child = child.nextSibling) {
-        if (child.nodeName == "or-group") {
-            parseOrGroup(decl,child);
-        }
-        else if (child.nodeName == "and-group") {
-            parseOrGroup(decl,child);
-        }
-        else if (child.nodeName == "sequence-group") {
-            parseSequenceGroup(decl,child);
-        }
-        else if (child.nodeName == "empty") {
-        }
-        else if (child.nodeName == "cdata") {
-        }
-        else if (child.nodeType == Node.ELEMENT_NODE) {
-            println("ERROR: unexpected element: "+child.nodeName+" (parent "+element.nodeName+")");
-        }
-    }
-}
-
-function parseInclusions(decl,element)
-{
-    for (var child = element.firstChild; child != null; child = child.nextSibling) {
-        if (child.nodeName == "or-group") {
-            parseOrGroup(decl,child);
-        }
-        else if (child.nodeType == Node.ELEMENT_NODE) {
-            println("ERROR: unexpected element: "+child.nodeName+" (parent "+element.nodeName+")");
-        }
-    }
-}
-
-function parseOrGroupExclusions(decl,element)
-{
-    for (var child = element.firstChild; child != null; child = child.nextSibling) {
-        if (child.nodeName == "element-name") {
-            decl.removeAllowedChild(child.getAttribute("name"));
-        }
-        else if (child.nodeType == Node.ELEMENT_NODE) {
-            println("ERROR: unexpected element: "+child.nodeName+" (parent "+element.nodeName+")");
-        }
-    }
-}
-
-function parseSequenceGroupExclusions(decl,element)
-{
-    parseOrGroupExclusions(decl,element);
-}
-
-function parseExclusions(decl,element)
-{
-    for (var child = element.firstChild; child != null; child = child.nextSibling) {
-        if (child.nodeName == "or-group") {
-            parseOrGroupExclusions(decl,child);
-        }
-        else if (child.nodeName == "sequence-group") {
-            parseSequenceGroupExclusions(decl,child);
-        }
-        else if (child.nodeType == Node.ELEMENT_NODE) {
-            println("ERROR: unexpected element: "+child.nodeName+" (parent "+element.nodeName+")");
-        }
-    }
-}
-
-function parseElement(element)
-{
-    var decl = new ElementDeclaration(element.getAttribute("name"));
-
-    for (var child = element.firstChild; child != null; child = child.nextSibling) {
-        if (child.nodeName == "content-model-expanded") {
-            parseContentModelExpanded(decl,child);
-        }
-        else if (child.nodeName == "inclusions") {
-            parseInclusions(decl,child);
-        }
-        else if (child.nodeName == "exclusions") {
-            parseExclusions(decl,child);
-        }
-        else if (child.nodeName == "content-model") {
-        }
-        else if (child.nodeType == Node.ELEMENT_NODE) {
-            println("ERROR: unexpected element: "+child.nodeName+" (parent "+element.nodeName+")");
-        }
-    }
-
-//    decl.println();
-    return decl;
-}
-
-function loaded()
-{
-    var dtd = readFile("html4.xml");
-//    printTree(dtd);
-
-    var decls = new Array();
-    for (var node = dtd.documentElement.firstChild; node != null; node = node.nextSibling) {
-        if (node.nodeName == "element") {
-            decls.push(parseElement(node));
-        }
-    }
-
-    println("// Automatically generated from HTML 4.01 dtd using dtdparse and gen_dtd_data.html");
-    println("// See http://nwalsh.com/perl/dtdparse/");
-    println("");
-
-    println("var ALLOWED_CHILDREN = {");
-    for (var i = 0; i < decls.length; i++) {
-        decls[i].printAllowedChildren();
-    }
-    println("};");
-
-    println("");
-
-    var allowedParents = new Object();
-    for (var i = 0; i < decls.length; i++) {
-        decls[i].setAllowedParents(allowedParents);
-    }
-
-    println("var ALLOWED_PARENTS = {");
-    for (var childName in allowedParents) {
-        println("    \""+childName+"\": {");
-        for (var parentName in allowedParents[childName]) {
-            println("        \""+parentName+"\": true,");
-        }
-        println("    },");
-    }
-    println("};");
-
-}
-</script>
-</head>
-
-<body onload="loaded()">
-<pre id="output">
-</pre>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/8eda56a5/Editor/src/dtdsource/html4.dtd
----------------------------------------------------------------------
diff --git a/Editor/src/dtdsource/html4.dtd b/Editor/src/dtdsource/html4.dtd
deleted file mode 100644
index c5752ed..0000000
--- a/Editor/src/dtdsource/html4.dtd
+++ /dev/null
@@ -1,1078 +0,0 @@
-<!--
-    This is the HTML 4.01 Transitional DTD, which includes
-    presentation attributes and elements that W3C expects to phase out
-    as support for style sheets matures. Authors should use the Strict
-    DTD when possible, but may use the Transitional DTD when support
-    for presentation attribute and elements is required.
-
-    HTML 4 includes mechanisms for style sheets, scripting,
-    embedding objects, improved support for right to left and mixed
-    direction text, and enhancements to forms for improved
-    accessibility for people with disabilities.
-
-          Draft: $Date: 1999/12/24 23:37:50 $
-
-          Authors:
-              Dave Raggett <ds...@w3.org>
-              Arnaud Le Hors <le...@w3.org>
-              Ian Jacobs <ij...@w3.org>
-
-    Further information about HTML 4.01 is available at:
-
-        http://www.w3.org/TR/1999/REC-html401-19991224
-
-
-    The HTML 4.01 specification includes additional
-    syntactic constraints that cannot be expressed within
-    the DTDs.
-
--->
-<!ENTITY % HTML.Version "-//W3C//DTD HTML 4.01 Transitional//EN"
-  -- Typical usage:
-
-    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-            "http://www.w3.org/TR/html4/loose.dtd">
-    <html>
-    <head>
-    ...
-    </head>
-    <body>
-    ...
-    </body>
-    </html>
-
-    The URI used as a system identifier with the public identifier allows
-    the user agent to download the DTD and entity sets as needed.
-
-    The FPI for the Strict HTML 4.01 DTD is:
-
-        "-//W3C//DTD HTML 4.01//EN"
-
-    This version of the strict DTD is:
-
-        http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd
-
-    Authors should use the Strict DTD unless they need the
-    presentation control for user agents that don't (adequately)
-    support style sheets.
-
-    If you are writing a document that includes frames, use 
-    the following FPI:
-
-        "-//W3C//DTD HTML 4.01 Frameset//EN"
-
-    This version of the frameset DTD is:
-
-        http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd
-
-    Use the following (relative) URIs to refer to 
-    the DTDs and entity definitions of this specification:
-
-    "strict.dtd"
-    "loose.dtd"
-    "frameset.dtd"
-    "HTMLlat1.ent"
-    "HTMLsymbol.ent"
-    "HTMLspecial.ent"
-
--->
-
-<!--================== Imported Names ====================================-->
-<!-- Feature Switch for frameset documents -->
-<!ENTITY % HTML.Frameset "IGNORE">
-
-<!ENTITY % ContentType "CDATA"
-    -- media type, as per [RFC2045]
-    -->
-
-<!ENTITY % ContentTypes "CDATA"
-    -- comma-separated list of media types, as per [RFC2045]
-    -->
-
-<!ENTITY % Charset "CDATA"
-    -- a character encoding, as per [RFC2045]
-    -->
-
-<!ENTITY % Charsets "CDATA"
-    -- a space-separated list of character encodings, as per [RFC2045]
-    -->
-
-<!ENTITY % LanguageCode "NAME"
-    -- a language code, as per [RFC1766]
-    -->
-
-<!ENTITY % Character "CDATA"
-    -- a single character from [ISO10646] 
-    -->
-
-<!ENTITY % LinkTypes "CDATA"
-    -- space-separated list of link types
-    -->
-
-<!ENTITY % MediaDesc "CDATA"
-    -- single or comma-separated list of media descriptors
-    -->
-
-<!ENTITY % URI "CDATA"
-    -- a Uniform Resource Identifier,
-       see [URI]
-    -->
-
-<!ENTITY % Datetime "CDATA" -- date and time information. ISO date format -->
-
-
-<!ENTITY % Script "CDATA" -- script expression -->
-
-<!ENTITY % StyleSheet "CDATA" -- style sheet data -->
-
-<!ENTITY % FrameTarget "CDATA" -- render in this frame -->
-
-
-<!ENTITY % Text "CDATA">
-
-
-<!-- Parameter Entities -->
-
-<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|OBJECT" -- repeatable head elements -->
-
-<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
-
-<!ENTITY % list "UL | OL |  DIR | MENU">
-
-<!ENTITY % preformatted "PRE">
-
-<!ENTITY % Color "CDATA" -- a color using sRGB: #RRGGBB as Hex values -->
-
-<!-- There are also 16 widely known color names with their sRGB values:
-
-    Black  = #000000    Green  = #008000
-    Silver = #C0C0C0    Lime   = #00FF00
-    Gray   = #808080    Olive  = #808000
-    White  = #FFFFFF    Yellow = #FFFF00
-    Maroon = #800000    Navy   = #000080
-    Red    = #FF0000    Blue   = #0000FF
-    Purple = #800080    Teal   = #008080
-    Fuchsia= #FF00FF    Aqua   = #00FFFF
- -->
-
-<!ENTITY % bodycolors "
-  bgcolor     %Color;        #IMPLIED  -- document background color --
-  text        %Color;        #IMPLIED  -- document text color --
-  link        %Color;        #IMPLIED  -- color of links --
-  vlink       %Color;        #IMPLIED  -- color of visited links --
-  alink       %Color;        #IMPLIED  -- color of selected links --
-  ">
-
-<!--=================== Generic Attributes ===============================-->
-
-<!ENTITY % coreattrs
- "id          ID             #IMPLIED  -- document-wide unique id --
-  class       CDATA          #IMPLIED  -- space-separated list of classes --
-  style       %StyleSheet;   #IMPLIED  -- associated style info --
-  title       %Text;         #IMPLIED  -- advisory title --"
-  >
-
-<!ENTITY % i18n
- "lang        %LanguageCode; #IMPLIED  -- language code --
-  dir         (ltr|rtl)      #IMPLIED  -- direction for weak/neutral text --"
-  >
-
-<!ENTITY % events
- "onclick     %Script;       #IMPLIED  -- a pointer button was clicked --
-  ondblclick  %Script;       #IMPLIED  -- a pointer button was double clicked--
-  onmousedown %Script;       #IMPLIED  -- a pointer button was pressed down --
-  onmouseup   %Script;       #IMPLIED  -- a pointer button was released --
-  onmouseover %Script;       #IMPLIED  -- a pointer was moved onto --
-  onmousemove %Script;       #IMPLIED  -- a pointer was moved within --
-  onmouseout  %Script;       #IMPLIED  -- a pointer was moved away --
-  onkeypress  %Script;       #IMPLIED  -- a key was pressed and released --
-  onkeydown   %Script;       #IMPLIED  -- a key was pressed down --
-  onkeyup     %Script;       #IMPLIED  -- a key was released --"
-  >
-
-<!-- Reserved Feature Switch -->
-<!ENTITY % HTML.Reserved "IGNORE">
-
-<!-- The following attributes are reserved for possible future use -->
-<![ %HTML.Reserved; [
-<!ENTITY % reserved
- "datasrc     %URI;          #IMPLIED  -- a single or tabular Data Source --
-  datafld     CDATA          #IMPLIED  -- the property or column name --
-  dataformatas (plaintext|html) plaintext -- text or html --"
-  >
-]]>
-
-<!ENTITY % reserved "">
-
-<!ENTITY % attrs "%coreattrs; %i18n; %events;">
-
-<!ENTITY % align "align (left|center|right|justify)  #IMPLIED"
-                   -- default is left for ltr paragraphs, right for rtl --
-  >
-
-<!--=================== Text Markup ======================================-->
-
-<!ENTITY % fontstyle
- "TT | I | B | U | S | STRIKE | BIG | SMALL">
-
-<!ENTITY % phrase "EM | STRONG | DFN | CODE |
-                   SAMP | KBD | VAR | CITE | ABBR | ACRONYM" >
-
-<!ENTITY % special
-   "A | IMG | APPLET | OBJECT | FONT | BASEFONT | BR | SCRIPT |
-    MAP | Q | SUB | SUP | SPAN | BDO | IFRAME">
-
-<!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON">
-
-<!-- %inline; covers inline or "text-level" elements -->
-<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">
-
-<!ELEMENT (%fontstyle;|%phrase;) - - (%inline;)*>
-<!ATTLIST (%fontstyle;|%phrase;)
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  >
-
-<!ELEMENT (SUB|SUP) - - (%inline;)*    -- subscript, superscript -->
-<!ATTLIST (SUB|SUP)
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  >
-
-<!ELEMENT SPAN - - (%inline;)*         -- generic language/style container -->
-<!ATTLIST SPAN
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  %reserved;                   -- reserved for possible future use --
-  >
-
-<!ELEMENT BDO - - (%inline;)*          -- I18N BiDi over-ride -->
-<!ATTLIST BDO
-  %coreattrs;                          -- id, class, style, title --
-  lang        %LanguageCode; #IMPLIED  -- language code --
-  dir         (ltr|rtl)      #REQUIRED -- directionality --
-  >
-
-<!ELEMENT BASEFONT - O EMPTY           -- base font size -->
-<!ATTLIST BASEFONT
-  id          ID             #IMPLIED  -- document-wide unique id --
-  size        CDATA          #REQUIRED -- base font size for FONT elements --
-  color       %Color;        #IMPLIED  -- text color --
-  face        CDATA          #IMPLIED  -- comma-separated list of font names --
-  >
-
-<!ELEMENT FONT - - (%inline;)*         -- local change to font -->
-<!ATTLIST FONT
-  %coreattrs;                          -- id, class, style, title --
-  %i18n;                       -- lang, dir --
-  size        CDATA          #IMPLIED  -- [+|-]nn e.g. size="+1", size="4" --
-  color       %Color;        #IMPLIED  -- text color --
-  face        CDATA          #IMPLIED  -- comma-separated list of font names --
-  >
-
-<!ELEMENT BR - O EMPTY                 -- forced line break -->
-<!ATTLIST BR
-  %coreattrs;                          -- id, class, style, title --
-  clear       (left|all|right|none) none -- control of text flow --
-  >
-
-<!--================== HTML content models ===============================-->
-
-<!--
-    HTML has two basic content models:
-
-        %inline;     character level elements and text strings
-        %block;      block-like elements e.g. paragraphs and lists
--->
-
-<!ENTITY % block
-     "P | %heading; | %list; | %preformatted; | DL | DIV | CENTER |
-      NOSCRIPT | NOFRAMES | BLOCKQUOTE | FORM | ISINDEX | HR |
-      TABLE | FIELDSET | ADDRESS">
-
-<!ENTITY % flow "%block; | %inline;">
-
-<!--=================== Document Body ====================================-->
-
-<!ELEMENT BODY O O (%flow;)* +(INS|DEL) -- document body -->
-<!ATTLIST BODY
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  onload          %Script;   #IMPLIED  -- the document has been loaded --
-  onunload        %Script;   #IMPLIED  -- the document has been removed --
-  background      %URI;      #IMPLIED  -- texture tile for document
-                                          background --
-  %bodycolors;                         -- bgcolor, text, link, vlink, alink --
-  >
-
-<!ELEMENT ADDRESS - - ((%inline;)|P)*  -- information on author -->
-<!ATTLIST ADDRESS
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  >
-
-<!ELEMENT DIV - - (%flow;)*            -- generic language/style container -->
-<!ATTLIST DIV
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  %align;                              -- align, text alignment --
-  %reserved;                           -- reserved for possible future use --
-  >
-
-<!ELEMENT CENTER - - (%flow;)*         -- shorthand for DIV align=center -->
-<!ATTLIST CENTER
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  >
-
-<!--================== The Anchor Element ================================-->
-
-<!ENTITY % Shape "(rect|circle|poly|default)">
-<!ENTITY % Coords "CDATA" -- comma-separated list of lengths -->
-
-<!ELEMENT A - - (%inline;)* -(A)       -- anchor -->
-<!ATTLIST A
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  charset     %Charset;      #IMPLIED  -- char encoding of linked resource --
-  type        %ContentType;  #IMPLIED  -- advisory content type --
-  name        CDATA          #IMPLIED  -- named link end --
-  href        %URI;          #IMPLIED  -- URI for linked resource --
-  hreflang    %LanguageCode; #IMPLIED  -- language code --
-  target      %FrameTarget;  #IMPLIED  -- render in this frame --
-  rel         %LinkTypes;    #IMPLIED  -- forward link types --
-  rev         %LinkTypes;    #IMPLIED  -- reverse link types --
-  accesskey   %Character;    #IMPLIED  -- accessibility key character --
-  shape       %Shape;        rect      -- for use with client-side image maps --
-  coords      %Coords;       #IMPLIED  -- for use with client-side image maps --
-  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
-  onfocus     %Script;       #IMPLIED  -- the element got the focus --
-  onblur      %Script;       #IMPLIED  -- the element lost the focus --
-  >
-
-<!--================== Client-side image maps ============================-->
-
-<!-- These can be placed in the same document or grouped in a
-     separate document although this isn't yet widely supported -->
-
-<!ELEMENT MAP - - ((%block;) | AREA)+ -- client-side image map -->
-<!ATTLIST MAP
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  name        CDATA          #REQUIRED -- for reference by usemap --
-  >
-
-<!ELEMENT AREA - O EMPTY               -- client-side image map area -->
-<!ATTLIST AREA
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  shape       %Shape;        rect      -- controls interpretation of coords --
-  coords      %Coords;       #IMPLIED  -- comma-separated list of lengths --
-  href        %URI;          #IMPLIED  -- URI for linked resource --
-  target      %FrameTarget;  #IMPLIED  -- render in this frame --
-  nohref      (nohref)       #IMPLIED  -- this region has no action --
-  alt         %Text;         #REQUIRED -- short description --
-  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
-  accesskey   %Character;    #IMPLIED  -- accessibility key character --
-  onfocus     %Script;       #IMPLIED  -- the element got the focus --
-  onblur      %Script;       #IMPLIED  -- the element lost the focus --
-  >
-
-<!--================== The LINK Element ==================================-->
-
-<!--
-  Relationship values can be used in principle:
-
-   a) for document specific toolbars/menus when used
-      with the LINK element in document head e.g.
-        start, contents, previous, next, index, end, help
-   b) to link to a separate style sheet (rel=stylesheet)
-   c) to make a link to a script (rel=script)
-   d) by stylesheets to control how collections of
-      html nodes are rendered into printed documents
-   e) to make a link to a printable version of this document
-      e.g. a postscript or pdf version (rel=alternate media=print)
--->
-
-<!ELEMENT LINK - O EMPTY               -- a media-independent link -->
-<!ATTLIST LINK
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  charset     %Charset;      #IMPLIED  -- char encoding of linked resource --
-  href        %URI;          #IMPLIED  -- URI for linked resource --
-  hreflang    %LanguageCode; #IMPLIED  -- language code --
-  type        %ContentType;  #IMPLIED  -- advisory content type --
-  rel         %LinkTypes;    #IMPLIED  -- forward link types --
-  rev         %LinkTypes;    #IMPLIED  -- reverse link types --
-  media       %MediaDesc;    #IMPLIED  -- for rendering on these media --
-  target      %FrameTarget;  #IMPLIED  -- render in this frame --
-  >
-
-<!--=================== Images ===========================================-->
-
-<!-- Length defined in strict DTD for cellpadding/cellspacing -->
-<!ENTITY % Length "CDATA" -- nn for pixels or nn% for percentage length -->
-<!ENTITY % MultiLength "CDATA" -- pixel, percentage, or relative -->
-
-<![ %HTML.Frameset; [
-<!ENTITY % MultiLengths "CDATA" -- comma-separated list of MultiLength -->
-]]>
-
-<!ENTITY % Pixels "CDATA" -- integer representing length in pixels -->
-
-<!ENTITY % IAlign "(top|middle|bottom|left|right)" -- center? -->
-
-<!-- To avoid problems with text-only UAs as well as 
-   to make image content understandable and navigable 
-   to users of non-visual UAs, you need to provide
-   a description with ALT, and avoid server-side image maps -->
-<!ELEMENT IMG - O EMPTY                -- Embedded image -->
-<!ATTLIST IMG
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  src         %URI;          #REQUIRED -- URI of image to embed --
-  alt         %Text;         #REQUIRED -- short description --
-  longdesc    %URI;          #IMPLIED  -- link to long description
-                                          (complements alt) --
-  name        CDATA          #IMPLIED  -- name of image for scripting --
-  height      %Length;       #IMPLIED  -- override height --
-  width       %Length;       #IMPLIED  -- override width --
-  usemap      %URI;          #IMPLIED  -- use client-side image map --
-  ismap       (ismap)        #IMPLIED  -- use server-side image map --
-  align       %IAlign;       #IMPLIED  -- vertical or horizontal alignment --
-  border      %Pixels;       #IMPLIED  -- link border width --
-  hspace      %Pixels;       #IMPLIED  -- horizontal gutter --
-  vspace      %Pixels;       #IMPLIED  -- vertical gutter --
-  >
-
-<!-- USEMAP points to a MAP element which may be in this document
-  or an external document, although the latter is not widely supported -->
-
-<!--==================== OBJECT ======================================-->
-<!--
-  OBJECT is used to embed objects as part of HTML pages 
-  PARAM elements should precede other content. SGML mixed content
-  model technicality precludes specifying this formally ...
--->
-
-<!ELEMENT OBJECT - - (PARAM | %flow;)*
- -- generic embedded object -->
-<!ATTLIST OBJECT
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  declare     (declare)      #IMPLIED  -- declare but don't instantiate flag --
-  classid     %URI;          #IMPLIED  -- identifies an implementation --
-  codebase    %URI;          #IMPLIED  -- base URI for classid, data, archive--
-  data        %URI;          #IMPLIED  -- reference to object's data --
-  type        %ContentType;  #IMPLIED  -- content type for data --
-  codetype    %ContentType;  #IMPLIED  -- content type for code --
-  archive     CDATA          #IMPLIED  -- space-separated list of URIs --
-  standby     %Text;         #IMPLIED  -- message to show while loading --
-  height      %Length;       #IMPLIED  -- override height --
-  width       %Length;       #IMPLIED  -- override width --
-  usemap      %URI;          #IMPLIED  -- use client-side image map --
-  name        CDATA          #IMPLIED  -- submit as part of form --
-  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
-  align       %IAlign;       #IMPLIED  -- vertical or horizontal alignment --
-  border      %Pixels;       #IMPLIED  -- link border width --
-  hspace      %Pixels;       #IMPLIED  -- horizontal gutter --
-  vspace      %Pixels;       #IMPLIED  -- vertical gutter --
-  %reserved;                           -- reserved for possible future use --
-  >
-
-<!ELEMENT PARAM - O EMPTY              -- named property value -->
-<!ATTLIST PARAM
-  id          ID             #IMPLIED  -- document-wide unique id --
-  name        CDATA          #REQUIRED -- property name --
-  value       CDATA          #IMPLIED  -- property value --
-  valuetype   (DATA|REF|OBJECT) DATA   -- How to interpret value --
-  type        %ContentType;  #IMPLIED  -- content type for value
-                                          when valuetype=ref --
-  >
-
-<!--=================== Java APPLET ==================================-->
-<!--
-  One of code or object attributes must be present.
-  Place PARAM elements before other content.
--->
-<!ELEMENT APPLET - - (PARAM | %flow;)* -- Java applet -->
-<!ATTLIST APPLET
-  %coreattrs;                          -- id, class, style, title --
-  codebase    %URI;          #IMPLIED  -- optional base URI for applet --
-  archive     CDATA          #IMPLIED  -- comma-separated archive list --
-  code        CDATA          #IMPLIED  -- applet class file --
-  object      CDATA          #IMPLIED  -- serialized applet file --
-  alt         %Text;         #IMPLIED  -- short description --
-  name        CDATA          #IMPLIED  -- allows applets to find each other --
-  width       %Length;       #REQUIRED -- initial width --
-  height      %Length;       #REQUIRED -- initial height --
-  align       %IAlign;       #IMPLIED  -- vertical or horizontal alignment --
-  hspace      %Pixels;       #IMPLIED  -- horizontal gutter --
-  vspace      %Pixels;       #IMPLIED  -- vertical gutter --
-  >
-
-<!--=================== Horizontal Rule ==================================-->
-
-<!ELEMENT HR - O EMPTY -- horizontal rule -->
-<!ATTLIST HR
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  align       (left|center|right) #IMPLIED
-  noshade     (noshade)      #IMPLIED
-  size        %Pixels;       #IMPLIED
-  width       %Length;       #IMPLIED
-  >
-
-<!--=================== Paragraphs =======================================-->
-
-<!ELEMENT P - O (%inline;)*            -- paragraph -->
-<!ATTLIST P
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  %align;                              -- align, text alignment --
-  >
-
-<!--=================== Headings =========================================-->
-
-<!--
-  There are six levels of headings from H1 (the most important)
-  to H6 (the least important).
--->
-
-<!ELEMENT (%heading;)  - - (%inline;)* -- heading -->
-<!ATTLIST (%heading;)
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  %align;                              -- align, text alignment --
-  >
-
-<!--=================== Preformatted Text ================================-->
-
-<!-- excludes markup for images and changes in font size -->
-<!ENTITY % pre.exclusion "IMG|OBJECT|APPLET|BIG|SMALL|SUB|SUP|FONT|BASEFONT">
-
-<!ELEMENT PRE - - (%inline;)* -(%pre.exclusion;) -- preformatted text -->
-<!ATTLIST PRE
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  width       NUMBER         #IMPLIED
-  >
-
-<!--===================== Inline Quotes ==================================-->
-
-<!ELEMENT Q - - (%inline;)*            -- short inline quotation -->
-<!ATTLIST Q
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  cite        %URI;          #IMPLIED  -- URI for source document or msg --
-  >
-
-<!--=================== Block-like Quotes ================================-->
-
-<!ELEMENT BLOCKQUOTE - - (%flow;)*     -- long quotation -->
-<!ATTLIST BLOCKQUOTE
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  cite        %URI;          #IMPLIED  -- URI for source document or msg --
-  >
-
-<!--=================== Inserted/Deleted Text ============================-->
-
-
-<!-- INS/DEL are handled by inclusion on BODY -->
-<!ELEMENT (INS|DEL) - - (%flow;)*      -- inserted text, deleted text -->
-<!ATTLIST (INS|DEL)
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  cite        %URI;          #IMPLIED  -- info on reason for change --
-  datetime    %Datetime;     #IMPLIED  -- date and time of change --
-  >
-
-<!--=================== Lists ============================================-->
-
-<!-- definition lists - DT for term, DD for its definition -->
-
-<!ELEMENT DL - - (DT|DD)+              -- definition list -->
-<!ATTLIST DL
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  compact     (compact)      #IMPLIED  -- reduced interitem spacing --
-  >
-
-<!ELEMENT DT - O (%inline;)*           -- definition term -->
-<!ELEMENT DD - O (%flow;)*             -- definition description -->
-<!ATTLIST (DT|DD)
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  >
-
-<!-- Ordered lists (OL) Numbering style
-
-    1   arablic numbers     1, 2, 3, ...
-    a   lower alpha         a, b, c, ...
-    A   upper alpha         A, B, C, ...
-    i   lower roman         i, ii, iii, ...
-    I   upper roman         I, II, III, ...
-
-    The style is applied to the sequence number which by default
-    is reset to 1 for the first list item in an ordered list.
-
-    This can't be expressed directly in SGML due to case folding.
--->
-
-<!ENTITY % OLStyle "CDATA"      -- constrained to: "(1|a|A|i|I)" -->
-
-<!ELEMENT OL - - (LI)+                 -- ordered list -->
-<!ATTLIST OL
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  type        %OLStyle;      #IMPLIED  -- numbering style --
-  compact     (compact)      #IMPLIED  -- reduced interitem spacing --
-  start       NUMBER         #IMPLIED  -- starting sequence number --
-  >
-
-<!-- Unordered Lists (UL) bullet styles -->
-<!ENTITY % ULStyle "(disc|square|circle)">
-
-<!ELEMENT UL - - (LI)+                 -- unordered list -->
-<!ATTLIST UL
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  type        %ULStyle;      #IMPLIED  -- bullet style --
-  compact     (compact)      #IMPLIED  -- reduced interitem spacing --
-  >
-
-<!ELEMENT (DIR|MENU) - - (LI)+ -(%block;) -- directory list, menu list -->
-<!ATTLIST DIR
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  compact     (compact)      #IMPLIED -- reduced interitem spacing --
-  >
-<!ATTLIST MENU
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  compact     (compact)      #IMPLIED -- reduced interitem spacing --
-  >
-
-<!ENTITY % LIStyle "CDATA" -- constrained to: "(%ULStyle;|%OLStyle;)" -->
-
-<!ELEMENT LI - O (%flow;)*             -- list item -->
-<!ATTLIST LI
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  type        %LIStyle;      #IMPLIED  -- list item style --
-  value       NUMBER         #IMPLIED  -- reset sequence number --
-  >
-
-<!--================ Forms ===============================================-->
-<!ELEMENT FORM - - (%flow;)* -(FORM)   -- interactive form -->
-<!ATTLIST FORM
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  action      %URI;          #REQUIRED -- server-side form handler --
-  method      (GET|POST)     GET       -- HTTP method used to submit the form--
-  enctype     %ContentType;  "application/x-www-form-urlencoded"
-  accept      %ContentTypes; #IMPLIED  -- list of MIME types for file upload --
-  name        CDATA          #IMPLIED  -- name of form for scripting --
-  onsubmit    %Script;       #IMPLIED  -- the form was submitted --
-  onreset     %Script;       #IMPLIED  -- the form was reset --
-  target      %FrameTarget;  #IMPLIED  -- render in this frame --
-  accept-charset %Charsets;  #IMPLIED  -- list of supported charsets --
-  >
-
-<!-- Each label must not contain more than ONE field -->
-<!ELEMENT LABEL - - (%inline;)* -(LABEL) -- form field label text -->
-<!ATTLIST LABEL
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  for         IDREF          #IMPLIED  -- matches field ID value --
-  accesskey   %Character;    #IMPLIED  -- accessibility key character --
-  onfocus     %Script;       #IMPLIED  -- the element got the focus --
-  onblur      %Script;       #IMPLIED  -- the element lost the focus --
-  >
-
-<!ENTITY % InputType
-  "(TEXT | PASSWORD | CHECKBOX |
-    RADIO | SUBMIT | RESET |
-    FILE | HIDDEN | IMAGE | BUTTON)"
-   >
-
-<!-- attribute name required for all but submit and reset -->
-<!ELEMENT INPUT - O EMPTY              -- form control -->
-<!ATTLIST INPUT
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  type        %InputType;    TEXT      -- what kind of widget is needed --
-  name        CDATA          #IMPLIED  -- submit as part of form --
-  value       CDATA          #IMPLIED  -- Specify for radio buttons and checkboxes --
-  checked     (checked)      #IMPLIED  -- for radio buttons and check boxes --
-  disabled    (disabled)     #IMPLIED  -- unavailable in this context --
-  readonly    (readonly)     #IMPLIED  -- for text and passwd --
-  size        CDATA          #IMPLIED  -- specific to each type of field --
-  maxlength   NUMBER         #IMPLIED  -- max chars for text fields --
-  src         %URI;          #IMPLIED  -- for fields with images --
-  alt         CDATA          #IMPLIED  -- short description --
-  usemap      %URI;          #IMPLIED  -- use client-side image map --
-  ismap       (ismap)        #IMPLIED  -- use server-side image map --
-  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
-  accesskey   %Character;    #IMPLIED  -- accessibility key character --
-  onfocus     %Script;       #IMPLIED  -- the element got the focus --
-  onblur      %Script;       #IMPLIED  -- the element lost the focus --
-  onselect    %Script;       #IMPLIED  -- some text was selected --
-  onchange    %Script;       #IMPLIED  -- the element value was changed --
-  accept      %ContentTypes; #IMPLIED  -- list of MIME types for file upload --
-  align       %IAlign;       #IMPLIED  -- vertical or horizontal alignment --
-  %reserved;                           -- reserved for possible future use --
-  >
-
-<!ELEMENT SELECT - - (OPTGROUP|OPTION)+ -- option selector -->
-<!ATTLIST SELECT
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  name        CDATA          #IMPLIED  -- field name --
-  size        NUMBER         #IMPLIED  -- rows visible --
-  multiple    (multiple)     #IMPLIED  -- default is single selection --
-  disabled    (disabled)     #IMPLIED  -- unavailable in this context --
-  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
-  onfocus     %Script;       #IMPLIED  -- the element got the focus --
-  onblur      %Script;       #IMPLIED  -- the element lost the focus --
-  onchange    %Script;       #IMPLIED  -- the element value was changed --
-  %reserved;                           -- reserved for possible future use --
-  >
-
-<!ELEMENT OPTGROUP - - (OPTION)+ -- option group -->
-<!ATTLIST OPTGROUP
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  disabled    (disabled)     #IMPLIED  -- unavailable in this context --
-  label       %Text;         #REQUIRED -- for use in hierarchical menus --
-  >
-
-<!ELEMENT OPTION - O (#PCDATA)         -- selectable choice -->
-<!ATTLIST OPTION
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  selected    (selected)     #IMPLIED
-  disabled    (disabled)     #IMPLIED  -- unavailable in this context --
-  label       %Text;         #IMPLIED  -- for use in hierarchical menus --
-  value       CDATA          #IMPLIED  -- defaults to element content --
-  >
-
-<!ELEMENT TEXTAREA - - (#PCDATA)       -- multi-line text field -->
-<!ATTLIST TEXTAREA
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  name        CDATA          #IMPLIED
-  rows        NUMBER         #REQUIRED
-  cols        NUMBER         #REQUIRED
-  disabled    (disabled)     #IMPLIED  -- unavailable in this context --
-  readonly    (readonly)     #IMPLIED
-  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
-  accesskey   %Character;    #IMPLIED  -- accessibility key character --
-  onfocus     %Script;       #IMPLIED  -- the element got the focus --
-  onblur      %Script;       #IMPLIED  -- the element lost the focus --
-  onselect    %Script;       #IMPLIED  -- some text was selected --
-  onchange    %Script;       #IMPLIED  -- the element value was changed --
-  %reserved;                           -- reserved for possible future use --
-  >
-
-<!--
-  #PCDATA is to solve the mixed content problem,
-  per specification only whitespace is allowed there!
- -->
-<!ELEMENT FIELDSET - - (#PCDATA,LEGEND,(%flow;)*) -- form control group -->
-<!ATTLIST FIELDSET
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  >
-
-<!ELEMENT LEGEND - - (%inline;)*       -- fieldset legend -->
-<!ENTITY % LAlign "(top|bottom|left|right)">
-
-<!ATTLIST LEGEND
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  accesskey   %Character;    #IMPLIED  -- accessibility key character --
-  align       %LAlign;       #IMPLIED  -- relative to fieldset --
-  >
-
-<!ELEMENT BUTTON - -
-     (%flow;)* -(A|%formctrl;|FORM|ISINDEX|FIELDSET|IFRAME)
-     -- push button -->
-<!ATTLIST BUTTON
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED  -- sent to server when submitted --
-  type        (button|submit|reset) submit -- for use as form button --
-  disabled    (disabled)     #IMPLIED  -- unavailable in this context --
-  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
-  accesskey   %Character;    #IMPLIED  -- accessibility key character --
-  onfocus     %Script;       #IMPLIED  -- the element got the focus --
-  onblur      %Script;       #IMPLIED  -- the element lost the focus --
-  %reserved;                           -- reserved for possible future use --
-  >
-
-<!--======================= Tables =======================================-->
-
-<!-- IETF HTML table standard, see [RFC1942] -->
-
-<!--
- The BORDER attribute sets the thickness of the frame around the
- table. The default units are screen pixels.
-
- The FRAME attribute specifies which parts of the frame around
- the table should be rendered. The values are not the same as
- CALS to avoid a name clash with the VALIGN attribute.
-
- The value "border" is included for backwards compatibility with
- <TABLE BORDER> which yields frame=border and border=implied
- For <TABLE BORDER=1> you get border=1 and frame=implied. In this
- case, it is appropriate to treat this as frame=border for backwards
- compatibility with deployed browsers.
--->
-<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
-
-<!--
- The RULES attribute defines which rules to draw between cells:
-
- If RULES is absent then assume:
-     "none" if BORDER is absent or BORDER=0 otherwise "all"
--->
-
-<!ENTITY % TRules "(none | groups | rows | cols | all)">
-  
-<!-- horizontal placement of table relative to document -->
-<!ENTITY % TAlign "(left|center|right)">
-
-<!-- horizontal alignment attributes for cell contents -->
-<!ENTITY % cellhalign
-  "align      (left|center|right|justify|char) #IMPLIED
-   char       %Character;    #IMPLIED  -- alignment char, e.g. char=':' --
-   charoff    %Length;       #IMPLIED  -- offset for alignment char --"
-  >
-
-<!-- vertical alignment attributes for cell contents -->
-<!ENTITY % cellvalign
-  "valign     (top|middle|bottom|baseline) #IMPLIED"
-  >
-
-<!ELEMENT TABLE - -
-     (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
-<!ELEMENT CAPTION  - - (%inline;)*     -- table caption -->
-<!ELEMENT THEAD    - O (TR)+           -- table header -->
-<!ELEMENT TFOOT    - O (TR)+           -- table footer -->
-<!ELEMENT TBODY    O O (TR)+           -- table body -->
-<!ELEMENT COLGROUP - O (COL)*          -- table column group -->
-<!ELEMENT COL      - O EMPTY           -- table column -->
-<!ELEMENT TR       - O (TH|TD)+        -- table row -->
-<!ELEMENT (TH|TD)  - O (%flow;)*       -- table header cell, table data cell-->
-
-<!ATTLIST TABLE                        -- table element --
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  summary     %Text;         #IMPLIED  -- purpose/structure for speech output--
-  width       %Length;       #IMPLIED  -- table width --
-  border      %Pixels;       #IMPLIED  -- controls frame width around table --
-  frame       %TFrame;       #IMPLIED  -- which parts of frame to render --
-  rules       %TRules;       #IMPLIED  -- rulings between rows and cols --
-  cellspacing %Length;       #IMPLIED  -- spacing between cells --
-  cellpadding %Length;       #IMPLIED  -- spacing within cells --
-  align       %TAlign;       #IMPLIED  -- table position relative to window --
-  bgcolor     %Color;        #IMPLIED  -- background color for cells --
-  %reserved;                           -- reserved for possible future use --
-  datapagesize CDATA         #IMPLIED  -- reserved for possible future use --
-  >
-
-<!ENTITY % CAlign "(top|bottom|left|right)">
-
-<!ATTLIST CAPTION
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  align       %CAlign;       #IMPLIED  -- relative to table --
-  >
-
-<!--
-COLGROUP groups a set of COL elements. It allows you to group
-several semantically related columns together.
--->
-<!ATTLIST COLGROUP
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  span        NUMBER         1         -- default number of columns in group --
-  width       %MultiLength;  #IMPLIED  -- default width for enclosed COLs --
-  %cellhalign;                         -- horizontal alignment in cells --
-  %cellvalign;                         -- vertical alignment in cells --
-  >
-
-<!--
- COL elements define the alignment properties for cells in
- one or more columns.
-
- The WIDTH attribute specifies the width of the columns, e.g.
-
-     width=64        width in screen pixels
-     width=0.5*      relative width of 0.5
-
- The SPAN attribute causes the attributes of one
- COL element to apply to more than one column.
--->
-<!ATTLIST COL                          -- column groups and properties --
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  span        NUMBER         1         -- COL attributes affect N columns --
-  width       %MultiLength;  #IMPLIED  -- column width specification --
-  %cellhalign;                         -- horizontal alignment in cells --
-  %cellvalign;                         -- vertical alignment in cells --
-  >
-
-<!--
-    Use THEAD to duplicate headers when breaking table
-    across page boundaries, or for static headers when
-    TBODY sections are rendered in scrolling panel.
-
-    Use TFOOT to duplicate footers when breaking table
-    across page boundaries, or for static footers when
-    TBODY sections are rendered in scrolling panel.
-
-    Use multiple TBODY sections when rules are needed
-    between groups of table rows.
--->
-<!ATTLIST (THEAD|TBODY|TFOOT)          -- table section --
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  %cellhalign;                         -- horizontal alignment in cells --
-  %cellvalign;                         -- vertical alignment in cells --
-  >
-
-<!ATTLIST TR                           -- table row --
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  %cellhalign;                         -- horizontal alignment in cells --
-  %cellvalign;                         -- vertical alignment in cells --
-  bgcolor     %Color;        #IMPLIED  -- background color for row --
-  >
-
-
-
-<!-- Scope is simpler than headers attribute for common tables -->
-<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
-
-<!-- TH is for headers, TD for data, but for cells acting as both use TD -->
-<!ATTLIST (TH|TD)                      -- header or data cell --
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  abbr        %Text;         #IMPLIED  -- abbreviation for header cell --
-  axis        CDATA          #IMPLIED  -- comma-separated list of related headers--
-  headers     IDREFS         #IMPLIED  -- list of id's for header cells --
-  scope       %Scope;        #IMPLIED  -- scope covered by header cells --
-  rowspan     NUMBER         1         -- number of rows spanned by cell --
-  colspan     NUMBER         1         -- number of cols spanned by cell --
-  %cellhalign;                         -- horizontal alignment in cells --
-  %cellvalign;                         -- vertical alignment in cells --
-  nowrap      (nowrap)       #IMPLIED  -- suppress word wrap --
-  bgcolor     %Color;        #IMPLIED  -- cell background color --
-  width       %Length;       #IMPLIED  -- width for cell --
-  height      %Length;       #IMPLIED  -- height for cell --
-  >
-
-<!--================== Document Frames ===================================-->
-
-<!--
-  The content model for HTML documents depends on whether the HEAD is
-  followed by a FRAMESET or BODY element. The widespread omission of
-  the BODY start tag makes it impractical to define the content model
-  without the use of a marked section.
--->
-
-<![ %HTML.Frameset; [
-<!ELEMENT FRAMESET - - ((FRAMESET|FRAME)+ & NOFRAMES?) -- window subdivision-->
-<!ATTLIST FRAMESET
-  %coreattrs;                          -- id, class, style, title --
-  rows        %MultiLengths; #IMPLIED  -- list of lengths,
-                                          default: 100% (1 row) --
-  cols        %MultiLengths; #IMPLIED  -- list of lengths,
-                                          default: 100% (1 col) --
-  onload      %Script;       #IMPLIED  -- all the frames have been loaded  -- 
-  onunload    %Script;       #IMPLIED  -- all the frames have been removed -- 
-  >
-]]>
-
-<![ %HTML.Frameset; [
-<!-- reserved frame names start with "_" otherwise starts with letter -->
-<!ELEMENT FRAME - O EMPTY              -- subwindow -->
-<!ATTLIST FRAME
-  %coreattrs;                          -- id, class, style, title --
-  longdesc    %URI;          #IMPLIED  -- link to long description
-                                          (complements title) --
-  name        CDATA          #IMPLIED  -- name of frame for targetting --
-  src         %URI;          #IMPLIED  -- source of frame content --
-  frameborder (1|0)          1         -- request frame borders? --
-  marginwidth %Pixels;       #IMPLIED  -- margin widths in pixels --
-  marginheight %Pixels;      #IMPLIED  -- margin height in pixels --
-  noresize    (noresize)     #IMPLIED  -- allow users to resize frames? --
-  scrolling   (yes|no|auto)  auto      -- scrollbar or none --
-  >
-]]>
-
-<!ELEMENT IFRAME - - (%flow;)*         -- inline subwindow -->
-<!ATTLIST IFRAME
-  %coreattrs;                          -- id, class, style, title --
-  longdesc    %URI;          #IMPLIED  -- link to long description
-                                          (complements title) --
-  name        CDATA          #IMPLIED  -- name of frame for targetting --
-  src         %URI;          #IMPLIED  -- source of frame content --
-  frameborder (1|0)          1         -- request frame borders? --
-  marginwidth %Pixels;       #IMPLIED  -- margin widths in pixels --
-  marginheight %Pixels;      #IMPLIED  -- margin height in pixels --
-  scrolling   (yes|no|auto)  auto      -- scrollbar or none --
-  align       %IAlign;       #IMPLIED  -- vertical or horizontal alignment --
-  height      %Length;       #IMPLIED  -- frame height --
-  width       %Length;       #IMPLIED  -- frame width --
-  >
-
-<![ %HTML.Frameset; [
-<!ENTITY % noframes.content "(BODY) -(NOFRAMES)">
-]]>
-
-<!ENTITY % noframes.content "(%flow;)*">
-
-<!ELEMENT NOFRAMES - - %noframes.content;
- -- alternate content container for non frame-based rendering -->
-<!ATTLIST NOFRAMES
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  >
-
-<!--================ Document Head =======================================-->
-<!-- %head.misc; defined earlier on as "SCRIPT|STYLE|META|LINK|OBJECT" -->
-<!ENTITY % head.content "TITLE & ISINDEX? & BASE?">
-
-<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- document head -->
-<!ATTLIST HEAD
-  %i18n;                               -- lang, dir --
-  profile     %URI;          #IMPLIED  -- named dictionary of meta info --
-  >
-
-<!-- The TITLE element is not considered part of the flow of text.
-       It should be displayed, for example as the page header or
-       window title. Exactly one title is required per document.
-    -->
-<!ELEMENT TITLE - - (#PCDATA) -(%head.misc;) -- document title -->
-<!ATTLIST TITLE %i18n>
-
-<!ELEMENT ISINDEX - O EMPTY            -- single line prompt -->
-<!ATTLIST ISINDEX
-  %coreattrs;                          -- id, class, style, title --
-  %i18n;                               -- lang, dir --
-  prompt      %Text;         #IMPLIED  -- prompt message -->
-
-<!ELEMENT BASE - O EMPTY               -- document base URI -->
-<!ATTLIST BASE
-  href        %URI;          #IMPLIED  -- URI that acts as base URI --
-  target      %FrameTarget;  #IMPLIED  -- render in this frame --
-  >
-
-<!ELEMENT META - O EMPTY               -- generic metainformation -->
-<!ATTLIST META
-  %i18n;                               -- lang, dir, for use with content --
-  http-equiv  NAME           #IMPLIED  -- HTTP response header name  --
-  name        NAME           #IMPLIED  -- metainformation name --
-  content     CDATA          #REQUIRED -- associated information --
-  scheme      CDATA          #IMPLIED  -- select form of content --
-  >
-
-<!ELEMENT STYLE - - %StyleSheet        -- style info -->
-<!ATTLIST STYLE
-  %i18n;                               -- lang, dir, for use with title --
-  type        %ContentType;  #REQUIRED -- content type of style language --
-  media       %MediaDesc;    #IMPLIED  -- designed for use with these media --
-  title       %Text;         #IMPLIED  -- advisory title --
-  >
-
-<!ELEMENT SCRIPT - - %Script;          -- script statements -->
-<!ATTLIST SCRIPT
-  charset     %Charset;      #IMPLIED  -- char encoding of linked resource --
-  type        %ContentType;  #REQUIRED -- content type of script language --
-  language    CDATA          #IMPLIED  -- predefined script language name --
-  src         %URI;          #IMPLIED  -- URI for an external script --
-  defer       (defer)        #IMPLIED  -- UA may defer execution of script --
-  event       CDATA          #IMPLIED  -- reserved for possible future use --
-  for         %URI;          #IMPLIED  -- reserved for possible future use --
-  >
-
-<!ELEMENT NOSCRIPT - - (%flow;)*
-  -- alternate content container for non script-based rendering -->
-<!ATTLIST NOSCRIPT
-  %attrs;                              -- %coreattrs, %i18n, %events --
-  >
-
-<!--================ Document Structure ==================================-->
-<!ENTITY % version "version CDATA #FIXED '%HTML.Version;'">
-
-<![ %HTML.Frameset; [
-<!ENTITY % html.content "HEAD, FRAMESET">
-]]>
-
-<!ENTITY % html.content "HEAD, BODY">
-
-<!ELEMENT HTML O O (%html.content;)    -- document root element -->
-<!ATTLIST HTML
-  %i18n;                               -- lang, dir --
-  %version;
-  >