summaryrefslogtreecommitdiffstats
path: root/htdocs/sgml-lib
diff options
context:
space:
mode:
Diffstat (limited to 'htdocs/sgml-lib')
-rw-r--r--htdocs/sgml-lib/ISOlat1.ent110
-rw-r--r--htdocs/sgml-lib/ISOlat1.sgml74
-rw-r--r--htdocs/sgml-lib/REC-html40-971218/HTML4.cat8
-rw-r--r--htdocs/sgml-lib/REC-html40-971218/HTML4.decl80
-rw-r--r--htdocs/sgml-lib/REC-html40-971218/HTMLlat1.ent195
-rw-r--r--htdocs/sgml-lib/REC-html40-971218/HTMLspecial.ent77
-rw-r--r--htdocs/sgml-lib/REC-html40-971218/HTMLsymbol.ent241
-rw-r--r--htdocs/sgml-lib/REC-html40-971218/frameset.dtd37
-rw-r--r--htdocs/sgml-lib/REC-html40-971218/html40.tgzbin0 -> 339507 bytes
-rw-r--r--htdocs/sgml-lib/REC-html40-971218/loose.dtd1092
-rw-r--r--htdocs/sgml-lib/REC-html40-971218/strict.dtd873
-rw-r--r--htdocs/sgml-lib/catalog158
-rw-r--r--htdocs/sgml-lib/html-0.dtd39
-rw-r--r--htdocs/sgml-lib/html-0s.dtd30
-rw-r--r--htdocs/sgml-lib/html-1.dtd29
-rw-r--r--htdocs/sgml-lib/html-1s.dtd29
-rw-r--r--htdocs/sgml-lib/html-2.1e.dtd344
-rw-r--r--htdocs/sgml-lib/html-3-as.dtd1657
-rw-r--r--htdocs/sgml-lib/html-3.2.1996-08-15.dtd613
-rw-r--r--htdocs/sgml-lib/html-3.2.1996-09-09.dtd610
-rw-r--r--htdocs/sgml-lib/html-3.2.dtd598
-rw-r--r--htdocs/sgml-lib/html-3.dtd1447
-rw-r--r--htdocs/sgml-lib/html-3s.dtd24
-rw-r--r--htdocs/sgml-lib/html-970421.decl81
-rw-r--r--htdocs/sgml-lib/html-970421.dtd657
-rw-r--r--htdocs/sgml-lib/html-cougar.dtd866
-rw-r--r--htdocs/sgml-lib/html-hj.dtd1305
-rw-r--r--htdocs/sgml-lib/html-hjs.dtd27
-rw-r--r--htdocs/sgml-lib/html-i18n.decl91
-rw-r--r--htdocs/sgml-lib/html-icons.sgml8
-rw-r--r--htdocs/sgml-lib/html-latin.sgml161
-rw-r--r--htdocs/sgml-lib/html-math.sgml53
-rw-r--r--htdocs/sgml-lib/html-mcom.dtd541
-rw-r--r--htdocs/sgml-lib/html-mcoms.dtd36
-rw-r--r--htdocs/sgml-lib/html-old.decl79
-rw-r--r--htdocs/sgml-lib/html-old2.decl81
-rw-r--r--htdocs/sgml-lib/html-orig.decl88
-rw-r--r--htdocs/sgml-lib/html-s.dtd29
-rw-r--r--htdocs/sgml-lib/html-sq.dtd962
-rw-r--r--htdocs/sgml-lib/html.dtd599
-rw-r--r--htdocs/sgml-lib/htmli.decl80
-rw-r--r--htdocs/sgml-lib/ie30-s.dtd23
-rw-r--r--htdocs/sgml-lib/ie30.dtd853
-rw-r--r--htdocs/sgml-lib/ie30tables.dtd181
-rw-r--r--htdocs/sgml-lib/iehtml-s.dtd24
-rw-r--r--htdocs/sgml-lib/iehtml.dtd835
-rw-r--r--htdocs/sgml-lib/ietables.dtd110
-rw-r--r--htdocs/sgml-lib/oreilly-additional.entities8
-rw-r--r--htdocs/sgml-lib/oreilly-draft-table.elements157
-rw-r--r--htdocs/sgml-lib/oreilly-html-relaxed.dtd249
-rw-r--r--htdocs/sgml-lib/oreilly-html.dtd240
-rw-r--r--htdocs/sgml-lib/oreilly-rfc1866.dtd622
52 files changed, 17411 insertions, 0 deletions
diff --git a/htdocs/sgml-lib/ISOlat1.ent b/htdocs/sgml-lib/ISOlat1.ent
new file mode 100644
index 0000000..998805a
--- /dev/null
+++ b/htdocs/sgml-lib/ISOlat1.ent
@@ -0,0 +1,110 @@
+
+<!-- (C) International Organization for Standardization 1986
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+ This has been extended for use with HTML to cover the full
+ set of codes in the range 160-255 decimal.
+-->
+<!-- Character entity set. Typical invocation:
+ <!ENTITY % ISOlat1 PUBLIC
+ "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML">
+ %ISOlat1;
+-->
+ <!ENTITY nbsp CDATA "&#160;" -- no-break space -->
+ <!ENTITY iexcl CDATA "&#161;" -- inverted exclamation mark -->
+ <!ENTITY cent CDATA "&#162;" -- cent sign -->
+ <!ENTITY pound CDATA "&#163;" -- pound sterling sign -->
+ <!ENTITY curren CDATA "&#164;" -- general currency sign -->
+ <!ENTITY yen CDATA "&#165;" -- yen sign -->
+ <!ENTITY brvbar CDATA "&#166;" -- broken (vertical) bar -->
+ <!ENTITY sect CDATA "&#167;" -- section sign -->
+ <!ENTITY uml CDATA "&#168;" -- umlaut (dieresis) -->
+ <!ENTITY copy CDATA "&#169;" -- copyright sign -->
+ <!ENTITY ordf CDATA "&#170;" -- ordinal indicator, feminine -->
+ <!ENTITY laquo CDATA "&#171;" -- angle quotation mark, left -->
+ <!ENTITY not CDATA "&#172;" -- not sign -->
+ <!ENTITY shy CDATA "&#173;" -- soft hyphen -->
+ <!ENTITY reg CDATA "&#174;" -- registered sign -->
+ <!ENTITY macr CDATA "&#175;" -- macron -->
+ <!ENTITY deg CDATA "&#176;" -- degree sign -->
+ <!ENTITY plusmn CDATA "&#177;" -- plus-or-minus sign -->
+ <!ENTITY sup2 CDATA "&#178;" -- superscript two -->
+ <!ENTITY sup3 CDATA "&#179;" -- superscript three -->
+ <!ENTITY acute CDATA "&#180;" -- acute accent -->
+ <!ENTITY micro CDATA "&#181;" -- micro sign -->
+ <!ENTITY para CDATA "&#182;" -- pilcrow (paragraph sign) -->
+ <!ENTITY middot CDATA "&#183;" -- middle dot -->
+ <!ENTITY cedil CDATA "&#184;" -- cedilla -->
+ <!ENTITY sup1 CDATA "&#185;" -- superscript one -->
+ <!ENTITY ordm CDATA "&#186;" -- ordinal indicator, masculine -->
+ <!ENTITY raquo CDATA "&#187;" -- angle quotation mark, right -->
+ <!ENTITY frac14 CDATA "&#188;" -- fraction one-quarter -->
+ <!ENTITY frac12 CDATA "&#189;" -- fraction one-half -->
+ <!ENTITY frac34 CDATA "&#190;" -- fraction three-quarters -->
+ <!ENTITY iquest CDATA "&#191;" -- inverted question mark -->
+ <!ENTITY Agrave CDATA "&#192;" -- capital A, grave accent -->
+ <!ENTITY Aacute CDATA "&#193;" -- capital A, acute accent -->
+ <!ENTITY Acirc CDATA "&#194;" -- capital A, circumflex accent -->
+ <!ENTITY Atilde CDATA "&#195;" -- capital A, tilde -->
+ <!ENTITY Auml CDATA "&#196;" -- capital A, dieresis or umlaut mark -->
+ <!ENTITY Aring CDATA "&#197;" -- capital A, ring -->
+ <!ENTITY AElig CDATA "&#198;" -- capital AE diphthong (ligature) -->
+ <!ENTITY Ccedil CDATA "&#199;" -- capital C, cedilla -->
+ <!ENTITY Egrave CDATA "&#200;" -- capital E, grave accent -->
+ <!ENTITY Eacute CDATA "&#201;" -- capital E, acute accent -->
+ <!ENTITY Ecirc CDATA "&#202;" -- capital E, circumflex accent -->
+ <!ENTITY Euml CDATA "&#203;" -- capital E, dieresis or umlaut mark -->
+ <!ENTITY Igrave CDATA "&#204;" -- capital I, grave accent -->
+ <!ENTITY Iacute CDATA "&#205;" -- capital I, acute accent -->
+ <!ENTITY Icirc CDATA "&#206;" -- capital I, circumflex accent -->
+ <!ENTITY Iuml CDATA "&#207;" -- capital I, dieresis or umlaut mark -->
+ <!ENTITY ETH CDATA "&#208;" -- capital Eth, Icelandic -->
+ <!ENTITY Ntilde CDATA "&#209;" -- capital N, tilde -->
+ <!ENTITY Ograve CDATA "&#210;" -- capital O, grave accent -->
+ <!ENTITY Oacute CDATA "&#211;" -- capital O, acute accent -->
+ <!ENTITY Ocirc CDATA "&#212;" -- capital O, circumflex accent -->
+ <!ENTITY Otilde CDATA "&#213;" -- capital O, tilde -->
+ <!ENTITY Ouml CDATA "&#214;" -- capital O, dieresis or umlaut mark -->
+ <!ENTITY times CDATA "&#215;" -- multiply sign -->
+ <!ENTITY Oslash CDATA "&#216;" -- capital O, slash -->
+ <!ENTITY Ugrave CDATA "&#217;" -- capital U, grave accent -->
+ <!ENTITY Uacute CDATA "&#218;" -- capital U, acute accent -->
+ <!ENTITY Ucirc CDATA "&#219;" -- capital U, circumflex accent -->
+ <!ENTITY Uuml CDATA "&#220;" -- capital U, dieresis or umlaut mark -->
+ <!ENTITY Yacute CDATA "&#221;" -- capital Y, acute accent -->
+ <!ENTITY THORN CDATA "&#222;" -- capital THORN, Icelandic -->
+ <!ENTITY szlig CDATA "&#223;" -- small sharp s, German (sz ligature) -->
+ <!ENTITY agrave CDATA "&#224;" -- small a, grave accent -->
+ <!ENTITY aacute CDATA "&#225;" -- small a, acute accent -->
+ <!ENTITY acirc CDATA "&#226;" -- small a, circumflex accent -->
+ <!ENTITY atilde CDATA "&#227;" -- small a, tilde -->
+ <!ENTITY auml CDATA "&#228;" -- small a, dieresis or umlaut mark -->
+ <!ENTITY aring CDATA "&#229;" -- small a, ring -->
+ <!ENTITY aelig CDATA "&#230;" -- small ae diphthong (ligature) -->
+ <!ENTITY ccedil CDATA "&#231;" -- small c, cedilla -->
+ <!ENTITY egrave CDATA "&#232;" -- small e, grave accent -->
+ <!ENTITY eacute CDATA "&#233;" -- small e, acute accent -->
+ <!ENTITY ecirc CDATA "&#234;" -- small e, circumflex accent -->
+ <!ENTITY euml CDATA "&#235;" -- small e, dieresis or umlaut mark -->
+ <!ENTITY igrave CDATA "&#236;" -- small i, grave accent -->
+ <!ENTITY iacute CDATA "&#237;" -- small i, acute accent -->
+ <!ENTITY icirc CDATA "&#238;" -- small i, circumflex accent -->
+ <!ENTITY iuml CDATA "&#239;" -- small i, dieresis or umlaut mark -->
+ <!ENTITY eth CDATA "&#240;" -- small eth, Icelandic -->
+ <!ENTITY ntilde CDATA "&#241;" -- small n, tilde -->
+ <!ENTITY ograve CDATA "&#242;" -- small o, grave accent -->
+ <!ENTITY oacute CDATA "&#243;" -- small o, acute accent -->
+ <!ENTITY ocirc CDATA "&#244;" -- small o, circumflex accent -->
+ <!ENTITY otilde CDATA "&#245;" -- small o, tilde -->
+ <!ENTITY ouml CDATA "&#246;" -- small o, dieresis or umlaut mark -->
+ <!ENTITY divide CDATA "&#247;" -- divide sign -->
+ <!ENTITY oslash CDATA "&#248;" -- small o, slash -->
+ <!ENTITY ugrave CDATA "&#249;" -- small u, grave accent -->
+ <!ENTITY uacute CDATA "&#250;" -- small u, acute accent -->
+ <!ENTITY ucirc CDATA "&#251;" -- small u, circumflex accent -->
+ <!ENTITY uuml CDATA "&#252;" -- small u, dieresis or umlaut mark -->
+ <!ENTITY yacute CDATA "&#253;" -- small y, acute accent -->
+ <!ENTITY thorn CDATA "&#254;" -- small thorn, Icelandic -->
+ <!ENTITY yuml CDATA "&#255;" -- small y, dieresis or umlaut mark -->
+
diff --git a/htdocs/sgml-lib/ISOlat1.sgml b/htdocs/sgml-lib/ISOlat1.sgml
new file mode 100644
index 0000000..74710d8
--- /dev/null
+++ b/htdocs/sgml-lib/ISOlat1.sgml
@@ -0,0 +1,74 @@
+<!-- (C) International Organization for Standardization 1986
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+-->
+<!-- Character entity set. Typical invocation:
+ <!ENTITY % ISOlat1 PUBLIC
+ "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML">
+ %ISOlat1;
+-->
+<!-- Modified for use in HTML
+ $Id: ISOlat1.sgml,v 1.1.1.1 1998-07-25 00:00:22 gerald Exp $ -->
+<!ENTITY AElig CDATA "&#198;" -- capital AE diphthong (ligature) -->
+<!ENTITY Aacute CDATA "&#193;" -- capital A, acute accent -->
+<!ENTITY Acirc CDATA "&#194;" -- capital A, circumflex accent -->
+<!ENTITY Agrave CDATA "&#192;" -- capital A, grave accent -->
+<!ENTITY Aring CDATA "&#197;" -- capital A, ring -->
+<!ENTITY Atilde CDATA "&#195;" -- capital A, tilde -->
+<!ENTITY Auml CDATA "&#196;" -- capital A, dieresis or umlaut mark -->
+<!ENTITY Ccedil CDATA "&#199;" -- capital C, cedilla -->
+<!ENTITY ETH CDATA "&#208;" -- capital Eth, Icelandic -->
+<!ENTITY Eacute CDATA "&#201;" -- capital E, acute accent -->
+<!ENTITY Ecirc CDATA "&#202;" -- capital E, circumflex accent -->
+<!ENTITY Egrave CDATA "&#200;" -- capital E, grave accent -->
+<!ENTITY Euml CDATA "&#203;" -- capital E, dieresis or umlaut mark -->
+<!ENTITY Iacute CDATA "&#205;" -- capital I, acute accent -->
+<!ENTITY Icirc CDATA "&#206;" -- capital I, circumflex accent -->
+<!ENTITY Igrave CDATA "&#204;" -- capital I, grave accent -->
+<!ENTITY Iuml CDATA "&#207;" -- capital I, dieresis or umlaut mark -->
+<!ENTITY Ntilde CDATA "&#209;" -- capital N, tilde -->
+<!ENTITY Oacute CDATA "&#211;" -- capital O, acute accent -->
+<!ENTITY Ocirc CDATA "&#212;" -- capital O, circumflex accent -->
+<!ENTITY Ograve CDATA "&#210;" -- capital O, grave accent -->
+<!ENTITY Oslash CDATA "&#216;" -- capital O, slash -->
+<!ENTITY Otilde CDATA "&#213;" -- capital O, tilde -->
+<!ENTITY Ouml CDATA "&#214;" -- capital O, dieresis or umlaut mark -->
+<!ENTITY THORN CDATA "&#222;" -- capital THORN, Icelandic -->
+<!ENTITY Uacute CDATA "&#218;" -- capital U, acute accent -->
+<!ENTITY Ucirc CDATA "&#219;" -- capital U, circumflex accent -->
+<!ENTITY Ugrave CDATA "&#217;" -- capital U, grave accent -->
+<!ENTITY Uuml CDATA "&#220;" -- capital U, dieresis or umlaut mark -->
+<!ENTITY Yacute CDATA "&#221;" -- capital Y, acute accent -->
+<!ENTITY aacute CDATA "&#225;" -- small a, acute accent -->
+<!ENTITY acirc CDATA "&#226;" -- small a, circumflex accent -->
+<!ENTITY aelig CDATA "&#230;" -- small ae diphthong (ligature) -->
+<!ENTITY agrave CDATA "&#224;" -- small a, grave accent -->
+<!ENTITY aring CDATA "&#229;" -- small a, ring -->
+<!ENTITY atilde CDATA "&#227;" -- small a, tilde -->
+<!ENTITY auml CDATA "&#228;" -- small a, dieresis or umlaut mark -->
+<!ENTITY ccedil CDATA "&#231;" -- small c, cedilla -->
+<!ENTITY eacute CDATA "&#233;" -- small e, acute accent -->
+<!ENTITY ecirc CDATA "&#234;" -- small e, circumflex accent -->
+<!ENTITY egrave CDATA "&#232;" -- small e, grave accent -->
+<!ENTITY eth CDATA "&#240;" -- small eth, Icelandic -->
+<!ENTITY euml CDATA "&#235;" -- small e, dieresis or umlaut mark -->
+<!ENTITY iacute CDATA "&#237;" -- small i, acute accent -->
+<!ENTITY icirc CDATA "&#238;" -- small i, circumflex accent -->
+<!ENTITY igrave CDATA "&#236;" -- small i, grave accent -->
+<!ENTITY iuml CDATA "&#239;" -- small i, dieresis or umlaut mark -->
+<!ENTITY ntilde CDATA "&#241;" -- small n, tilde -->
+<!ENTITY oacute CDATA "&#243;" -- small o, acute accent -->
+<!ENTITY ocirc CDATA "&#244;" -- small o, circumflex accent -->
+<!ENTITY ograve CDATA "&#242;" -- small o, grave accent -->
+<!ENTITY oslash CDATA "&#248;" -- small o, slash -->
+<!ENTITY otilde CDATA "&#245;" -- small o, tilde -->
+<!ENTITY ouml CDATA "&#246;" -- small o, dieresis or umlaut mark -->
+<!ENTITY szlig CDATA "&#223;" -- small sharp s, German (sz ligature) -->
+<!ENTITY thorn CDATA "&#254;" -- small thorn, Icelandic -->
+<!ENTITY uacute CDATA "&#250;" -- small u, acute accent -->
+<!ENTITY ucirc CDATA "&#251;" -- small u, circumflex accent -->
+<!ENTITY ugrave CDATA "&#249;" -- small u, grave accent -->
+<!ENTITY uuml CDATA "&#252;" -- small u, dieresis or umlaut mark -->
+<!ENTITY yacute CDATA "&#253;" -- small y, acute accent -->
+<!ENTITY yuml CDATA "&#255;" -- small y, dieresis or umlaut mark -->
diff --git a/htdocs/sgml-lib/REC-html40-971218/HTML4.cat b/htdocs/sgml-lib/REC-html40-971218/HTML4.cat
new file mode 100644
index 0000000..e30e5b8
--- /dev/null
+++ b/htdocs/sgml-lib/REC-html40-971218/HTML4.cat
@@ -0,0 +1,8 @@
+OVERRIDE YES
+
+PUBLIC "-//W3C//DTD HTML 4.0//EN" strict.dtd
+PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" loose.dtd
+PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" frameset.dtd
+PUBLIC "-//W3C//ENTITIES Latin1//EN//HTML" HTMLlat1.ent
+PUBLIC "-//W3C//ENTITIES Special//EN//HTML" HTMLspecial.ent
+PUBLIC "-//W3C//ENTITIES Symbols//EN//HTML" HTMLsymbol.ent
diff --git a/htdocs/sgml-lib/REC-html40-971218/HTML4.decl b/htdocs/sgml-lib/REC-html40-971218/HTML4.decl
new file mode 100644
index 0000000..77d3a91
--- /dev/null
+++ b/htdocs/sgml-lib/REC-html40-971218/HTML4.decl
@@ -0,0 +1,80 @@
+<!SGML "ISO 8879:1986"
+ --
+ SGML Declaration for HyperText Markup Language version 4.0
+
+ With support for the first 17 planes of ISO 10646 and
+ increased limits for tag and literal lengths etc.
+ --
+
+ CHARSET
+ BASESET "ISO Registration Number 177//CHARSET
+ ISO/IEC 10646-1:1993 UCS-4 with
+ implementation level 3//ESC 2/5 2/15 4/6"
+ DESCSET 0 9 UNUSED
+ 9 2 9
+ 11 2 UNUSED
+ 13 1 13
+ 14 18 UNUSED
+ 32 95 32
+ 127 1 UNUSED
+ 128 32 UNUSED
+ 160 55136 160
+ 55296 2048 UNUSED -- SURROGATES --
+ 57344 1056768 57344
+
+CAPACITY SGMLREF
+ TOTALCAP 150000
+ GRPCAP 150000
+ ENTCAP 150000
+
+SCOPE DOCUMENT
+SYNTAX
+ SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+ 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127
+ BASESET "ISO 646IRV:1991//CHARSET
+ International Reference Version
+ (IRV)//ESC 2/8 4/2"
+ DESCSET 0 128 0
+
+ FUNCTION
+ RE 13
+ RS 10
+ SPACE 32
+ TAB SEPCHAR 9
+
+ NAMING LCNMSTRT ""
+ UCNMSTRT ""
+ LCNMCHAR ".-_:"
+ UCNMCHAR ".-_:"
+ NAMECASE GENERAL YES
+ ENTITY NO
+ DELIM GENERAL SGMLREF
+ SHORTREF SGMLREF
+ NAMES SGMLREF
+ QUANTITY SGMLREF
+ ATTCNT 60 -- increased --
+ ATTSPLEN 65536 -- These are the largest values --
+ LITLEN 65536 -- permitted in the declaration --
+ NAMELEN 65536 -- Avoid fixed limits in actual --
+ PILEN 65536 -- implementations of HTML UA's --
+ TAGLVL 100
+ TAGLEN 65536
+ GRPGTCNT 150
+ GRPCNT 64
+
+FEATURES
+ MINIMIZE
+ DATATAG NO
+ OMITTAG YES
+ RANK NO
+ SHORTTAG YES
+ LINK
+ SIMPLE NO
+ IMPLICIT NO
+ EXPLICIT NO
+ OTHER
+ CONCUR NO
+ SUBDOC NO
+ FORMAL YES
+ APPINFO NONE
+> \ No newline at end of file
diff --git a/htdocs/sgml-lib/REC-html40-971218/HTMLlat1.ent b/htdocs/sgml-lib/REC-html40-971218/HTMLlat1.ent
new file mode 100644
index 0000000..7632023
--- /dev/null
+++ b/htdocs/sgml-lib/REC-html40-971218/HTMLlat1.ent
@@ -0,0 +1,195 @@
+<!-- Portions (C) International Organization for Standardization 1986
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+-->
+<!-- Character entity set. Typical invocation:
+ <!ENTITY % HTMLlat1 PUBLIC
+ "-//W3C//ENTITIES Full Latin 1//EN//HTML">
+ %HTMLlat1;
+-->
+
+<!ENTITY nbsp CDATA "&#160;" -- no-break space = non-breaking space,
+ U+00A0 ISOnum -->
+<!ENTITY iexcl CDATA "&#161;" -- inverted exclamation mark, U+00A1 ISOnum -->
+<!ENTITY cent CDATA "&#162;" -- cent sign, U+00A2 ISOnum -->
+<!ENTITY pound CDATA "&#163;" -- pound sign, U+00A3 ISOnum -->
+<!ENTITY curren CDATA "&#164;" -- currency sign, U+00A4 ISOnum -->
+<!ENTITY yen CDATA "&#165;" -- yen sign = yuan sign, U+00A5 ISOnum -->
+<!ENTITY brvbar CDATA "&#166;" -- broken bar = broken vertical bar,
+ U+00A6 ISOnum -->
+<!ENTITY sect CDATA "&#167;" -- section sign, U+00A7 ISOnum -->
+<!ENTITY uml CDATA "&#168;" -- diaeresis = spacing diaeresis,
+ U+00A8 ISOdia -->
+<!ENTITY copy CDATA "&#169;" -- copyright sign, U+00A9 ISOnum -->
+<!ENTITY ordf CDATA "&#170;" -- feminine ordinal indicator, U+00AA ISOnum -->
+<!ENTITY laquo CDATA "&#171;" -- left-pointing double angle quotation mark
+ = left pointing guillemet, U+00AB ISOnum -->
+<!ENTITY not CDATA "&#172;" -- not sign = discretionary hyphen,
+ U+00AC ISOnum -->
+<!ENTITY shy CDATA "&#173;" -- soft hyphen = discretionary hyphen,
+ U+00AD ISOnum -->
+<!ENTITY reg CDATA "&#174;" -- registered sign = registered trade mark sign,
+ U+00AE ISOnum -->
+<!ENTITY macr CDATA "&#175;" -- macron = spacing macron = overline
+ = APL overbar, U+00AF ISOdia -->
+<!ENTITY deg CDATA "&#176;" -- degree sign, U+00B0 ISOnum -->
+<!ENTITY plusmn CDATA "&#177;" -- plus-minus sign = plus-or-minus sign,
+ U+00B1 ISOnum -->
+<!ENTITY sup2 CDATA "&#178;" -- superscript two = superscript digit two
+ = squared, U+00B2 ISOnum -->
+<!ENTITY sup3 CDATA "&#179;" -- superscript three = superscript digit three
+ = cubed, U+00B3 ISOnum -->
+<!ENTITY acute CDATA "&#180;" -- acute accent = spacing acute,
+ U+00B4 ISOdia -->
+<!ENTITY micro CDATA "&#181;" -- micro sign, U+00B5 ISOnum -->
+<!ENTITY para CDATA "&#182;" -- pilcrow sign = paragraph sign,
+ U+00B6 ISOnum -->
+<!ENTITY middot CDATA "&#183;" -- middle dot = Georgian comma
+ = Greek middle dot, U+00B7 ISOnum -->
+<!ENTITY cedil CDATA "&#184;" -- cedilla = spacing cedilla, U+00B8 ISOdia -->
+<!ENTITY sup1 CDATA "&#185;" -- superscript one = superscript digit one,
+ U+00B9 ISOnum -->
+<!ENTITY ordm CDATA "&#186;" -- masculine ordinal indicator,
+ U+00BA ISOnum -->
+<!ENTITY raquo CDATA "&#187;" -- right-pointing double angle quotation mark
+ = right pointing guillemet, U+00BB ISOnum -->
+<!ENTITY frac14 CDATA "&#188;" -- vulgar fraction one quarter
+ = fraction one quarter, U+00BC ISOnum -->
+<!ENTITY frac12 CDATA "&#189;" -- vulgar fraction one half
+ = fraction one half, U+00BD ISOnum -->
+<!ENTITY frac34 CDATA "&#190;" -- vulgar fraction three quarters
+ = fraction three quarters, U+00BE ISOnum -->
+<!ENTITY iquest CDATA "&#191;" -- inverted question mark
+ = turned question mark, U+00BF ISOnum -->
+<!ENTITY Agrave CDATA "&#192;" -- latin capital letter A with grave
+ = latin capital letter A grave,
+ U+00C0 ISOlat1 -->
+<!ENTITY Aacute CDATA "&#193;" -- latin capital letter A with acute,
+ U+00C1 ISOlat1 -->
+<!ENTITY Acirc CDATA "&#194;" -- latin capital letter A with circumflex,
+ U+00C2 ISOlat1 -->
+<!ENTITY Atilde CDATA "&#195;" -- latin capital letter A with tilde,
+ U+00C3 ISOlat1 -->
+<!ENTITY Auml CDATA "&#196;" -- latin capital letter A with diaeresis,
+ U+00C4 ISOlat1 -->
+<!ENTITY Aring CDATA "&#197;" -- latin capital letter A with ring above
+ = latin capital letter A ring,
+ U+00C5 ISOlat1 -->
+<!ENTITY AElig CDATA "&#198;" -- latin capital letter AE
+ = latin capital ligature AE,
+ U+00C6 ISOlat1 -->
+<!ENTITY Ccedil CDATA "&#199;" -- latin capital letter C with cedilla,
+ U+00C7 ISOlat1 -->
+<!ENTITY Egrave CDATA "&#200;" -- latin capital letter E with grave,
+ U+00C8 ISOlat1 -->
+<!ENTITY Eacute CDATA "&#201;" -- latin capital letter E with acute,
+ U+00C9 ISOlat1 -->
+<!ENTITY Ecirc CDATA "&#202;" -- latin capital letter E with circumflex,
+ U+00CA ISOlat1 -->
+<!ENTITY Euml CDATA "&#203;" -- latin capital letter E with diaeresis,
+ U+00CB ISOlat1 -->
+<!ENTITY Igrave CDATA "&#204;" -- latin capital letter I with grave,
+ U+00CC ISOlat1 -->
+<!ENTITY Iacute CDATA "&#205;" -- latin capital letter I with acute,
+ U+00CD ISOlat1 -->
+<!ENTITY Icirc CDATA "&#206;" -- latin capital letter I with circumflex,
+ U+00CE ISOlat1 -->
+<!ENTITY Iuml CDATA "&#207;" -- latin capital letter I with diaeresis,
+ U+00CF ISOlat1 -->
+<!ENTITY ETH CDATA "&#208;" -- latin capital letter ETH, U+00D0 ISOlat1 -->
+<!ENTITY Ntilde CDATA "&#209;" -- latin capital letter N with tilde,
+ U+00D1 ISOlat1 -->
+<!ENTITY Ograve CDATA "&#210;" -- latin capital letter O with grave,
+ U+00D2 ISOlat1 -->
+<!ENTITY Oacute CDATA "&#211;" -- latin capital letter O with acute,
+ U+00D3 ISOlat1 -->
+<!ENTITY Ocirc CDATA "&#212;" -- latin capital letter O with circumflex,
+ U+00D4 ISOlat1 -->
+<!ENTITY Otilde CDATA "&#213;" -- latin capital letter O with tilde,
+ U+00D5 ISOlat1 -->
+<!ENTITY Ouml CDATA "&#214;" -- latin capital letter O with diaeresis,
+ U+00D6 ISOlat1 -->
+<!ENTITY times CDATA "&#215;" -- multiplication sign, U+00D7 ISOnum -->
+<!ENTITY Oslash CDATA "&#216;" -- latin capital letter O with stroke
+ = latin capital letter O slash,
+ U+00D8 ISOlat1 -->
+<!ENTITY Ugrave CDATA "&#217;" -- latin capital letter U with grave,
+ U+00D9 ISOlat1 -->
+<!ENTITY Uacute CDATA "&#218;" -- latin capital letter U with acute,
+ U+00DA ISOlat1 -->
+<!ENTITY Ucirc CDATA "&#219;" -- latin capital letter U with circumflex,
+ U+00DB ISOlat1 -->
+<!ENTITY Uuml CDATA "&#220;" -- latin capital letter U with diaeresis,
+ U+00DC ISOlat1 -->
+<!ENTITY Yacute CDATA "&#221;" -- latin capital letter Y with acute,
+ U+00DD ISOlat1 -->
+<!ENTITY THORN CDATA "&#222;" -- latin capital letter THORN,
+ U+00DE ISOlat1 -->
+<!ENTITY szlig CDATA "&#223;" -- latin small letter sharp s = ess-zed,
+ U+00DF ISOlat1 -->
+<!ENTITY agrave CDATA "&#224;" -- latin small letter a with grave
+ = latin small letter a grave,
+ U+00E0 ISOlat1 -->
+<!ENTITY aacute CDATA "&#225;" -- latin small letter a with acute,
+ U+00E1 ISOlat1 -->
+<!ENTITY acirc CDATA "&#226;" -- latin small letter a with circumflex,
+ U+00E2 ISOlat1 -->
+<!ENTITY atilde CDATA "&#227;" -- latin small letter a with tilde,
+ U+00E3 ISOlat1 -->
+<!ENTITY auml CDATA "&#228;" -- latin small letter a with diaeresis,
+ U+00E4 ISOlat1 -->
+<!ENTITY aring CDATA "&#229;" -- latin small letter a with ring above
+ = latin small letter a ring,
+ U+00E5 ISOlat1 -->
+<!ENTITY aelig CDATA "&#230;" -- latin small letter ae
+ = latin small ligature ae, U+00E6 ISOlat1 -->
+<!ENTITY ccedil CDATA "&#231;" -- latin small letter c with cedilla,
+ U+00E7 ISOlat1 -->
+<!ENTITY egrave CDATA "&#232;" -- latin small letter e with grave,
+ U+00E8 ISOlat1 -->
+<!ENTITY eacute CDATA "&#233;" -- latin small letter e with acute,
+ U+00E9 ISOlat1 -->
+<!ENTITY ecirc CDATA "&#234;" -- latin small letter e with circumflex,
+ U+00EA ISOlat1 -->
+<!ENTITY euml CDATA "&#235;" -- latin small letter e with diaeresis,
+ U+00EB ISOlat1 -->
+<!ENTITY igrave CDATA "&#236;" -- latin small letter i with grave,
+ U+00EC ISOlat1 -->
+<!ENTITY iacute CDATA "&#237;" -- latin small letter i with acute,
+ U+00ED ISOlat1 -->
+<!ENTITY icirc CDATA "&#238;" -- latin small letter i with circumflex,
+ U+00EE ISOlat1 -->
+<!ENTITY iuml CDATA "&#239;" -- latin small letter i with diaeresis,
+ U+00EF ISOlat1 -->
+<!ENTITY eth CDATA "&#240;" -- latin small letter eth, U+00F0 ISOlat1 -->
+<!ENTITY ntilde CDATA "&#241;" -- latin small letter n with tilde,
+ U+00F1 ISOlat1 -->
+<!ENTITY ograve CDATA "&#242;" -- latin small letter o with grave,
+ U+00F2 ISOlat1 -->
+<!ENTITY oacute CDATA "&#243;" -- latin small letter o with acute,
+ U+00F3 ISOlat1 -->
+<!ENTITY ocirc CDATA "&#244;" -- latin small letter o with circumflex,
+ U+00F4 ISOlat1 -->
+<!ENTITY otilde CDATA "&#245;" -- latin small letter o with tilde,
+ U+00F5 ISOlat1 -->
+<!ENTITY ouml CDATA "&#246;" -- latin small letter o with diaeresis,
+ U+00F6 ISOlat1 -->
+<!ENTITY divide CDATA "&#247;" -- division sign, U+00F7 ISOnum -->
+<!ENTITY oslash CDATA "&#248;" -- latin small letter o with stroke,
+ = latin small letter o slash,
+ U+00F8 ISOlat1 -->
+<!ENTITY ugrave CDATA "&#249;" -- latin small letter u with grave,
+ U+00F9 ISOlat1 -->
+<!ENTITY uacute CDATA "&#250;" -- latin small letter u with acute,
+ U+00FA ISOlat1 -->
+<!ENTITY ucirc CDATA "&#251;" -- latin small letter u with circumflex,
+ U+00FB ISOlat1 -->
+<!ENTITY uuml CDATA "&#252;" -- latin small letter u with diaeresis,
+ U+00FC ISOlat1 -->
+<!ENTITY yacute CDATA "&#253;" -- latin small letter y with acute,
+ U+00FD ISOlat1 -->
+<!ENTITY thorn CDATA "&#254;" -- latin small letter thorn with,
+ U+00FE ISOlat1 -->
+<!ENTITY yuml CDATA "&#255;" -- latin small letter y with diaeresis,
+ U+00FF ISOlat1 --> \ No newline at end of file
diff --git a/htdocs/sgml-lib/REC-html40-971218/HTMLspecial.ent b/htdocs/sgml-lib/REC-html40-971218/HTMLspecial.ent
new file mode 100644
index 0000000..29011cc
--- /dev/null
+++ b/htdocs/sgml-lib/REC-html40-971218/HTMLspecial.ent
@@ -0,0 +1,77 @@
+<!-- Special characters for HTML -->
+
+<!-- Character entity set. Typical invocation:
+ <!ENTITY % HTMLspecial PUBLIC
+ "-//W3C//ENTITIES Special//EN//HTML">
+ %HTMLspecial; -->
+
+<!-- Portions (C) International Organization for Standardization 1986:
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+-->
+
+<!-- Relevant ISO entity set is given unless names are newly introduced.
+ New names (i.e., not in ISO 8879 list) do not clash with any
+ existing ISO 8879 entity names. ISO 10646 character numbers
+ are given for each character, in hex. CDATA values are decimal
+ conversions of the ISO 10646 values and refer to the document
+ character set. Names are Unicode 2.0 names.
+
+-->
+
+<!-- C0 Controls and Basic Latin -->
+<!ENTITY quot CDATA "&#34;" -- quotation mark = APL quote,
+ U+0022 ISOnum -->
+<!ENTITY amp CDATA "&#38;" -- ampersand, U+0026 ISOnum -->
+<!ENTITY lt CDATA "&#60;" -- less-than sign, U+003C ISOnum -->
+<!ENTITY gt CDATA "&#62;" -- greater-than sign, U+003E ISOnum -->
+
+<!-- Latin Extended-A -->
+<!ENTITY OElig CDATA "&#338;" -- latin capital ligature OE,
+ U+0152 ISOlat2 -->
+<!ENTITY oelig CDATA "&#339;" -- latin small ligature oe, U+0153 ISOlat2 -->
+<!-- ligature is a misnomer, this is a separate character in some languages -->
+<!ENTITY Scaron CDATA "&#352;" -- latin capital letter S with caron,
+ U+0160 ISOlat2 -->
+<!ENTITY scaron CDATA "&#353;" -- latin small letter s with caron,
+ U+0161 ISOlat2 -->
+<!ENTITY Yuml CDATA "&#376;" -- latin capital letter Y with diaeresis,
+ U+0178 ISOlat2 -->
+
+<!-- Spacing Modifier Letters -->
+<!ENTITY circ CDATA "&#710;" -- modifier letter circumflex accent,
+ U+02C6 ISOpub -->
+<!ENTITY tilde CDATA "&#732;" -- small tilde, U+02DC ISOdia -->
+
+<!-- General Punctuation -->
+<!ENTITY ensp CDATA "&#8194;" -- en space, U+2002 ISOpub -->
+<!ENTITY emsp CDATA "&#8195;" -- em space, U+2003 ISOpub -->
+<!ENTITY thinsp CDATA "&#8201;" -- thin space, U+2009 ISOpub -->
+<!ENTITY zwnj CDATA "&#8204;" -- zero width non-joiner,
+ U+200C NEW RFC 2070 -->
+<!ENTITY zwj CDATA "&#8205;" -- zero width joiner, U+200D NEW RFC 2070 -->
+<!ENTITY lrm CDATA "&#8206;" -- left-to-right mark, U+200E NEW RFC 2070 -->
+<!ENTITY rlm CDATA "&#8207;" -- right-to-left mark, U+200F NEW RFC 2070 -->
+<!ENTITY ndash CDATA "&#8211;" -- en dash, U+2013 ISOpub -->
+<!ENTITY mdash CDATA "&#8212;" -- em dash, U+2014 ISOpub -->
+<!ENTITY lsquo CDATA "&#8216;" -- left single quotation mark,
+ U+2018 ISOnum -->
+<!ENTITY rsquo CDATA "&#8217;" -- right single quotation mark,
+ U+2019 ISOnum -->
+<!ENTITY sbquo CDATA "&#8218;" -- single low-9 quotation mark, U+201A NEW -->
+<!ENTITY ldquo CDATA "&#8220;" -- left double quotation mark,
+ U+201C ISOnum -->
+<!ENTITY rdquo CDATA "&#8221;" -- right double quotation mark,
+ U+201D ISOnum -->
+<!ENTITY bdquo CDATA "&#8222;" -- double low-9 quotation mark, U+201E NEW -->
+<!ENTITY dagger CDATA "&#8224;" -- dagger, U+2020 ISOpub -->
+<!ENTITY Dagger CDATA "&#8225;" -- double dagger, U+2021 ISOpub -->
+<!ENTITY permil CDATA "&#8240;" -- per mille sign, U+2030 ISOtech -->
+<!ENTITY lsaquo CDATA "&#8249;" -- single left-pointing angle quotation mark,
+ U+2039 ISO proposed -->
+<!-- lsaquo is proposed but not yet ISO standardized -->
+<!ENTITY rsaquo CDATA "&#8250;" -- single right-pointing angle quotation mark,
+ U+203A ISO proposed -->
+<!-- rsaquo is proposed but not yet ISO standardized -->
+<!ENTITY euro CDATA "&#8364;" -- euro sign, U+20AC NEW --> \ No newline at end of file
diff --git a/htdocs/sgml-lib/REC-html40-971218/HTMLsymbol.ent b/htdocs/sgml-lib/REC-html40-971218/HTMLsymbol.ent
new file mode 100644
index 0000000..2a6250b
--- /dev/null
+++ b/htdocs/sgml-lib/REC-html40-971218/HTMLsymbol.ent
@@ -0,0 +1,241 @@
+<!-- Mathematical, Greek and Symbolic characters for HTML -->
+
+<!-- Character entity set. Typical invocation:
+ <!ENTITY % HTMLsymbol PUBLIC
+ "-//W3C//ENTITIES Symbolic//EN//HTML">
+ %HTMLsymbol; -->
+
+<!-- Portions (C) International Organization for Standardization 1986:
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+-->
+
+<!-- Relevant ISO entity set is given unless names are newly introduced.
+ New names (i.e., not in ISO 8879 list) do not clash with any
+ existing ISO 8879 entity names. ISO 10646 character numbers
+ are given for each character, in hex. CDATA values are decimal
+ conversions of the ISO 10646 values and refer to the document
+ character set. Names are Unicode 2.0 names.
+
+-->
+
+<!-- Latin Extended-B -->
+<!ENTITY fnof CDATA "&#402;" -- latin small f with hook = function
+ = florin, U+0192 ISOtech -->
+
+<!-- Greek -->
+<!ENTITY Alpha CDATA "&#913;" -- greek capital letter alpha, U+0391 -->
+<!ENTITY Beta CDATA "&#914;" -- greek capital letter beta, U+0392 -->
+<!ENTITY Gamma CDATA "&#915;" -- greek capital letter gamma,
+ U+0393 ISOgrk3 -->
+<!ENTITY Delta CDATA "&#916;" -- greek capital letter delta,
+ U+0394 ISOgrk3 -->
+<!ENTITY Epsilon CDATA "&#917;" -- greek capital letter epsilon, U+0395 -->
+<!ENTITY Zeta CDATA "&#918;" -- greek capital letter zeta, U+0396 -->
+<!ENTITY Eta CDATA "&#919;" -- greek capital letter eta, U+0397 -->
+<!ENTITY Theta CDATA "&#920;" -- greek capital letter theta,
+ U+0398 ISOgrk3 -->
+<!ENTITY Iota CDATA "&#921;" -- greek capital letter iota, U+0399 -->
+<!ENTITY Kappa CDATA "&#922;" -- greek capital letter kappa, U+039A -->
+<!ENTITY Lambda CDATA "&#923;" -- greek capital letter lambda,
+ U+039B ISOgrk3 -->
+<!ENTITY Mu CDATA "&#924;" -- greek capital letter mu, U+039C -->
+<!ENTITY Nu CDATA "&#925;" -- greek capital letter nu, U+039D -->
+<!ENTITY Xi CDATA "&#926;" -- greek capital letter xi, U+039E ISOgrk3 -->
+<!ENTITY Omicron CDATA "&#927;" -- greek capital letter omicron, U+039F -->
+<!ENTITY Pi CDATA "&#928;" -- greek capital letter pi, U+03A0 ISOgrk3 -->
+<!ENTITY Rho CDATA "&#929;" -- greek capital letter rho, U+03A1 -->
+<!-- there is no Sigmaf, and no U+03A2 character either -->
+<!ENTITY Sigma CDATA "&#931;" -- greek capital letter sigma,
+ U+03A3 ISOgrk3 -->
+<!ENTITY Tau CDATA "&#932;" -- greek capital letter tau, U+03A4 -->
+<!ENTITY Upsilon CDATA "&#933;" -- greek capital letter upsilon,
+ U+03A5 ISOgrk3 -->
+<!ENTITY Phi CDATA "&#934;" -- greek capital letter phi,
+ U+03A6 ISOgrk3 -->
+<!ENTITY Chi CDATA "&#935;" -- greek capital letter chi, U+03A7 -->
+<!ENTITY Psi CDATA "&#936;" -- greek capital letter psi,
+ U+03A8 ISOgrk3 -->
+<!ENTITY Omega CDATA "&#937;" -- greek capital letter omega,
+ U+03A9 ISOgrk3 -->
+
+<!ENTITY alpha CDATA "&#945;" -- greek small letter alpha,
+ U+03B1 ISOgrk3 -->
+<!ENTITY beta CDATA "&#946;" -- greek small letter beta, U+03B2 ISOgrk3 -->
+<!ENTITY gamma CDATA "&#947;" -- greek small letter gamma,
+ U+03B3 ISOgrk3 -->
+<!ENTITY delta CDATA "&#948;" -- greek small letter delta,
+ U+03B4 ISOgrk3 -->
+<!ENTITY epsilon CDATA "&#949;" -- greek small letter epsilon,
+ U+03B5 ISOgrk3 -->
+<!ENTITY zeta CDATA "&#950;" -- greek small letter zeta, U+03B6 ISOgrk3 -->
+<!ENTITY eta CDATA "&#951;" -- greek small letter eta, U+03B7 ISOgrk3 -->
+<!ENTITY theta CDATA "&#952;" -- greek small letter theta,
+ U+03B8 ISOgrk3 -->
+<!ENTITY iota CDATA "&#953;" -- greek small letter iota, U+03B9 ISOgrk3 -->
+<!ENTITY kappa CDATA "&#954;" -- greek small letter kappa,
+ U+03BA ISOgrk3 -->
+<!ENTITY lambda CDATA "&#955;" -- greek small letter lambda,
+ U+03BB ISOgrk3 -->
+<!ENTITY mu CDATA "&#956;" -- greek small letter mu, U+03BC ISOgrk3 -->
+<!ENTITY nu CDATA "&#957;" -- greek small letter nu, U+03BD ISOgrk3 -->
+<!ENTITY xi CDATA "&#958;" -- greek small letter xi, U+03BE ISOgrk3 -->
+<!ENTITY omicron CDATA "&#959;" -- greek small letter omicron, U+03BF NEW -->
+<!ENTITY pi CDATA "&#960;" -- greek small letter pi, U+03C0 ISOgrk3 -->
+<!ENTITY rho CDATA "&#961;" -- greek small letter rho, U+03C1 ISOgrk3 -->
+<!ENTITY sigmaf CDATA "&#962;" -- greek small letter final sigma,
+ U+03C2 ISOgrk3 -->
+<!ENTITY sigma CDATA "&#963;" -- greek small letter sigma,
+ U+03C3 ISOgrk3 -->
+<!ENTITY tau CDATA "&#964;" -- greek small letter tau, U+03C4 ISOgrk3 -->
+<!ENTITY upsilon CDATA "&#965;" -- greek small letter upsilon,
+ U+03C5 ISOgrk3 -->
+<!ENTITY phi CDATA "&#966;" -- greek small letter phi, U+03C6 ISOgrk3 -->
+<!ENTITY chi CDATA "&#967;" -- greek small letter chi, U+03C7 ISOgrk3 -->
+<!ENTITY psi CDATA "&#968;" -- greek small letter psi, U+03C8 ISOgrk3 -->
+<!ENTITY omega CDATA "&#969;" -- greek small letter omega,
+ U+03C9 ISOgrk3 -->
+<!ENTITY thetasym CDATA "&#977;" -- greek small letter theta symbol,
+ U+03D1 NEW -->
+<!ENTITY upsih CDATA "&#978;" -- greek upsilon with hook symbol,
+ U+03D2 NEW -->
+<!ENTITY piv CDATA "&#982;" -- greek pi symbol, U+03D6 ISOgrk3 -->
+
+<!-- General Punctuation -->
+<!ENTITY bull CDATA "&#8226;" -- bullet = black small circle,
+ U+2022 ISOpub -->
+<!-- bullet is NOT the same as bullet operator, U+2219 -->
+<!ENTITY hellip CDATA "&#8230;" -- horizontal ellipsis = three dot leader,
+ U+2026 ISOpub -->
+<!ENTITY prime CDATA "&#8242;" -- prime = minutes = feet, U+2032 ISOtech -->
+<!ENTITY Prime CDATA "&#8243;" -- double prime = seconds = inches,
+ U+2033 ISOtech -->
+<!ENTITY oline CDATA "&#8254;" -- overline = spacing overscore,
+ U+203E NEW -->
+<!ENTITY frasl CDATA "&#8260;" -- fraction slash, U+2044 NEW -->
+
+<!-- Letterlike Symbols -->
+<!ENTITY weierp CDATA "&#8472;" -- script capital P = power set
+ = Weierstrass p, U+2118 ISOamso -->
+<!ENTITY image CDATA "&#8465;" -- blackletter capital I = imaginary part,
+ U+2111 ISOamso -->
+<!ENTITY real CDATA "&#8476;" -- blackletter capital R = real part symbol,
+ U+211C ISOamso -->
+<!ENTITY trade CDATA "&#8482;" -- trade mark sign, U+2122 ISOnum -->
+<!ENTITY alefsym CDATA "&#8501;" -- alef symbol = first transfinite cardinal,
+ U+2135 NEW -->
+<!-- alef symbol is NOT the same as hebrew letter alef,
+ U+05D0 although the same glyph could be used to depict both characters -->
+
+<!-- Arrows -->
+<!ENTITY larr CDATA "&#8592;" -- leftwards arrow, U+2190 ISOnum -->
+<!ENTITY uarr CDATA "&#8593;" -- upwards arrow, U+2191 ISOnum-->
+<!ENTITY rarr CDATA "&#8594;" -- rightwards arrow, U+2192 ISOnum -->
+<!ENTITY darr CDATA "&#8595;" -- downwards arrow, U+2193 ISOnum -->
+<!ENTITY harr CDATA "&#8596;" -- left right arrow, U+2194 ISOamsa -->
+<!ENTITY crarr CDATA "&#8629;" -- downwards arrow with corner leftwards
+ = carriage return, U+21B5 NEW -->
+<!ENTITY lArr CDATA "&#8656;" -- leftwards double arrow, U+21D0 ISOtech -->
+<!-- Unicode does not say that lArr is the same as the 'is implied by' arrow
+ but also does not have any other character for that function. So ? lArr can
+ be used for 'is implied by' as ISOtech suggests -->
+<!ENTITY uArr CDATA "&#8657;" -- upwards double arrow, U+21D1 ISOamsa -->
+<!ENTITY rArr CDATA "&#8658;" -- rightwards double arrow,
+ U+21D2 ISOtech -->
+<!-- Unicode does not say this is the 'implies' character but does not have
+ another character with this function so ?
+ rArr can be used for 'implies' as ISOtech suggests -->
+<!ENTITY dArr CDATA "&#8659;" -- downwards double arrow, U+21D3 ISOamsa -->
+<!ENTITY hArr CDATA "&#8660;" -- left right double arrow,
+ U+21D4 ISOamsa -->
+
+<!-- Mathematical Operators -->
+<!ENTITY forall CDATA "&#8704;" -- for all, U+2200 ISOtech -->
+<!ENTITY part CDATA "&#8706;" -- partial differential, U+2202 ISOtech -->
+<!ENTITY exist CDATA "&#8707;" -- there exists, U+2203 ISOtech -->
+<!ENTITY empty CDATA "&#8709;" -- empty set = null set = diameter,
+ U+2205 ISOamso -->
+<!ENTITY nabla CDATA "&#8711;" -- nabla = backward difference,
+ U+2207 ISOtech -->
+<!ENTITY isin CDATA "&#8712;" -- element of, U+2208 ISOtech -->
+<!ENTITY notin CDATA "&#8713;" -- not an element of, U+2209 ISOtech -->
+<!ENTITY ni CDATA "&#8715;" -- contains as member, U+220B ISOtech -->
+<!-- should there be a more memorable name than 'ni'? -->
+<!ENTITY prod CDATA "&#8719;" -- n-ary product = product sign,
+ U+220F ISOamsb -->
+<!-- prod is NOT the same character as U+03A0 'greek capital letter pi' though
+ the same glyph might be used for both -->
+<!ENTITY sum CDATA "&#8721;" -- n-ary sumation, U+2211 ISOamsb -->
+<!-- sum is NOT the same character as U+03A3 'greek capital letter sigma'
+ though the same glyph might be used for both -->
+<!ENTITY minus CDATA "&#8722;" -- minus sign, U+2212 ISOtech -->
+<!ENTITY lowast CDATA "&#8727;" -- asterisk operator, U+2217 ISOtech -->
+<!ENTITY radic CDATA "&#8730;" -- square root = radical sign,
+ U+221A ISOtech -->
+<!ENTITY prop CDATA "&#8733;" -- proportional to, U+221D ISOtech -->
+<!ENTITY infin CDATA "&#8734;" -- infinity, U+221E ISOtech -->
+<!ENTITY ang CDATA "&#8736;" -- angle, U+2220 ISOamso -->
+<!ENTITY and CDATA "&#8743;" -- logical and = wedge, U+2227 ISOtech -->
+<!ENTITY or CDATA "&#8744;" -- logical or = vee, U+2228 ISOtech -->
+<!ENTITY cap CDATA "&#8745;" -- intersection = cap, U+2229 ISOtech -->
+<!ENTITY cup CDATA "&#8746;" -- union = cup, U+222A ISOtech -->
+<!ENTITY int CDATA "&#8747;" -- integral, U+222B ISOtech -->
+<!ENTITY there4 CDATA "&#8756;" -- therefore, U+2234 ISOtech -->
+<!ENTITY sim CDATA "&#8764;" -- tilde operator = varies with = similar to,
+ U+223C ISOtech -->
+<!-- tilde operator is NOT the same character as the tilde, U+007E,
+ although the same glyph might be used to represent both -->
+<!ENTITY cong CDATA "&#8773;" -- approximately equal to, U+2245 ISOtech -->
+<!ENTITY asymp CDATA "&#8776;" -- almost equal to = asymptotic to,
+ U+2248 ISOamsr -->
+<!ENTITY ne CDATA "&#8800;" -- not equal to, U+2260 ISOtech -->
+<!ENTITY equiv CDATA "&#8801;" -- identical to, U+2261 ISOtech -->
+<!ENTITY le CDATA "&#8804;" -- less-than or equal to, U+2264 ISOtech -->
+<!ENTITY ge CDATA "&#8805;" -- greater-than or equal to,
+ U+2265 ISOtech -->
+<!ENTITY sub CDATA "&#8834;" -- subset of, U+2282 ISOtech -->
+<!ENTITY sup CDATA "&#8835;" -- superset of, U+2283 ISOtech -->
+<!-- note that nsup, 'not a superset of, U+2283' is not covered by the Symbol
+ font encoding and is not included. Should it be, for symmetry?
+ It is in ISOamsn -->
+<!ENTITY nsub CDATA "&#8836;" -- not a subset of, U+2284 ISOamsn -->
+<!ENTITY sube CDATA "&#8838;" -- subset of or equal to, U+2286 ISOtech -->
+<!ENTITY supe CDATA "&#8839;" -- superset of or equal to,
+ U+2287 ISOtech -->
+<!ENTITY oplus CDATA "&#8853;" -- circled plus = direct sum,
+ U+2295 ISOamsb -->
+<!ENTITY otimes CDATA "&#8855;" -- circled times = vector product,
+ U+2297 ISOamsb -->
+<!ENTITY perp CDATA "&#8869;" -- up tack = orthogonal to = perpendicular,
+ U+22A5 ISOtech -->
+<!ENTITY sdot CDATA "&#8901;" -- dot operator, U+22C5 ISOamsb -->
+<!-- dot operator is NOT the same character as U+00B7 middle dot -->
+
+<!-- Miscellaneous Technical -->
+<!ENTITY lceil CDATA "&#8968;" -- left ceiling = apl upstile,
+ U+2308 ISOamsc -->
+<!ENTITY rceil CDATA "&#8969;" -- right ceiling, U+2309 ISOamsc -->
+<!ENTITY lfloor CDATA "&#8970;" -- left floor = apl downstile,
+ U+230A ISOamsc -->
+<!ENTITY rfloor CDATA "&#8971;" -- right floor, U+230B ISOamsc -->
+<!ENTITY lang CDATA "&#9001;" -- left-pointing angle bracket = bra,
+ U+2329 ISOtech -->
+<!-- lang is NOT the same character as U+003C 'less than'
+ or U+2039 'single left-pointing angle quotation mark' -->
+<!ENTITY rang CDATA "&#9002;" -- right-pointing angle bracket = ket,
+ U+232A ISOtech -->
+<!-- rang is NOT the same character as U+003E 'greater than'
+ or U+203A 'single right-pointing angle quotation mark' -->
+
+<!-- Geometric Shapes -->
+<!ENTITY loz CDATA "&#9674;" -- lozenge, U+25CA ISOpub -->
+
+<!-- Miscellaneous Symbols -->
+<!ENTITY spades CDATA "&#9824;" -- black spade suit, U+2660 ISOpub -->
+<!-- black here seems to mean filled as opposed to hollow -->
+<!ENTITY clubs CDATA "&#9827;" -- black club suit = shamrock,
+ U+2663 ISOpub -->
+<!ENTITY hearts CDATA "&#9829;" -- black heart suit = valentine,
+ U+2665 ISOpub -->
+<!ENTITY diams CDATA "&#9830;" -- black diamond suit, U+2666 ISOpub --> \ No newline at end of file
diff --git a/htdocs/sgml-lib/REC-html40-971218/frameset.dtd b/htdocs/sgml-lib/REC-html40-971218/frameset.dtd
new file mode 100644
index 0000000..5187ac9
--- /dev/null
+++ b/htdocs/sgml-lib/REC-html40-971218/frameset.dtd
@@ -0,0 +1,37 @@
+<!--
+ This is the HTML 4.0 Frameset DTD, which should be
+ used for documents with frames. This DTD is identical
+ to the HTML 4.0 Transitional DTD except for the
+ content model of the "HTML" element: in frameset
+ documents, the "FRAMESET" element replaces the "BODY"
+ element.
+
+ Draft: $Date: 1998-07-25 00:00:22 $
+
+ Authors:
+ Dave Raggett <dsr@w3.org>
+ Arnaud Le Hors <lehors@w3.org>
+ Ian Jacobs <ij@w3.org>
+
+ Further information about HTML 4.0 is available at:
+
+ http://www.w3.org/TR/REC-html40.
+-->
+<!ENTITY % HTML.Version "-//W3C//DTD HTML 4.0 Frameset//EN"
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
+ "http://www.w3.org/TR/REC-html40/frameset.dtd">
+ <html>
+ <head>
+ ...
+ </head>
+ <frameset>
+ ...
+ </frameset>
+ </html>
+-->
+
+<!ENTITY % HTML.Frameset "INCLUDE">
+<!ENTITY % HTML4.dtd PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+%HTML4.dtd; \ No newline at end of file
diff --git a/htdocs/sgml-lib/REC-html40-971218/html40.tgz b/htdocs/sgml-lib/REC-html40-971218/html40.tgz
new file mode 100644
index 0000000..99755ed
--- /dev/null
+++ b/htdocs/sgml-lib/REC-html40-971218/html40.tgz
Binary files differ
diff --git a/htdocs/sgml-lib/REC-html40-971218/loose.dtd b/htdocs/sgml-lib/REC-html40-971218/loose.dtd
new file mode 100644
index 0000000..d9f7347
--- /dev/null
+++ b/htdocs/sgml-lib/REC-html40-971218/loose.dtd
@@ -0,0 +1,1092 @@
+<!--
+ This is the HTML 4.0 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.0 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: 1998-07-25 00:00:22 $
+
+ Authors:
+ Dave Raggett <dsr@w3.org>
+ Arnaud Le Hors <lehors@w3.org>
+ Ian Jacobs <ij@w3.org>
+
+ Further information about HTML 4.0 is available at:
+
+ http://www.w3.org/TR/REC-html40
+-->
+<!ENTITY % HTML.Version "-//W3C//DTD HTML 4.0 Transitional//EN"
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/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.0 DTD is:
+
+ "-//W3C//DTD HTML 4.0//EN"
+
+ and its URI is:
+
+ http://www.w3.org/TR/REC-html40/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.0 Frameset//EN"
+
+ with the URI:
+
+ http://www.w3.org/TR/REC-html40/frameset.dtd
+
+ The following URIs are supported in relation to HTML 4.0
+
+ "http://www.w3.org/TR/REC-html40/strict.dtd" (Strict DTD)
+ "http://www.w3.org/TR/REC-html40/loose.dtd" (Loose DTD)
+ "http://www.w3.org/TR/REC-html40/frameset.dtd" (Frameset DTD)
+ "http://www.w3.org/TR/REC-html40/HTMLlat1.ent" (Latin-1 entities)
+ "http://www.w3.org/TR/REC-html40/HTMLsymbol.ent" (Symbol entities)
+ "http://www.w3.org/TR/REC-html40/HTMLspecial.ent" (Special entities)
+
+ These URIs point to the latest version of each file. To reference
+ this specific revision use the following URIs:
+
+ "http://www.w3.org/TR/REC-html40-971218/strict.dtd"
+ "http://www.w3.org/TR/REC-html40-971218/loose.dtd"
+ "http://www.w3.org/TR/REC-html40-971218/frameset.dtd"
+ "http://www.w3.org/TR/REC-html40-971218/HTMLlat1.ent"
+ "http://www.w3.org/TR/REC-html40-971218/HTMLsymbol.ent"
+ "http://www.w3.org/TR/REC-html40-971218/HTMLspecial.ent"
+
+-->
+
+<!--================== Imported Names ====================================-->
+
+<!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 --
+ ">
+
+<!--================ Character mnemonic entities =========================-->
+
+<!ENTITY % HTMLlat1 PUBLIC
+ "-//W3C//ENTITIES Latin1//EN//HTML"
+ "http://www.w3.org/TR/REC-html40-971218/HTMLlat1.ent">
+%HTMLlat1;
+
+<!ENTITY % HTMLsymbol PUBLIC
+ "-//W3C//ENTITIES Symbols//EN//HTML"
+ "http://www.w3.org/TR/REC-html40-971218/HTMLsymbol.ent">
+%HTMLsymbol;
+
+<!ENTITY % HTMLspecial PUBLIC
+ "-//W3C//ENTITIES Special//EN//HTML"
+ "http://www.w3.org/TR/REC-html40-971218/HTMLspecial.ent">
+%HTMLspecial;
+<!--=================== 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/amplification --"
+ >
+
+<!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 -->
+
+<!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) --
+ 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 %Length; #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 %URI; #IMPLIED -- space separated archive list --
+ 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 %Length; #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
+ %coreattrs; -- id, class, style, title --
+ %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
+ >
+<!ATTLIST MENU
+ %attrs; -- %coreattrs, %i18n, %events --
+ compact (compact) #IMPLIED
+ >
+
+<!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"
+ 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 & 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 -- required for radio 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 --
+ 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 axes 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 -- names groups 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 %Pixels; #IMPLIED -- width for cell --
+ height %Pixels; #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.
+-->
+
+<!-- Feature Switch for frameset documents -->
+<!ENTITY % HTML.Frameset "IGNORE">
+
+<![ %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;
+ >
diff --git a/htdocs/sgml-lib/REC-html40-971218/strict.dtd b/htdocs/sgml-lib/REC-html40-971218/strict.dtd
new file mode 100644
index 0000000..715c35e
--- /dev/null
+++ b/htdocs/sgml-lib/REC-html40-971218/strict.dtd
@@ -0,0 +1,873 @@
+<!--
+ This is HTML 4.0 Strict DTD, which excludes the 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.0 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: 1998-07-25 00:00:22 $
+
+ Authors:
+ Dave Raggett <dsr@w3.org>
+ Arnaud Le Hors <lehors@w3.org>
+ Ian Jacobs <ij@w3.org>
+
+ Further information about HTML 4.0 is available at:
+
+ http://www.w3.org/TR/REC-html40
+-->
+<!ENTITY % HTML.Version "-//W3C//DTD HTML 4.0//EN"
+ --
+ Typical usage:
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
+ "http://www.w3.org/TR/REC-html40/strict.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 Transitional HTML 4.0 DTD is:
+
+ "-//W3C//DTD HTML 4.0 Transitional//EN
+
+ and its URI is:
+
+ http://www.w3.org/TR/REC-html40/loose.dtd
+
+ If you are writing a document that includes frames, use
+ the following FPI:
+
+ "-//W3C//DTD HTML 4.0 Frameset//EN"
+
+ with the URI:
+
+ http://www.w3.org/TR/REC-html40/frameset.dtd
+
+ The following URIs are supported in relation to HTML 4.0
+
+ "http://www.w3.org/TR/REC-html40/strict.dtd" (Strict DTD)
+ "http://www.w3.org/TR/REC-html40/loose.dtd" (Loose DTD)
+ "http://www.w3.org/TR/REC-html40/frameset.dtd" (Frameset DTD)
+ "http://www.w3.org/TR/REC-html40/HTMLlat1.ent" (Latin-1 entities)
+ "http://www.w3.org/TR/REC-html40/HTMLsymbol.ent" (Symbol entities)
+ "http://www.w3.org/TR/REC-html40/HTMLspecial.ent" (Special entities)
+
+ These URIs point to the latest version of each file. To reference
+ this specific revision use the following URIs:
+
+ "http://www.w3.org/TR/REC-html40-971218/strict.dtd"
+ "http://www.w3.org/TR/REC-html40-971218/loose.dtd"
+ "http://www.w3.org/TR/REC-html40-971218/frameset.dtd"
+ "http://www.w3.org/TR/REC-html40-971218/HTMLlat1.ent"
+ "http://www.w3.org/TR/REC-html40-971218/HTMLsymbol.ent"
+ "http://www.w3.org/TR/REC-html40-971218/HTMLspecial.ent"
+
+-->
+
+<!--================== Imported Names ====================================-->
+
+<!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 % 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">
+
+<!ENTITY % preformatted "PRE">
+
+
+<!--================ Character mnemonic entities =========================-->
+
+<!ENTITY % HTMLlat1 PUBLIC
+ "-//W3C//ENTITIES Latin1//EN//HTML"
+ "http://www.w3.org/TR/REC-html40-971218/HTMLlat1.ent">
+%HTMLlat1;
+
+<!ENTITY % HTMLsymbol PUBLIC
+ "-//W3C//ENTITIES Symbols//EN//HTML"
+ "http://www.w3.org/TR/REC-html40-971218/HTMLsymbol.ent">
+%HTMLsymbol;
+
+<!ENTITY % HTMLspecial PUBLIC
+ "-//W3C//ENTITIES Special//EN//HTML"
+ "http://www.w3.org/TR/REC-html40-971218/HTMLspecial.ent">
+%HTMLspecial;
+<!--=================== 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/amplification --"
+ >
+
+<!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;">
+
+
+<!--=================== Text Markup ======================================-->
+
+<!ENTITY % fontstyle
+ "TT | I | B | BIG | SMALL">
+
+<!ENTITY % phrase "EM | STRONG | DFN | CODE |
+ SAMP | KBD | VAR | CITE | ABBR | ACRONYM" >
+
+<!ENTITY % special
+ "A | IMG | OBJECT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO">
+
+<!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 BR - O EMPTY -- forced line break -->
+<!ATTLIST BR
+ %coreattrs; -- id, class, style, title --
+ >
+
+<!--================== 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 | NOSCRIPT |
+ BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">
+
+<!ENTITY % flow "%block; | %inline;">
+
+<!--=================== Document Body ====================================-->
+
+<!ELEMENT BODY O O (%block;|SCRIPT)+ +(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 --
+ >
+
+<!ELEMENT ADDRESS - - (%inline;)* -- information on author -->
+<!ATTLIST ADDRESS
+ %attrs; -- %coreattrs, %i18n, %events --
+ >
+
+<!ELEMENT DIV - - (%flow;)* -- generic language/style container -->
+<!ATTLIST DIV
+ %attrs; -- %coreattrs, %i18n, %events --
+ %reserved; -- reserved for possible future use --
+ >
+
+
+<!--================== 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 --
+ 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 --
+ 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 --
+ >
+
+<!--=================== 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 -->
+
+<!ENTITY % MultiLengths "CDATA" -- comma-separated list of MultiLength -->
+
+<!ENTITY % Pixels "CDATA" -- integer representing length in pixels -->
+
+
+<!-- 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) --
+ 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 --
+ >
+
+<!-- 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 %URI; #IMPLIED -- space separated archive list --
+ 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 --
+ %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 --
+ >
+
+
+<!--=================== Horizontal Rule ==================================-->
+
+<!ELEMENT HR - O EMPTY -- horizontal rule -->
+<!ATTLIST HR
+ %coreattrs; -- id, class, style, title --
+ %events;
+ >
+
+<!--=================== Paragraphs =======================================-->
+
+<!ELEMENT P - O (%inline;)* -- paragraph -->
+<!ATTLIST P
+ %attrs; -- %coreattrs, %i18n, %events --
+ >
+
+<!--=================== 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 --
+ >
+
+<!--=================== Preformatted Text ================================-->
+
+<!-- excludes markup for images and changes in font size -->
+<!ENTITY % pre.exclusion "IMG|OBJECT|BIG|SMALL|SUB|SUP">
+
+<!ELEMENT PRE - - (%inline;)* -(%pre.exclusion;) -- preformatted text -->
+<!ATTLIST PRE
+ %attrs; -- %coreattrs, %i18n, %events --
+ >
+
+<!--===================== 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 - - (%block;|SCRIPT)+ -- 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 --
+ >
+
+<!ELEMENT DT - O (%inline;)* -- definition term -->
+<!ELEMENT DD - O (%flow;)* -- definition description -->
+<!ATTLIST (DT|DD)
+ %attrs; -- %coreattrs, %i18n, %events --
+ >
+
+
+<!ELEMENT OL - - (LI)+ -- ordered list -->
+<!ATTLIST OL
+ %attrs; -- %coreattrs, %i18n, %events --
+ >
+
+<!-- Unordered Lists (UL) bullet styles -->
+<!ELEMENT UL - - (LI)+ -- unordered list -->
+<!ATTLIST UL
+ %attrs; -- %coreattrs, %i18n, %events --
+ >
+
+
+
+<!ELEMENT LI - O (%flow;)* -- list item -->
+<!ATTLIST LI
+ %attrs; -- %coreattrs, %i18n, %events --
+ >
+
+<!--================ Forms ===============================================-->
+<!ELEMENT FORM - - (%block;|SCRIPT)+ -(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"
+ onsubmit %Script; #IMPLIED -- the form was submitted --
+ onreset %Script; #IMPLIED -- the form was reset --
+ 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 & 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 -- required for radio 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 --
+ 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 --
+ %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 --
+ >
+
+<!ELEMENT BUTTON - -
+ (%flow;)* -(A|%formctrl;|FORM|FIELDSET)
+ -- 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 --
+ %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 --
+ >
+
+<!--
+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 --
+ >
+
+
+<!-- Scope is simpler than axes 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 -- names groups 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 --
+ >
+
+
+<!--================ Document Head =======================================-->
+<!-- %head.misc; defined earlier on as "SCRIPT|STYLE|META|LINK|OBJECT" -->
+<!ENTITY % head.content "TITLE & 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 BASE - O EMPTY -- document base URI -->
+<!ATTLIST BASE
+ href %URI; #REQUIRED -- URI that acts as base URI --
+ >
+
+<!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 - - (%block;)+
+ -- alternate content container for non script-based rendering -->
+<!ATTLIST NOSCRIPT
+ %attrs; -- %coreattrs, %i18n, %events --
+ >
+
+<!--================ Document Structure ==================================-->
+<!ENTITY % version "version CDATA #FIXED '%HTML.Version;'">
+
+<!ENTITY % html.content "HEAD, BODY">
+
+<!ELEMENT HTML O O (%html.content;) -- document root element -->
+<!ATTLIST HTML
+ %i18n; -- lang, dir --
+ %version;
+ >
diff --git a/htdocs/sgml-lib/catalog b/htdocs/sgml-lib/catalog
new file mode 100644
index 0000000..f542d37
--- /dev/null
+++ b/htdocs/sgml-lib/catalog
@@ -0,0 +1,158 @@
+ -- catalog: SGML Open style entity catalog for HTML --
+
+ -- This is a combination of the catalog files from the --
+ -- Webtechs validation service, the HTML 2.0 public text, and --
+ -- other miscellaneous places such as recent IETF drafts. --
+
+ -- Created by Gerald Oskoboiny, 21 Dec 1995 --
+
+ -- modified 18 Dec 1997: updated HTML 4.0 DTD --
+ -- modified 11 Dec 1997: changed some file paths --
+ -- modified 22 Oct 1997: updated HTML 4.0 DTD --
+ -- modified 9 Jul 1997: added HTML 4.0 DTD --
+ -- modified 12 May 1997: updated Cougar DTD --
+ -- modified 27 Apr 1997: added HTML 3.2 + style DTD --
+ -- modified 21 Feb 1997: updated HTML Pro to v0r11 --
+ -- modified 29 Jan 1997: added new HTML 3.2 DTD, "Final" FPI --
+ -- modified 15 Nov 1996: added MSIE 3.0 stuff --
+ -- modified 17 Oct 1996: added Spyglass HTML 2.0 Extended DTD --
+ -- modified 6 Oct 1996: added "HTML Pro" stuff --
+ -- modified 6 Oct 1996: removed "HTML 1996-01" stuff --
+ -- modified 24 Sep 1996: added an alternate 'Draft' FPI for HTML 3.2 --
+ -- modified 10 Jul 1996: added DTD for HTML x.x (a.k.a. Cougar) --
+ -- modified 18 May 1996: added FPIs for WebTechs and SQ DTDs --
+ -- modified 7 May 1996: added DTD for HTML 3.2 (a.k.a. Wilbur) --
+ -- modified 15 Mar 1996: added DTDs for O'Reilly Extended HTML --
+ -- modified 13 Mar 1996: added DTDs for MS Internet Explorer --
+ -- modified 11 Feb 1996: added OVERRIDE YES, and modular DTDs --
+
+OVERRIDE YES -- prefer public identifiers to system identifiers --
+
+ -- ISO latin 1 entity set for HTML --
+PUBLIC "-//IETF//ENTITIES Added Latin 1 for HTML//EN" html-latin.sgml
+PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML" ISOlat1.ent
+PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN" ISOlat1.ent
+
+ -- fake HTMLicons reference --
+PUBLIC "-//IETF//ENTITIES icons for HTML//EN" html-icons.sgml
+
+ -- fake HTMLmath reference --
+PUBLIC "-//IETF//ENTITIES Math and Greek for HTML//EN" html-math.sgml
+
+ -- Ways to refer to Level 3: most general to most specific --
+PUBLIC "-//IETF//DTD HTML//EN//3.0" html-3.dtd
+PUBLIC "-//W3O//DTD W3 HTML 3.0//EN//" html-3.dtd
+PUBLIC "-//W3O//DTD W3 HTML 3.0//EN" html-3.dtd
+PUBLIC "-//W3C//DTD HTML 3 1995-03-24//EN" html-3.dtd
+PUBLIC "-//IETF//DTD HTML 3.0//EN" html-3.dtd
+PUBLIC "-//IETF//DTD HTML 3.0//EN//" html-3.dtd
+PUBLIC "-//IETF//DTD HTML Level 3//EN" html-3.dtd
+PUBLIC "-//IETF//DTD HTML Level 3//EN//3.0" html-3.dtd
+
+ -- AdvaSoft's more up-to-date DTD for 3.0; see html-3-as.dtd for info --
+PUBLIC "-//AS//DTD HTML 3.0 asWedit + extensions//EN" html-3-as.dtd
+PUBLIC "-//AdvaSoft Ltd//DTD HTML 3.0 asWedit + extensions//EN" html-3-as.dtd
+
+ -- Ways to refer to strict Level 3: most general to most specific --
+PUBLIC "-//IETF//DTD HTML Strict//EN//3.0" html-3s.dtd
+PUBLIC "-//W3O//DTD W3 HTML Strict 3.0//EN//" html-3s.dtd
+PUBLIC "-//IETF//DTD HTML Strict Level 3//EN" html-3s.dtd
+PUBLIC "-//IETF//DTD HTML Strict Level 3//EN//3.0" html-3s.dtd
+
+ -- Ways to refer to Level 2: most general to most specific --
+PUBLIC "HTML" html.dtd
+PUBLIC "-//IETF//DTD HTML//EN" html.dtd
+PUBLIC "-//IETF//DTD HTML//EN//2.0" html.dtd
+PUBLIC "-//IETF//DTD HTML 2.0//EN" html.dtd
+PUBLIC "-//IETF//DTD HTML Level 2//EN" html.dtd
+PUBLIC "-//IETF//DTD HTML Level 2//EN//2.0" html.dtd
+PUBLIC "-//IETF//DTD HTML 2.0 Level 2//EN" html.dtd
+
+ -- Ways to refer to Level 1: most general to most specific --
+PUBLIC "-//IETF//DTD HTML Level 1//EN" html-1.dtd
+PUBLIC "-//IETF//DTD HTML Level 1//EN//2.0" html-1.dtd
+PUBLIC "-//IETF//DTD HTML 2.0 Level 1//EN" html-1.dtd
+
+ -- Ways to refer to Level 0: most general to most specific --
+PUBLIC "-//IETF//DTD HTML Level 0//EN" html-0.dtd
+PUBLIC "-//IETF//DTD HTML Level 0//EN//2.0" html-0.dtd
+
+ -- Ways to refer to Strict Level 2 --
+PUBLIC "-//IETF//DTD HTML Strict//EN" html-s.dtd
+PUBLIC "-//IETF//DTD HTML Strict//EN//2.0" html-s.dtd
+PUBLIC "-//IETF//DTD HTML Strict Level 2//EN" html-s.dtd
+PUBLIC "-//IETF//DTD HTML Strict Level 2//EN//2.0" html-s.dtd
+PUBLIC "-//IETF//DTD HTML 2.0 Strict//EN" html-s.dtd
+PUBLIC "-//IETF//DTD HTML 2.0 Strict Level 2//EN" html-s.dtd
+
+ -- Ways to refer to Strict Level 1 --
+PUBLIC "-//IETF//DTD HTML Strict Level 1//EN" html-1s.dtd
+PUBLIC "-//IETF//DTD HTML Strict Level 1//EN//2.0" html-1s.dtd
+PUBLIC "-//IETF//DTD HTML 2.0 Strict Level 1//EN" html-1s.dtd
+
+ -- Ways to refer to Strict Level 0 --
+PUBLIC "-//IETF//DTD HTML Strict Level 0//EN" html-0s.dtd
+PUBLIC "-//IETF//DTD HTML Strict Level 0//EN//2.0" html-0s.dtd
+
+ -- Ways to refer to Netscape extensions HTML --
+PUBLIC "-//WebTechs//DTD Mozilla HTML//EN" html-mcom.dtd
+PUBLIC "-//WebTechs//DTD Mozilla HTML 2.0//EN" html-mcom.dtd
+PUBLIC "-//Netscape Comm. Corp.//DTD HTML//EN" html-mcom.dtd
+PUBLIC "-//Netscape Comm. Corp.//DTD HTML//EN" html-mcom.dtd
+PUBLIC "-//Netscape Comm. Corp.//DTD Strict HTML//EN" html-mcoms.dtd
+
+ -- Ways to refer to Microsoft extensions HTML --
+PUBLIC "-//Microsoft//DTD Internet Explorer 2.0 HTML//EN" iehtml.dtd
+PUBLIC "-//Microsoft//DTD Internet Explorer 2.0 HTML Strict//EN" iehtml-s.dtd
+PUBLIC "-//Microsoft//DTD Internet Explorer 2.0 Tables//EN" ietables.dtd
+PUBLIC "-//Microsoft//DTD Internet Explorer 3.0 HTML//EN" ie30.dtd
+PUBLIC "-//Microsoft//DTD Internet Explorer 3.0 HTML Strict//EN" ie30-s.dtd
+PUBLIC "-//Microsoft//DTD Internet Explorer 3.0 Tables//EN" ie30tables.dtd
+
+ -- Ways to refer to Sun Microsystems HotJava extensions --
+PUBLIC "-//Sun Microsystems Corp.//DTD HotJava HTML//EN" html-hj.dtd
+PUBLIC "-//Sun Microsystems Corp.//DTD HotJava Strict HTML//EN" html-hjs.dtd
+
+ -- Ways to refer to HTML 2.1 variants --
+PUBLIC "-//IETF//DTD HTML 2.1E//EN" html-2.1e.dtd
+
+ -- O'Reilly & Associates DTD; see http://www.ora.com/standards/html/ --
+PUBLIC "-//O'Reilly and Associates//DTD HTML Extended 1.0//EN" oreilly-html.dtd
+PUBLIC "-//O'Reilly and Associates//DTD HTML Extended Relaxed 1.0//EN" oreilly-html-relaxed.dtd
+PUBLIC "-//O'Reilly and Associates//DTD HTML 2.0//EN" oreilly-rfc1866.dtd
+PUBLIC "-//O'Reilly and Associates//ELEMENTS Table Fragment 1.0//EN" oreilly-draft-table.elements
+PUBLIC "-//O'Reilly and Associates//ENTITIES Additional HTML 1.0//EN" oreilly-additional.entities
+
+ -- Ways to Refer to SoftQuad HTML 2.0 + extensions --
+PUBLIC "-//SQ//DTD HTML 2.0 HoTMetaL + extensions//EN" html-sq.dtd
+
+ -- Spyglass HTML 2.0 Extended DTD --
+PUBLIC "-//Spyglass//DTD HTML 2.0 Extended//EN" spyglass/html2x.dtd
+PUBLIC "ISO/IEC 10179:1995//NOTATION DSSSL Style Language//EN" spyglass/dsssl.not
+PUBLIC "-//IETF//NOTATION W3C Style Language//EN" spyglass/w3csty.not
+PUBLIC "-//IETF//NOTATION Cascading Style Sheet Language//EN" spyglass/css.not
+
+ -- "HTML Pro" --
+PUBLIC "ISO 8879-1986//ENTITIES Added Latin 2//EN" pro/usr/local/lib/sgml/iso_8879-1986/entities/added_latin_2
+PUBLIC "ISO 8879-1986//ENTITIES Publishing//EN" pro/usr/local/lib/sgml/iso_8879-1986/entities/publishing
+PUBLIC "ISO 8879-1986//ENTITIES General Technical//EN" pro/usr/local/lib/sgml/iso_8879-1986/entities/general_technical
+PUBLIC "ISO 8879-1986//ENTITIES Numeric and Special Graphic//EN" pro/usr/local/lib/sgml/iso_8879-1986/entities/numeric_and_special_graphic
+PUBLIC "+//Silmaril//DTD HTML Pro v0r11 19970101//EN" pro/html/dtds/htmlpro.dtd
+
+ -- HTML 3.2 --
+PUBLIC "-//W3C//DTD HTML 3.2//EN" html-3.2.dtd
+PUBLIC "-//W3C//DTD HTML 3.2 Final//EN" html-3.2.dtd
+PUBLIC "-//W3C//DTD HTML 3.2 Draft//EN" html-3.2.dtd
+
+ -- HTML 3.2 + Style --
+PUBLIC "-//W3C//DTD HTML Experimental 970421//EN" html-970421.dtd
+PUBLIC "-//W3C//DTD HTML 3.2S Draft//EN" html-970421.dtd
+
+ -- HTML 4.0 --
+PUBLIC "-//W3C//DTD HTML 4.0//EN" REC-html40-971218/strict.dtd
+PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" REC-html40-971218/loose.dtd
+PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" REC-html40-971218/frameset.dtd
+PUBLIC "-//W3C//ENTITIES Latin1//EN//HTML" REC-html40-971218/HTMLlat1.ent
+PUBLIC "-//W3C//ENTITIES Special//EN//HTML" REC-html40-971218/HTMLspecial.ent
+PUBLIC "-//W3C//ENTITIES Symbols//EN//HTML" REC-html40-971218/HTMLsymbol.ent
+
diff --git a/htdocs/sgml-lib/html-0.dtd b/htdocs/sgml-lib/html-0.dtd
new file mode 100644
index 0000000..1ad6b31
--- /dev/null
+++ b/htdocs/sgml-lib/html-0.dtd
@@ -0,0 +1,39 @@
+<!-- html-0.dtd
+
+ Document Type Definition for the HyperText Markup Language
+ as used by minimally conforming World Wide Web applications
+ (HTML Level 0 DTD).
+
+ $Id: html-0.dtd,v 1.1.1.1 1998-07-25 00:00:22 gerald Exp $
+
+ Author: Daniel W. Connolly <connolly@hal.com>
+ See Also: http://www.hal.com/%7Econnolly/html-spec/index.html
+ http://info.cern.ch/hypertext/WWW/MarkUp2/MarkUp.html
+-->
+
+<!ENTITY % HTML.Version
+ "-//IETF//DTD HTML Level 0//EN//2.0"
+ -- public identifier for "minimal conformance" version --
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC
+ "-//IETF//DTD HTML Level 0//EN">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+<!-- Feature Test Entities -->
+
+<!ENTITY % HTML.Highlighting "IGNORE">
+<!ENTITY % HTML.Forms "IGNORE">
+
+<!ENTITY % head.link " " -- no link in head at level 0 -->
+<!ENTITY % linkExtraAttributes " ">
+<!ENTITY % img.alt.default "#REQUIRED">
+<!ENTITY % head.link " ">
+
+<!ENTITY % html PUBLIC "-//IETF//DTD HTML//EN//2.0">
+%html;
diff --git a/htdocs/sgml-lib/html-0s.dtd b/htdocs/sgml-lib/html-0s.dtd
new file mode 100644
index 0000000..fe7e3e6
--- /dev/null
+++ b/htdocs/sgml-lib/html-0s.dtd
@@ -0,0 +1,30 @@
+<!-- html-0P.dtd
+
+ Document Type Definition for the HyperText Markup Language
+ Strict Level 0
+
+ $Id: html-0s.dtd,v 1.1.1.1 1998-07-25 00:00:22 gerald Exp $
+
+ Author: Daniel W. Connolly <connolly@hal.com>
+ See Also: http://www.hal.com/%7Econnolly/html-spec/index.html
+ http://info.cern.ch/hypertext/WWW/MarkUp2/MarkUp.html
+-->
+
+<!ENTITY % HTML.Version
+ "-//IETF//DTD HTML Strict Level 0//EN//2.0"
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC
+ "-//IETF//DTD HTML Strict Level 0//EN">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+<!-- Feature Test Entities -->
+<!ENTITY % HTML.Recommended "INCLUDE">
+
+<!ENTITY % html-0 PUBLIC "-//IETF//DTD HTML Level 0//EN//2.0">
+%html-0;
diff --git a/htdocs/sgml-lib/html-1.dtd b/htdocs/sgml-lib/html-1.dtd
new file mode 100644
index 0000000..1899e61
--- /dev/null
+++ b/htdocs/sgml-lib/html-1.dtd
@@ -0,0 +1,29 @@
+<!-- html-1.dtd
+
+ Document Type Definition for the HyperText Markup Language
+ with Level 1 Extensions (HTML Level 1 DTD).
+
+ $Id: html-1.dtd,v 1.1.1.1 1998-07-25 00:00:22 gerald Exp $
+
+ Author: Daniel W. Connolly <connolly@w3.org>
+ See Also: http://info.cern.ch/hypertext/WWW/MarkUp/MarkUp.html
+-->
+
+<!ENTITY % HTML.Version
+ "-//IETF//DTD HTML 2.0 Level 1//EN"
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC
+ "-//IETF//DTD HTML Level 1//EN">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+<!-- Feature Test Entities -->
+<!ENTITY % HTML.Forms "IGNORE">
+
+<!ENTITY % html PUBLIC "-//IETF//DTD HTML 2.0//EN">
+%html;
diff --git a/htdocs/sgml-lib/html-1s.dtd b/htdocs/sgml-lib/html-1s.dtd
new file mode 100644
index 0000000..7d0e25b
--- /dev/null
+++ b/htdocs/sgml-lib/html-1s.dtd
@@ -0,0 +1,29 @@
+<!-- html-1s.dtd
+
+ Document Type Definition for the HyperText Markup Language
+ Struct Level 1
+
+ $Id: html-1s.dtd,v 1.1.1.1 1998-07-25 00:00:22 gerald Exp $
+
+ Author: Daniel W. Connolly <connolly@w3.org>
+ See Also: http://www.w3.org/hypertext/WWW/MarkUp/MarkUp.html
+-->
+
+<!ENTITY % HTML.Version
+ "-//IETF//DTD HTML 2.0 Strict Level 1//EN"
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC
+ "-//IETF//DTD HTML Strict Level 1//EN">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+<!-- Feature Test Entities -->
+<!ENTITY % HTML.Recommended "INCLUDE">
+
+<!ENTITY % html-1 PUBLIC "-//IETF//DTD HTML 2.0 Level 1//EN">
+%html-1;
diff --git a/htdocs/sgml-lib/html-2.1e.dtd b/htdocs/sgml-lib/html-2.1e.dtd
new file mode 100644
index 0000000..adad285
--- /dev/null
+++ b/htdocs/sgml-lib/html-2.1e.dtd
@@ -0,0 +1,344 @@
+<!-- html-2.1e.dtd
+
+ Document Type Definition for the HyperText Markup Language,
+ version 2.1E (HTML DTD)
+
+ Last revised: 95/09/25
+
+ Authors: Daniel W. Connolly <connolly@w3.org>
+ Francois Yergeau <yergeau@alis.com>
+-->
+
+<!ENTITY % HTML.Version
+ "-//IETF//DTD HTML 2.1E//EN"
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.1E//EN">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+
+<!--============ Feature Test Entities ========================-->
+
+<!ENTITY % HTML.Recommended "IGNORE"
+ -- Certain features of the language are necessary for
+ compatibility with widespread usage, but they may
+ compromise the structural integrity of a document.
+ This feature test entity enables a more prescriptive
+ document type definition that eliminates
+ those features.
+ -->
+
+<![ %HTML.Recommended [
+ <!ENTITY % HTML.Deprecated "IGNORE">
+]]>
+
+<!ENTITY % HTML.Deprecated "INCLUDE"
+ -- Certain features of the language are necessary for
+ compatibility with earlier versions of the specification,
+ but they tend to be used and implemented inconsistently,
+ and their use is deprecated. This feature test entity
+ enables a document type definition that eliminates
+ these features.
+ -->
+
+<!ENTITY % HTML.Highlighting "INCLUDE"
+ -- Use this feature test entity to validate that a
+ document uses no highlighting tags, which may be
+ ignored on minimal implementations.
+ -->
+
+<!ENTITY % HTML.Forms "INCLUDE"
+ -- Use this feature test entity to validate that a document
+ contains no forms, which may not be supported in minimal
+ implementations
+ -->
+
+<!--============== Imported Names ==============================-->
+
+<!ENTITY % Content-Type "CDATA"
+ -- meaning an internet media type
+ (aka MIME content type, as per RFC1521)
+ -->
+
+<!ENTITY % HTTP-Method "GET | POST"
+ -- as per HTTP specification, in progress
+ -->
+<!ENTITY % URI "CDATA" -- uniform resource identifier -->
+
+<!--========= DTD "Macros" =====================-->
+
+<!ENTITY % Length "CDATA" -- number followed by optional units -->
+
+<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
+
+<!ENTITY % list " UL | OL | DIR | MENU " >
+
+<!ENTITY % attrs -- common attributes for elements --
+ 'ID ID #IMPLIED -- element identifier --
+ LANG NAME #IMPLIED -- RFC 1766 language tag --
+ DIR (ltr|rtl) #IMPLIED -- text directionality --'>
+
+<!ENTITY % size
+ 'WIDTH %Length #IMPLIED -- desired width in units --
+ HEIGHT %Length #IMPLIED -- desired height in units --'>
+
+<!ENTITY % align.simple
+ 'ALIGN (top|middle|bottom) #IMPLIED -- glyph alignment --'>
+
+<!ENTITY % align
+ 'ALIGN (top|middle|bottom|left|center|right) #IMPLIED -- float or glyph alignment --
+ HSPACE %Length #IMPLIED -- text stays this far away horizontally --
+ VSPACE %Length #IMPLIED -- text stays this far away vertically --
+ FLOWTO NAME #IMPLIED -- flow text around float until this ID --'>
+
+<!ENTITY % just -- an attribute for text justification --
+ 'ALIGN (left|right|center|justify) #IMPLIED'>
+
+<!--======= Character mnemonic entities =================-->
+
+<!ENTITY % ISOlat1 PUBLIC
+ "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML">
+%ISOlat1;
+
+<!--Entities for markup significant characters -->
+<!ENTITY amp CDATA "&#38;" -- ampersand -->
+<!ENTITY gt CDATA "&#62;" -- greater than -->
+<!ENTITY lt CDATA "&#60;" -- less than -->
+<!ENTITY quot CDATA "&#34;" -- double quote -->
+
+<!--Entities for language-dependent presentation (BIDI and contextual analysis) -->
+<!ENTITY zwnj CDATA "&#8204;"-- zero width non-joiner-->
+<!ENTITY zwj CDATA "&#8205;"-- zero width joiner-->
+<!ENTITY lrm CDATA "&#8206;"-- left-to-right mark-->
+<!ENTITY rlm CDATA "&#8207;"-- right-to-left mark-->
+
+<!--========= SGML Document Access (SDA) Parameter Entities =====-->
+
+<!-- HTML 2.0 contains SGML Document Access (SDA) fixed attributes
+in support of easy transformation to the International Committee
+for Accessible Document Design (ICADD) DTD
+ "-//EC-USA-CDA/ICADD//DTD ICADD22//EN".
+ICADD applications are designed to support usable access to
+structured information by print-impaired individuals through
+Braille, large print and voice synthesis. For more information on
+SDA & ICADD:
+ - ISO 12083:1993, Annex A.8, Facilities for Braille,
+ large print and computer voice
+ - ICADD ListServ
+ <ICADD%ASUACAD.BITNET@ARIZVM1.ccit.arizona.edu>
+ - Usenet news group bit.listserv.easi
+ - Recording for the Blind, +1 800 221 4792
+-->
+
+<!ENTITY % SDAFORM "SDAFORM CDATA #FIXED"
+ -- one to one mapping -->
+<!ENTITY % SDARULE "SDARULE CDATA #FIXED"
+ -- context-sensitive mapping -->
+<!ENTITY % SDAPREF "SDAPREF CDATA #FIXED"
+ -- generated text prefix -->
+<!ENTITY % SDASUFF "SDASUFF CDATA #FIXED"
+ -- generated text suffix -->
+<!ENTITY % SDASUSP "SDASUSP NAME #FIXED"
+ -- suspend transform process -->
+
+<!--========== Text Markup =====================-->
+
+<![ %HTML.Highlighting [
+
+<!ENTITY % font " TT | B | I ">
+
+<!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE">
+
+<!ENTITY % text "#PCDATA|A|EMBED|IMG|BR|%phrase|%font|SPAN|Q|BDO|SUP|SUB">
+
+<!ELEMENT (%font;|%phrase) - - (%text)*>
+<!ATTLIST ( TT | CODE | SAMP | KBD | VAR )
+ %attrs;
+ %SDAFORM; "Lit"
+ >
+<!ATTLIST ( B | STRONG )
+ %attrs;
+ %SDAFORM; "B"
+ >
+<!ATTLIST ( I | EM | CITE )
+ %attrs;
+ %SDAFORM; "It"
+ >
+
+<!-- <TT> Typewriter text -->
+<!-- <B> Bold text -->
+<!-- <I> Italic text -->
+<!-- <EM> Emphasized phrase -->
+<!-- <STRONG> Strong emphasis -->
+<!-- <CODE> Source code phrase -->
+<!-- <SAMP> Sample text or characters -->
+<!-- <KBD> Keyboard phrase, e.g. user input -->
+<!-- <VAR> Variable phrase or substituable -->
+<!-- <CITE> Name or title of cited work -->
+
+<!ENTITY % pre.content "#PCDATA|A|HR|BR|%font|%phrase|SPAN|BDO">
+
+]]>
+
+<!ENTITY % text "#PCDATA|A|EMBED|IMG|BR|SPAN|Q|BDO|SUP|SUB">
+
+<!-- Should the BDO element have an SDAFORM attr.? Which? -->
+<!ELEMENT BDO - - (%text)+>
+<!ATTLIST BDO
+ LANG NAME #IMPLIED
+ DIR (ltr|rtl) #REQUIRED
+ >
+
+<!-- <BDO> Control bidirectionnal text -->
+
+<!ELEMENT BR - O EMPTY>
+<!ATTLIST BR
+ %SDAPREF; "&#RE;"
+ >
+
+<!-- <BR> Line break -->
+
+<!-- Should the SPAN element have an SDAFORM attr.? Which? -->
+<!ELEMENT SPAN - - (%text)*>
+<!ATTLIST SPAN
+ %attrs;
+>
+
+<!-- <SPAN> Generic container -->
+
+<!ELEMENT Q - - (%text)*>
+<!ATTLIST Q
+ %attrs;
+ %SDAFORM; "It" -- to be verified --
+ >
+
+<!-- <Q> Short quotation -->
+
+<!ELEMENT (SUP|SUB) - - (#PCDATA)>
+<!ATTLIST (SUP|SUB)
+ %attrs;
+ >
+
+<!-- <SUP> Superscript -->
+<!-- <SUB> Subscript -->
+
+<!--========= Link Markup ======================-->
+
+<!ENTITY % linkType "NAME">
+
+<!ENTITY % link.internal -- attributes for links with implicit presentation resource --
+ 'SRC %URI; #REQUIRED -- resource to retrieve --
+ PARAMS CDATA #IMPLIED -- presentation specializer --'>
+
+<!ENTITY % link.metainfo -- overall link metainfo --
+ 'TITLE CDATA #IMPLIED -- overall title for resource --
+ URN %URI #IMPLIED -- global entity name --
+ REL %linkType #IMPLIED
+ REV %linkType #IMPLIED '>
+
+<!ENTITY % mime.constraints -- MIME typing constraints --
+ 'ACCEPT CDATA "text/plain" -- applicable media type(s) --
+ ACCEPT-CHARSET CDATA "ISO-8859-1" -- applicable character encoding(s) --
+ ACCEPT-ENCODING CDATA "ISO-8859-1" -- applicable content transfer encoding(s) --'>
+
+<![ %HTML.Deprecated [
+ <!ENTITY % case.metainfo -- link metainfo for specific variant --
+ '%mime.constraints; -- type constraints --
+ METHODS NAMES #IMPLIED -- deprecated --'>
+]]>
+<!ENTITY % case.metainfo -- link metainfo for specific variant --
+ '%mime.constraints; -- type constraints --'>
+
+<![ %HTML.Recommended [
+ <!ENTITY % key.value -- key/value pair with typed value --
+ 'NAME NAME #IMPLIED -- keyword, usually required --
+ VALUE CDATA #IMPLIED -- default value --
+ %mime.constraints; -- type constraints for value --'>
+]]>
+<!ENTITY % key.value -- key/value pair with typed value --
+ 'NAME CDATA #IMPLIED -- keyword, usually required --
+ VALUE CDATA #IMPLIED -- default value --
+ %mime.constraints; -- type constraints for value --'>
+
+<!ENTITY % linkExtraAttributes
+ '%link.metainfo;
+ %case.metainfo;
+ '>
+
+<![ %HTML.Recommended [
+ <!ENTITY % A.content "(%text)*"
+ -- <H1><a name="xxx">Heading</a></H1>
+ is preferred to
+ <a name="xxx"><H1>Heading</H1></a>
+ -->
+]]>
+
+<!ENTITY % A.content "(%heading|%text)*">
+
+<!ELEMENT A - - %A.content -(A)>
+<!ATTLIST A
+ %attrs;
+ HREF CDATA #IMPLIED
+ NAME CDATA #IMPLIED
+ %linkExtraAttributes;
+ %SDAPREF; "<Anchor: #AttList>"
+ >
+<!-- <A> Anchor; source/destination of link -->
+<!-- <A NAME="..."> Name of this anchor -->
+<!-- <A HREF="..."> Address of link destination -->
+<!-- <A URN="..."> Permanent address of destination -->
+<!-- <A REL=...> Relationship to destination -->
+<!-- <A REV=...> Relationship of destination to this -->
+<!-- <A TITLE="..."> Title of destination (advisory) -->
+<!-- <A METHODS="..."> Operations on destination (advisory) -->
+<!-- <A CHARSET="..."> Charset of destination (advisory) -->
+
+
+<!--========== Embedded Objects and Images ==========================-->
+
+<!ELEMENT EMBED - - (PARAM*, CAPTION?, EMBED.BODY, CREDIT?)>
+<!ATTLIST EMBED
+ %attrs;
+ %link.internal;
+ %link.metainfo;
+ %case.metainfo;
+ %size; -- size of reserved area --
+ %align; -- alignment or float --
+ %SDAPREF; '<Fig><Xref IDRef="#AttVal(SRC)"><?SDATrans Embed: #AttList>'
+ %SDASUFF; '</Fig>'
+ >
+<!ELEMENT CAPTION - - (%text;)+ -- caption for floating element -->
+<!ATTLIST CAPTION
+ %attrs;
+ %align; -- side of rectangle where caption placed --
+ %SDAPREF; "Caption: "
+ >
+<!ELEMENT EMBED.BODY O O %A.content>
+<!ATTLIST EMBED.BODY
+ %attrs;
+ >
+<!ELEMENT CREDIT - - (%text;)* -- copyright/credit for embedded object -->
+<!ATTLIST CREDIT
+ %attrs;
+ %SDAFORM; "Fn"
+ >
+
+<!ELEMENT PARAM - O EMPTY>
+<!ATTLIST PARAM
+ %attrs;
+ %key.value;
+ %SDAPREF; "<?SDATrans Param: #AttList>"
+ >
+
+<!ELEMENT IMG - O EMPTY>
+<!ATTLIST IMG
+ %attrs;
+ %link.internal;
+ %align.simple;
+ ALT CDATA #IMPLIED
+ ISMAP \ No newline at end of file
diff --git a/htdocs/sgml-lib/html-3-as.dtd b/htdocs/sgml-lib/html-3-as.dtd
new file mode 100644
index 0000000..167881e
--- /dev/null
+++ b/htdocs/sgml-lib/html-3-as.dtd
@@ -0,0 +1,1657 @@
+<!--
+
+ html3-as.dtd by AdvaSoft Ltd
+
+ Document Type Definition for the HyperText Markup Language (HTML3-AS DTD)
+ HTML3 + extensions as used by asWedit 2.0 editor in the HTML 3 mode
+
+ Date/Version: Tue 05-Dec-95
+
+ Author: Andrzej Stochniol <as@advasoft.com>
+ (modified slightly by Gerald Oskoboiny <gerald@pobox.com>
+
+ It is proposed to use the following identifiers for documents conforming
+ to this DTD:
+ <!DOCTYPE HTML PUBLIC -//AS//DTD HTML 3.0 asWedit + extensions//EN>
+ - or -
+ <!DOCTYPE HTML PUBLIC -//AdvaSoft Ltd//DTD HTML 3.0 asWedit + extensions//EN>
+
+ This DTD is available at the following address:
+ http://www.advasoft.com/lib/html3-as.dtd
+ http://www.advasoft.com/lib/html3-as.txt
+
+
+ In short the original HTML 3 DTD (Fri 24-Mar-95 09:46:33) by Dave Ragget
+ has been modified to support the following latest IETF drafts and some other
+ more stable proposals:
+ o new tables
+ o client-side image maps
+ o form-based file upload
+ o HotJava applets support
+
+ For details see below.
+
+
+ The original HTML 3 DTD has been modified as follow:
+
+ (0) some modificatins to avoid dummy elements !
+
+ ADDITIONALLY the following functionality was added in November '95
+ to reflect tha developments in the HTML area:
+
+ (1) Extra attribute in the IMG element to allow "Client-Side Image Maps"
+ (as in the <draft-seidman-clientsideimagemap-01.txt> as of
+ August 8, 1995 (but applied to HTML3):
+ the extra MAP & AREA elements were added as well;
+
+ (2) Addition of the APPLET & PARAM tag for the HotJava support
+ (the temp DTD taken from:
+ http://java.sun.com/.people/avh/applet/html
+ AdvaSoft internal: dev/applet.html
+ )
+ (3) Form based upload according to RFC1867 (November 1995)
+ (actually the HTML 3 supports the suggested DTD already)
+ The only new is probably the value of the enctype (just text):
+ i.e. "multipart/form-data" (*NOT* specified in the DTD in any way!)
+
+ (4) Extra two attribute to the basic attributes (%attrs)
+
+ Note: all modifications have been marked with the "AdvaSoft" name.
+-->
+<!--
+ html3.dtd
+
+ Document Type Definition for the HyperText Markup Language (HTML DTD)
+
+ Draft: Fri 24-Mar-95 09:46:33
+
+ Author: Dave Raggett <dsr@hplb.hpl.hp.com>
+
+ W3O is developing a testbed browser to provide practical
+ experience with HTML 3.0 before it becomes a standard.
+ See: http://www.w3.org/hypertext/WWW/Arena/
+
+ This is an open process and comments are welcomed on the
+ www-html mailing list.
+
+ Please use the following MIME content type:
+
+ Content-Type: text/html; version=3.0
+
+ This will allow clients to distinguish HTML 3.0 from current
+ HTML documents. This is most easily achieved by saving
+ files with the extension ".html3" or ".ht3" so that servers
+ can easily distinguish these files from HTML 2.0 files.
+
+ The entity HTML.Recommended can be used to give a more rigorous
+ version of the DTD suitable for use with SGML authoring tools.
+ The default version of the DTD offers a laxer interpretation,
+ e.g. allowing authors to omit leading <P> elements. You can
+ switch on the more rigorous version of the DTD by including
+ the following at the start of your HTML document.
+
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN//"
+ [ <!ENTITY % HTML.Recommended "INCLUDE"> ] >
+
+
+ Design Objectives:
+
+ o Backwards compatibility with 2.0
+
+ o Tightening up HTML.Recommended and
+ moving more things to HTML.Deprecated
+
+ o Keep HTML - simple don't compete with CALS
+
+ o Make it practical for people to edit HTML 3.0
+ documents directly, i.e. avoid long names.
+
+ o Tables, figures and math from HTML+
+ with tweaks based on recent experience
+
+ o Client-side event handling for figures
+ and graphical form selection menus
+
+ o Add limited presentational controls with
+ a view to use of linked style sheets
+ (style overrides are supported)
+
+ o Compatibility with ICADD as per Yuri's suggestions
+
+ HTML 3.0 relies on linked style info to give authors
+ control over the appearence of documents. Such info is
+ placed in a linked style sheet, or as overrides in the
+ HTML document head, using the STYLE element. The generic
+ CLASS attribute can be used to subclass elements when
+ you want to use a different style from normal, e.g. you
+ might use <h2 class=bigcaps> for headers with enlarged
+ capital letters. Note that the class attribute has a
+ wider scope than just style changes, e.g. browsers could
+ provide the means for searching through documents,
+ restricting search according to element class values.
+
+ The DTD contains a small number of attributes for direct
+ control of basic alignment parameters; column widths for
+ tables; support for custom bullets, sequence numbering for
+ lists and headers; and text flow. These attributes offer
+ control over appearence which would be inconvenient to
+ express exclusively via associated style sheets.
+
+ The MD attribute for each hypertext or inline link specifies a
+ message digest such as MD5 for the linked object and is needed
+ to ensure someone hasn't tampered with a linked document.
+
+ History:
+
+ 24th March '95
+
+ Changed ROLE->CLASS for HTML element
+ Added dummy elements to fix problem with mixed
+ content models for BODY, BLOCKQUOTE/BQ and FIG
+ Dropped audio fields from FORMs
+ Reinstated MIN/MAX for range fields
+ Reinstated DISABLED and ERROR attributes for fields
+
+ 22nd March '95
+
+ Changed from em to en units. The latter
+ is a typographical unit = half point size
+ Merged NEEDS into CLEAR for control of textflow
+
+ 21st March '95
+
+ Added REL=Banner to LINK element
+ Added BANNER element in place of <DIV CLASS=BANNER>
+ Added RANGE and SPOT elements
+ Added FN in place of <NOTE ROLE=FOOTNOTE>
+ Changed ROLE->CLASS for NOTE element
+
+ 17th March '95
+
+ Fixed bug in PRE content model
+ Changed external references to omit trailling //
+ Dropped <!DOCTYPE HTML [ ... ]> wrapper to avoid problems
+ with "real" sgml parsers
+ Added NOFLOW attribute to FIG and TABLE
+ Fixed typo in IMG ALIGN attribute
+ Made SELECT match IMG for graphic attributes
+ Added decimal alignment for tabs and table cells
+ Added ALIGN attribute to TEXTAREA for parity
+ with IMG and INPUT, including ALIGN=LEFT etc.
+
+ 13th March '95
+
+ Dropped MARK tag on advice from SGML Open
+ Allowed spaces in table colspec attribute
+ Changed ARRAY element
+ Added CHOOSE tag to BOX element
+ Cleaned up PRE content model
+ Obsoleted tags incompatible with SGML
+
+ 6th March '95
+
+ Added several tags to MATH: %mathface, %mathvec
+ and improved ROOT, with new SQRT convience tag
+
+ 1st March '95
+
+ Dropped align attribute from BR element
+ Added indent attribute to TAB
+ Added optional CREDIT to end of BQ
+ Changed FIG to %body.content to allow headers
+
+ 22nd February '95
+
+ Added align attribute, and dropped before, after, center and right
+ attributes to clean up TAB element
+ Added INS and DEL for legal documents
+ Added CREDIT to end of FIG element
+ Dropped FN in favor of <NOTE ROLE=FootNote>
+
+ 9th Feburuary '95
+
+ Dropped base attribute mechanism for scoping relative URLs
+ Dropped nofold attribute for disabling whitespace folding
+ Dropped border width attributes for FIG (-> style sheet)
+ Dropped delims attribute from math BOX element
+ Dropped stylistic attributes from OL such as inherit (-> stylesheet)
+ Added baseline to list of valign attribute values for tables.
+ Added DIV element for generic container class and static banners
+ Added MARK element for marked range class
+ Added closed set of LINK REL values for toolbars
+ Added numbering attributes to headers
+ Added bullet attributes to headers
+ Added TERM element to math for style sheet control of term rendering
+ Changed to imagemap=URI for server-side event handling for FIG/OVERLAY
+ Changed delimiter attributes for math arrays
+ Changed ROOT element for maths to allow an arbitrary radix
+ Simplified numbering attributes for ordered lists
+ Simplified STYLE element to leave binding to style language
+-->
+
+<!-- ORIGINAL Version definition...
+<!ENTITY % HTML.Version
+ "-//IETF//DTD HTML 3.0//EN"
+
+ -- -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
+ <html>
+ ...
+ </html>
+ -- --
+ >
+-->
+<!-- AdvaSoft Version definition -->
+<!ENTITY % HTML.Version
+ "-//AS//DTD HTML 3.0 asWedit + extensions//EN"
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC "-//AS//DTD HTML 3.0 asWedit + extensions//EN">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+<!--================== Flags for Marked Sections ==========================-->
+
+<!ENTITY % HTML.Recommended "IGNORE"
+ -- Certain features of the language are necessary for compatibility
+ with widespread usage, but they may compromise the structural
+ integrity of a document. This feature test entity enables
+ a more prescriptive document type definition that eliminates
+ the above features.
+ -->
+
+<![ %HTML.Recommended [
+ <!ENTITY % HTML.Deprecated "IGNORE">
+]]>
+
+<!ENTITY % HTML.Deprecated "INCLUDE"
+ -- Certain features of the language are necessary for compatibility
+ with earlier versions of the specification, but they tend
+ to be used an implemented inconsistently, and their use is
+ deprecated. This feature test entity enables a document type
+ definition that eliminates these features.
+ -->
+
+<!ENTITY % HTML.Obsoleted "IGNORE"
+ -- The XMP, LISTING and PLAINTEXT tags are incompatible with SGML
+ and derive from very early versions of HTML. They require non-
+ standard parsers and will cause problems for processing
+ documents with standard SGML tools.
+ -->
+
+<!--================== Imported Names =====================================-->
+
+<!ENTITY % Content-Type "CDATA"
+ -- meaning a MIME content type, as per RFC1521
+ -->
+
+<!ENTITY % HTTP-Method "GET | POST"
+ -- as per HTTP specification
+ -->
+
+<!ENTITY % URI "CDATA"
+ -- The term URI means a CDATA attribute
+ whose value is a Uniform Resource Identifier,
+ as defined by
+ "Uniform Resource Identifiers" by Tim Berners-Lee
+ aka http://info.cern.ch/hypertext/WWW/Addressing/URL/URI_Overview.html
+ aka RFC 1630
+
+ Note that CDATA attributes are limited by the LITLEN
+ capacity (1024 in the current version of html.decl),
+ so that URIs in HTML have a bounded length.
+
+ -->
+
+<!ENTITY % REAL "CDATA" -- real numbers (not in SGML) -->
+
+<!ENTITY % SHAPE "CDATA"
+ -- Shape of hotzone in image.
+
+ All coordinates are assumed to be numbers in the range 0 to 1
+ and interpreted as fractional width/height and measured from
+ the top left corner of the associated image.
+
+ The attribute value is a string taking one of the following forms:
+
+ "default"
+
+ Used to define a default link for the figure background.
+
+ "circle x, y, r"
+
+ (x, y) define the center and r the radius.
+
+ "rect x, y, w, h"
+
+ (x, y) defines upper left, and w and h the width and height.
+
+ "polygon x1, y1, x2, y2, ..."
+
+ Given n pairs of x, y coordinates, the polygon is closed by a
+ line linking the n'th point to the first. Intersecting polygons
+ use the non-zero winding number rule to determine if a point lies
+ inside the polygon.I
+ --
+>
+
+<!-- 3.0 Parameter Entities -->
+
+<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
+
+<![ %HTML.Obsoleted [
+ <!ENTITY % preformatted "PRE | XMP | LISTING">
+]]>
+
+
+<![ %HTML.Deprecated [
+ <!ENTITY % list "UL | OL | DIR | MENU">
+ <!ENTITY % blockquote "BLOCKQUOTE | BQ">
+]]>
+
+<!ENTITY % list "UL | OL">
+
+<!ENTITY % blockquote "BQ">
+
+<!ENTITY % preformatted "PRE">
+
+
+<!-- The CLASS attribute is used to subclass HTML elements for
+ rendering purposes, when used with style sheets, e.g. DSSSL lite -->
+
+<!-- AdvaSoft Note: we use the attrs definition borrowed from the latest Table draft -->
+<!ENTITY % attrs
+ "id ID #IMPLIED -- element identifier --
+ class NAMES #IMPLIED -- for subclassing elements --
+ style CDATA #IMPLIED -- rendering annotation --
+ lang NAME #IMPLIED -- as per RFC 1766 --
+ dir (ltr|rtl) #IMPLIED -- I18N text direction --">
+
+<!-- ORIGINAL_HTML3 ENTITY % attrs ---- common attributes for elements ----
+ 'id ID #IMPLIED ---- as target for hrefs (link ends) ----
+ lang CDATA "en.us" ---- ISO language, country code ----
+ class NAMES #IMPLIED ---- for subclassing elements ----'
+-->
+
+<!--
+original HTML3 ENTITY % attrs ---- common attributes for elements ----
+ 'id ID #IMPLIED ---- as target for hrefs (link ends) ----
+ lang CDATA "en.us" ---- ISO language, country code ----
+ class NAMES #IMPLIED ---- for subclassing elements ----'
+-->
+
+<!-- SGML standard forces different NAMES for all attribute values
+ in the same element, regardless of the attribute name! As a result
+ CDATA is used for CLEAR attribute to avoid clash with ALIGN attribute.-->
+
+<!--
+When text flows around a figure or table in the margin, you sometimes want
+to start an element like a header, paragraph or list below the figure rather
+than alongside it. The CLEAR attribute allows you to move down unconditionally:
+
+ clear=left move down until left margin is clear
+ clear=right move down until right margin is clear
+ clear=all move down until both margins are clear
+
+Alternatively, you can decide to place the element alongside the figure just
+so long as there is enough room. The minimum width needed is specified as:
+
+ clear="40 en" move down until there is at least 40 en units free
+ clear="100 pixels" move down until there is at least 100 pixels free
+
+The style sheet (or browser defaults) may provide default minimum widths for
+each class of block-like elements.
+-->
+
+<!ENTITY % needs -- Attributes for controlling text flow. Used in headers
+ and other elements to guarantee sufficient room --
+ 'clear CDATA #IMPLIED'>
+
+<!--
+ The following attribute may be included where ever a URL can be given:
+
+ md message digest e.g. md="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ"
+ where the digest is base64 encoded and preceded by a prefix
+ denoting the algorithm (in this case MD5).
+-->
+
+<!ENTITY % url.link -- Attributes associated with URL based links --
+ "md CDATA #IMPLIED -- message digest for linked object --">
+
+<!--================ Character mnemonic entities ==========================-->
+
+<!-- The HTML list of Latin-1 entities includes the full range
+ of characters in widely available Latin-1 fonts, and as such
+ is a mixture of ISOlat1 and other ISO publishing symbols -->
+
+<!ENTITY % HTMLlat1 PUBLIC
+ "-//IETF//ENTITIES Added Latin 1 for HTML//EN">
+%HTMLlat1;
+
+<!--================ Entities for special symbols =========================-->
+
+<!ENTITY emsp SDATA "[emsp ]" -- em space -->
+<!ENTITY ensp SDATA "[ensp ]" -- en space (1/2-em) -->
+<!ENTITY mdash SDATA "[ndash ]" -- em dash -->
+<!ENTITY ndash SDATA "[ndash ]" -- en dash (1/2-em) -->
+<!ENTITY nbsp SDATA "[nbsp ]" -- non breaking space -->
+<!ENTITY shy SDATA "[shy ]" -- soft hyphen -->
+<!ENTITY copy SDATA "[copy ]" -- copyright sign -->
+<!ENTITY trade SDATA "[trade ]" -- trade mark sign -->
+<!ENTITY reg SDATA "[reg ]" -- registered sign -->
+
+<!--================ Entities for standard icons ==========================-->
+
+<!-- a range of standard icons such as &folder; for use
+ in speeding up display of directory listings etc. -->
+
+<!ENTITY % HTMLicons PUBLIC
+ "-//IETF//ENTITIES icons for HTML//EN">
+%HTMLicons;
+
+<!--================ Entities for math symbols ============================-->
+
+<!-- ISO subset chosen for use with the widely available Adobe math font -->
+
+<!ENTITY % HTMLmath PUBLIC
+ "-//IETF//ENTITIES Math and Greek for HTML//EN">
+%HTMLmath;
+
+<!--=================== Text Markup =======================================-->
+
+<!ENTITY % font " U | S | TT | I | BIG | SMALL">
+
+<!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE">
+
+<!ENTITY % misc "Q | LANG | AU | DFN | PERSON | ACRONYM | ABBREV | INS | DEL">
+
+<!ENTITY % special "TAB | MATH | A | IMG | BR">
+
+<!ENTITY % notmath "%font | %phrase | %special | %misc">
+
+<!ENTITY % text "#PCDATA | SUB | SUP | B | %notmath">
+
+
+<!ENTITY % pre.exclusion "TAB|MATH|IMG|BIG|SMALL|SUB|SUP">
+
+<!ELEMENT (%font|B|%phrase|%misc) - - (%text)+>
+<!ATTLIST (%font|B|%phrase|%misc) %attrs;>
+
+<!-- Subscripts and superscripts. The ALIGN attribute is only used for math -->
+
+<!ELEMENT (SUB|SUP) - - (%text)+>
+<!ATTLIST (SUB|SUP)
+ %attrs;
+ align (left|center|right) #IMPLIED
+ >
+
+<!-- Forced line break -->
+
+<!ELEMENT BR - O EMPTY>
+<!ATTLIST BR
+ %attrs;
+ %needs; -- for control of text flow --
+ >
+
+<!-- Named left, center and right tab stops (independent of '\t' char) -->
+
+<!ELEMENT TAB - O EMPTY>
+<!ATTLIST TAB
+ id ID #IMPLIED -- defines named tab stop --
+ indent NUMBER 0 -- en units before new tab stop --
+ to IDREF #IMPLIED -- jump to named tab stop --
+ align (left|center|right|decimal) left
+ dp CDATA #IMPLIED -- decimal point e.g. dp="," --
+ >
+
+<!--================== Link Markup ========================================-->
+
+<!--
+ With HTML 3.0 you can use ID attributes on most elements for named
+ link ends. The use of the NAME attribute on anchors is deprecated.
+
+ Do we want to support arbitrary elements for link starts? This would
+ involve adding HREF and related attributes to most elements.
+-->
+
+<![ %HTML.Deprecated [
+ <!ENTITY % linkName "name CDATA #IMPLIED -- named link end --">
+]]>
+
+<!ENTITY % linkName "">
+
+
+<!ENTITY % ToolBar "home|toc|index|glossary|copyright|
+ up|previous|next|help|bookmark"
+
+ -- LINK RELationship values which are used to create toolbar
+ buttons or menu items for navigation, where toc stands
+ for table of contents and bookmark provides for an open
+ ended set of links, i.e. you can use multiple bookmarks
+ for key entry points. Use the optional TITLE attribute
+ to override default names.
+ -->
+
+<!ENTITY % linkType "NAME"
+ -- A definitive list will be specified at a later date.
+
+ They are used
+
+ a) by stylesheets to control how collections of
+ html nodes are rendered into printed documents
+
+ b) for document specific toolbars/menus when used
+ with the LINK element in document head:
+
+ "home|toc|index|glossary|copyright|
+ up|previous|next|help|bookmark"
+
+ where toc stands for table of contents and
+ bookmark provides for an open ended set of links,
+ i.e. you can use several bookmarks for key entry
+ points. Use the optional TITLE attribute to
+ override default names.
+
+ c) for hypertext paths or guided tours,
+ with REL=NODE and REL=PATH.
+
+ d) to make a link to a style sheet, e.g. rel=stylesheet
+ (used only with the LINK element).
+
+ e) to make a link to a separate banner, e.g. rel=banner
+ (used only with the LINK element).
+ -->
+
+
+<!ENTITY % linkExtraAttributes -- URN moved to %url.link --
+ "rel %linkType #IMPLIED -- forward relationship type --
+ rev %linkType #IMPLIED -- reversed relationship type
+ to referent data --
+ title CDATA #IMPLIED -- advisory only --
+ methods NAMES #IMPLIED -- supported public methods of the object:
+ TEXTSEARCH, GET, HEAD, ... --
+ ">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % A.content "(%heading|%text)+">
+]]>
+
+<!ENTITY % A.content "(%text)+">
+
+<!ELEMENT A - - %A.content -(A)>
+
+<!ATTLIST A
+ %attrs;
+ href %URI; #IMPLIED
+ %url.link; -- standard link attributes --
+ %linkName; -- name attribute is deprecated; use ID instead --
+ shape %SHAPE; #IMPLIED -- for shaped hotzones in FIGs --
+ %linkExtraAttributes;
+ >
+
+<!--=================== Images ============================================-->
+
+<!-- Desired widths are used for negotiating image size
+ with the module responsible for painting the image.
+ align=left or right cause image to float to margin
+ and for subsequent text to wrap around image -->
+
+<!ELEMENT IMG - O EMPTY -- Embedded image -->
+<!ATTLIST IMG
+ %attrs;
+ src %URI; #REQUIRED -- URI of image to embed --
+ %url.link; -- standard link attributes --
+ alt CDATA #IMPLIED -- for display in place of image --
+ align (top|middle|bottom|left|right) top -- relative to baseline
+ -- width NUMBER #IMPLIED -- desired width in en's or pixels --
+ height NUMBER #IMPLIED -- desired height in en's or pixels --
+ units (en|pixels) pixels -- units for width and height --
+ ismap (ismap) #IMPLIED -- pass clicks to server --
+ -- NEW AdvaSoft addition to allow client side imagemaps --
+ -- NOTE: AdvaSoft I've added #IMPLIED to the end of the following declaration --
+ usemap %URI; #IMPLIED -- client side imagemap --
+ >
+<!-- Add the following new definitions for client side imagemaps -->
+<!ELEMENT MAP - - (AREA)+>
+<!ATTLIST MAP
+ -- originally in the the draft it was %linkName; #REQUIRED but this clashes
+ with our linkName definition so define it manually --
+ name CDATA #REQUIRED -- @@@ watch out for the case when Deprecated is ON --
+ >
+
+<!ELEMENT AREA - O EMPTY>
+<!ATTLIST AREA
+ -- originally here we had the following but we (AdvaSoft) think
+ it is a bug
+ shape (rect|circle|polygon) rect #IMPLIED
+ so I've changed it to the following
+ (i.e. I've deleted the trailing #IMPLIED) --
+ shape (rect|circle|polygon) rect
+ coords CDATA #REQUIRED
+ href %URI; #IMPLIED
+ nohref (nohref) #IMPLIED
+ alt CDATA #IMPLIED
+ >
+<!-- End of client side imagemaps additions -->
+<!--=================== Applets (AdvaSoft) =========================================-->
+
+<!ELEMENT APPLET - - (PARAM*, (%text;)*)> <!-- AdvaSoft WATCH OUT for sequence -->
+<!ATTLIST APPLET
+ CODEBASE %URI; #IMPLIED -- code base (changed from CDATA to %URI; by AdvaSoft) --
+ CODE %URI; #REQUIRED -- code file (changed from CDATA to %URI; by AdvaSoft) --
+ NAME CDATA #IMPLIED -- applet name --
+ WIDTH NUMBER #REQUIRED
+ HEIGHT NUMBER #REQUIRED
+ ALIGN (left|right|top|texttop|middle|
+ absmiddle|baseline|bottom|absbottom) baseline
+ VSPACE NUMBER #IMPLIED
+ HSPACE NUMBER #IMPLIED
+>
+
+<!ELEMENT PARAM - O EMPTY>
+<!ATTLIST PARAM
+ NAME NAME #REQUIRED -- The name of the parameter --
+ VALUE CDATA #IMPLIED -- The value of the parameter --
+>
+
+<!--=================== Applets (AdvaSoft) ==End of ....============================-->
+
+<!--=================== Paragraphs=========================================-->
+
+<!ELEMENT P - O (%text)+>
+<!ATTLIST P
+ %attrs;
+ align (left|center|right|justify) #IMPLIED
+ %needs; -- for control of text flow --
+ nowrap (nowrap) #IMPLIED -- disable wordwrap --
+ >
+
+<!--=================== Headings, Titles, Sections ========================-->
+
+<!ELEMENT HR - O EMPTY -- customizable horizontal rule -->
+<!ATTLIST HR
+ %attrs;
+ src %URI; #IMPLIED -- URI of custom rule graphic --
+ %url.link; -- standard link attributes --
+ %needs; -- for control of text flow --
+ >
+
+<!--
+ Headers can be numbered, although this is a matter for style sheets.
+ The style sheet controls the numbering style:
+
+ a) whether the parent numbering is inherited, e.g. 5.i.c
+ where 5 is the current sequence number for H1 headers, and
+ 1 is the number for H2 headers and 3 for H3 headers.
+
+ b) what style is used for current sequence number
+ e.g. arabic, upperalpha, loweralpha, upperroman, lowerroman
+ or a numbering scheme appropriate for the current language
+
+ The skip attribute is used to skip over sequence numbers for items
+ which have been left out of the list, e.g. skip=3 advances the
+ sequence number past 3 omitted items. The seqnum sets the sequence
+ number to a specified value. Note that the style sheet may take
+ advantage of the sequence number for higher level headers.
+
+ The dingbat or src attributes may be used to specify a bullet like
+ image to be placed adjacent to the header. Defining this in the
+ header element simplifies the document markup and avoids the need
+ to use the clear or needs attribute in the following element to
+ prevent it flowing around this image.
+-->
+
+<!ELEMENT ( %heading ) - - (%text;)+>
+<!ATTLIST ( %heading )
+ %attrs;
+ align (left|center|right|justify) #IMPLIED
+ %needs; -- for control of text flow --
+ seqnum NUMBER #IMPLIED -- starting sequence number --
+ skip NUMBER 0 -- skip seq nums for missing items --
+ dingbat ENTITY #IMPLIED -- dingbat entity from HTMLicons --
+ src (%URI;) #IMPLIED -- bullet defined by graphic --
+ %url.link; -- standard link attributes --
+ nowrap (nowrap) #IMPLIED -- disable wordwrap --
+ >
+
+<!ELEMENT TITLE - - (#PCDATA)
+ -- 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.
+ -->
+
+<!--=================== Text Flows ========================================-->
+
+<!ENTITY % block
+ "P | %list | DL
+ | %preformatted
+ | %blockquote
+ | FORM | ISINDEX | FN
+ | MAP | APPLET
+ | TABLE | FIG | NOTE">
+ <!-- the line above: (i.e. after: | MAP | APPLET) AdvaSoft MAP & APPLET added for client-side imagemap and HotJava support, respectively -->
+
+<!--
+ ((%block)* | (%text)*) would be much nicer as it would avoid the need
+ for a <P> tag when all you want is a few words of text. The problem
+ is that it also prevents: "<LI> <P>some text" since it forbids PCDATA
+ and hence the white space between the <LI> and the <P>.
+-->
+
+<![ %HTML.Recommended [
+ <!ENTITY % flow "(%block)*">
+]]>
+
+<!ENTITY % flow "(%text | %block)*">
+
+<!ELEMENT PRE - - (%text)* -(%pre.exclusion)>
+
+<!ATTLIST PRE
+ %attrs;
+ width NUMBER #implied
+ %needs; -- for control of text flow --
+ >
+
+<![ %HTML.Obsoleted [
+
+<!ENTITY % literal "CDATA"
+ -- special non-conforming parsing mode where
+ the only markup signal is the end tag
+ in full. This will cause problems for
+ standard SGML tools!
+ -->
+
+<!ELEMENT XMP - - %literal>
+<!ELEMENT LISTING - - %literal>
+<!ELEMENT PLAINTEXT - O %literal>
+
+]]>
+
+<!--=================== Lists =============================================-->
+
+<!ELEMENT DL - - (LH?, (DT|DD)+) -- this is perhaps too lax? -->
+<!ATTLIST DL
+ %attrs;
+ %needs; -- for control of text flow --
+ compact (compact) #IMPLIED -- more compact style --
+ >
+
+<!ELEMENT DT - O (%text)+>
+<!ELEMENT DD - O %flow;>
+<!ATTLIST (DT|DD)
+ %attrs;
+ %needs; -- for control of text flow --
+ >
+
+
+<!ELEMENT (OL|UL) - - (LH?, LI+) -- should we allow a list header ? -->
+
+<!-- style sheet controls numbering style
+ a) whether the parent numbering is inherited, e.g. 5.1.c
+ b) what style is used for current sequence number
+ e.g. arabic, upperalpha, loweralpha, upperroman, lowerroman
+ or a numbering scheme for the current language
+-->
+<!ATTLIST OL
+ %attrs;
+ %needs; -- for control of text flow --
+ continue (continue) #IMPLIED -- don't restart sequence number --
+ seqnum NUMBER #IMPLIED -- starting sequence number --
+ compact (compact) #IMPLIED -- reduced interitem spacing --
+ >
+
+<!-- Unordered lists:
+
+ o single or multicolumn with
+ horizontal or vertical wrapping
+
+ o plain or bulletted list items
+
+ o bullets can be customised via:
+ - entities (dingbats in HTMLicons)
+ - external graphic via URL
+ - individual attributes on LI tags
+-->
+<!ATTLIST UL
+ %attrs;
+ %needs; -- for control of text flow --
+ wrap (vert|horiz|none) none -- multicolumn list style --
+ plain (plain) #IMPLIED -- suppress bullets --
+ dingbat ENTITY #IMPLIED -- dingbat entity from HTMLicons --
+ src (%URI;) #IMPLIED -- bullet defined by graphic --
+ %url.link; -- standard link attributes --
+ compact (compact) #IMPLIED -- reduced interitem spacing --
+ >
+
+<!ELEMENT LH - O (%text;)+ -- list header -->
+<!ATTLIST LH %attrs;>
+
+<!--
+ For unordered lists, you can override the standard bullet with
+ a custom graphic specified via a URI e.g. src="splash.gif" or
+ a reference to one of the HTMLicons graphics e.g. dingbat=folder
+
+ The skip attribute is used with ordered lists to skip over sequence
+ numbers for items which have been left out of the list, e.g. skip=3
+ advances the sequence number past 3 omitted items.
+-->
+
+<!ELEMENT LI - O %flow; -- list item -->
+<!ATTLIST LI
+ %attrs;
+ %needs; -- for control of text flow --
+ dingbat ENTITY #IMPLIED -- dingbat entity from HTMLicons --
+ src (%URI;) #IMPLIED -- custom bullet graphic --
+ %url.link; -- standard link attributes --
+ skip NUMBER 0 -- skip seq nums for missing items --
+ >
+
+<!-- DIR and MENU are now subsumed by UL with type=plain. Use the
+ wrap attribute to control wrapping style for multicolumn lists -->
+
+<![ %HTML.Deprecated [
+ <!ELEMENT (DIR|MENU) - - (LI)+ -(%block)>
+ <!ATTLIST (DIR|MENU)
+ compact (compact) #IMPLIED>
+]]>
+
+<!--=================== Document Body =====================================-->
+
+<![ %HTML.Recommended [
+ <!ENTITY % body.content "(DIV|%heading|%block|HR|ADDRESS)*"
+ -- <h1>Heading</h1>
+ <p>Text ...
+ is preferred to
+ <h1>Heading</h1>
+ Text ...
+ -->
+]]>
+
+<!ENTITY % body.content "(DIV | %heading | %text | %block | HR | ADDRESS)*">
+
+<!-- ORIGINAL @@@ <!ELEMENT BODY O O (BANNER?, BODYTEXT) +(SPOT)> -->
+<!ELEMENT BODY O O (BANNER?, %body.content) +(SPOT)>
+<!ATTLIST BODY
+ %attrs;
+ background %URI; #IMPLIED -- texture tile for document background --
+ >
+
+<!-- ORIGINAL (we do NOT use) dummy element
+ <!ELEMENT BODYTEXT O O %body.content>
+-->
+
+<!--
+ The BANNER element is used for a banner section which appears at
+ the top of the window and doesn't scroll with window contents.
+ This can be used for corporate logos, copyright statements and
+ disclaimers, as well as customized navigation/search controls.
+-->
+<!ELEMENT BANNER - - %body.content>
+<!ATTLIST BANNER %attrs; >
+
+<!-- SPOT is used to insert IDs at arbitrary places
+ e.g. for end points of a marked range (see RANGE) -->
+<!ELEMENT SPOT - O EMPTY>
+<!ATTLIST SPOT id ID #REQUIRED>
+
+<!-- we do NOT use dummy elements
+ <!ELEMENT (%blockquote) - - (BODYTEXT, CREDIT?)>
+-->
+<!ELEMENT (%blockquote) - - (%body.content, CREDIT?)>
+<!ATTLIST (%blockquote)
+ %attrs;
+ %needs; -- for control of text flow --
+ nowrap (nowrap) #IMPLIED -- disable wordwrap --
+ >
+
+<!ENTITY % address.content "((%text;)* | P*)">
+
+<!ELEMENT ADDRESS - - %address.content>
+<!ATTLIST ADDRESS
+ %attrs;
+ %needs; -- for control of text flow --
+ >
+
+<!--
+ DIV can be used with the CLASS attribute to represent different
+ kinds of container, e.g. chapter, section, abstract, appendix.
+-->
+
+<!ELEMENT DIV - - %body.content>
+<!ATTLIST DIV
+ %attrs;
+ %needs; -- for control of text flow --
+ align (left|center|right) left -- alignment of following text --
+ nowrap (nowrap) #IMPLIED -- disable wordwrap --
+ >
+
+<!--================ Forms ===============================================-->
+
+<!--
+ As HTML 2.0 plus a few extensions:
+
+ a) A RANGE control which varies between pair of values
+ specified with the size attribute, e.g. SIZE="1, 10"
+
+ b) FILE widget for uploading one or more files to a server
+
+ c) SCRIBBLE on image widget that sends the "ink" to the server
+
+ d) SUBMIT/RESET buttons can now be customised with an image.
+ This subsumes the IMAGE type which is now deprecated.
+
+ e) Graphical SELECTion menus are now supported, using
+ the new SHAPE attribute on OPTION elements.
+
+ Further extensions are in the pipeline (e.g. table entry,
+ multiple data formats for textarea fields and client-side
+ scripts with custom widgets) but will have to wait until
+ the backlog of implementation work diminishes.
+-->
+
+<!ELEMENT FORM - - %body.content -(FORM) +(INPUT|SELECT|TEXTAREA)>
+<!ATTLIST FORM
+ action %URI #REQUIRED -- server-side form handler --
+ method (%HTTP-Method) GET -- see HTTP specification --
+ enctype %Content-Type; "application/x-www-form-urlencoded"
+ script %URI #IMPLIED -- link to client-side script --
+ >
+
+<![ %HTML.Deprecated [
+ <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT
+ | RESET | RANGE | FILE | SCRIBBLE | HIDDEN | IMAGE)">
+]]>
+
+<!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT
+ | RESET | RANGE | FILE | SCRIBBLE | HIDDEN)">
+
+<!ELEMENT INPUT - O EMPTY>
+<!ATTLIST INPUT
+ %attrs;
+ type %InputType TEXT
+ name NAME #IMPLIED -- required for all but submit and reset --
+ value CDATA #IMPLIED -- required for radio buttons & checkboxes --
+ disabled (disabled) #IMPLIED -- read-only fields --
+ error CDATA #IMPLIED -- why field is in error --
+ checked (checked) #IMPLIED -- for radio buttons and check boxes --
+ size NUMBER #IMPLIED -- visible width of TEXT fields --
+ maxlength NUMBER #IMPLIED -- max number of chars for TEXT fields --
+ min %REAL #IMPLIED -- lower limit for RANGE fields --
+ max %REAL #IMPLIED -- upper limit for RANGE fields --
+ accept CDATA #IMPLIED -- list of MIME types for file fields --
+ src %URI #IMPLIED -- for fields with background images --
+ %url.link; -- standard link attributes --
+ align (top|middle|bottom|left|right) top
+ >
+
+<!--
+ SRC attribute added for graphical selection menus
+ The WIDTH, HEIGHT and UNITS attributes apply to the
+ image specified by the SRC attribute.
+ -->
+
+<!ELEMENT SELECT - - (OPTION+) -(INPUT|TEXTAREA|SELECT)>
+<!ATTLIST SELECT
+ %attrs;
+ name CDATA #REQUIRED
+ multiple (multiple) #IMPLIED
+ disabled (disabled) #IMPLIED -- read-only menu --
+ error CDATA #IMPLIED -- why selections are in error --
+ src %URI #IMPLIED -- for graphical selection menus --
+ %url.link; -- standard link attributes --
+ width NUMBER #IMPLIED -- desired width of in en's or pixels --
+ height NUMBER #IMPLIED -- desired height in en's or pixels --
+ units (en|pixels) pixels -- units for width and height --
+ align (top|middle|bottom|left|right) top
+ >
+
+<!ELEMENT OPTION - O (#PCDATA)>
+<!ATTLIST OPTION
+ %attrs;
+ selected (selected) #IMPLIED
+ value CDATA #IMPLIED -- default to element content --
+ shape %SHAPE; #IMPLIED -- for graphical selection menus --
+ disabled (disabled) #IMPLIED -- unselectable option --
+ error CDATA #IMPLIED -- why this choice is in error --
+ >
+
+<!--
+ Multi-line text input field. align=left or right
+ causes the field to float to margin and for
+ subsequent text to wrap around the field.
+-->
+
+<!ELEMENT TEXTAREA - - (#PCDATA) -(INPUT|TEXTAREA|SELECT)>
+<!ATTLIST TEXTAREA
+ %attrs;
+ name CDATA #REQUIRED
+ rows NUMBER #REQUIRED
+ cols NUMBER #REQUIRED
+ disabled (disabled) #IMPLIED -- read-only field --
+ error CDATA #IMPLIED -- why field is in error --
+ align (top|middle|bottom|left|right) top
+ >
+
+<!--======================= Captions ======================================-->
+
+<!ELEMENT CAPTION - - (%text;)+ -- table or figure caption -->
+ <!-- NOTE: the attribute definition below for "ATTLIST caption" is taken from
+ the table draft and replaces the original HTML 3 "ATTLIST CAPTION"
+ definition (it is **THE** same for all purposes!!
+ -->
+ <!-- ALIGN is used here for compatibility with deployed browsers -->
+ <!ENTITY % Caption "(top|bottom|left|right)">
+
+ <!ATTLIST caption -- table caption (or fig. caption, AdvaSoft) --
+ %attrs; -- id, lang, style, dir and class --
+ align %Caption; #IMPLIED -- relative to table --
+ >
+
+<!-- original HTML 3 draft definition of the "ATTLIST CAPTION" follows:
+<!ATTLIST CAPTION
+ %attrs;
+ align (top|bottom|left|right) #IMPLIED
+ >
+-->
+<!--========== from old Tables to define block.align for Fig =====================-->
+
+<!--
+ Tables and figures can be aligned in several ways:
+
+ bleedleft flush left with the left (window) border
+ left flush left with the left text margin
+ center centered (text flow is disabled for this mode)
+ right flush right with the right text margin
+ bleedright flush right with the right (window) border
+ justify when applicable the table/figure should stretch
+ to fill space between the text margins
+
+ Note: text will flow around the table or figure if the browser
+ judges there is enough room and the alignment is not centered
+ or justified. The table or figure may itself be part of the
+ text flow around some earlier figure. You can in this case use
+ the clear or needs attributes to move the new table or figure
+ down the page beyond the obstructing earlier figure. Similarly,
+ you can use the clear or needs attributes with other elements
+ such as headers and lists to move them further down the page.
+-->
+
+<!ENTITY % block.align
+ "align (bleedleft|left|center|right|bleedright|justify) center">
+
+<!-- NEW TABLE model ========================== -->
+
+<!-- NOTE the following is imported verbatim from the draft/ietf/tables_3.dtd -->
+
+ <!-- Content model entities imported from parent DTD:
+
+ %body.content; allows table cells to contain headers, paras,
+ lists, form elements and even arbitrarily nested tables.
+
+ %text; is text characters, including character entities and
+ character emphasis elements, IMG and anchors
+ -->
+
+<!-- AdvaSoft NOTE: the new attrs definitions has been moved up to replace the old HTML 3 def -->
+
+ <!--
+ 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, its appropriate to treat this as frame=border for backwards
+ compatibility with deployed browsers.
+ -->
+
+ <!ENTITY % Frame "(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 % Rules "(none | basic | rows | cols | all)">
+
+ <!-- horizontal placement of table relative to window -->
+ <!ENTITY % Where "(left|center|right)">
+
+
+ <!-- horizontal alignment attributes for cell contents -->
+ <!ENTITY % cell.halign
+ "align (left|center|right|justify|char) #IMPLIED
+ char CDATA #IMPLIED -- alignment char, e.g. char=':' --
+ charoff CDATA #IMPLIED -- offset for alignment char --"
+ >
+
+ <!-- vertical alignment attributes for cell contents -->
+ <!ENTITY % cell.valign
+ "valign (top|middle|bottom|baseline) #IMPLIED"
+ >
+
+ <!ELEMENT table - - (caption?, (col|colgroup)*, thead?, tfoot?, tbody+)>
+ <!-- the following caption definition (from the tabel draft) is the same as the one
+ from the HTML3 original draft at the beginning of the file; comment it out
+ <!ELEMENT caption - - (%text;)+>
+ -->
+ <!ELEMENT thead - O (tr+)>
+ <!ELEMENT tfoot - O (tr+)>
+ <!ELEMENT tbody O O (tr+)>
+ <!ELEMENT col - O EMPTY>
+ <!ELEMENT tr - O (th|td)+>
+ <!ELEMENT (th|td) - O %body.content>
+
+ <!ATTLIST table -- table element --
+ %attrs; -- id, lang, style, dir and class --
+ align %Where; #IMPLIED -- table position relative to window --
+ width CDATA #IMPLIED -- table width relative to window --
+ cols NUMBER #IMPLIED -- used for immediate display mode --
+ border CDATA #IMPLIED -- controls frame width around table --
+ frame %Frame; #IMPLIED -- which parts of table frame to include --
+ rules %Rules; #IMPLIED -- rulings between rows and cols --
+ cellspacing CDATA #IMPLIED -- spacing between cells --
+ cellpadding CDATA #IMPLIED -- spacing within cells --
+ >
+
+
+ <!-- AdvaSoft note: the "ATTLIST caption" from the table draft has been moved
+ up to the place where it was defined in the HTML 3 original draft !!
+ -->
+
+ <!--
+ COLGROUP groups a set of COL elements. It allows you to group
+ several columns together. COL elements contained within a COLGROUP
+ element do not themselves define column groups.
+ -->
+
+ <!ELEMENT colgroup - O (col+)>
+ <!ATTLIST colgroup
+ %attrs; -- id, lang, style, dir and class --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
+
+ <!--
+ COL elements define the alignment properties for cells in a given
+ column or spanned 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
+ -->
+
+ <!ATTLIST col -- column groups and properties --
+ %attrs; -- id, lang, style, dir and class --
+ span NUMBER 1 -- number of columns spanned by group --
+ width CDATA #IMPLIED -- relative width e.g. 2.5 --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
+
+ <!--
+ Use THEAD to duplicate headers when breaking table
+ across page boundaries, or for static headers when
+ body sections are rendered in scrolling panel.
+
+ Use TFOOT to duplicate footers when breaking table
+ across page boundaries, or for static footers when
+ body 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; -- id, lang, style, dir and class --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
+
+ <!ATTLIST tr -- table row --
+ %attrs; -- id, lang, style, dir and class --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
+
+ <!ATTLIST (th|td) -- header or data cell --
+ %attrs; -- id, lang, style, dir and class --
+ axis CDATA #IMPLIED -- defaults to cell content --
+ axes CDATA #IMPLIED -- list of axis names --
+ nowrap (nowrap) #IMPLIED -- suppress word wrap --
+ rowspan NUMBER 1 -- number of rows spanned by cell --
+ colspan NUMBER 1 -- number of cols spanned by cell --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
+
+
+
+
+<!--====================== Figures ========================================-->
+
+<!--
+ The element contains text for use in non-graphical displays. Note that
+ you can use the shape attribute in anchors to specify hotzones on images.
+ This provides for local processing of pointer clicks and a unified method
+ for dealing with graphical and non-graphical displays.
+
+ Text is flowed around figures when the figure is left or right aligned.
+ You can request the browser to move down until there is enough room for
+ the next element, see the CLEAR and NEED attributes (in %needs)
+
+ Figures offer a path towards embedding arbitrary information formats
+ via some kind of OLE/OpenDoc mechanism.
+-->
+
+<!-- ORIGINAL ( we do NOT use dummy elements)
+ <!ELEMENT FIG - - (OVERLAY*, CAPTION?, FIGTEXT, CREDIT?) -(FIG|IMG)>
+-->
+<!ELEMENT FIG - - (OVERLAY*, CAPTION?, %body.content, CREDIT?) -(FIG|IMG)>
+<!ATTLIST FIG
+ %attrs;
+ %needs; -- for control of text flow --
+ src %URI; #REQUIRED -- URI of document to embed --
+ %url.link; -- standard link attributes --
+ %block.align; -- horizontal alignment --
+ noflow (noflow) #IMPLIED -- noflow around figure --
+ width NUMBER #IMPLIED -- desired width in units --
+ height NUMBER #IMPLIED -- desired height in units --
+ units (en|pixels) pixels -- specifies units as en's or pixels --
+ imagemap (%URI) #IMPLIED -- pass background clicks to server --
+ >
+
+<!-- we do NOT use dummy elements
+ <!ELEMENT FIGTEXT O O %body.content>
+-->
+
+<!--
+ Figure overlays. When combined with local caching, overlays
+ provide a cheap way of modifying a larger base image sent as
+ part of a previous page.
+-->
+
+<!ELEMENT OVERLAY - O EMPTY -- image overlay -->
+<!ATTLIST OVERLAY
+ src %URI; #REQUIRED -- URI of image overlay --
+ %url.link; -- standard link attributes --
+ units (en|pixels) pixels -- specifies units as en's or pixels --
+ x NUMBER 0 -- offset from left in units --
+ y NUMBER 0 -- offset from top in units --
+ width NUMBER #IMPLIED -- desired width in units --
+ height NUMBER #IMPLIED -- desired height in units --
+ imagemap (%URI) #IMPLIED -- pass background clicks to server --
+ >
+
+<!ELEMENT CREDIT - - (%text;)* -- source of image -->
+<!ATTLIST CREDIT
+ %attrs;
+ >
+
+<!--======================== Notes ========================================-->
+
+<!--
+The NOTE element is used for admonishments. The CLASS attribute
+is used to differentiate NOTE's, e.g. Note, Caution or Warning.
+-->
+
+<!ELEMENT NOTE - - %body.content; -- admonishment -->
+<!ATTLIST NOTE
+ %attrs;
+ src %URI; #IMPLIED -- URI of custom graphic --
+ %url.link; -- standard link attributes --
+ %needs; -- for control of text flow --
+ >
+
+<!--======================== Footnotes ====================================-->
+
+<!--
+Typically rendered as popup note. These elements are referenced
+by hypertext links specified with the anchor element.
+-->
+<!ELEMENT FN - - %body.content;>
+<!ATTLIST FN %attrs;>
+
+<!--======================== Math ========================================-->
+
+<!-- Use &thinsp; &emsp; etc for greater control of spacing. -->
+
+<!-- Subscripts and Superscripts
+
+ <SUB> and <SUP> are used for subscripts and superscripts.
+
+ i j
+ X <SUP>i</SUP>Y<SUP>j</SUP> is X Y
+
+ i.e. the space following the X disambiguates the binding.
+ The align attribute can be used for horizontal alignment,
+ e.g. to explicitly place an index above an element:
+ i
+ X<sup align=center>i</sup> produces X
+
+Short references are defined for superscripts, subscripts and boxes
+to save typing when manually editing HTML math, e.g.
+
+ x^2^ is mapped to x<sup>2</sup>
+ y_z_ is mapped to y<sub>z</sub>
+ {a+b} is mapped to <box>a + b</box>
+
+Note that these only apply within the MATH element and can't be
+used in normal text!
+-->
+<!ENTITY REF1 STARTTAG "SUP">
+<!ENTITY REF2 ENDTAG "SUP">
+<!ENTITY REF3 STARTTAG "SUB">
+<!ENTITY REF4 ENDTAG "SUB">
+<!ENTITY REF5 STARTTAG "BOX">
+<!ENTITY REF6 ENDTAG "BOX">
+
+<!USEMAP MAP1 MATH>
+<!USEMAP MAP2 SUP>
+<!USEMAP MAP3 SUB>
+<!USEMAP MAP4 BOX>
+
+<!SHORTREF MAP1 "^" REF1
+ "_" REF3
+ "{" REF5 >
+
+<!SHORTREF MAP2 "^" REF2
+ "_" REF3
+ "{" REF5 >
+
+<!SHORTREF MAP3 "_" REF4
+ "^" REF1
+ "{" REF5 >
+
+<!SHORTREF MAP4 "}" REF6
+ "^" REF1
+ "_" REF3
+ "{" REF5 >
+
+<!--
+ The inclusion of %math and exclusion of %notmath is used here
+ to alter the content model for the B, SUB and SUP elements,
+ to limit them to formulae rather than general text elements.
+-->
+
+<!ENTITY % mathvec "VEC|BAR|DOT|DDOT|HAT|TILDE" -- common accents -->
+<!ENTITY % mathface "B|T|BT" -- control of font face -->
+<!ENTITY % math "BOX|ABOVE|BELOW|%mathvec|ROOT|SQRT|ARRAY|SUB|SUP|%mathface">
+<!ENTITY % formula "#PCDATA|%math">
+
+<!ELEMENT MATH - - (#PCDATA)* -(%notmath) +(%math)>
+<!ATTLIST MATH
+ id ID #IMPLIED
+ class NAMES #IMPLIED -- e.g. class=chem -->
+
+<!-- The BOX element acts as brackets. Delimiters are optional and
+ stretch to match the height of the box. The OVER element is used
+ when you want a line between numerator and denominator. This line
+ is suppressed with the alternative ATOP element. CHOOSE acts like
+ ATOP but adds enclosing round brackets as a convenience for binomial
+ coefficients. Note the use of { and } as shorthand for <BOX> and
+ </BOX> respectively:
+
+ 1 + X
+ {1 + X<OVER>Y} is _______
+ Y
+
+ a + b
+ {a + b<ATOP>c - d} is
+ c - d
+
+ The delimiters are represented using the LEFT and RIGHT
+ elements as in:
+
+ {[<LEFT>x + y<RIGHT>]} is [ x + y ]
+ {(<LEFT>a<RIGHT>]} is (a]
+ {||<LEFT>a<RIGHT>||} is || a ||
+
+ Use &lbrace; and &rbrace; for "{" and "}" respectively as
+ these symbols are used as shorthand for BOX, e.g.
+
+ {&lbrace;<LEFT>a+b<RIGHT>&rbrace;} is {a+b}
+
+ You can stretch definite integrals to match the integrand, e.g.
+
+ {&int;<SUB>a</SUB><SUP>b</SUP><LEFT>{f(x)<over>1+x} dx}
+
+ b
+ / f(x)
+ | ----- dx
+ / 1 + x
+ a
+
+ Note the complex content model for BOX is a work around
+ for the absence of support for infix operators in SGML.
+
+ You can get oversize delimiters with the SIZE attribute,
+ for example <BOX SIZE=large>(<LEFT>...<RIGHT>)</BOX>
+
+ Note that the names of common functions are recognized
+ by the parser without the need to use "&" and ";" around
+ them, e.g. int, sum, sin, cos, tan, ...
+-->
+
+<!ELEMENT BOX - - ((%formula)*, (LEFT, (%formula)*)?,
+ ((OVER|ATOP|CHOOSE), (%formula)*)?,
+ (RIGHT, (%formula)*)?)>
+<!ATTLIST BOX
+ size (normal|medium|large|huge) normal -- oversize delims -->
+
+<!ELEMENT (OVER|ATOP|CHOOSE|LEFT|RIGHT) - O EMPTY>
+
+<!-- Horizontal line drawn ABOVE contents
+ The symbol attribute allows authors to supply
+ an entity name for an accent, arrow symbol etc.
+ Generalisation of LaTeX's overline command.
+
+ e.g. <above sym=ssmile>x</above>
+ places an upwardly turning curve above the "x"
+ -->
+
+<!ELEMENT ABOVE - - (%formula)+>
+<!ATTLIST ABOVE sym ENTITY #IMPLIED>
+
+<!-- Horizontal line drawn BELOW contents
+ The symbol attribute allows authors to
+ supply an entity name for an arrow symbol etc.
+ Generalisation of LaTeX's underline command.
+ -->
+
+<!ELEMENT BELOW - - (%formula)+>
+<!ATTLIST BELOW sym ENTITY #IMPLIED>
+
+<!-- Convenience tags for common accents:
+ vec, bar, dot, ddot, hat and tilde
+-->
+
+<!ELEMENT (%mathvec) - - (%formula)+>
+
+<!--
+ T and BT are used to designate terms which should
+ be rendered in an upright font (& bold face for BT)
+-->
+
+<!ELEMENT (T|BT) - - (%formula)+>
+<!ATTLIST (T|BT) class NAMES #IMPLIED>
+
+<!-- Roots e.g. <ROOT>3<OF>1+x</ROOT> -->
+
+<!ELEMENT ROOT - - ((%formula)+, OF, (%formula)+)>
+<!ELEMENT OF - O (%formula)* -- what the root applies to -->
+
+<!ELEMENT SQRT - - (%formula)* -- square root convenience tag -->
+
+<!-- LaTeX like arrays. The COLDEF attribute specifies
+ a single capital letter for each column determining
+ how the column should be aligned, e.g. coldef="CCC"
+
+ "L" left
+ "C" center
+ "R" right
+
+ An optional separator letter can occur between columns
+ and should be one of + - or =, e.g. "C+C+C+C=C".
+ Whitespace within coldef is ignored. By default, the
+ columns are all centered.
+
+ The ALIGN attribute alters the vertical position of the
+ array as compared with preceding and following expressions.
+
+ Use LDELIM and RDELIM attributes for delimiter entities.
+ When the LABELS attribute is present, the array is
+ displayed with the first row and the first column as
+ labels displaced from the other elements. In this case,
+ the first element of the first row should normally be
+ left blank.
+
+ Use &vdots; &cdots; and &ddots; for vertical, horizontal
+ and diagonal ellipsis dots. Use &dotfill; to fill an array
+ cell with horizontal dots (e.g. for a full row).
+ Note &ldots; places the dots on the baseline, while &cdots;
+ places them higher up.
+-->
+
+<!ELEMENT ARRAY - - (ROW)+>
+<!ATTLIST ARRAY
+ align (top|middle|bottom) middle -- vertical alignment --
+ coldef CDATA #IMPLIED -- column alignment and separator --
+ ldelim CDATA #IMPLIED -- stretchy left delimiter --
+ rdelim CDATA #IMPLIED -- stretchy right delimiter --
+ labels (labels) #IMPLIED -- TeX's \bordermatrix style -->
+
+<!ELEMENT ROW - O (ITEM)*>
+<!ELEMENT ITEM - O (%formula)*>
+<!ATTLIST ITEM
+ align CDATA #IMPLIED -- override coldef alignment --
+ colspan NUMBER 1 -- merge columns as per TABLE --
+ rowspan NUMBER 1 -- merge rows as per TABLE -->
+
+<!--================ Document Head ========================================-->
+
+<![ %HTML.Deprecated [
+ <!ENTITY % head.content "TITLE & ISINDEX? & BASE? & STYLE?
+ & META* & LINK* & RANGE* & NEXTID?">
+]]>
+
+<!ENTITY % head.nextid "">
+
+<!ENTITY % head.content "TITLE & ISINDEX? & BASE? & STYLE?
+ & META* & LINK* & RANGE*">
+
+<!ELEMENT HEAD O O (%head.content)>
+
+<!ELEMENT LINK - O EMPTY>
+<!ATTLIST LINK
+ href %URI #REQUIRED
+ %linkExtraAttributes; >
+
+<!ELEMENT RANGE - O EMPTY>
+<!ATTLIST RANGE
+ id ID #IMPLIED -- for naming marked range --
+ class NAMES #IMPLIED -- for subclassing --
+ from IDREF #REQUIRED -- start of marked range --
+ until IDREF #REQUIRED -- end of marked range --
+ >
+
+<!ELEMENT ISINDEX - O EMPTY>
+<!ATTLIST ISINDEX
+ href %URI #IMPLIED -- server handling queries --
+ prompt CDATA #IMPLIED -- prompt message -->
+
+<!--
+ The BASE element gives the base URL for
+ dereferencing relative URLs, e.g.
+
+ <BASE href="http://foo.com/images">
+ ...
+ <IMG SRC="bar.gif">
+
+ The image is deferenced to
+
+ http://foo.com/images/bar.gif
+-->
+
+<!ELEMENT BASE - O EMPTY>
+<!ATTLIST BASE
+ id ID #IMPLIED
+ href %URI; #REQUIRED
+ >
+
+<![ %HTML.Deprecated [
+ <!ELEMENT NEXTID - O EMPTY>
+ <!ATTLIST NEXTID N CDATA #REQUIRED>
+]]>
+
+<!ELEMENT META - O EMPTY -- Generic Metainformation -->
+<!ATTLIST META
+ http-equiv NAME #IMPLIED -- HTTP response header name --
+ name NAME #IMPLIED -- metainformation name --
+ content CDATA #REQUIRED -- associated information --
+ >
+
+<!--
+ A style sheet can be associated with the document using the
+ LINK element, e.g. <LINK rel=style href="housestyle.dsssl">.
+ Style overrides can be placed in the document head using the
+ STYLE element, e.g.
+
+ <style notation=dsssl-lite>
+ dsss-lite stuff
+ </style>
+
+ Later on in the document you can use:
+
+ <h2 class=bigcaps>Header with bigger than normal capitals</h2>
+ <p class=abstract>A paragraph with a unique style of its own
+ ...
+
+ Statements in the given style notation
+
+ The tag names, class and id attributes are used in the style sheet
+ notation to describe how to render matching elements.
+-->
+
+<!ENTITY % style-notations "dsssl-lite | w3c-style">
+<!--
+<!NOTATION dsssl-lite PUBLIC
+ "ISO/IEC 10179:1995//NOTATION DSSSL Style Language//EN">
+
+<!NOTATION w3c-style PUBLIC "IETF/RFC nnn/W3C Style Language//EN">
+-->
+
+<!ELEMENT STYLE - O (#PCDATA)>
+<!ATTLIST STYLE
+ notation NOTATION (%style-notations;) #REQUIRED
+>
+
+<!--================ Document Structure ===================================-->
+
+<!ENTITY % html.content "HEAD, BODY">
+
+<!ELEMENT HTML O O (%html.content)>
+<!-- ORIGINAL (with possible error follows)
+ <!ENTITY % version.attr 'VERSION CDATA #FIXED "&HTML.Version;"'>
+-->
+<!ENTITY % version.attr 'VERSION CDATA #FIXED "%HTML.Version;"'>
+
+<!-- suggested roles are: TOC, DOC, DOCPART, HITLIST, DIALOG -->
+
+<!ATTLIST HTML
+ %version.attr; -- report DTD version to application --
+ urn CDATA #IMPLIED -- universal resource name for this document --
+ class NAMES #IMPLIED -- role of this document, eg table of contents --
+ >
+
+<!-- The END -->
diff --git a/htdocs/sgml-lib/html-3.2.1996-08-15.dtd b/htdocs/sgml-lib/html-3.2.1996-08-15.dtd
new file mode 100644
index 0000000..778aa3c
--- /dev/null
+++ b/htdocs/sgml-lib/html-3.2.1996-08-15.dtd
@@ -0,0 +1,613 @@
+
+<!--
+ W3C Document Type Definition for the HyperText Markup Language
+ This version is code named Wilbur, and also as "HTML 3.2".
+
+ Draft: Tuesday 13-Aug-96
+
+ Author: Dave Raggett <dsr@w3.org>
+
+ This is subject to change, pending final approval by the W3C
+ member companies. Changes are limited to bug fixes at this time.
+
+ HTML 3.2 aims to capture recommended practice as of early '96
+ and as such to be used as a replacement for HTML 2.0 (RFC 1866).
+ Widely deployed rendering attributes are included where they
+ have been shown to be interoperable. SCRIPT and STYLE are
+ included to smooth the introduction of client-side scripts
+ and style sheets. Browsers must avoid showing the contents
+ of these element Otherwise support for them is not required.
+ ID, CLASS and STYLE attributes are not included in this version
+ of HTML.
+
+ The next version of HTML after Wilbur is code named Cougar and
+ will add support for <OBJECT>, client-side scripting, style
+ sheets, and extensions to fill-out forms.
+-->
+
+<!-- modified by Gerald Oskoboiny: removed 'Draft' from the FPIs below. -->
+
+<!ENTITY % HTML.Version
+ "-//W3C//DTD HTML 3.2//EN"
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+<!--================== Deprecated Features Switch =========================-->
+
+<!ENTITY % HTML.Deprecated "INCLUDE">
+
+<!--================== Imported Names =====================================-->
+
+<!ENTITY % Content-Type "CDATA"
+ -- meaning a MIME content type, as per RFC1521
+ -->
+
+<!ENTITY % HTTP-Method "GET | POST"
+ -- as per HTTP specification
+ -->
+
+<!ENTITY % URL "CDATA"
+ -- The term URL means a CDATA attribute
+ whose value is a Uniform Resource Locator,
+ See RFC1808 (June 95) and RFC1738 (Dec 94).
+ -->
+
+<!-- Parameter Entities -->
+
+<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK" -- repeatable head elements -->
+
+<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
+
+<!ENTITY % list "UL | OL | DIR | MENU">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % preformatted "PRE | XMP | LISTING">
+]]>
+
+<!ENTITY % preformatted "PRE">
+
+<!--================ Character mnemonic entities ==========================-->
+
+<!ENTITY % ISOlat1 PUBLIC
+ "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML">
+%ISOlat1;
+
+<!--================ Entities for special symbols =========================-->
+<!-- &trade &shy and &cbsp are not widely deployed and so not included here -->
+
+<!ENTITY copy CDATA "&#169" -- copyright sign -->
+<!ENTITY reg CDATA "&#174" -- registered sign -->
+<!ENTITY amp CDATA "&#38;" -- ampersand -->
+<!ENTITY gt CDATA "&#62;" -- greater than -->
+<!ENTITY lt CDATA "&#60;" -- less than -->
+<!ENTITY quot CDATA "&#34;" -- double quote -->
+<!ENTITY nbsp CDATA "&#160;" -- non breaking space -->
+
+<!--=================== Text Markup =======================================-->
+
+<!ENTITY % font "TT | I | B | U | STRIKE | BIG | SMALL | SUB | SUP">
+
+<!ENTITY % phrase "EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE">
+
+<!ENTITY % special "A | IMG | APPLET | FONT | BR | SCRIPT | MAP">
+
+<!ENTITY % form "INPUT | SELECT | TEXTAREA">
+
+<!ENTITY % text "#PCDATA | %font | %phrase | %special | %form">
+
+<!ELEMENT (%font|%phrase) - - (%text)*>
+
+<!-- there are also 16 widely known color names although
+ the resulting colors are implementation dependent:
+
+ aqua, black, blue, fuchsia, gray, green, lime, maroon,
+ navy, olive, purple, red, silver, teal, white, and yellow
+
+ These colors were originally picked as being the standard
+ 16 colors supported with the Windows VGA palette.
+ -->
+
+<!ELEMENT FONT - - (%text)* -- local change to font -->
+<!ATTLIST FONT
+ size CDATA #IMPLIED -- [+]nn e.g. size="+1", size=4 --
+ color CDATA #IMPLIED -- #RRGGBB in hex, e.g. red: color="#FF0000" --
+ >
+
+<!ELEMENT BR - O EMPTY -- forced line break -->
+<!ATTLIST BR
+ clear (left|all|right|none) none -- control of text flow --
+ >
+
+<!--================== HTML content models ================================-->
+<!--
+ HTML has three basic content models:
+
+ %text character level elements and text strings
+ %flow block-like elements e.g. paragraphs and lists
+ %bodytext as (b) plus headers and ADDRESS
+-->
+
+<!ENTITY % block
+ "P | %list | %preformatted | DL | DIV | CENTER |
+ BLOCKQUOTE | FORM | ISINDEX | HR | TABLE">
+
+<!-- %flow is used for DD and LI -->
+
+<!ENTITY % flow "(%text | %block)*">
+
+<!--=================== Document Body =====================================-->
+
+<!ENTITY % body.content "(%heading | %text | %block | ADDRESS)*">
+
+<!ENTITY % color "CDATA" -- a color specification: #HHHHHH @@ details? -->
+
+<!ENTITY % body-color-attrs "
+ bgcolor %color #IMPLIED
+ text %color #IMPLIED
+ link %color #IMPLIED
+ vlink %color #IMPLIED
+ alink %color #IMPLIED
+ ">
+
+<!ELEMENT BODY O O %body.content>
+<!ATTLIST BODY
+ background %URL #IMPLIED -- texture tile for document background --
+ %body-color-attrs; -- bgcolor, text, link, vlink, alink --
+ >
+
+<!ENTITY % address.content "((%text;) | P)*">
+
+<!ELEMENT ADDRESS - - %address.content>
+
+<!ELEMENT DIV - - %body.content>
+<!ATTLIST DIV
+ align (left|center|right) left -- alignment of following text --
+ >
+
+<!-- CENTER is a shorthand for DIV with ALIGN=CENTER -->
+<!ELEMENT center - - %body.content>
+
+<!--================== The Anchor Element =================================-->
+
+<!ELEMENT A - - (%text)* -(A)>
+<!ATTLIST A
+ name CDATA #IMPLIED -- named link end --
+ href %URL #IMPLIED -- URL for linked resource --
+ rel CDATA #IMPLIED -- forward link types --
+ rev CDATA #IMPLIED -- reverse link types --
+ title CDATA #IMPLIED -- advisory title string --
+ >
+
+<!--================== 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 -->
+
+<!ENTITY % SHAPE "(rect|circle|poly|default)">
+<!ENTITY % COORDS "CDATA" -- comma separated list of numbers -->
+
+<!ELEMENT MAP - - (AREA)*>
+<!ATTLIST MAP
+ name CDATA #IMPLIED
+ >
+
+<!ELEMENT AREA - O EMPTY>
+<!ATTLIST AREA
+ shape %SHAPE rect
+ coords %COORDS #IMPLIED -- always needed except for shape=default --
+ href %URL #IMPLIED -- this region acts as hypertext link --
+ nohref (nohref) #IMPLIED -- this region has no action --
+ alt CDATA #REQUIRED
+ >
+
+<!--================== The LINK Element ==================================-->
+
+<!ENTITY % Types "CDATA"
+ -- See Internet Draft: draft-ietf-html-relrev-00.txt
+ LINK has been part of HTML since the early days
+ although few browsers as yet take advantage of it.
+
+ Relationship values can be used in principle:
+
+ a) for document specific toolbars/menus when used
+ with the LINK element in document head:
+ 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=print)
+-->
+
+<!ELEMENT LINK - O EMPTY>
+<!ATTLIST LINK
+ id ID #IMPLIED -- SGML ID attribute --
+ href %URL #IMPLIED -- URL for linked resource --
+ rel %Types #IMPLIED -- forward link types --
+ rev %Types #IMPLIED -- reverse link types --
+ title CDATA #IMPLIED -- advisory title string --
+ >
+
+<!--=================== Images ============================================-->
+
+<!ENTITY % Length "CDATA" -- nn for pixels or nn% for percentage length -->
+<!ENTITY % Pixels "CDATA" -- integer representing length in pixels -->
+
+<!-- Suggested widths are used for negotiating image size
+ with the module responsible for painting the image.
+ align=left or right cause image to float to margin
+ and for subsequent text to wrap around image -->
+
+<!ENTITY % IAlign "(top|middle|bottom|left|right)">
+
+<!ELEMENT IMG - O EMPTY -- Embedded image -->
+<!ATTLIST IMG
+ src %URL #REQUIRED -- URL of image to embed --
+ alt CDATA #IMPLIED -- for display in place of image --
+ align %IAlign #IMPLIED -- vertical or horizontal alignment --
+ height %Pixels #IMPLIED -- suggested height in pixels --
+ width %Pixels #IMPLIED -- suggested width in pixels --
+ border %Pixels #IMPLIED -- suggested link border width --
+ hspace %Pixels #IMPLIED -- suggested horizontal gutter --
+ vspace %Pixels #IMPLIED -- suggested vertical gutter --
+ usemap %URL #IMPLIED -- use client-side image map --
+ ismap (ismap) #IMPLIED -- use server image map --
+ >
+
+<!-- USEMAP points to a MAP element which may be in this document
+ or an external document, although the latter is not widely supported -->
+
+<!--=================== Java APPLET tag ===================================-->
+<!--
+ This tag is supported by all java enabled browsers. Applet resources
+ (including their classes) are normally loaded relative to the document
+ URL (or <BASE> element if it is defined). The CODEBASE attribute is used
+ to change this default behavior. If the CODEBASE attribute is defined then
+ it specifies a different location to find applet resources. The value
+ can be an absolute URL or a relative URL. The absolute URL is used as is
+ without modification and is not effected by the documents <BASE> element.
+ When the codebase attribute is relative, then it is relative to the
+ document URL (or <BASE> tag if defined). <TEXTFLOW> avoids the problems
+ with SGML mixed content. It can always be omitted *except* when the APPLET
+ element hasn't any content. White space, comments and PARAM elements
+ don't count as content for this purpose. TEXTFLOW was introduced into
+ the DTD to satisfy SGML parsers, but is ignored by current Web browsers.
+-->
+<!ELEMENT APPLET - - (PARAM*, TEXTFLOW)>
+<!ATTLIST APPLET
+ codebase %URL #IMPLIED -- code base --
+ code CDATA #REQUIRED -- class file --
+ name CDATA #IMPLIED -- applet name --
+ alt CDATA #IMPLIED -- for display in place of applet --
+ align %IAlign #IMPLIED -- vertical or horizontal alignment --
+ height %Pixels #REQUIRED -- suggested height in pixels --
+ width %Pixels #REQUIRED -- suggested width in pixels --
+ hspace %Pixels #IMPLIED -- suggested horizontal gutter --
+ vspace %Pixels #IMPLIED -- suggested vertical gutter --
+ >
+
+<!ELEMENT PARAM - O EMPTY>
+<!ATTLIST PARAM
+ name NAME #REQUIRED -- The name of the parameter --
+ value CDATA #IMPLIED -- The value of the parameter --
+ >
+<!ELEMENT TEXTFLOW O O (%text)* -- needed to bypass mixed content model -->
+
+<!--
+Here is an example:
+
+ <applet codebase="applets/NervousText"
+ code=NervousText.class
+ width=300
+ height=50>
+ <param name=text value="Java is Cool!">
+ <img src=sorry.gif alt="This looks better with Java support">
+ </applet>
+-->
+
+<!--=================== Horizontal Rule ===================================-->
+
+<!ELEMENT HR - O EMPTY>
+<!ATTLIST HR
+ align (left|right|center) #IMPLIED
+ noshade (noshade) #IMPLIED
+ size %Pixels #IMPLIED
+ width %Length #IMPLIED
+ >
+<!--=================== Paragraphs=========================================-->
+
+<!ELEMENT P - O (%text)*>
+<!ATTLIST P
+ align (left|center|right) #IMPLIED
+ >
+
+<!--=================== Headings ==========================================-->
+
+<!--
+ There are six levels of headers from H1 (the most important)
+ to H6 (the least important).
+-->
+
+<!ELEMENT ( %heading ) - - (%text;)*>
+<!ATTLIST ( %heading )
+ align (left|center|right) #IMPLIED
+ >
+
+<!--=================== Preformatted Text =================================-->
+
+<!-- excludes images and changes in font size -->
+
+<!ENTITY % pre.exclusion "IMG|BIG|SMALL|SUB|SUP|FONT">
+
+<!ELEMENT PRE - - (%text)* -(%pre.exclusion)>
+<!ATTLIST PRE
+ width NUMBER #implied -- is this widely supported? --
+ >
+
+<![ %HTML.Deprecated [
+
+<!ENTITY % literal "CDATA"
+ -- historical, non-conforming parsing mode where
+ the only markup signal is the end tag
+ in full
+ -->
+
+<!ELEMENT (XMP|LISTING) - - %literal>
+<!ELEMENT PLAINTEXT - O %literal>
+
+]]>
+
+<!--=================== Block-like Quotes =================================-->
+
+<!ELEMENT BLOCKQUOTE - - %body.content>
+
+<!--=================== Lists =============================================-->
+
+<!--
+ HTML 3.2 allows you to control the sequence number for ordered lists.
+ You can set the sequence number with the START and VALUE attributes.
+ The TYPE attribute may be used to specify the rendering of ordered
+ and unordered lists.
+-->
+
+<!-- definition lists - DT for term, DD for its definition -->
+
+<!ELEMENT DL - - (DT|DD)*>
+<!ATTLIST DL
+ compact (compact) #IMPLIED -- more compact style --
+ >
+
+<!ELEMENT DT - O (%text)*>
+<!ELEMENT DD - O %flow;>
+
+<!-- Ordered lists OL, and unordered lists UL -->
+<!ELEMENT (OL|UL) - - (LI)*>
+
+<!--
+ 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] -->
+
+<!ATTLIST OL -- ordered lists --
+ type %OLStyle #IMPLIED -- numbering style --
+ start NUMBER #IMPLIED -- starting sequence number --
+ compact (compact) #IMPLIED -- reduced interitem spacing --
+ >
+
+<!-- bullet styles -->
+
+<!ENTITY % ULStyle "disc|square|circle">
+
+<!ATTLIST UL -- unordered lists --
+ type (%ULStyle) #IMPLIED -- bullet style --
+ compact (compact) #IMPLIED -- reduced interitem spacing --
+ >
+
+<!ELEMENT (DIR|MENU) - - (LI)* -(%block)>
+<!ATTLIST DIR
+ compact (compact) #IMPLIED
+ >
+<!ATTLIST MENU
+ compact (compact) #IMPLIED
+ >
+
+<!-- <DIR> Directory list -->
+<!-- <DIR COMPACT> Compact list style -->
+<!-- <MENU> Menu list -->
+<!-- <MENU COMPACT> Compact list style -->
+
+<!-- The type attribute can be used to change the bullet style
+ in unordered lists and the numbering style in ordered lists -->
+
+<!ENTITY % LIStyle "CDATA" -- constrained to: "(%ULStyle|%OLStyle)" -->
+
+<!ELEMENT LI - O %flow -- list item -->
+<!ATTLIST LI
+ type %LIStyle #IMPLIED -- list item style --
+ value NUMBER #IMPLIED -- reset sequence number --
+ >
+
+<!--================ Forms ===============================================-->
+
+<!ELEMENT FORM - - %body.content -(FORM)>
+<!ATTLIST FORM
+ action %URL #IMPLIED -- server-side form handler --
+ method (%HTTP-Method) GET -- see HTTP specification --
+ enctype %Content-Type; "application/x-www-form-urlencoded"
+ >
+
+<!ENTITY % InputType
+ "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT
+ | RESET | FILE | HIDDEN | IMAGE)">
+
+<!ELEMENT INPUT - O EMPTY>
+<!ATTLIST INPUT
+ type %InputType TEXT -- what kind of widget is needed --
+ name CDATA #IMPLIED -- required for all but submit and reset --
+ value CDATA #IMPLIED -- required for radio and checkboxes --
+ checked (checked) #IMPLIED -- for radio buttons and check boxes --
+ size CDATA #IMPLIED -- specific to each type of field --
+ maxlength NUMBER #IMPLIED
+ src %URL #IMPLIED -- for fields with background images --
+ align (top|middle|bottom|left|right) top -- image alignment --
+ >
+
+<!ELEMENT SELECT - - (OPTION+)>
+<!ATTLIST SELECT
+ name CDATA #REQUIRED
+ size NUMBER #IMPLIED
+ multiple (multiple) #IMPLIED
+ >
+
+<!ELEMENT OPTION - O (#PCDATA)*>
+<!ATTLIST OPTION
+ selected (selected) #IMPLIED
+ value CDATA #IMPLIED -- defaults to element content --
+ >
+
+<!-- Multi-line text input field. -->
+
+<!ELEMENT TEXTAREA - - (#PCDATA)*>
+<!ATTLIST TEXTAREA
+ name CDATA #REQUIRED
+ rows NUMBER #REQUIRED
+ cols NUMBER #REQUIRED
+ >
+
+<!--======================= Tables ========================================-->
+
+<!-- Widely deployed subset of the full table standard, see RFC 1942
+ e.g. at http://www.ics.uci.edu/pub/ietf/html/rfc1942.txt -->
+
+<!-- horizontal placement of table relative to window -->
+<!ENTITY % Where "(left|center|right)">
+
+<!-- horizontal alignment attributes for cell contents -->
+<!ENTITY % cell.halign
+ "align (left|center|right) #IMPLIED"
+ >
+
+<!-- vertical alignment attributes for cell contents -->
+<!ENTITY % cell.valign
+ "valign (top|middle|bottom|baseline) #IMPLIED"
+ >
+
+<!ELEMENT table - - (caption?, tr+)>
+<!ELEMENT tr - O (th|td)*>
+<!ELEMENT (th|td) - O %body.content>
+
+<!ATTLIST table -- table element --
+ align %Where; #IMPLIED -- table position relative to window --
+ width %Length #IMPLIED -- table width relative to window --
+ border %Pixels #IMPLIED -- controls frame width around table --
+ dummy (border) #IMPLIED -- fixes SGML error for border w/o value
+--
+ cellspacing %Pixels #IMPLIED -- spacing between cells --
+ cellpadding %Pixels #IMPLIED -- spacing within cells --
+ >
+
+<!ELEMENT CAPTION - - (%text;)* -- table or figure caption -->
+<!ATTLIST CAPTION
+ align (top|bottom) #IMPLIED
+ >
+
+<!ATTLIST tr -- table row --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
+
+<!ATTLIST (th|td) -- header or data cell --
+ nowrap (nowrap) #IMPLIED -- suppress word wrap --
+ rowspan NUMBER 1 -- number of rows spanned by cell --
+ colspan NUMBER 1 -- number of cols spanned by cell --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ width %Pixels #IMPLIED -- suggested cell width --
+ height %Pixels #IMPLIED -- suggested cell height --
+ >
+
+<!--================ Document Head ========================================-->
+
+<!-- %head.misc defined earlier on as "SCRIPT|STYLE|META|LINK" -->
+
+<!ENTITY % head.content "TITLE & ISINDEX? & BASE?">
+
+<!ELEMENT HEAD O O (%head.content) +(%head.misc)>
+
+<!ELEMENT TITLE - - (#PCDATA)* -(%head.misc)
+ -- 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.
+ -->
+
+<!ELEMENT ISINDEX - O EMPTY>
+<!ATTLIST ISINDEX
+ prompt CDATA #IMPLIED -- prompt message -->
+
+<!--
+ The BASE element gives an absolute URL for dereferencing relative
+ URLs, e.g.
+
+ <BASE href="http://foo.com/index.html">
+ ...
+ <IMG SRC="images/bar.gif">
+
+ The image is deferenced to
+
+ http://foo.com/images/bar.gif
+
+ In the absence of a BASE element the document URL should be used.
+ Note that this is not necessarily the same as the URL used to
+ request the document, as the base URL may be overridden by an HTTP
+ header accompanying the document.
+-->
+
+<!ELEMENT BASE - O EMPTY>
+<!ATTLIST BASE
+ href %URL #REQUIRED
+ >
+
+<!ELEMENT META - O EMPTY -- Generic Metainformation -->
+<!ATTLIST META
+ http-equiv NAME #IMPLIED -- HTTP response header name --
+ name NAME #IMPLIED -- metainformation name --
+ content CDATA #REQUIRED -- associated information --
+ >
+
+<!-- SCRIPT/STYLE are place holders for transition to next version of HTML -->
+
+<!ELEMENT STYLE - - (#PCDATA)* -(%head.misc) -- style info -->
+<!ELEMENT SCRIPT - - (#PCDATA)* -(%head.misc) -- script statements -->
+
+<!--================ Document Structure ===================================-->
+
+<!ENTITY % version.attr "VERSION CDATA #FIXED '%HTML.Version;'">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % html.content "HEAD, BODY, PLAINTEXT?">
+ ]]>
+<!ENTITY % html.content "HEAD, BODY">
+
+<!ELEMENT HTML O O (%html.content)>
+<!ATTLIST HTML
+ %version.attr;
+ >
+
diff --git a/htdocs/sgml-lib/html-3.2.1996-09-09.dtd b/htdocs/sgml-lib/html-3.2.1996-09-09.dtd
new file mode 100644
index 0000000..e340c6d
--- /dev/null
+++ b/htdocs/sgml-lib/html-3.2.1996-09-09.dtd
@@ -0,0 +1,610 @@
+<!--
+ W3C Document Type Definition for the HyperText Markup Language
+ This version is code named Wilbur, and also as "HTML 3.2".
+
+ Draft: Tuesday August 21st 1996
+
+ Author: Dave Raggett <dsr@w3.org>
+
+ This is subject to change, pending final approval by the W3C
+ member companies.
+
+ HTML 3.2 aims to capture recommended practice as of early '96
+ and as such to be used as a replacement for HTML 2.0 (RFC 1866).
+ Widely deployed rendering attributes are included where they
+ have been shown to be interoperable. SCRIPT and STYLE are
+ included to smooth the introduction of client-side scripts
+ and style sheets. Browsers must avoid showing the contents
+ of these element Otherwise support for them is not required.
+ ID, CLASS and STYLE attributes are not included in this version
+ of HTML.
+
+ The next version of HTML after Wilbur is code named Cougar and
+ will add support for <OBJECT>, client-side scripting, style
+ sheets, and extensions to fill-out forms.
+-->
+
+<!-- modified by Gerald Oskoboiny: removed "Draft 19960821" from the FPIs -->
+
+<!ENTITY % HTML.Version
+ "-//W3C//DTD HTML 3.2//EN"
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+<!--================== Deprecated Features Switch =========================-->
+
+<!ENTITY % HTML.Deprecated "INCLUDE">
+
+<!--================== Imported Names =====================================-->
+
+<!ENTITY % Content-Type "CDATA"
+ -- meaning a MIME content type, as per RFC1521
+ -->
+
+<!ENTITY % HTTP-Method "GET | POST"
+ -- as per HTTP specification
+ -->
+
+<!ENTITY % URL "CDATA"
+ -- The term URL means a CDATA attribute
+ whose value is a Uniform Resource Locator,
+ See RFC1808 (June 95) and RFC1738 (Dec 94).
+ -->
+
+<!-- Parameter Entities -->
+
+<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK" -- repeatable head elements -->
+
+<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
+
+<!ENTITY % list "UL | OL | DIR | MENU">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % preformatted "PRE | XMP | LISTING">
+]]>
+
+<!ENTITY % preformatted "PRE">
+
+<!--================ Character mnemonic entities ==========================-->
+
+<!ENTITY % ISOlat1 PUBLIC
+ "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML">
+%ISOlat1;
+
+<!--================ Entities for special symbols =========================-->
+<!-- &trade &shy and &cbsp are not widely deployed and so not included here -->
+
+<!ENTITY copy CDATA "&#169" -- copyright sign -->
+<!ENTITY reg CDATA "&#174" -- registered sign -->
+<!ENTITY amp CDATA "&#38;" -- ampersand -->
+<!ENTITY gt CDATA "&#62;" -- greater than -->
+<!ENTITY lt CDATA "&#60;" -- less than -->
+<!ENTITY quot CDATA "&#34;" -- double quote -->
+<!ENTITY nbsp CDATA "&#160;" -- non breaking space -->
+
+<!--=================== Text Markup =======================================-->
+
+<!ENTITY % font "TT | I | B | U | STRIKE | BIG | SMALL | SUB | SUP">
+
+<!ENTITY % phrase "EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE">
+
+<!ENTITY % special "A | IMG | APPLET | FONT | BASEFONT | BR | SCRIPT | MAP">
+
+<!ENTITY % form "INPUT | SELECT | TEXTAREA">
+
+<!ENTITY % text "#PCDATA | %font | %phrase | %special | %form">
+
+<!ELEMENT (%font|%phrase) - - (%text)*>
+
+<!-- there are also 16 widely known color names although
+ the resulting colors are implementation dependent:
+
+ aqua, black, blue, fuchsia, gray, green, lime, maroon,
+ navy, olive, purple, red, silver, teal, white, and yellow
+
+ These colors were originally picked as being the standard
+ 16 colors supported with the Windows VGA palette.
+ -->
+
+<!ELEMENT FONT - - (%text)* -- local change to font -->
+<!ATTLIST FONT
+ size CDATA #IMPLIED -- [+]nn e.g. size="+1", size=4 --
+ color CDATA #IMPLIED -- #RRGGBB in hex, e.g. red: color="#FF0000" --
+ >
+
+<!ELEMENT BASEFONT - O EMPTY -- base font size (1 to 7)-->
+<!ATTLIST BASEFONT
+ size CDATA #IMPLIED -- e.g. size=3 --
+ >
+
+<!ELEMENT BR - O EMPTY -- forced line break -->
+<!ATTLIST BR
+ clear (left|all|right|none) none -- control of text flow --
+ >
+
+<!--================== HTML content models ================================-->
+<!--
+ HTML has three basic content models:
+
+ %text character level elements and text strings
+ %flow block-like elements e.g. paragraphs and lists
+ %bodytext as (b) plus headers and ADDRESS
+-->
+
+<!ENTITY % block
+ "P | %list | %preformatted | DL | DIV | CENTER |
+ BLOCKQUOTE | FORM | ISINDEX | HR | TABLE">
+
+<!-- %flow is used for DD and LI -->
+
+<!ENTITY % flow "(%text | %block)*">
+
+<!--=================== Document Body =====================================-->
+
+<!ENTITY % body.content "(%heading | %text | %block | ADDRESS)*">
+
+<!ENTITY % color "CDATA" -- a color specification: #HHHHHH @@ details? -->
+
+<!ENTITY % body-color-attrs "
+ bgcolor %color #IMPLIED
+ text %color #IMPLIED
+ link %color #IMPLIED
+ vlink %color #IMPLIED
+ alink %color #IMPLIED
+ ">
+
+<!ELEMENT BODY O O %body.content>
+<!ATTLIST BODY
+ background %URL #IMPLIED -- texture tile for document background --
+ %body-color-attrs; -- bgcolor, text, link, vlink, alink --
+ >
+
+<!ENTITY % address.content "((%text;) | P)*">
+
+<!ELEMENT ADDRESS - - %address.content>
+
+<!ELEMENT DIV - - %body.content>
+<!ATTLIST DIV
+ align (left|center|right) #IMPLIED -- alignment of following text --
+ >
+
+<!-- CENTER is a shorthand for DIV with ALIGN=CENTER -->
+<!ELEMENT center - - %body.content>
+
+<!--================== The Anchor Element =================================-->
+
+<!ELEMENT A - - (%text)* -(A)>
+<!ATTLIST A
+ name CDATA #IMPLIED -- named link end --
+ href %URL #IMPLIED -- URL for linked resource --
+ rel CDATA #IMPLIED -- forward link types --
+ rev CDATA #IMPLIED -- reverse link types --
+ title CDATA #IMPLIED -- advisory title string --
+ >
+
+<!--================== 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 -->
+
+<!ENTITY % SHAPE "(rect|circle|poly|default)">
+<!ENTITY % COORDS "CDATA" -- comma separated list of numbers -->
+
+<!ELEMENT MAP - - (AREA)*>
+<!ATTLIST MAP
+ name CDATA #IMPLIED
+ >
+
+<!ELEMENT AREA - O EMPTY>
+<!ATTLIST AREA
+ shape %SHAPE rect
+ coords %COORDS #IMPLIED -- always needed except for shape=default --
+ href %URL #IMPLIED -- this region acts as hypertext link --
+ nohref (nohref) #IMPLIED -- this region has no action --
+ alt CDATA #REQUIRED
+ >
+
+<!--================== The LINK Element ==================================-->
+
+<!ENTITY % Types "CDATA"
+ -- See Internet Draft: draft-ietf-html-relrev-00.txt
+ LINK has been part of HTML since the early days
+ although few browsers as yet take advantage of it.
+
+ Relationship values can be used in principle:
+
+ a) for document specific toolbars/menus when used
+ with the LINK element in document head:
+ 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=print)
+-->
+
+<!ELEMENT LINK - O EMPTY>
+<!ATTLIST LINK
+ id ID #IMPLIED -- SGML ID attribute --
+ href %URL #IMPLIED -- URL for linked resource --
+ rel %Types #IMPLIED -- forward link types --
+ rev %Types #IMPLIED -- reverse link types --
+ title CDATA #IMPLIED -- advisory title string --
+ >
+
+<!--=================== Images ============================================-->
+
+<!ENTITY % Length "CDATA" -- nn for pixels or nn% for percentage length -->
+<!ENTITY % Pixels "CDATA" -- integer representing length in pixels -->
+
+<!-- Suggested widths are used for negotiating image size
+ with the module responsible for painting the image.
+ align=left or right cause image to float to margin
+ and for subsequent text to wrap around image -->
+
+<!ENTITY % IAlign "(top|middle|bottom|left|right)">
+
+<!ELEMENT IMG - O EMPTY -- Embedded image -->
+<!ATTLIST IMG
+ src %URL #REQUIRED -- URL of image to embed --
+ alt CDATA #IMPLIED -- for display in place of image --
+ align %IAlign #IMPLIED -- vertical or horizontal alignment --
+ height %Pixels #IMPLIED -- suggested height in pixels --
+ width %Pixels #IMPLIED -- suggested width in pixels --
+ border %Pixels #IMPLIED -- suggested link border width --
+ hspace %Pixels #IMPLIED -- suggested horizontal gutter --
+ vspace %Pixels #IMPLIED -- suggested vertical gutter --
+ usemap %URL #IMPLIED -- use client-side image map --
+ ismap (ismap) #IMPLIED -- use server image map --
+ >
+
+<!-- USEMAP points to a MAP element which may be in this document
+ or an external document, although the latter is not widely supported -->
+
+<!--=================== Java APPLET tag ===================================-->
+<!--
+ This tag is supported by all java enabled browsers. Applet resources
+ (including their classes) are normally loaded relative to the document
+ URL (or <BASE> element if it is defined). The CODEBASE attribute is used
+ to change this default behavior. If the CODEBASE attribute is defined then
+ it specifies a different location to find applet resources. The value
+ can be an absolute URL or a relative URL. The absolute URL is used as is
+ without modification and is not effected by the documents <BASE> element.
+ When the codebase attribute is relative, then it is relative to the
+ document URL (or <BASE> tag if defined).
+-->
+<!ELEMENT APPLET - - (%text)* +(PARAM)>
+<!ATTLIST APPLET
+ codebase %URL #IMPLIED -- code base --
+ code CDATA #REQUIRED -- class file --
+ alt CDATA #IMPLIED -- for display in place of applet --
+ name CDATA #IMPLIED -- applet name --
+ width %Pixels #REQUIRED -- suggested width in pixels --
+ height %Pixels #REQUIRED -- suggested height in pixels --
+ align %IAlign #IMPLIED -- vertical or horizontal alignment --
+ hspace %Pixels #IMPLIED -- suggested horizontal gutter --
+ vspace %Pixels #IMPLIED -- suggested vertical gutter --
+ >
+
+<!ELEMENT PARAM - O EMPTY>
+<!ATTLIST PARAM
+ name NAME #REQUIRED -- The name of the parameter --
+ value CDATA #IMPLIED -- The value of the parameter --
+ >
+
+<!--
+Here is an example:
+
+ <applet codebase="applets/NervousText"
+ code=NervousText.class
+ width=300
+ height=50>
+ <param name=text value="Java is Cool!">
+ <img src=sorry.gif alt="This looks better with Java support">
+ </applet>
+-->
+
+<!--=================== Horizontal Rule ===================================-->
+
+<!ELEMENT HR - O EMPTY>
+<!ATTLIST HR
+ align (left|right|center) #IMPLIED
+ noshade (noshade) #IMPLIED
+ size %Pixels #IMPLIED
+ width %Length #IMPLIED
+ >
+<!--=================== Paragraphs=========================================-->
+
+<!ELEMENT P - O (%text)*>
+<!ATTLIST P
+ align (left|center|right) #IMPLIED
+ >
+
+<!--=================== Headings ==========================================-->
+
+<!--
+ There are six levels of headers from H1 (the most important)
+ to H6 (the least important).
+-->
+
+<!ELEMENT ( %heading ) - - (%text;)*>
+<!ATTLIST ( %heading )
+ align (left|center|right) #IMPLIED
+ >
+
+<!--=================== Preformatted Text =================================-->
+
+<!-- excludes images and changes in font size -->
+
+<!ENTITY % pre.exclusion "IMG|BIG|SMALL|SUB|SUP|FONT">
+
+<!ELEMENT PRE - - (%text)* -(%pre.exclusion)>
+<!ATTLIST PRE
+ width NUMBER #implied -- is this widely supported? --
+ >
+
+<![ %HTML.Deprecated [
+
+<!ENTITY % literal "CDATA"
+ -- historical, non-conforming parsing mode where
+ the only markup signal is the end tag
+ in full
+ -->
+
+<!ELEMENT (XMP|LISTING) - - %literal>
+<!ELEMENT PLAINTEXT - O %literal>
+
+]]>
+
+<!--=================== Block-like Quotes =================================-->
+
+<!ELEMENT BLOCKQUOTE - - %body.content>
+
+<!--=================== Lists =============================================-->
+
+<!--
+ HTML 3.2 allows you to control the sequence number for ordered lists.
+ You can set the sequence number with the START and VALUE attributes.
+ The TYPE attribute may be used to specify the rendering of ordered
+ and unordered lists.
+-->
+
+<!-- definition lists - DT for term, DD for its definition -->
+
+<!ELEMENT DL - - (DT|DD)*>
+<!ATTLIST DL
+ compact (compact) #IMPLIED -- more compact style --
+ >
+
+<!ELEMENT DT - O (%text)*>
+<!ELEMENT DD - O %flow;>
+
+<!-- Ordered lists OL, and unordered lists UL -->
+<!ELEMENT (OL|UL) - - (LI)*>
+
+<!--
+ 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] -->
+
+<!ATTLIST OL -- ordered lists --
+ type %OLStyle #IMPLIED -- numbering style --
+ start NUMBER #IMPLIED -- starting sequence number --
+ compact (compact) #IMPLIED -- reduced interitem spacing --
+ >
+
+<!-- bullet styles -->
+
+<!ENTITY % ULStyle "disc|square|circle">
+
+<!ATTLIST UL -- unordered lists --
+ type (%ULStyle) #IMPLIED -- bullet style --
+ compact (compact) #IMPLIED -- reduced interitem spacing --
+ >
+
+<!ELEMENT (DIR|MENU) - - (LI)* -(%block)>
+<!ATTLIST DIR
+ compact (compact) #IMPLIED
+ >
+<!ATTLIST MENU
+ compact (compact) #IMPLIED
+ >
+
+<!-- <DIR> Directory list -->
+<!-- <DIR COMPACT> Compact list style -->
+<!-- <MENU> Menu list -->
+<!-- <MENU COMPACT> Compact list style -->
+
+<!-- The type attribute can be used to change the bullet style
+ in unordered lists and the numbering style in ordered lists -->
+
+<!ENTITY % LIStyle "CDATA" -- constrained to: "(%ULStyle|%OLStyle)" -->
+
+<!ELEMENT LI - O %flow -- list item -->
+<!ATTLIST LI
+ type %LIStyle #IMPLIED -- list item style --
+ value NUMBER #IMPLIED -- reset sequence number --
+ >
+
+<!--================ Forms ===============================================-->
+
+<!ELEMENT FORM - - %body.content -(FORM)>
+<!ATTLIST FORM
+ action %URL #IMPLIED -- server-side form handler --
+ method (%HTTP-Method) GET -- see HTTP specification --
+ enctype %Content-Type; "application/x-www-form-urlencoded"
+ >
+
+<!ENTITY % InputType
+ "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT
+ | RESET | FILE | HIDDEN | IMAGE)">
+
+<!ELEMENT INPUT - O EMPTY>
+<!ATTLIST INPUT
+ type %InputType TEXT -- what kind of widget is needed --
+ name CDATA #IMPLIED -- required for all but submit and reset --
+ value CDATA #IMPLIED -- required for radio and checkboxes --
+ checked (checked) #IMPLIED -- for radio buttons and check boxes --
+ size CDATA #IMPLIED -- specific to each type of field --
+ maxlength NUMBER #IMPLIED
+ src %URL #IMPLIED -- for fields with background images --
+ align (top|middle|bottom|left|right) top -- image alignment --
+ >
+
+<!ELEMENT SELECT - - (OPTION+)>
+<!ATTLIST SELECT
+ name CDATA #REQUIRED
+ size NUMBER #IMPLIED
+ multiple (multiple) #IMPLIED
+ >
+
+<!ELEMENT OPTION - O (#PCDATA)*>
+<!ATTLIST OPTION
+ selected (selected) #IMPLIED
+ value CDATA #IMPLIED -- defaults to element content --
+ >
+
+<!-- Multi-line text input field. -->
+
+<!ELEMENT TEXTAREA - - (#PCDATA)*>
+<!ATTLIST TEXTAREA
+ name CDATA #REQUIRED
+ rows NUMBER #REQUIRED
+ cols NUMBER #REQUIRED
+ >
+
+<!--======================= Tables ========================================-->
+
+<!-- Widely deployed subset of the full table standard, see RFC 1942
+ e.g. at http://www.ics.uci.edu/pub/ietf/html/rfc1942.txt -->
+
+<!-- horizontal placement of table relative to window -->
+<!ENTITY % Where "(left|center|right)">
+
+<!-- horizontal alignment attributes for cell contents -->
+<!ENTITY % cell.halign
+ "align (left|center|right) #IMPLIED"
+ >
+
+<!-- vertical alignment attributes for cell contents -->
+<!ENTITY % cell.valign
+ "valign (top|middle|bottom|baseline) #IMPLIED"
+ >
+
+<!ELEMENT table - - (caption?, tr+)>
+<!ELEMENT tr - O (th|td)*>
+<!ELEMENT (th|td) - O %body.content>
+
+<!ATTLIST table -- table element --
+ align %Where; #IMPLIED -- table position relative to window --
+ width %Length #IMPLIED -- table width relative to window --
+ border %Pixels #IMPLIED -- controls frame width around table --
+ dummy (border) #IMPLIED -- fixes SGML error for border w/o value --
+ cellspacing %Pixels #IMPLIED -- spacing between cells --
+ cellpadding %Pixels #IMPLIED -- spacing within cells --
+ >
+
+<!ELEMENT CAPTION - - (%text;)* -- table or figure caption -->
+<!ATTLIST CAPTION
+ align (top|bottom) #IMPLIED
+ >
+
+<!ATTLIST tr -- table row --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
+
+<!ATTLIST (th|td) -- header or data cell --
+ nowrap (nowrap) #IMPLIED -- suppress word wrap --
+ rowspan NUMBER 1 -- number of rows spanned by cell --
+ colspan NUMBER 1 -- number of cols spanned by cell --
+ %cell.halign; -- horizontal alignment in cell --
+ %cell.valign; -- vertical alignment in cell --
+ width %Pixels #IMPLIED -- suggested width for cell --
+ height %Pixels #IMPLIED -- suggested height for cell --
+ >
+
+<!--================ Document Head ========================================-->
+
+<!-- %head.misc defined earlier on as "SCRIPT|STYLE|META|LINK" -->
+
+<!ENTITY % head.content "TITLE & ISINDEX? & BASE?">
+
+<!ELEMENT HEAD O O (%head.content) +(%head.misc)>
+
+<!ELEMENT TITLE - - (#PCDATA)* -(%head.misc)
+ -- 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.
+ -->
+
+<!ELEMENT ISINDEX - O EMPTY>
+<!ATTLIST ISINDEX
+ prompt CDATA #IMPLIED -- prompt message -->
+
+<!--
+ The BASE element gives an absolute URL for dereferencing relative
+ URLs, e.g.
+
+ <BASE href="http://foo.com/index.html">
+ ...
+ <IMG SRC="images/bar.gif">
+
+ The image is deferenced to
+
+ http://foo.com/images/bar.gif
+
+ In the absence of a BASE element the document URL should be used.
+ Note that this is not necessarily the same as the URL used to
+ request the document, as the base URL may be overridden by an HTTP
+ header accompanying the document.
+-->
+
+<!ELEMENT BASE - O EMPTY>
+<!ATTLIST BASE
+ href %URL #REQUIRED
+ >
+
+<!ELEMENT META - O EMPTY -- Generic Metainformation -->
+<!ATTLIST META
+ http-equiv NAME #IMPLIED -- HTTP response header name --
+ name NAME #IMPLIED -- metainformation name --
+ content CDATA #REQUIRED -- associated information --
+ >
+
+<!-- SCRIPT/STYLE are place holders for transition to next version of HTML -->
+
+<!ELEMENT STYLE - - (#PCDATA)* -(%head.misc) -- style info -->
+<!ELEMENT SCRIPT - - (#PCDATA)* -(%head.misc) -- script statements -->
+
+<!--================ Document Structure ===================================-->
+
+<!ENTITY % version.attr "VERSION CDATA #FIXED '%HTML.Version;'">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % html.content "HEAD, BODY, PLAINTEXT?">
+]]>
+
+<!ELEMENT HTML O O (%html.content)>
+<!ATTLIST HTML
+ %version.attr;
+ >
+
diff --git a/htdocs/sgml-lib/html-3.2.dtd b/htdocs/sgml-lib/html-3.2.dtd
new file mode 100644
index 0000000..57dc9b8
--- /dev/null
+++ b/htdocs/sgml-lib/html-3.2.dtd
@@ -0,0 +1,598 @@
+<!--
+ W3C Document Type Definition for the HyperText Markup Language
+ version 3.2 as ratified by a vote of W3C member companies.
+ For more information on W3C look at URL http://www.w3.org/
+
+ Date: Tuesday January 14th 1997
+
+ Author: Dave Raggett <dsr@w3.org>
+
+ HTML 3.2 aims to capture recommended practice as of early '96
+ and as such to be used as a replacement for HTML 2.0 (RFC 1866).
+ Widely deployed rendering attributes are included where they
+ have been shown to be interoperable. SCRIPT and STYLE are
+ included to smooth the introduction of client-side scripts
+ and style sheets. Browsers must avoid showing the contents
+ of these element Otherwise support for them is not required.
+ ID, CLASS and STYLE attributes are not included in this version
+ of HTML.
+-->
+
+<!ENTITY % HTML.Version
+ "-//W3C//DTD HTML 3.2 Final//EN"
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+<!--================== Deprecated Features Switch =========================-->
+
+<!ENTITY % HTML.Deprecated "INCLUDE">
+
+<!--================== Imported Names =====================================-->
+
+<!ENTITY % Content-Type "CDATA"
+ -- meaning a MIME content type, as per RFC1521
+ -->
+
+<!ENTITY % HTTP-Method "GET | POST"
+ -- as per HTTP specification
+ -->
+
+<!ENTITY % URL "CDATA"
+ -- The term URL means a CDATA attribute
+ whose value is a Uniform Resource Locator,
+ See RFC1808 (June 95) and RFC1738 (Dec 94).
+ -->
+
+<!-- Parameter Entities -->
+
+<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK" -- repeatable head elements -->
+
+<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
+
+<!ENTITY % list "UL | OL | DIR | MENU">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % preformatted "PRE | XMP | LISTING">
+]]>
+
+<!ENTITY % preformatted "PRE">
+
+<!--================ Character mnemonic entities ==========================-->
+
+<!ENTITY % ISOlat1 PUBLIC
+ "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML">
+%ISOlat1;
+
+<!--================ Entities for special symbols =========================-->
+<!-- &trade and &cbsp are not widely deployed and so not included here -->
+
+<!ENTITY amp CDATA "&#38;" -- ampersand -->
+<!ENTITY gt CDATA "&#62;" -- greater than -->
+<!ENTITY lt CDATA "&#60;" -- less than -->
+
+<!--=================== Text Markup =======================================-->
+
+<!ENTITY % font "TT | I | B | U | STRIKE | BIG | SMALL | SUB | SUP">
+
+<!ENTITY % phrase "EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE">
+
+<!ENTITY % special "A | IMG | APPLET | FONT | BASEFONT | BR | SCRIPT | MAP">
+
+<!ENTITY % form "INPUT | SELECT | TEXTAREA">
+
+<!ENTITY % text "#PCDATA | %font | %phrase | %special | %form">
+
+<!ELEMENT (%font|%phrase) - - (%text)*>
+
+<!-- there are also 16 widely known color names although
+ the resulting colors are implementation dependent:
+
+ aqua, black, blue, fuchsia, gray, green, lime, maroon,
+ navy, olive, purple, red, silver, teal, white, and yellow
+
+ These colors were originally picked as being the standard
+ 16 colors supported with the Windows VGA palette.
+ -->
+
+<!ELEMENT FONT - - (%text)* -- local change to font -->
+<!ATTLIST FONT
+ size CDATA #IMPLIED -- [+]nn e.g. size="+1", size=4 --
+ color CDATA #IMPLIED -- #RRGGBB in hex, e.g. red: color="#FF0000" --
+ >
+
+<!ELEMENT BASEFONT - O EMPTY -- base font size (1 to 7)-->
+<!ATTLIST BASEFONT
+ size CDATA #IMPLIED -- e.g. size=3 --
+ >
+
+<!ELEMENT BR - O EMPTY -- forced line break -->
+<!ATTLIST BR
+ clear (left|all|right|none) none -- control of text flow --
+ >
+
+<!--================== HTML content models ================================-->
+<!--
+ HTML has three basic content models:
+
+ %text character level elements and text strings
+ %flow block-like elements e.g. paragraphs and lists
+ %bodytext as %flow plus headers H1-H6 and ADDRESS
+-->
+
+<!ENTITY % block
+ "P | %list | %preformatted | DL | DIV | CENTER |
+ BLOCKQUOTE | FORM | ISINDEX | HR | TABLE">
+
+<!-- %flow is used for DD and LI -->
+
+<!ENTITY % flow "(%text | %block)*">
+
+<!--=================== Document Body =====================================-->
+
+<!ENTITY % body.content "(%heading | %text | %block | ADDRESS)*">
+
+<!ENTITY % color "CDATA" -- a color specification: #HHHHHH @@ details? -->
+
+<!ENTITY % body-color-attrs "
+ bgcolor %color #IMPLIED
+ text %color #IMPLIED
+ link %color #IMPLIED
+ vlink %color #IMPLIED
+ alink %color #IMPLIED
+ ">
+
+<!ELEMENT BODY O O %body.content>
+<!ATTLIST BODY
+ background %URL #IMPLIED -- texture tile for document background --
+ %body-color-attrs; -- bgcolor, text, link, vlink, alink --
+ >
+
+<!ENTITY % address.content "((%text;) | P)*">
+
+<!ELEMENT ADDRESS - - %address.content>
+
+<!ELEMENT DIV - - %body.content>
+<!ATTLIST DIV
+ align (left|center|right) #IMPLIED -- alignment of following text --
+ >
+
+<!-- CENTER is a shorthand for DIV with ALIGN=CENTER -->
+<!ELEMENT center - - %body.content>
+
+<!--================== The Anchor Element =================================-->
+
+<!ELEMENT A - - (%text)* -(A)>
+<!ATTLIST A
+ name CDATA #IMPLIED -- named link end --
+ href %URL #IMPLIED -- URL for linked resource --
+ rel CDATA #IMPLIED -- forward link types --
+ rev CDATA #IMPLIED -- reverse link types --
+ title CDATA #IMPLIED -- advisory title string --
+ >
+
+<!--================== 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 -->
+
+<!ENTITY % SHAPE "(rect|circle|poly)">
+<!ENTITY % COORDS "CDATA" -- comma separated list of numbers -->
+
+<!ELEMENT MAP - - (AREA)*>
+<!ATTLIST MAP
+ name CDATA #IMPLIED
+ >
+
+<!ELEMENT AREA - O EMPTY>
+<!ATTLIST AREA
+ shape %SHAPE rect
+ coords %COORDS #IMPLIED -- defines coordinates for shape --
+ href %URL #IMPLIED -- this region acts as hypertext link --
+ nohref (nohref) #IMPLIED -- this region has no action --
+ alt CDATA #REQUIRED -- needed for non-graphical user agents --
+ >
+
+<!--================== The LINK Element ==================================-->
+
+<!ENTITY % Types "CDATA"
+ -- See Internet Draft: draft-ietf-html-relrev-00.txt
+ LINK has been part of HTML since the early days
+ although few browsers as yet take advantage of it.
+
+ Relationship values can be used in principle:
+
+ a) for document specific toolbars/menus when used
+ with the LINK element in the document head:
+ b) to link to a separate style sheet
+ c) to make a link to a 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
+-->
+
+<!ELEMENT LINK - O EMPTY>
+<!ATTLIST LINK
+ href %URL #IMPLIED -- URL for linked resource --
+ rel %Types #IMPLIED -- forward link types --
+ rev %Types #IMPLIED -- reverse link types --
+ title CDATA #IMPLIED -- advisory title string --
+ >
+
+<!--=================== Images ============================================-->
+
+<!ENTITY % Length "CDATA" -- nn for pixels or nn% for percentage length -->
+<!ENTITY % Pixels "NUMBER" -- integer representing length in pixels -->
+
+<!-- Suggested widths are used for negotiating image size
+ with the module responsible for painting the image.
+ align=left or right cause image to float to margin
+ and for subsequent text to wrap around image -->
+
+<!ENTITY % IAlign "(top|middle|bottom|left|right)">
+
+<!ELEMENT IMG - O EMPTY -- Embedded image -->
+<!ATTLIST IMG
+ src %URL #REQUIRED -- URL of image to embed --
+ alt CDATA #IMPLIED -- for display in place of image --
+ align %IAlign #IMPLIED -- vertical or horizontal alignment --
+ height %Pixels #IMPLIED -- suggested height in pixels --
+ width %Pixels #IMPLIED -- suggested width in pixels --
+ border %Pixels #IMPLIED -- suggested link border width --
+ hspace %Pixels #IMPLIED -- suggested horizontal gutter --
+ vspace %Pixels #IMPLIED -- suggested vertical gutter --
+ usemap %URL #IMPLIED -- use client-side image map --
+ ismap (ismap) #IMPLIED -- use server image map --
+ >
+
+<!-- USEMAP points to a MAP element which may be in this document
+ or an external document, although the latter is not widely supported -->
+
+<!--=================== Java APPLET tag ===================================-->
+<!--
+ This tag is supported by all Java enabled browsers. Applet resources
+ (including their classes) are normally loaded relative to the document
+ URL (or <BASE> element if it is defined). The CODEBASE attribute is used
+ to change this default behavior. If the CODEBASE attribute is defined then
+ it specifies a different location to find applet resources. The value
+ can be an absolute URL or a relative URL. The absolute URL is used as is
+ without modification and is not effected by the documents <BASE> element.
+ When the codebase attribute is relative, then it is relative to the
+ document URL (or <BASE> tag if defined).
+-->
+<!ELEMENT APPLET - - (PARAM | %text)*>
+<!ATTLIST APPLET
+ codebase %URL #IMPLIED -- code base --
+ code CDATA #REQUIRED -- class file --
+ alt CDATA #IMPLIED -- for display in place of applet --
+ name CDATA #IMPLIED -- applet name --
+ width %Pixels #REQUIRED -- suggested width in pixels --
+ height %Pixels #REQUIRED -- suggested height in pixels --
+ align %IAlign #IMPLIED -- vertical or horizontal alignment --
+ hspace %Pixels #IMPLIED -- suggested horizontal gutter --
+ vspace %Pixels #IMPLIED -- suggested vertical gutter --
+ >
+
+<!ELEMENT PARAM - O EMPTY>
+<!ATTLIST PARAM
+ name NMTOKEN #REQUIRED -- The name of the parameter --
+ value CDATA #IMPLIED -- The value of the parameter --
+ >
+
+<!--
+Here is an example:
+
+ <applet codebase="applets/NervousText"
+ code=NervousText.class
+ width=300
+ height=50>
+ <param name=text value="Java is Cool!">
+ <img src=sorry.gif alt="This looks better with Java support">
+ </applet>
+-->
+
+<!--=================== Horizontal Rule ===================================-->
+
+<!ELEMENT HR - O EMPTY>
+<!ATTLIST HR
+ align (left|right|center) #IMPLIED
+ noshade (noshade) #IMPLIED
+ size %Pixels #IMPLIED
+ width %Length #IMPLIED
+ >
+<!--=================== Paragraphs=========================================-->
+
+<!ELEMENT P - O (%text)*>
+<!ATTLIST P
+ align (left|center|right) #IMPLIED
+ >
+
+<!--=================== Headings ==========================================-->
+
+<!--
+ There are six levels of headers from H1 (the most important)
+ to H6 (the least important).
+-->
+
+<!ELEMENT ( %heading ) - - (%text;)*>
+<!ATTLIST ( %heading )
+ align (left|center|right) #IMPLIED
+ >
+
+<!--=================== Preformatted Text =================================-->
+
+<!-- excludes images and changes in font size -->
+
+<!ENTITY % pre.exclusion "IMG|BIG|SMALL|SUB|SUP|FONT">
+
+<!ELEMENT PRE - - (%text)* -(%pre.exclusion)>
+<!ATTLIST PRE
+ width NUMBER #implied -- is this widely supported? --
+ >
+
+<![ %HTML.Deprecated [
+
+<!ENTITY % literal "CDATA"
+ -- historical, non-conforming parsing mode where
+ the only markup signal is the end tag
+ in full
+ -->
+
+<!ELEMENT (XMP|LISTING) - - %literal>
+<!ELEMENT PLAINTEXT - O %literal>
+
+]]>
+
+<!--=================== Block-like Quotes =================================-->
+
+<!ELEMENT BLOCKQUOTE - - %body.content>
+
+<!--=================== Lists =============================================-->
+
+<!--
+ HTML 3.2 allows you to control the sequence number for ordered lists.
+ You can set the sequence number with the START and VALUE attributes.
+ The TYPE attribute may be used to specify the rendering of ordered
+ and unordered lists.
+-->
+
+<!-- definition lists - DT for term, DD for its definition -->
+
+<!ELEMENT DL - - (DT|DD)+>
+<!ATTLIST DL
+ compact (compact) #IMPLIED -- more compact style --
+ >
+
+<!ELEMENT DT - O (%text)*>
+<!ELEMENT DD - O %flow;>
+
+<!-- Ordered lists OL, and unordered lists UL -->
+<!ELEMENT (OL|UL) - - (LI)+>
+
+<!--
+ 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] -->
+
+<!ATTLIST OL -- ordered lists --
+ type %OLStyle #IMPLIED -- numbering style --
+ start NUMBER #IMPLIED -- starting sequence number --
+ compact (compact) #IMPLIED -- reduced interitem spacing --
+ >
+
+<!-- bullet styles -->
+
+<!ENTITY % ULStyle "disc|square|circle">
+
+<!ATTLIST UL -- unordered lists --
+ type (%ULStyle) #IMPLIED -- bullet style --
+ compact (compact) #IMPLIED -- reduced interitem spacing --
+ >
+
+<!ELEMENT (DIR|MENU) - - (LI)+ -(%block)>
+<!ATTLIST DIR
+ compact (compact) #IMPLIED
+ >
+<!ATTLIST MENU
+ compact (compact) #IMPLIED
+ >
+
+<!-- <DIR> Directory list -->
+<!-- <DIR COMPACT> Compact list style -->
+<!-- <MENU> Menu list -->
+<!-- <MENU COMPACT> Compact list style -->
+
+<!-- The type attribute can be used to change the bullet style
+ in unordered lists and the numbering style in ordered lists -->
+
+<!ENTITY % LIStyle "CDATA" -- constrained to: "(%ULStyle|%OLStyle)" -->
+
+<!ELEMENT LI - O %flow -- list item -->
+<!ATTLIST LI
+ type %LIStyle #IMPLIED -- list item style --
+ value NUMBER #IMPLIED -- reset sequence number --
+ >
+
+<!--================ Forms ===============================================-->
+
+<!ELEMENT FORM - - %body.content -(FORM)>
+<!ATTLIST FORM
+ action %URL #IMPLIED -- server-side form handler --
+ method (%HTTP-Method) GET -- see HTTP specification --
+ enctype %Content-Type; "application/x-www-form-urlencoded"
+ >
+
+<!ENTITY % InputType
+ "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT
+ | RESET | FILE | HIDDEN | IMAGE)">
+
+<!ELEMENT INPUT - O EMPTY>
+<!ATTLIST INPUT
+ type %InputType TEXT -- what kind of widget is needed --
+ name CDATA #IMPLIED -- required for all but submit and reset --
+ value CDATA #IMPLIED -- required for radio and checkboxes --
+ checked (checked) #IMPLIED -- for radio buttons and check boxes --
+ size CDATA #IMPLIED -- specific to each type of field --
+ maxlength NUMBER #IMPLIED
+ src %URL #IMPLIED -- for fields with background images --
+ align (top|middle|bottom|left|right) top -- image alignment --
+ >
+
+<!ELEMENT SELECT - - (OPTION+)>
+<!ATTLIST SELECT
+ name CDATA #REQUIRED
+ size NUMBER #IMPLIED
+ multiple (multiple) #IMPLIED
+ >
+
+<!ELEMENT OPTION - O (#PCDATA)*>
+<!ATTLIST OPTION
+ selected (selected) #IMPLIED
+ value CDATA #IMPLIED -- defaults to element content --
+ >
+
+<!-- Multi-line text input field. -->
+
+<!ELEMENT TEXTAREA - - (#PCDATA)*>
+<!ATTLIST TEXTAREA
+ name CDATA #REQUIRED
+ rows NUMBER #REQUIRED
+ cols NUMBER #REQUIRED
+ >
+
+<!--======================= Tables ========================================-->
+
+<!-- Widely deployed subset of the full table standard, see RFC 1942
+ e.g. at http://www.ics.uci.edu/pub/ietf/html/rfc1942.txt -->
+
+<!-- horizontal placement of table relative to window -->
+<!ENTITY % Where "(left|center|right)">
+
+<!-- horizontal alignment attributes for cell contents -->
+<!ENTITY % cell.halign
+ "align (left|center|right) #IMPLIED"
+ >
+
+<!-- vertical alignment attributes for cell contents -->
+<!ENTITY % cell.valign
+ "valign (top|middle|bottom) #IMPLIED"
+ >
+
+<!ELEMENT table - - (caption?, tr+)>
+<!ELEMENT tr - O (th|td)*>
+<!ELEMENT (th|td) - O %body.content>
+
+<!ATTLIST table -- table element --
+ align %Where; #IMPLIED -- table position relative to window --
+ width %Length #IMPLIED -- table width relative to window --
+ border %Pixels #IMPLIED -- controls frame width around table --
+ cellspacing %Pixels #IMPLIED -- spacing between cells --
+ cellpadding %Pixels #IMPLIED -- spacing within cells --
+ >
+
+<!ELEMENT CAPTION - - (%text;)* -- table or figure caption -->
+<!ATTLIST CAPTION
+ align (top|bottom) #IMPLIED
+ >
+
+<!ATTLIST tr -- table row --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
+
+<!ATTLIST (th|td) -- header or data cell --
+ nowrap (nowrap) #IMPLIED -- suppress word wrap --
+ rowspan NUMBER 1 -- number of rows spanned by cell --
+ colspan NUMBER 1 -- number of cols spanned by cell --
+ %cell.halign; -- horizontal alignment in cell --
+ %cell.valign; -- vertical alignment in cell --
+ width %Pixels #IMPLIED -- suggested width for cell --
+ height %Pixels #IMPLIED -- suggested height for cell --
+ >
+
+<!--================ Document Head ========================================-->
+
+<!-- %head.misc defined earlier on as "SCRIPT|STYLE|META|LINK" -->
+
+<!ENTITY % head.content "TITLE & ISINDEX? & BASE?">
+
+<!ELEMENT HEAD O O (%head.content) +(%head.misc)>
+
+<!ELEMENT TITLE - - (#PCDATA)* -(%head.misc)
+ -- 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.
+ -->
+
+<!ELEMENT ISINDEX - O EMPTY>
+<!ATTLIST ISINDEX
+ prompt CDATA #IMPLIED -- prompt message -->
+
+<!--
+ The BASE element gives an absolute URL for dereferencing relative
+ URLs, e.g.
+
+ <BASE href="http://foo.com/index.html">
+ ...
+ <IMG SRC="images/bar.gif">
+
+ The image is deferenced to
+
+ http://foo.com/images/bar.gif
+
+ In the absence of a BASE element the document URL should be used.
+ Note that this is not necessarily the same as the URL used to
+ request the document, as the base URL may be overridden by an HTTP
+ header accompanying the document.
+-->
+
+<!ELEMENT BASE - O EMPTY>
+<!ATTLIST BASE
+ href %URL #REQUIRED
+ >
+
+<!ELEMENT META - O EMPTY -- Generic Metainformation -->
+<!ATTLIST META
+ http-equiv NAME #IMPLIED -- HTTP response header name --
+ name NAME #IMPLIED -- metainformation name --
+ content CDATA #REQUIRED -- associated information --
+ >
+
+<!-- SCRIPT/STYLE are place holders for transition to next version of HTML -->
+
+<!ELEMENT STYLE - - (#PCDATA)* -(%head.misc) -- style info -->
+<!ELEMENT SCRIPT - - (#PCDATA)* -(%head.misc) -- script statements -->
+
+<!--================ Document Structure ===================================-->
+
+<!ENTITY % version.attr "VERSION CDATA #FIXED '%HTML.Version;'">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % html.content "HEAD, BODY, PLAINTEXT?">
+]]>
+
+<!ENTITY % html.content "HEAD, BODY">
+
+<!ELEMENT HTML O O (%html.content)>
+<!ATTLIST HTML
+ %version.attr;
+ >
+
diff --git a/htdocs/sgml-lib/html-3.dtd b/htdocs/sgml-lib/html-3.dtd
new file mode 100644
index 0000000..289526f
--- /dev/null
+++ b/htdocs/sgml-lib/html-3.dtd
@@ -0,0 +1,1447 @@
+<!--
+ html3.dtd
+
+ Document Type Definition for the HyperText Markup Language (HTML DTD)
+
+ Draft: Fri 24-Mar-95 09:46:33
+
+ Author: Dave Raggett <dsr@hplb.hpl.hp.com>
+
+ W3O is developing a testbed browser to provide practical
+ experience with HTML 3.0 before it becomes a standard.
+ See: http://www.w3.org/hypertext/WWW/Arena/
+
+ This is an open process and comments are welcomed on the
+ www-html mailing list.
+
+ Please use the following MIME content type:
+
+ Content-Type: text/html; version=3.0
+
+ This will allow clients to distinguish HTML 3.0 from current
+ HTML documents. This is most easily achieved by saving
+ files with the extension ".html3" or ".ht3" so that servers
+ can easily distinguish these files from HTML 2.0 files.
+
+ The entity HTML.Recommended can be used to give a more rigorous
+ version of the DTD suitable for use with SGML authoring tools.
+ The default version of the DTD offers a laxer interpretation,
+ e.g. allowing authors to omit leading <P> elements. You can
+ switch on the more rigorous version of the DTD by including
+ the following at the start of your HTML document.
+
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN//"
+ [ <!ENTITY % HTML.Recommended "INCLUDE"> ] >
+
+
+ Design Objectives:
+
+ o Backwards compatibility with 2.0
+
+ o Tightening up HTML.Recommended and
+ moving more things to HTML.Deprecated
+
+ o Keep HTML - simple don't compete with CALS
+
+ o Make it practical for people to edit HTML 3.0
+ documents directly, i.e. avoid long names.
+
+ o Tables, figures and math from HTML+
+ with tweaks based on recent experience
+
+ o Client-side event handling for figures
+ and graphical form selection menus
+
+ o Add limited presentational controls with
+ a view to use of linked style sheets
+ (style overrides are supported)
+
+ o Compatibility with ICADD as per Yuri's suggestions
+
+ HTML 3.0 relies on linked style info to give authors
+ control over the appearence of documents. Such info is
+ placed in a linked style sheet, or as overrides in the
+ HTML document head, using the STYLE element. The generic
+ CLASS attribute can be used to subclass elements when
+ you want to use a different style from normal, e.g. you
+ might use <h2 class=bigcaps> for headers with enlarged
+ capital letters. Note that the class attribute has a
+ wider scope than just style changes, e.g. browsers could
+ provide the means for searching through documents,
+ restricting search according to element class values.
+
+ The DTD contains a small number of attributes for direct
+ control of basic alignment parameters; column widths for
+ tables; support for custom bullets, sequence numbering for
+ lists and headers; and text flow. These attributes offer
+ control over appearence which would be inconvenient to
+ express exclusively via associated style sheets.
+
+ The MD attribute for each hypertext or inline link specifies a
+ message digest such as MD5 for the linked object and is needed
+ to ensure someone hasn't tampered with a linked document.
+
+ History:
+
+ 24th March '95
+
+ Changed ROLE->CLASS for HTML element
+ Added dummy elements to fix problem with mixed
+ content models for BODY, BLOCKQUOTE/BQ and FIG
+ Dropped audio fields from FORMs
+ Reinstated MIN/MAX for range fields
+ Reinstated DISABLED and ERROR attributes for fields
+
+ 22nd March '95
+
+ Changed from em to en units. The latter
+ is a typographical unit = half point size
+ Merged NEEDS into CLEAR for control of textflow
+
+ 21st March '95
+
+ Added REL=Banner to LINK element
+ Added BANNER element in place of <DIV CLASS=BANNER>
+ Added RANGE and SPOT elements
+ Added FN in place of <NOTE ROLE=FOOTNOTE>
+ Changed ROLE->CLASS for NOTE element
+
+ 17th March '95
+
+ Fixed bug in PRE content model
+ Changed external references to omit trailling //
+ Dropped <!DOCTYPE HTML [ ... ]> wrapper to avoid problems
+ with "real" sgml parsers
+ Added NOFLOW attribute to FIG and TABLE
+ Fixed typo in IMG ALIGN attribute
+ Made SELECT match IMG for graphic attributes
+ Added decimal alignment for tabs and table cells
+ Added ALIGN attribute to TEXTAREA for parity
+ with IMG and INPUT, including ALIGN=LEFT etc.
+
+ 13th March '95
+
+ Dropped MARK tag on advice from SGML Open
+ Allowed spaces in table colspec attribute
+ Changed ARRAY element
+ Added CHOOSE tag to BOX element
+ Cleaned up PRE content model
+ Obsoleted tags incompatible with SGML
+
+ 6th March '95
+
+ Added several tags to MATH: %mathface, %mathvec
+ and improved ROOT, with new SQRT convience tag
+
+ 1st March '95
+
+ Dropped align attribute from BR element
+ Added indent attribute to TAB
+ Added optional CREDIT to end of BQ
+ Changed FIG to %body.content to allow headers
+
+ 22nd February '95
+
+ Added align attribute, and dropped before, after, center and right
+ attributes to clean up TAB element
+ Added INS and DEL for legal documents
+ Added CREDIT to end of FIG element
+ Dropped FN in favor of <NOTE ROLE=FootNote>
+
+ 9th Feburuary '95
+
+ Dropped base attribute mechanism for scoping relative URLs
+ Dropped nofold attribute for disabling whitespace folding
+ Dropped border width attributes for FIG (-> style sheet)
+ Dropped delims attribute from math BOX element
+ Dropped stylistic attributes from OL such as inherit (-> stylesheet)
+ Added baseline to list of valign attribute values for tables.
+ Added DIV element for generic container class and static banners
+ Added MARK element for marked range class
+ Added closed set of LINK REL values for toolbars
+ Added numbering attributes to headers
+ Added bullet attributes to headers
+ Added TERM element to math for style sheet control of term rendering
+ Changed to imagemap=URI for server-side event handling for FIG/OVERLAY
+ Changed delimiter attributes for math arrays
+ Changed ROOT element for maths to allow an arbitrary radix
+ Simplified numbering attributes for ordered lists
+ Simplified STYLE element to leave binding to style language
+-->
+
+<!ENTITY % HTML.Version
+ "-//IETF//DTD HTML 3.0//EN"
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+<!--================== Flags for Marked Sections ==========================-->
+
+<!ENTITY % HTML.Recommended "IGNORE"
+ -- Certain features of the language are necessary for compatibility
+ with widespread usage, but they may compromise the structural
+ integrity of a document. This feature test entity enables
+ a more prescriptive document type definition that eliminates
+ the above features.
+ -->
+
+<![ %HTML.Recommended [
+ <!ENTITY % HTML.Deprecated "IGNORE">
+]]>
+
+<!ENTITY % HTML.Deprecated "INCLUDE"
+ -- Certain features of the language are necessary for compatibility
+ with earlier versions of the specification, but they tend
+ to be used an implemented inconsistently, and their use is
+ deprecated. This feature test entity enables a document type
+ definition that eliminates these features.
+ -->
+
+<!ENTITY % HTML.Obsoleted "IGNORE"
+ -- The XMP, LISTING and PLAINTEXT tags are incompatible with SGML
+ and derive from very early versions of HTML. They require non-
+ standard parsers and will cause problems for processing
+ documents with standard SGML tools.
+ -->
+
+<!--================== Imported Names =====================================-->
+
+<!ENTITY % Content-Type "CDATA"
+ -- meaning a MIME content type, as per RFC1521
+ -->
+
+<!ENTITY % HTTP-Method "GET | POST"
+ -- as per HTTP specification
+ -->
+
+<!ENTITY % URI "CDATA"
+ -- The term URI means a CDATA attribute
+ whose value is a Uniform Resource Identifier,
+ as defined by
+ "Uniform Resource Identifiers" by Tim Berners-Lee
+ aka http://info.cern.ch/hypertext/WWW/Addressing/URL/URI_Overview.html
+ aka RFC 1630
+
+ Note that CDATA attributes are limited by the LITLEN
+ capacity (1024 in the current version of html.decl),
+ so that URIs in HTML have a bounded length.
+
+ -->
+
+<!ENTITY % REAL "CDATA" -- real numbers (not in SGML) -->
+
+<!ENTITY % SHAPE "CDATA"
+ -- Shape of hotzone in image.
+
+ All coordinates are assumed to be numbers in the range 0 to 1
+ and interpreted as fractional width/height and measured from
+ the top left corner of the associated image.
+
+ The attribute value is a string taking one of the following forms:
+
+ "default"
+
+ Used to define a default link for the figure background.
+
+ "circle x, y, r"
+
+ (x, y) define the center and r the radius.
+
+ "rect x, y, w, h"
+
+ (x, y) defines upper left, and w and h the width and height.
+
+ "polygon x1, y1, x2, y2, ..."
+
+ Given n pairs of x, y coordinates, the polygon is closed by a
+ line linking the n'th point to the first. Intersecting polygons
+ use the non-zero winding number rule to determine if a point lies
+ inside the polygon.I
+ --
+>
+
+<!-- 3.0 Parameter Entities -->
+
+<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
+
+<![ %HTML.Obsoleted [
+ <!ENTITY % preformatted "PRE | XMP | LISTING">
+]]>
+
+
+<![ %HTML.Deprecated [
+ <!ENTITY % list "UL | OL | DIR | MENU">
+ <!ENTITY % blockquote "BLOCKQUOTE | BQ">
+]]>
+
+<!ENTITY % list "UL | OL">
+
+<!ENTITY % blockquote "BQ">
+
+<!ENTITY % preformatted "PRE">
+
+
+<!-- The CLASS attribute is used to subclass HTML elements for
+ rendering purposes, when used with style sheets, e.g. DSSSL lite -->
+
+<!ENTITY % attrs -- common attributes for elements --
+ 'id ID #IMPLIED -- as target for hrefs (link ends) --
+ lang CDATA "en.us" -- ISO language, country code --
+ class NAMES #IMPLIED -- for subclassing elements --'>
+
+<!-- SGML standard forces different NAMES for all attribute values
+ in the same element, regardless of the attribute name! As a result
+ CDATA is used for CLEAR attribute to avoid clash with ALIGN attribute.-->
+
+<!--
+When text flows around a figure or table in the margin, you sometimes want
+to start an element like a header, paragraph or list below the figure rather
+than alongside it. The CLEAR attribute allows you to move down unconditionally:
+
+ clear=left move down until left margin is clear
+ clear=right move down until right margin is clear
+ clear=all move down until both margins are clear
+
+Alternatively, you can decide to place the element alongside the figure just
+so long as there is enough room. The minimum width needed is specified as:
+
+ clear="40 en" move down until there is at least 40 en units free
+ clear="100 pixels" move down until there is at least 100 pixels free
+
+The style sheet (or browser defaults) may provide default minimum widths for
+each class of block-like elements.
+-->
+
+<!ENTITY % needs -- Attributes for controlling text flow. Used in headers
+ and other elements to guarantee sufficient room --
+ 'clear CDATA #IMPLIED'>
+
+<!--
+ The following attribute may be included where ever a URL can be given:
+
+ md message digest e.g. md="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ"
+ where the digest is base64 encoded and preceded by a prefix
+ denoting the algorithm (in this case MD5).
+-->
+
+<!ENTITY % url.link -- Attributes associated with URL based links --
+ "md CDATA #IMPLIED -- message digest for linked object --">
+
+<!--================ Character mnemonic entities ==========================-->
+
+<!-- The HTML list of Latin-1 entities includes the full range
+ of characters in widely available Latin-1 fonts, and as such
+ is a mixture of ISOlat1 and other ISO publishing symbols -->
+
+<!ENTITY % HTMLlat1 PUBLIC
+ "-//IETF//ENTITIES Added Latin 1 for HTML//EN">
+%HTMLlat1;
+
+<!--================ Entities for special symbols =========================-->
+
+<!ENTITY emsp SDATA "[emsp ]" -- em space -->
+<!ENTITY ensp SDATA "[ensp ]" -- en space (1/2-em) -->
+<!ENTITY mdash SDATA "[ndash ]" -- em dash -->
+<!ENTITY ndash SDATA "[ndash ]" -- en dash (1/2-em) -->
+<!ENTITY nbsp SDATA "[nbsp ]" -- non breaking space -->
+<!ENTITY shy SDATA "[shy ]" -- soft hyphen -->
+<!ENTITY copy SDATA "[copy ]" -- copyright sign -->
+<!ENTITY trade SDATA "[trade ]" -- trade mark sign -->
+<!ENTITY reg SDATA "[reg ]" -- registered sign -->
+
+<!--================ Entities for standard icons ==========================-->
+
+<!-- a range of standard icons such as &folder; for use
+ in speeding up display of directory listings etc. -->
+
+<!ENTITY % HTMLicons PUBLIC
+ "-//IETF//ENTITIES icons for HTML//EN">
+%HTMLicons;
+
+<!--================ Entities for math symbols ============================-->
+
+<!-- ISO subset chosen for use with the widely available Adobe math font -->
+
+<!ENTITY % HTMLmath PUBLIC
+ "-//IETF//ENTITIES Math and Greek for HTML//EN">
+%HTMLmath;
+
+<!--=================== Text Markup =======================================-->
+
+<!ENTITY % font " U | S | TT | I | BIG | SMALL">
+
+<!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE">
+
+<!ENTITY % misc "Q | LANG | AU | DFN | PERSON | ACRONYM | ABBREV | INS | DEL">
+
+<!ENTITY % special "TAB | MATH | A | IMG | BR">
+
+<!ENTITY % notmath "%font | %phrase | %special | %misc">
+
+<!ENTITY % text "#PCDATA | SUB | SUP | B | %notmath">
+
+
+<!ENTITY % pre.exclusion "TAB|MATH|IMG|BIG|SMALL|SUB|SUP">
+
+<!ELEMENT (%font|B|%phrase|%misc) - - (%text)+>
+<!ATTLIST (%font|B|%phrase|%misc) %attrs;>
+
+<!-- Subscripts and superscripts. The ALIGN attribute is only used for math -->
+
+<!ELEMENT (SUB|SUP) - - (%text)+>
+<!ATTLIST (SUB|SUP)
+ %attrs;
+ align (left|center|right) #IMPLIED
+ >
+
+<!-- Forced line break -->
+
+<!ELEMENT BR - O EMPTY>
+<!ATTLIST BR
+ %attrs;
+ %needs; -- for control of text flow --
+ >
+
+<!-- Named left, center and right tab stops (independent of '\t' char) -->
+
+<!ELEMENT TAB - O EMPTY>
+<!ATTLIST TAB
+ id ID #IMPLIED -- defines named tab stop --
+ indent NUMBER 0 -- en units before new tab stop --
+ to IDREF #IMPLIED -- jump to named tab stop --
+ align (left|center|right|decimal) left
+ dp CDATA #IMPLIED -- decimal point e.g. dp="," --
+ >
+
+<!--================== Link Markup ========================================-->
+
+<!--
+ With HTML 3.0 you can use ID attributes on most elements for named
+ link ends. The use of the NAME attribute on anchors is deprecated.
+
+ Do we want to support arbitrary elements for link starts? This would
+ involve adding HREF and related attributes to most elements.
+-->
+
+<![ %HTML.Deprecated [
+ <!ENTITY % linkName "name CDATA #IMPLIED -- named link end --">
+]]>
+
+<!ENTITY % linkName "">
+
+
+<!ENTITY % ToolBar "home|toc|index|glossary|copyright|
+ up|previous|next|help|bookmark"
+
+ -- LINK RELationship values which are used to create toolbar
+ buttons or menu items for navigation, where toc stands
+ for table of contents and bookmark provides for an open
+ ended set of links, i.e. you can use multiple bookmarks
+ for key entry points. Use the optional TITLE attribute
+ to override default names.
+ -->
+
+<!ENTITY % linkType "NAME"
+ -- A definitive list will be specified at a later date.
+
+ They are used
+
+ a) by stylesheets to control how collections of
+ html nodes are rendered into printed documents
+
+ b) for document specific toolbars/menus when used
+ with the LINK element in document head:
+
+ "home|toc|index|glossary|copyright|
+ up|previous|next|help|bookmark"
+
+ where toc stands for table of contents and
+ bookmark provides for an open ended set of links,
+ i.e. you can use several bookmarks for key entry
+ points. Use the optional TITLE attribute to
+ override default names.
+
+ c) for hypertext paths or guided tours,
+ with REL=NODE and REL=PATH.
+
+ d) to make a link to a style sheet, e.g. rel=stylesheet
+ (used only with the LINK element).
+
+ e) to make a link to a separate banner, e.g. rel=banner
+ (used only with the LINK element).
+ -->
+
+
+<!ENTITY % linkExtraAttributes -- URN moved to %url.link --
+ "rel %linkType #IMPLIED -- forward relationship type --
+ rev %linkType #IMPLIED -- reversed relationship type
+ to referent data --
+ title CDATA #IMPLIED -- advisory only --
+ methods NAMES #IMPLIED -- supported public methods of the object:
+ TEXTSEARCH, GET, HEAD, ... --
+ ">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % A.content "(%heading|%text)+">
+]]>
+
+<!ENTITY % A.content "(%text)+">
+
+<!ELEMENT A - - %A.content -(A)>
+
+<!ATTLIST A
+ %attrs;
+ href %URI; #IMPLIED
+ %url.link; -- standard link attributes --
+ %linkName; -- name attribute is deprecated; use ID instead --
+ shape %SHAPE; #IMPLIED -- for shaped hotzones in FIGs --
+ %linkExtraAttributes;
+ >
+
+<!--=================== Images ============================================-->
+
+<!-- Desired widths are used for negotiating image size
+ with the module responsible for painting the image.
+ align=left or right cause image to float to margin
+ and for subsequent text to wrap around image -->
+
+<!ELEMENT IMG - O EMPTY -- Embedded image -->
+<!ATTLIST IMG
+ %attrs;
+ src %URI; #REQUIRED -- URI of image to embed --
+ %url.link; -- standard link attributes --
+ alt CDATA #IMPLIED -- for display in place of image --
+ align (top|middle|bottom|left|right) top -- relative to baseline
+ -- width NUMBER #IMPLIED -- desired width in en's or pixels --
+ height NUMBER #IMPLIED -- desired height in en's or pixels --
+ units (en|pixels) pixels -- units for width and height --
+ ismap (ismap) #IMPLIED -- pass clicks to server --
+ >
+
+<!--=================== Paragraphs=========================================-->
+
+<!ELEMENT P - O (%text)+>
+<!ATTLIST P
+ %attrs;
+ align (left|center|right|justify) #IMPLIED
+ %needs; -- for control of text flow --
+ nowrap (nowrap) #IMPLIED -- disable wordwrap --
+ >
+
+<!--=================== Headings, Titles, Sections ========================-->
+
+<!ELEMENT HR - O EMPTY -- customizable horizontal rule -->
+<!ATTLIST HR
+ %attrs;
+ src %URI; #IMPLIED -- URI of custom rule graphic --
+ %url.link; -- standard link attributes --
+ %needs; -- for control of text flow --
+ >
+
+<!--
+ Headers can be numbered, although this is a matter for style sheets.
+ The style sheet controls the numbering style:
+
+ a) whether the parent numbering is inherited, e.g. 5.i.c
+ where 5 is the current sequence number for H1 headers, and
+ 1 is the number for H2 headers and 3 for H3 headers.
+
+ b) what style is used for current sequence number
+ e.g. arabic, upperalpha, loweralpha, upperroman, lowerroman
+ or a numbering scheme appropriate for the current language
+
+ The skip attribute is used to skip over sequence numbers for items
+ which have been left out of the list, e.g. skip=3 advances the
+ sequence number past 3 omitted items. The seqnum sets the sequence
+ number to a specified value. Note that the style sheet may take
+ advantage of the sequence number for higher level headers.
+
+ The dingbat or src attributes may be used to specify a bullet like
+ image to be placed adjacent to the header. Defining this in the
+ header element simplifies the document markup and avoids the need
+ to use the clear or needs attribute in the following element to
+ prevent it flowing around this image.
+-->
+
+<!ELEMENT ( %heading ) - - (%text;)+>
+<!ATTLIST ( %heading )
+ %attrs;
+ align (left|center|right|justify) #IMPLIED
+ %needs; -- for control of text flow --
+ seqnum NUMBER #IMPLIED -- starting sequence number --
+ skip NUMBER 0 -- skip seq nums for missing items --
+ dingbat ENTITY #IMPLIED -- dingbat entity from HTMLicons --
+ src %URI; #IMPLIED -- bullet defined by graphic --
+ %url.link; -- standard link attributes --
+ nowrap (nowrap) #IMPLIED -- disable wordwrap --
+ >
+
+<!ELEMENT TITLE - - (#PCDATA)
+ -- 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.
+ -->
+
+<!--=================== Text Flows ========================================-->
+
+<!ENTITY % block
+ "P | %list | DL
+ | %preformatted
+ | %blockquote
+ | FORM | ISINDEX | FN
+ | TABLE | FIG | NOTE">
+
+<!--
+ ((%block)* | (%text)*) would be much nicer as it would avoid the need
+ for a <P> tag when all you want is a few words of text. The problem
+ is that it also prevents: "<LI> <P>some text" since it forbids PCDATA
+ and hence the white space between the <LI> and the <P>.
+-->
+
+<![ %HTML.Recommended [
+ <!ENTITY % flow "(%block)*">
+]]>
+
+<!ENTITY % flow "(%text | %block)*">
+
+<!ELEMENT PRE - - (%text)* -(%pre.exclusion)>
+
+<!ATTLIST PRE
+ %attrs;
+ width NUMBER #implied
+ %needs; -- for control of text flow --
+ >
+
+<![ %HTML.Obsoleted [
+
+<!ENTITY % literal "CDATA"
+ -- special non-conforming parsing mode where
+ the only markup signal is the end tag
+ in full. This will cause problems for
+ standard SGML tools!
+ -->
+
+<!ELEMENT XMP - - %literal>
+<!ELEMENT LISTING - - %literal>
+<!ELEMENT PLAINTEXT - O %literal>
+
+]]>
+
+<!--=================== Lists =============================================-->
+
+<!ELEMENT DL - - (LH?, (DT|DD)+) -- this is perhaps too lax? -->
+<!ATTLIST DL
+ %attrs;
+ %needs; -- for control of text flow --
+ compact (compact) #IMPLIED -- more compact style --
+ >
+
+<!ELEMENT DT - O (%text)+>
+<!ELEMENT DD - O %flow;>
+<!ATTLIST (DT|DD)
+ %attrs;
+ %needs; -- for control of text flow --
+ >
+
+
+<!ELEMENT (OL|UL) - - (LH?, LI+) -- should we allow a list header ? -->
+
+<!-- style sheet controls numbering style
+ a) whether the parent numbering is inherited, e.g. 5.1.c
+ b) what style is used for current sequence number
+ e.g. arabic, upperalpha, loweralpha, upperroman, lowerroman
+ or a numbering scheme for the current language
+-->
+<!ATTLIST OL
+ %attrs;
+ %needs; -- for control of text flow --
+ continue (continue) #IMPLIED -- don't restart sequence number --
+ seqnum NUMBER #IMPLIED -- starting sequence number --
+ compact (compact) #IMPLIED -- reduced interitem spacing --
+ >
+
+<!-- Unordered lists:
+
+ o single or multicolumn with
+ horizontal or vertical wrapping
+
+ o plain or bulletted list items
+
+ o bullets can be customised via:
+ - entities (dingbats in HTMLicons)
+ - external graphic via URL
+ - individual attributes on LI tags
+-->
+<!ATTLIST UL
+ %attrs;
+ %needs; -- for control of text flow --
+ wrap (vert|horiz|none) none -- multicolumn list style --
+ plain (plain) #IMPLIED -- suppress bullets --
+ dingbat ENTITY #IMPLIED -- dingbat entity from HTMLicons --
+ src %URI; #IMPLIED -- bullet defined by graphic --
+ %url.link; -- standard link attributes --
+ compact (compact) #IMPLIED -- reduced interitem spacing --
+ >
+
+<!ELEMENT LH - O (%text;)+ -- list header -->
+<!ATTLIST LH %attrs;>
+
+<!--
+ For unordered lists, you can override the standard bullet with
+ a custom graphic specified via a URI e.g. src="splash.gif" or
+ a reference to one of the HTMLicons graphics e.g. dingbat=folder
+
+ The skip attribute is used with ordered lists to skip over sequence
+ numbers for items which have been left out of the list, e.g. skip=3
+ advances the sequence number past 3 omitted items.
+-->
+
+<!ELEMENT LI - O %flow; -- list item -->
+<!ATTLIST LI
+ %attrs;
+ %needs; -- for control of text flow --
+ dingbat ENTITY #IMPLIED -- dingbat entity from HTMLicons --
+ src %URI; #IMPLIED -- custom bullet graphic --
+ %url.link; -- standard link attributes --
+ skip NUMBER 0 -- skip seq nums for missing items --
+ >
+
+<!-- DIR and MENU are now subsumed by UL with type=plain. Use the
+ wrap attribute to control wrapping style for multicolumn lists -->
+
+<![ %HTML.Deprecated [
+ <!ELEMENT (DIR|MENU) - - (LI)+ -(%block)>
+ <!ATTLIST (DIR|MENU)
+ compact (compact) #IMPLIED>
+]]>
+
+<!--=================== Document Body =====================================-->
+
+<![ %HTML.Recommended [
+ <!ENTITY % body.content "(DIV|%heading|%block|HR|ADDRESS)*"
+ -- <h1>Heading</h1>
+ <p>Text ...
+ is preferred to
+ <h1>Heading</h1>
+ Text ...
+ -->
+]]>
+
+<!ENTITY % body.content "(DIV | %heading | %text | %block | HR | ADDRESS)*">
+
+<!ELEMENT BODY O O (BANNER?, BODYTEXT) +(SPOT)>
+<!ATTLIST BODY
+ %attrs;
+ background %URI; #IMPLIED -- texture tile for document background --
+ >
+
+<!ELEMENT BODYTEXT O O %body.content -- dummy element -->
+
+<!--
+ The BANNER element is used for a banner section which appears at
+ the top of the window and doesn't scroll with window contents.
+ This can be used for corporate logos, copyright statements and
+ disclaimers, as well as customized navigation/search controls.
+-->
+<!ELEMENT BANNER - - %body.content>
+<!ATTLIST BANNER %attrs; >
+
+<!-- SPOT is used to insert IDs at arbitrary places
+ e.g. for end points of a marked range (see RANGE) -->
+<!ELEMENT SPOT - O EMPTY>
+<!ATTLIST SPOT id ID #REQUIRED>
+
+<!ELEMENT (%blockquote) - - (BODYTEXT, CREDIT?)>
+<!ATTLIST (%blockquote)
+ %attrs;
+ %needs; -- for control of text flow --
+ nowrap (nowrap) #IMPLIED -- disable wordwrap --
+ >
+
+<!ENTITY % address.content "((%text;)* | P*)">
+
+<!ELEMENT ADDRESS - - %address.content>
+<!ATTLIST ADDRESS
+ %attrs;
+ %needs; -- for control of text flow --
+ >
+
+<!--
+ DIV can be used with the CLASS attribute to represent different
+ kinds of container, e.g. chapter, section, abstract, appendix.
+-->
+
+<!ELEMENT DIV - - %body.content>
+<!ATTLIST DIV
+ %attrs;
+ %needs; -- for control of text flow --
+ align (left|center|right) left -- alignment of following text --
+ nowrap (nowrap) #IMPLIED -- disable wordwrap --
+ >
+
+<!--================ Forms ===============================================-->
+
+<!--
+ As HTML 2.0 plus a few extensions:
+
+ a) A RANGE control which varies between pair of values
+ specified with the size attribute, e.g. SIZE="1, 10"
+
+ b) FILE widget for uploading one or more files to a server
+
+ c) SCRIBBLE on image widget that sends the "ink" to the server
+
+ d) SUBMIT/RESET buttons can now be customised with an image.
+ This subsumes the IMAGE type which is now deprecated.
+
+ e) Graphical SELECTion menus are now supported, using
+ the new SHAPE attribute on OPTION elements.
+
+ Further extensions are in the pipeline (e.g. table entry,
+ multiple data formats for textarea fields and client-side
+ scripts with custom widgets) but will have to wait until
+ the backlog of implementation work diminishes.
+-->
+
+<!ELEMENT FORM - - %body.content -(FORM) +(INPUT|SELECT|TEXTAREA)>
+<!ATTLIST FORM
+ action %URI #REQUIRED -- server-side form handler --
+ method (%HTTP-Method) GET -- see HTTP specification --
+ enctype %Content-Type; "application/x-www-form-urlencoded"
+ script %URI #IMPLIED -- link to client-side script --
+ >
+
+<![ %HTML.Deprecated [
+ <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT
+ | RESET | RANGE | FILE | SCRIBBLE | HIDDEN | IMAGE)">
+]]>
+
+<!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT
+ | RESET | RANGE | FILE | SCRIBBLE | HIDDEN)">
+
+<!ELEMENT INPUT - O EMPTY>
+<!ATTLIST INPUT
+ %attrs;
+ type %InputType TEXT
+ name NAME #IMPLIED -- required for all but submit and reset --
+ value CDATA #IMPLIED -- required for radio buttons & checkboxes --
+ disabled (disabled) #IMPLIED -- read-only fields --
+ error CDATA #IMPLIED -- why field is in error --
+ checked (checked) #IMPLIED -- for radio buttons and check boxes --
+ size NUMBER #IMPLIED -- visible width of TEXT fields --
+ maxlength NUMBER #IMPLIED -- max number of chars for TEXT fields --
+ min %REAL #IMPLIED -- lower limit for RANGE fields --
+ max %REAL #IMPLIED -- upper limit for RANGE fields --
+ accept CDATA #IMPLIED -- list of MIME types for file fields --
+ src %URI #IMPLIED -- for fields with background images --
+ %url.link; -- standard link attributes --
+ align (top|middle|bottom|left|right) top
+ >
+
+<!--
+ SRC attribute added for graphical selection menus
+ The WIDTH, HEIGHT and UNITS attributes apply to the
+ image specified by the SRC attribute.
+ -->
+
+<!ELEMENT SELECT - - (OPTION+) -(INPUT|TEXTAREA|SELECT)>
+<!ATTLIST SELECT
+ %attrs;
+ name CDATA #REQUIRED
+ multiple (multiple) #IMPLIED
+ disabled (disabled) #IMPLIED -- read-only menu --
+ error CDATA #IMPLIED -- why selections are in error --
+ src %URI #IMPLIED -- for graphical selection menus --
+ %url.link; -- standard link attributes --
+ width NUMBER #IMPLIED -- desired width of in en's or pixels --
+ height NUMBER #IMPLIED -- desired height in en's or pixels --
+ units (en|pixels) pixels -- units for width and height --
+ align (top|middle|bottom|left|right) top
+ >
+
+<!ELEMENT OPTION - O (#PCDATA)>
+<!ATTLIST OPTION
+ %attrs;
+ selected (selected) #IMPLIED
+ value CDATA #IMPLIED -- default to element content --
+ shape %SHAPE; #IMPLIED -- for graphical selection menus --
+ disabled (disabled) #IMPLIED -- unselectable option --
+ error CDATA #IMPLIED -- why this choice is in error --
+ >
+
+<!--
+ Multi-line text input field. align=left or right
+ causes the field to float to margin and for
+ subsequent text to wrap around the field.
+-->
+
+<!ELEMENT TEXTAREA - - (#PCDATA) -(INPUT|TEXTAREA|SELECT)>
+<!ATTLIST TEXTAREA
+ %attrs;
+ name CDATA #REQUIRED
+ rows NUMBER #REQUIRED
+ cols NUMBER #REQUIRED
+ disabled (disabled) #IMPLIED -- read-only field --
+ error CDATA #IMPLIED -- why field is in error --
+ align (top|middle|bottom|left|right) top
+ >
+
+<!--======================= Captions ======================================-->
+
+<!ELEMENT CAPTION - - (%text;)+ -- table or figure caption -->
+<!ATTLIST CAPTION
+ %attrs;
+ align (top|bottom|left|right) #IMPLIED
+ >
+<!--======================= Tables ========================================-->
+
+<!--
+ Tables and figures can be aligned in several ways:
+
+ bleedleft flush left with the left (window) border
+ left flush left with the left text margin
+ center centered (text flow is disabled for this mode)
+ right flush right with the right text margin
+ bleedright flush right with the right (window) border
+ justify when applicable the table/figure should stretch
+ to fill space between the text margins
+
+ Note: text will flow around the table or figure if the browser
+ judges there is enough room and the alignment is not centered
+ or justified. The table or figure may itself be part of the
+ text flow around some earlier figure. You can in this case use
+ the clear or needs attributes to move the new table or figure
+ down the page beyond the obstructing earlier figure. Similarly,
+ you can use the clear or needs attributes with other elements
+ such as headers and lists to move them further down the page.
+-->
+
+<!ENTITY % block.align
+ "align (bleedleft|left|center|right|bleedright|justify) center">
+
+<!--
+ The HTML 3.0 table model has been chosen for its simplicity
+ and the ease in writing filters from common DTP packages.
+
+ By default the table is automatically sized according to the
+ cell contents and the current window size. Specifying the columns
+ widths using the colspec attribute allows browsers to start
+ displaying the table without having to wait for last row.
+
+ The colspec attribute is a list of column widths and alignment
+ specifications. The columns are listed from left to right with
+ a capital letter followed by a number, e.g. COLSPEC="L20 C8 L40".
+ The letter is L for left, C for center, R for right alignment of
+ cell contents. J is for justification, when feasible, otherwise
+ this is treated in the same way as L for left alignment.
+ Column entries are delimited by one or more space characters.
+
+ The number specifies the width in en's, pixels or as a
+ fractional value of the table width, as according to the
+ associated units attribute. This approach is more compact
+ than used with most SGML table models and chosen to simplify
+ hand entry. The width attribute allows you to specify the
+ width of the table in pixels, en units or as a percentage
+ of the space between the current left and right margins.
+
+ To assist with rendering to speech, row and column headers
+ can be given short names using the AXIS attribute. The AXES
+ attribute is used to explicitly specify the row and column
+ names for use with each cell. Otherwise browsers can follow
+ up columns and left along rows (right for some languages)
+ to find the corresponding header cells.
+
+ Table content model: Braille limits the width of tables,
+ placing severe limits on column widths. User agents need
+ to render big cells by moving the content to a note placed
+ before the table. The cell is then rendered as a link to
+ the corresponding note.
+
+ To assist with formatting tables to paged media, authors
+ can differentiate leading and trailing rows that are to
+ be duplicated when splitting tables across page boundaries.
+ The recommended way is to subclass rows with the CLASS attribute
+ For example: <TR CLASS=Header>, <TR CLASS=Footer> are used for
+ header and footer rows. Paged browsers insert footer rows at
+ the bottom of the current page and header rows at the top of
+ the new page, followed by the remaining body rows.
+-->
+
+<!ELEMENT TABLE - - (CAPTION?, TR*) -- mixed headers and data -->
+<!ATTLIST TABLE
+ %attrs;
+ %needs; -- for control of text flow --
+ border (border) #IMPLIED -- draw borders --
+ colspec CDATA #IMPLIED -- column widths and alignment --
+ units (en|pixels|relative) en -- units for column widths --
+ dp CDATA #IMPLIED -- decimal point e.g. dp="," --
+ width NUMBER #IMPLIED -- absolute or percentage width --
+ %block.align; -- horizontal alignment --
+ noflow (noflow) #IMPLIED -- noflow around table --
+ nowrap (nowrap) #IMPLIED -- don't wrap words --
+ >
+
+<!ENTITY % cell "TH | TD">
+<!ENTITY % horiz.align "left|center|right|justify">
+<!ENTITY % vert.align "top|middle|bottom|baseline">
+
+<!--
+ Browsers should tolerate an omission of the first <TR>
+ tag as it is implied by the context. Missing trailing
+ <TR>s implied by rowspans should be ignored.
+
+ The alignment attributes act as defaults for rows
+ overriding the colspec attribute and being in turn
+ overridden by alignment attributes on cell elements.
+ Use valign=baseline when you want to ensure that text
+ in different cells on the same row is aligned on the
+ same baseline regardless of fonts. It only applies
+ when the cells contain a single line of text.
+-->
+
+<!ELEMENT TR - O (%cell)* -- row container -->
+<!ATTLIST TR
+ %attrs;
+ align (%horiz.align) #IMPLIED -- horizontal alignment --
+ valign (%vert.align) top -- vertical alignment --
+ dp CDATA #IMPLIED -- decimal point e.g. dp="," --
+ nowrap (nowrap) #IMPLIED -- don't wrap words --
+ >
+
+<!--
+ Note that table cells can include nested tables.
+ Missing cells are considered to be empty, while
+ missing rows should be ignored, i.e. if a cell
+ spans a row and there are no further TR elements
+ then the implied row should be ignored.
+-->
+
+<!ELEMENT (%cell) - O %body.content>
+<!ATTLIST (%cell)
+ %attrs;
+ colspan NUMBER 1 -- columns spanned --
+ rowspan NUMBER 1 -- rows spanned --
+ align (%horiz.align) #IMPLIED -- horizontal alignment --
+ valign (%vert.align) top -- vertical alignment --
+ dp CDATA #IMPLIED -- decimal point e.g. dp="," --
+ nowrap (nowrap) #IMPLIED -- don't wrap words --
+ axis CDATA #IMPLIED -- axis name, defaults to element content --
+ axes CDATA #IMPLIED -- comma separated list of axis names --
+ >
+
+<!--====================== Figures ========================================-->
+
+<!--
+ The element contains text for use in non-graphical displays. Note that
+ you can use the shape attribute in anchors to specify hotzones on images.
+ This provides for local processing of pointer clicks and a unified method
+ for dealing with graphical and non-graphical displays.
+
+ Text is flowed around figures when the figure is left or right aligned.
+ You can request the browser to move down until there is enough room for
+ the next element, see the CLEAR and NEED attributes (in %needs)
+
+ Figures offer a path towards embedding arbitrary information formats
+ via some kind of OLE/OpenDoc mechanism.
+-->
+
+<!ELEMENT FIG - - (OVERLAY*, CAPTION?, FIGTEXT, CREDIT?) -(FIG|IMG)>
+<!ATTLIST FIG
+ %attrs;
+ %needs; -- for control of text flow --
+ src %URI; #REQUIRED -- URI of document to embed --
+ %url.link; -- standard link attributes --
+ %block.align; -- horizontal alignment --
+ noflow (noflow) #IMPLIED -- noflow around figure --
+ width NUMBER #IMPLIED -- desired width in units --
+ height NUMBER #IMPLIED -- desired height in units --
+ units (en|pixels) pixels -- specifies units as en's or pixels --
+ imagemap %URI; #IMPLIED -- pass background clicks to server --
+ >
+
+<!ELEMENT FIGTEXT O O %body.content -- dummy element -->
+
+<!--
+ Figure overlays. When combined with local caching, overlays
+ provide a cheap way of modifying a larger base image sent as
+ part of a previous page.
+-->
+
+<!ELEMENT OVERLAY - O EMPTY -- image overlay -->
+<!ATTLIST OVERLAY
+ src %URI; #REQUIRED -- URI of image overlay --
+ %url.link; -- standard link attributes --
+ units (en|pixels) pixels -- specifies units as en's or pixels --
+ x NUMBER 0 -- offset from left in units --
+ y NUMBER 0 -- offset from top in units --
+ width NUMBER #IMPLIED -- desired width in units --
+ height NUMBER #IMPLIED -- desired height in units --
+ imagemap %URI; #IMPLIED -- pass background clicks to server --
+ >
+
+<!ELEMENT CREDIT - - (%text;)* -- source of image -->
+<!ATTLIST CREDIT
+ %attrs;
+ >
+
+<!--======================== Notes ========================================-->
+
+<!--
+The NOTE element is used for admonishments. The CLASS attribute
+is used to differentiate NOTE's, e.g. Note, Caution or Warning.
+-->
+
+<!ELEMENT NOTE - - %body.content; -- admonishment -->
+<!ATTLIST NOTE
+ %attrs;
+ src %URI; #IMPLIED -- URI of custom graphic --
+ %url.link; -- standard link attributes --
+ %needs; -- for control of text flow --
+ >
+
+<!--======================== Footnotes ====================================-->
+
+<!--
+Typically rendered as popup note. These elements are referenced
+by hypertext links specified with the anchor element.
+-->
+<!ELEMENT FN - - %body.content;>
+<!ATTLIST FN %attrs;>
+
+<!--======================== Math ========================================-->
+
+<!-- Use &thinsp; &emsp; etc for greater control of spacing. -->
+
+<!-- Subscripts and Superscripts
+
+ <SUB> and <SUP> are used for subscripts and superscripts.
+
+ i j
+ X <SUP>i</SUP>Y<SUP>j</SUP> is X Y
+
+ i.e. the space following the X disambiguates the binding.
+ The align attribute can be used for horizontal alignment,
+ e.g. to explicitly place an index above an element:
+ i
+ X<sup align=center>i</sup> produces X
+
+Short references are defined for superscripts, subscripts and boxes
+to save typing when manually editing HTML math, e.g.
+
+ x^2^ is mapped to x<sup>2</sup>
+ y_z_ is mapped to y<sub>z</sub>
+ {a+b} is mapped to <box>a + b</box>
+
+Note that these only apply within the MATH element and can't be
+used in normal text!
+-->
+<!ENTITY REF1 STARTTAG "SUP">
+<!ENTITY REF2 ENDTAG "SUP">
+<!ENTITY REF3 STARTTAG "SUB">
+<!ENTITY REF4 ENDTAG "SUB">
+<!ENTITY REF5 STARTTAG "BOX">
+<!ENTITY REF6 ENDTAG "BOX">
+
+<!USEMAP MAP1 MATH>
+<!USEMAP MAP2 SUP>
+<!USEMAP MAP3 SUB>
+<!USEMAP MAP4 BOX>
+
+<!SHORTREF MAP1 "^" REF1
+ "_" REF3
+ "{" REF5 >
+
+<!SHORTREF MAP2 "^" REF2
+ "_" REF3
+ "{" REF5 >
+
+<!SHORTREF MAP3 "_" REF4
+ "^" REF1
+ "{" REF5 >
+
+<!SHORTREF MAP4 "}" REF6
+ "^" REF1
+ "_" REF3
+ "{" REF5 >
+
+<!--
+ The inclusion of %math and exclusion of %notmath is used here
+ to alter the content model for the B, SUB and SUP elements,
+ to limit them to formulae rather than general text elements.
+-->
+
+<!ENTITY % mathvec "VEC|BAR|DOT|DDOT|HAT|TILDE" -- common accents -->
+<!ENTITY % mathface "B|T|BT" -- control of font face -->
+<!ENTITY % math "BOX|ABOVE|BELOW|%mathvec|ROOT|SQRT|ARRAY|SUB|SUP|%mathface">
+<!ENTITY % formula "#PCDATA|%math">
+
+<!ELEMENT MATH - - (#PCDATA)* -(%notmath) +(%math)>
+<!ATTLIST MATH
+ id ID #IMPLIED
+ class NAMES #IMPLIED -- e.g. class=chem -->
+
+<!-- The BOX element acts as brackets. Delimiters are optional and
+ stretch to match the height of the box. The OVER element is used
+ when you want a line between numerator and denominator. This line
+ is suppressed with the alternative ATOP element. CHOOSE acts like
+ ATOP but adds enclosing round brackets as a convenience for binomial
+ coefficients. Note the use of { and } as shorthand for <BOX> and
+ </BOX> respectively:
+
+ 1 + X
+ {1 + X<OVER>Y} is _______
+ Y
+
+ a + b
+ {a + b<ATOP>c - d} is
+ c - d
+
+ The delimiters are represented using the LEFT and RIGHT
+ elements as in:
+
+ {[<LEFT>x + y<RIGHT>]} is [ x + y ]
+ {(<LEFT>a<RIGHT>]} is (a]
+ {||<LEFT>a<RIGHT>||} is || a ||
+
+ Use &lbrace; and &rbrace; for "{" and "}" respectively as
+ these symbols are used as shorthand for BOX, e.g.
+
+ {&lbrace;<LEFT>a+b<RIGHT>&rbrace;} is {a+b}
+
+ You can stretch definite integrals to match the integrand, e.g.
+
+ {&int;<SUB>a</SUB><SUP>b</SUP><LEFT>{f(x)<over>1+x} dx}
+
+ b
+ / f(x)
+ | ----- dx
+ / 1 + x
+ a
+
+ Note the complex content model for BOX is a work around
+ for the absence of support for infix operators in SGML.
+
+ You can get oversize delimiters with the SIZE attribute,
+ for example <BOX SIZE=large>(<LEFT>...<RIGHT>)</BOX>
+
+ Note that the names of common functions are recognized
+ by the parser without the need to use "&" and ";" around
+ them, e.g. int, sum, sin, cos, tan, ...
+-->
+
+<!ELEMENT BOX - - ((%formula)*, (LEFT, (%formula)*)?,
+ ((OVER|ATOP|CHOOSE), (%formula)*)?,
+ (RIGHT, (%formula)*)?)>
+<!ATTLIST BOX
+ size (normal|medium|large|huge) normal -- oversize delims -->
+
+<!ELEMENT (OVER|ATOP|CHOOSE|LEFT|RIGHT) - O EMPTY>
+
+<!-- Horizontal line drawn ABOVE contents
+ The symbol attribute allows authors to supply
+ an entity name for an accent, arrow symbol etc.
+ Generalisation of LaTeX's overline command.
+
+ e.g. <above sym=ssmile>x</above>
+ places an upwardly turning curve above the "x"
+ -->
+
+<!ELEMENT ABOVE - - (%formula)+>
+<!ATTLIST ABOVE sym ENTITY #IMPLIED>
+
+<!-- Horizontal line drawn BELOW contents
+ The symbol attribute allows authors to
+ supply an entity name for an arrow symbol etc.
+ Generalisation of LaTeX's underline command.
+ -->
+
+<!ELEMENT BELOW - - (%formula)+>
+<!ATTLIST BELOW sym ENTITY #IMPLIED>
+
+<!-- Convenience tags for common accents:
+ vec, bar, dot, ddot, hat and tilde
+-->
+
+<!ELEMENT (%mathvec) - - (%formula)+>
+
+<!--
+ T and BT are used to designate terms which should
+ be rendered in an upright font (& bold face for BT)
+-->
+
+<!ELEMENT (T|BT) - - (%formula)+>
+<!ATTLIST (T|BT) class NAMES #IMPLIED>
+
+<!-- Roots e.g. <ROOT>3<OF>1+x</ROOT> -->
+
+<!ELEMENT ROOT - - ((%formula)+, OF, (%formula)+)>
+<!ELEMENT OF - O (%formula)* -- what the root applies to -->
+
+<!ELEMENT SQRT - - (%formula)* -- square root convenience tag -->
+
+<!-- LaTeX like arrays. The COLDEF attribute specifies
+ a single capital letter for each column determining
+ how the column should be aligned, e.g. coldef="CCC"
+
+ "L" left
+ "C" center
+ "R" right
+
+ An optional separator letter can occur between columns
+ and should be one of + - or =, e.g. "C+C+C+C=C".
+ Whitespace within coldef is ignored. By default, the
+ columns are all centered.
+
+ The ALIGN attribute alters the vertical position of the
+ array as compared with preceding and following expressions.
+
+ Use LDELIM and RDELIM attributes for delimiter entities.
+ When the LABELS attribute is present, the array is
+ displayed with the first row and the first column as
+ labels displaced from the other elements. In this case,
+ the first element of the first row should normally be
+ left blank.
+
+ Use &vdots; &cdots; and &ddots; for vertical, horizontal
+ and diagonal ellipsis dots. Use &dotfill; to fill an array
+ cell with horizontal dots (e.g. for a full row).
+ Note &ldots; places the dots on the baseline, while &cdots;
+ places them higher up.
+-->
+
+<!ELEMENT ARRAY - - (ROW)+>
+<!ATTLIST ARRAY
+ align (top|middle|bottom) middle -- vertical alignment --
+ coldef CDATA #IMPLIED -- column alignment and separator --
+ ldelim CDATA #IMPLIED -- stretchy left delimiter --
+ rdelim CDATA #IMPLIED -- stretchy right delimiter --
+ labels (labels) #IMPLIED -- TeX's \bordermatrix style -->
+
+<!ELEMENT ROW - O (ITEM)*>
+<!ELEMENT ITEM - O (%formula)*>
+<!ATTLIST ITEM
+ align CDATA #IMPLIED -- override coldef alignment --
+ colspan NUMBER 1 -- merge columns as per TABLE --
+ rowspan NUMBER 1 -- merge rows as per TABLE -->
+
+<!--================ Document Head ========================================-->
+
+<![ %HTML.Deprecated [
+ <!ENTITY % head.content "TITLE & ISINDEX? & BASE? & STYLE?
+ & META* & LINK* & RANGE* & NEXTID?">
+]]>
+
+<!ENTITY % head.nextid "">
+
+<!ENTITY % head.content "TITLE & ISINDEX? & BASE? & STYLE?
+ & META* & LINK* & RANGE*">
+
+<!ELEMENT HEAD O O (%head.content)>
+
+<!ELEMENT LINK - O EMPTY>
+<!ATTLIST LINK
+ href %URI #REQUIRED
+ %linkExtraAttributes; >
+
+<!ELEMENT RANGE - O EMPTY>
+<!ATTLIST RANGE
+ id ID #IMPLIED -- for naming marked range --
+ class NAMES #IMPLIED -- for subclassing --
+ from IDREF #REQUIRED -- start of marked range --
+ until IDREF #REQUIRED -- end of marked range --
+ >
+
+<!ELEMENT ISINDEX - O EMPTY>
+<!ATTLIST ISINDEX
+ href %URI #IMPLIED -- server handling queries --
+ prompt CDATA #IMPLIED -- prompt message -->
+
+<!--
+ The BASE element gives the base URL for
+ dereferencing relative URLs, e.g.
+
+ <BASE href="http://foo.com/images">
+ ...
+ <IMG SRC="bar.gif">
+
+ The image is deferenced to
+
+ http://foo.com/images/bar.gif
+-->
+
+<!ELEMENT BASE - O EMPTY>
+<!ATTLIST BASE
+ id ID #IMPLIED
+ href %URI; #REQUIRED
+ >
+
+<![ %HTML.Deprecated [
+ <!ELEMENT NEXTID - O EMPTY>
+ <!ATTLIST NEXTID N CDATA #REQUIRED>
+]]>
+
+<!ELEMENT META - O EMPTY -- Generic Metainformation -->
+<!ATTLIST META
+ http-equiv NAME #IMPLIED -- HTTP response header name --
+ name NAME #IMPLIED -- metainformation name --
+ content CDATA #REQUIRED -- associated information --
+ >
+
+<!--
+ A style sheet can be associated with the document using the
+ LINK element, e.g. <LINK rel=style href="housestyle.dsssl">.
+ Style overrides can be placed in the document head using the
+ STYLE element, e.g.
+
+ <style notation=dsssl-lite>
+ dsss-lite stuff
+ </style>
+
+ Later on in the document you can use:
+
+ <h2 class=bigcaps>Header with bigger than normal capitals</h2>
+ <p class=abstract>A paragraph with a unique style of its own
+ ...
+
+ Statements in the given style notation
+
+ The tag names, class and id attributes are used in the style sheet
+ notation to describe how to render matching elements.
+-->
+
+<!ENTITY % style-notations "dsssl-lite | w3c-style">
+
+<!--
+<!NOTATION dsssl-lite PUBLIC
+ "ISO/IEC 10179:1995//NOTATION DSSSL Style Language//EN">
+
+<!NOTATION w3c-style PUBLIC "IETF/RFC nnn/W3C Style Language//EN">
+-->
+
+<!ELEMENT STYLE - O (#PCDATA)>
+<!ATTLIST STYLE
+ notation NOTATION (%style-notations;) #REQUIRED
+>
+
+<!--================ Document Structure ===================================-->
+
+<!ENTITY % html.content "HEAD, BODY">
+
+<!ELEMENT HTML O O (%html.content)>
+<!ENTITY % version.attr 'VERSION CDATA #FIXED "%HTML.Version;"'>
+
+<!-- suggested roles are: TOC, DOC, DOCPART, HITLIST, DIALOG -->
+
+<!ATTLIST HTML
+ %version.attr; -- report DTD version to application --
+ urn CDATA #IMPLIED -- universal resource name for this document --
+ class NAMES #IMPLIED -- role of this document, eg table of contents --
+ >
+
+<!-- The END -->
diff --git a/htdocs/sgml-lib/html-3s.dtd b/htdocs/sgml-lib/html-3s.dtd
new file mode 100644
index 0000000..fd2be97
--- /dev/null
+++ b/htdocs/sgml-lib/html-3s.dtd
@@ -0,0 +1,24 @@
+<!--
+ html3s.dtd
+
+ Document Type Definition for the HyperText Markup Language (HTML DTD)
+ with strict validation.
+
+-->
+
+<!ENTITY % HTML.Version
+ "-//W3O//DTD W3 HTML Strict 3.0//EN//"
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC "-//W3O//DTD W3 HTML Strict 3.0//EN//">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+<!ENTITY % HTML.Recommended "INCLUDE">
+
+<!ENTITY % html PUBLIC "-//W3O//DTD W3 HTML 3.0//EN//">
+%html;
diff --git a/htdocs/sgml-lib/html-970421.decl b/htdocs/sgml-lib/html-970421.decl
new file mode 100644
index 0000000..5138446
--- /dev/null
+++ b/htdocs/sgml-lib/html-970421.decl
@@ -0,0 +1,81 @@
+<!SGML "ISO 8879:1986"
+ --
+ SGML Declaration for HTML 3.2 + style
+
+ With support for ISO Latin-1 and increased limits
+ for tag and literal lengths etc.
+ --
+
+ CHARSET
+ BASESET "ISO 646:1983//CHARSET
+ International Reference Version
+ (IRV)//ESC 2/5 4/0"
+ DESCSET 0 9 UNUSED
+ 9 2 9
+ 11 2 UNUSED
+ 13 1 13
+ 14 18 UNUSED
+ 32 95 32
+ 127 1 UNUSED
+ BASESET "ISO Registration Number 100//CHARSET
+ ECMA-94 Right Part of
+ Latin Alphabet Nr. 1//ESC 2/13 4/1"
+ DESCSET 128 32 UNUSED
+ 160 96 32
+
+ CAPACITY SGMLREF
+ TOTALCAP 200000
+ GRPCAP 150000
+ ENTCAP 150000
+
+ SCOPE DOCUMENT
+ SYNTAX
+ SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+ 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127
+ BASESET "ISO 646:1983//CHARSET
+ International Reference Version
+ (IRV)//ESC 2/5 4/0"
+ DESCSET 0 128 0
+
+ FUNCTION
+ RE 13
+ RS 10
+ SPACE 32
+ TAB SEPCHAR 9
+
+ NAMING LCNMSTRT ""
+ UCNMSTRT ""
+ LCNMCHAR ".-"
+ UCNMCHAR ".-"
+ NAMECASE GENERAL YES
+ ENTITY NO
+ DELIM GENERAL SGMLREF
+ SHORTREF SGMLREF
+ NAMES SGMLREF
+ QUANTITY SGMLREF
+ ATTSPLEN 30000
+ LITLEN 30000
+ NAMELEN 239
+ PILEN 30000
+ TAGLVL 100
+ TAGLEN 30000
+ GRPGTCNT 150
+ GRPCNT 64
+
+ FEATURES
+ MINIMIZE
+ DATATAG NO
+ OMITTAG YES
+ RANK NO
+ SHORTTAG YES
+ LINK
+ SIMPLE NO
+ IMPLICIT NO
+ EXPLICIT NO
+ OTHER
+ CONCUR NO
+ SUBDOC NO
+ FORMAL YES
+ APPINFO NONE
+>
+
diff --git a/htdocs/sgml-lib/html-970421.dtd b/htdocs/sgml-lib/html-970421.dtd
new file mode 100644
index 0000000..494f828
--- /dev/null
+++ b/htdocs/sgml-lib/html-970421.dtd
@@ -0,0 +1,657 @@
+<!--
+ W3C Document Type Definition for the HyperText Markup Language
+ This version is code named Wilbur with Style
+
+ Draft: April 21st 1997
+
+ Author of original HTML 3.2 DTD: Dave Raggett <dsr@w3.org>
+
+ WD-style updates by:
+ Chris Lilley <chris@w3.org>
+ Dave Raggett <dsr@w3.org>
+
+ This Experimental HTML DTD adds support for Style Sheets,
+ as defined in WD-Style, to the HTML 3.2 DTD: ID, CLASS and
+ STYLE attributes on most elements, and the SPAN element.
+-->
+
+<!ENTITY % HTML.Version
+ "-//W3C//DTD HTML Experimental 970421//EN"
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Experimental 970421//EN">
+ <html>
+ ...
+ </html>
+ --
+>
+
+<!--================== Deprecated Features Switch ======================-->
+
+<!ENTITY % HTML.Deprecated "INCLUDE">
+
+<!--================== Imported Names ==================================-->
+
+<!ENTITY % Content-Type "CDATA"
+ -- meaning a MIME content type, as per RFC1521
+ -->
+
+<!ENTITY % HTTP-Method "GET | POST"
+ -- as per HTTP specification
+ -->
+
+<!ENTITY % URL "CDATA"
+ -- The term URL means a CDATA attribute
+ whose value is a Uniform Resource Locator,
+ See RFC1808 (June 95) and RFC1738 (Dec 94).
+ -->
+
+<!-- Parameter Entities -->
+
+<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK" -- repeatable head elements -->
+
+<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
+
+<!ENTITY % list "UL | OL | DIR | MENU">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % preformatted "PRE | XMP | LISTING">
+]]>
+
+<!ENTITY % preformatted "PRE">
+
+<!--================ Character mnemonic entities =======================-->
+
+<!ENTITY % ISOlat1 PUBLIC
+ "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML">
+%ISOlat1;
+
+<!--================ Entities for special symbols ======================-->
+<!-- &trade and &cbsp are not widely deployed and so not included here -->
+
+<!ENTITY copy CDATA "&#169" -- copyright sign -->
+<!ENTITY reg CDATA "&#174" -- registered sign -->
+<!ENTITY amp CDATA "&#38;" -- ampersand -->
+<!ENTITY gt CDATA "&#62;" -- greater than -->
+<!ENTITY lt CDATA "&#60;" -- less than -->
+<!ENTITY quot CDATA "&#34;" -- double quote -->
+<!ENTITY nbsp CDATA "&#160;" -- non breaking space -->
+
+<!--=================== Text Markup ====================================-->
+
+<!ENTITY % font "TT | I | B | U | STRIKE | BIG | SMALL | SUB | SUP">
+
+<!ENTITY % phrase "EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE">
+
+<!ENTITY % special "A|IMG|APPLET|BASEFONT|FONT|BR|SCRIPT|MAP|SPAN">
+
+<!ENTITY % form "INPUT | SELECT | TEXTAREA">
+
+<!ENTITY % text "#PCDATA | %font | %phrase | %special | %form">
+
+<!ENTITY % style
+ "id ID #IMPLIED -- document wide unique id --
+ class CDATA #IMPLIED -- comma list of class values --
+ style CDATA #IMPLIED -- associated style info --">
+
+<!ELEMENT (%font|%phrase) - - (%text)*>
+<!ATTLIST (%font|%phrase) %style;>
+
+<!-- there are also 16 widely known color names although
+ the resulting colors are implementation dependent:
+
+ aqua, black, blue, fuchsia, gray, green, lime, maroon,
+ navy, olive, purple, red, silver, teal, white, and yellow
+
+ These colors were originally picked as being the standard
+ 16 colors supported with the Windows VGA palette.
+ -->
+
+<!-- use span when other text-level elements are inappropriate -->
+<!ELEMENT SPAN - - (%text)* -- generic language/style container -->
+<!ATTLIST SPAN %style; >
+
+<!ELEMENT FONT - - (%text)* -- local change to font -->
+<!ATTLIST FONT
+ size CDATA #IMPLIED -- [+]nn e.g. size="+1", size=4 --
+ color CDATA #IMPLIED -- #RRGGBB in hex, e.g. red: color="#FF0000"
+--
+ %style;
+ >
+
+<!ELEMENT BASEFONT - O EMPTY -- base font size (1 to 7)-->
+<!ATTLIST BASEFONT
+ size CDATA #IMPLIED -- e.g. size=3 --
+ >
+
+<!ELEMENT BR - O EMPTY -- forced line break -->
+<!ATTLIST BR
+ clear (left|all|right|none) none -- control of text flow --
+ %style;
+ >
+
+<!--================== HTML content models =============================-->
+<!--
+ HTML has three basic content models:
+
+ %text character level elements and text strings
+ %flow block-like elements e.g. paragraphs and lists
+ %bodytext as %flow plus headers and ADDRESS
+-->
+
+<!ENTITY % block
+ "P | %list | %preformatted | DL | DIV | CENTER |
+ BLOCKQUOTE | FORM | ISINDEX | HR | TABLE">
+
+<!-- %flow is used for DD and LI -->
+
+<!ENTITY % flow "(%text | %block)*">
+
+<!--=================== Document Body ==================================-->
+
+<!ENTITY % body.content "(%heading | %text | %block | ADDRESS)*">
+
+<!ENTITY % color "CDATA" -- a color specification: #RRGGBB in hex -->
+
+<!ENTITY % body-color-attrs "
+ bgcolor %color #IMPLIED
+ text %color #IMPLIED
+ link %color #IMPLIED
+ vlink %color #IMPLIED
+ alink %color #IMPLIED
+ ">
+
+<!ELEMENT BODY O O %body.content>
+<!ATTLIST BODY
+ background %URL #IMPLIED -- texture tile for document background --
+ %body-color-attrs; -- bgcolor, text, link, vlink, alink --
+ %style;
+ >
+
+<!ENTITY % address.content "((%text;) | P)*">
+
+<!ELEMENT ADDRESS - - %address.content>
+<!ATTLIST ADDRESS %style; >
+
+<!ELEMENT DIV - - %body.content>
+<!ATTLIST DIV
+ align (left|center|right) #IMPLIED -- alignment of following text --
+ %style;
+ >
+
+<!-- CENTER is a shorthand for DIV with ALIGN=CENTER -->
+<!ELEMENT center - - %body.content>
+
+<!--================== The Anchor Element ==============================-->
+
+<!ELEMENT A - - (%text)* -(A)>
+<!ATTLIST A
+ name CDATA #IMPLIED -- named link end --
+ href %URL #IMPLIED -- URL for linked resource --
+ rel CDATA #IMPLIED -- forward link types --
+ rev CDATA #IMPLIED -- reverse link types --
+ title CDATA #IMPLIED -- advisory title string --
+ %style;
+ >
+
+<!--================== 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 -->
+
+<!ENTITY % SHAPE "(rect|circle|poly)">
+<!ENTITY % COORDS "CDATA" -- comma separated list of numbers -->
+
+<!ELEMENT MAP - - (AREA)*>
+<!ATTLIST MAP
+ name CDATA #IMPLIED
+ >
+
+<!ELEMENT AREA - O EMPTY>
+<!ATTLIST AREA
+ shape %SHAPE rect
+ coords %COORDS #IMPLIED -- defines coordinates for shape --
+ href %URL #IMPLIED -- this region acts as hypertext link --
+ nohref (nohref) #IMPLIED -- this region has no action --
+ alt CDATA #REQUIRED -- needed for non-graphical user agents --
+ >
+
+<!--================== The LINK Element ===============================-->
+
+<!ENTITY % Types "CDATA"
+ -- LINK has been part of HTML since the early days
+ although few browsers as yet take advantage of it.
+
+ Relationship values can be used in principle:
+
+ a) for document specific toolbars/menus when used
+ with the LINK element in document head:
+ 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/pdf version (rel=alternate media=print)
+-->
+<!ENTITY % MEDIA
+ "(print|screen|projection|braille|aural|all)"
+ --
+ Media values define the intended rendering medium for a style
+ sheet or other resource. It shouldn't be confused with the data
+ format used to encode that resource.
+ -->
+
+<!ELEMENT LINK - O EMPTY>
+<!ATTLIST LINK
+ href %URL #IMPLIED -- URL for linked resource --
+ rel %Types #IMPLIED -- forward link types --
+ rev %Types #IMPLIED -- reverse link types --
+ media %MEDIA all -- intended rendering medium --
+ title CDATA #IMPLIED -- advisory title string --
+ >
+
+<!--=================== Images =========================================-->
+
+<!ENTITY % Length "CDATA" -- nn for pixels or nn% for percentage length -->
+<!ENTITY % Pixels "CDATA" -- integer representing length in pixels -->
+
+<!-- Suggested widths are used for negotiating image size
+ with the module responsible for painting the image.
+ align=left or right cause image to float to margin
+ and for subsequent text to wrap around image -->
+
+<!ENTITY % IAlign "(top|middle|bottom|left|right)">
+
+<!ELEMENT IMG - O EMPTY -- Embedded image -->
+<!ATTLIST IMG
+ src %URL #REQUIRED -- URL of image to embed --
+ alt CDATA #IMPLIED -- for display in place of image --
+ align %IAlign #IMPLIED -- vertical or horizontal alignment --
+ height %Pixels #IMPLIED -- suggested height in pixels --
+ width %Pixels #IMPLIED -- suggested width in pixels --
+ border %Pixels #IMPLIED -- suggested link border width --
+ hspace %Pixels #IMPLIED -- suggested horizontal gutter --
+ vspace %Pixels #IMPLIED -- suggested vertical gutter --
+ usemap %URL #IMPLIED -- use client-side image map --
+ ismap (ismap) #IMPLIED -- use server image map --
+ %style;
+ >
+
+<!-- USEMAP points to a MAP element which may be in this document
+ or an external document, although the latter is not widely supported -->
+
+<!--=================== Java APPLET tag ================================-->
+<!--
+ This tag is supported by all Java enabled browsers. CODEBASE specifies
+ the base URL of the applet - the directory that contains the applet's
+ code. If this attribute is missing the documents base URL is used
+ instead. One of CODE or OBJECT must be present. Archive files speed
+ loading of applets through a compressed wrapper for applet resources.
+ The ALT attribute gives text to display if the browser understands
+ the APPLET tag but can't run Java applets. WIDTH, HEIGHT, ALIGN,
+ HSPACE and VSPACE are defined in the same way as for IMG elements.
+-->
+<!ELEMENT APPLET - - (PARAM | %text)*>
+<!ATTLIST APPLET
+ codebase %URL #IMPLIED -- optional base URL for applet --
+ archive CDATA #IMPLIED -- comma separated archive list --
+ code CDATA #IMPLIED -- applet class file --
+ object CDATA #IMPLIED -- serialized applet file --
+ alt CDATA #IMPLIED -- for display in place of applet --
+ name CDATA #IMPLIED -- allows applets to find each other --
+ width %Pixels #REQUIRED -- suggested width in pixels --
+ height %Pixels #REQUIRED -- suggested height in pixels --
+ align %IAlign #IMPLIED -- vertical or horizontal alignment --
+ hspace %Pixels #IMPLIED -- suggested horizontal gutter --
+ vspace %Pixels #IMPLIED -- suggested vertical gutter --
+ >
+
+<!ELEMENT PARAM - O EMPTY>
+<!ATTLIST PARAM
+ name NMTOKEN #REQUIRED -- The name of the parameter --
+ value CDATA #IMPLIED -- The value of the parameter --
+ >
+
+<!--
+Here is an example:
+
+ <applet codebase="applets/NervousText"
+ code=NervousText.class
+ width=300
+ height=50>
+ <param name=text value="Java is Cool!">
+ <img src=sorry.gif alt="This looks better with Java support">
+ </applet>
+-->
+
+<!--=================== Horizontal Rule ================================-->
+
+<!ELEMENT HR - O EMPTY>
+<!ATTLIST HR
+ align (left|right|center) #IMPLIED
+ noshade (noshade) #IMPLIED
+ size %Pixels #IMPLIED
+ width %Length #IMPLIED
+ %style;
+ >
+<!--=================== Paragraphs======================================-->
+
+<!ELEMENT P - O (%text)*>
+<!ATTLIST P
+ align (left|center|right) #IMPLIED
+ %style;
+ >
+
+<!--=================== Headings =======================================-->
+
+<!--
+ There are six levels of headers from H1 (the most important)
+ to H6 (the least important).
+-->
+
+<!ELEMENT ( %heading ) - - (%text;)*>
+<!ATTLIST ( %heading )
+ align (left|center|right) #IMPLIED
+ %style;
+ >
+
+<!--=================== Preformatted Text ==============================-->
+
+<!-- excludes images and changes in font size to preserve column alignment --
+>
+
+<!ENTITY % pre.exclusion "IMG|BIG|SMALL|SUB|SUP|FONT">
+
+<!ELEMENT PRE - - (%text)* -(%pre.exclusion)>
+<!ATTLIST PRE
+ width NUMBER #implied -- is this widely supported? --
+ %style;
+ >
+
+<![ %HTML.Deprecated [
+
+<!ENTITY % literal "CDATA"
+ -- historical, non-conforming parsing mode where
+ the only markup signal is the end tag
+ in full
+ -->
+
+<!ELEMENT (XMP|LISTING) - - %literal>
+<!ELEMENT PLAINTEXT - O %literal>
+
+]]>
+
+<!--=================== Block-like Quotes ==============================-->
+
+<!ELEMENT BLOCKQUOTE - - %body.content>
+<!ATTLIST BLOCKQUOTE %style;>
+<!--=================== Lists ==========================================-->
+
+<!--
+ HTML 3.2 allows you to control the sequence number for ordered lists.
+ You can set the sequence number with the START and VALUE attributes.
+ The TYPE attribute may be used to specify the rendering of ordered
+ and unordered lists.
+-->
+
+<!-- definition lists - DT for term, DD for its definition -->
+
+<!ELEMENT DL - - (DT|DD)+>
+<!ATTLIST DL
+ compact (compact) #IMPLIED -- more compact style --
+ %style;
+ >
+
+<!ELEMENT DT - O (%text)*>
+<!ATTLIST DT %style;>
+<!ELEMENT DD - O %flow;>
+<!ATTLIST DD %style;>
+
+<!-- Ordered lists OL, and unordered lists UL -->
+<!ELEMENT (OL|UL) - - (LI)+>
+
+<!--
+ 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] -->
+
+<!ATTLIST OL -- ordered lists --
+ type %OLStyle #IMPLIED -- numbering style --
+ start NUMBER #IMPLIED -- starting sequence number --
+ compact (compact) #IMPLIED -- reduced interitem spacing --
+ %style;
+ >
+
+<!-- bullet styles -->
+
+<!ENTITY % ULStyle "disc|square|circle">
+
+<!ATTLIST UL -- unordered lists --
+ type (%ULStyle) #IMPLIED -- bullet style --
+ compact (compact) #IMPLIED -- reduced interitem spacing --
+ %style;
+ >
+
+<!ELEMENT (DIR|MENU) - - (LI)+ -(%block)>
+<!ATTLIST DIR
+ compact (compact) #IMPLIED
+ %style;
+ >
+<!ATTLIST MENU
+ compact (compact) #IMPLIED
+ %style;
+ >
+
+<!-- <DIR> Directory list -->
+<!-- <DIR COMPACT> Compact list style -->
+<!-- <MENU> Menu list -->
+<!-- <MENU COMPACT> Compact list style -->
+
+<!-- The type attribute can be used to change the bullet style
+ in unordered lists and the numbering style in ordered lists -->
+
+<!ENTITY % LIStyle "CDATA" -- constrained to: "(%ULStyle|%OLStyle)" -->
+
+<!ELEMENT LI - O %flow -- list item -->
+<!ATTLIST LI
+ type %LIStyle #IMPLIED -- list item style --
+ value NUMBER #IMPLIED -- reset sequence number --
+ %style;
+ >
+
+<!--================ Forms ============================================-->
+
+<!ELEMENT FORM - - %body.content -(FORM)>
+<!ATTLIST FORM
+ action %URL #IMPLIED -- server-side form handler --
+ method (%HTTP-Method) GET -- see HTTP specification --
+ enctype %Content-Type; "application/x-www-form-urlencoded"
+ %style;
+ >
+
+<!ENTITY % InputType
+ "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT
+ | RESET | FILE | HIDDEN | IMAGE)">
+
+<!ELEMENT INPUT - O EMPTY>
+<!ATTLIST INPUT
+ type %InputType TEXT -- what kind of widget is needed --
+ name CDATA #IMPLIED -- required for all but submit and reset --
+ value CDATA #IMPLIED -- required for radio and checkboxes --
+ checked (checked) #IMPLIED -- for radio buttons and check boxes --
+ size CDATA #IMPLIED -- specific to each type of field --
+ maxlength NUMBER #IMPLIED -- max chars allowed in text fields --
+ src %URL #IMPLIED -- for fields with background images --
+ align %IAlign #IMPLIED -- image alignment --
+ usemap %URL #IMPLIED -- use client-side image map --
+ hspace %Pixels #IMPLIED -- suggested horizontal gutter --
+ vspace %Pixels #IMPLIED -- suggested vertical gutter --
+ %style;
+ >
+
+<!ELEMENT SELECT - - (OPTION+)>
+<!ATTLIST SELECT
+ name CDATA #REQUIRED
+ size NUMBER #IMPLIED
+ multiple (multiple) #IMPLIED
+ %style;
+ >
+
+<!ELEMENT OPTION - O (#PCDATA)*>
+<!ATTLIST OPTION
+ selected (selected) #IMPLIED
+ value CDATA #IMPLIED -- defaults to element content --
+ %style;
+ >
+
+<!-- Multi-line text input field. -->
+
+<!ELEMENT TEXTAREA - - (#PCDATA)*>
+<!ATTLIST TEXTAREA
+ name CDATA #REQUIRED
+ rows NUMBER #REQUIRED
+ cols NUMBER #REQUIRED
+ %style;
+ >
+
+<!--======================= Tables =====================================-->
+
+<!-- Widely deployed subset of the full table standard, see RFC 1942
+ e.g. at http://www.ics.uci.edu/pub/ietf/html/rfc1942.txt -->
+
+<!-- horizontal placement of table relative to window -->
+<!ENTITY % Where "(left|center|right)">
+
+<!-- horizontal alignment attributes for cell contents -->
+<!ENTITY % cell.halign
+ "align (left|center|right) #IMPLIED"
+ >
+
+<!-- vertical alignment attributes for cell contents -->
+<!ENTITY % cell.valign
+ "valign (top|middle|bottom) #IMPLIED"
+ >
+
+<!ELEMENT TABLE - - (CAPTION?, TR+)>
+<!ELEMENT TR - O (TH|TD)*>
+<!ELEMENT (TH|TD) - O %body.content>
+
+<!ATTLIST TABLE -- table element --
+ align %Where #IMPLIED -- table position relative to window --
+ width %Length #IMPLIED -- table width relative to window --
+ border %Pixels #IMPLIED -- controls frame width around table --
+ cellspacing %Pixels #IMPLIED -- spacing between cells --
+ cellpadding %Pixels #IMPLIED -- spacing within cells --
+ %style;
+ >
+
+<!ELEMENT CAPTION - - (%text;)* -- table or figure caption -->
+<!ATTLIST CAPTION
+ align (top|bottom) #IMPLIED
+ %style;
+ >
+
+<!ATTLIST TR -- table row --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ %style;
+ >
+
+<!ATTLIST (TH|TD) -- header or data cell --
+ nowrap (nowrap) #IMPLIED -- suppress word wrap --
+ rowspan NUMBER 1 -- number of rows spanned by cell --
+ colspan NUMBER 1 -- number of cols spanned by cell --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ width %Pixels #IMPLIED -- suggested width for cell --
+ height %Pixels #IMPLIED -- suggested height for cell --
+ %style;
+ >
+
+<!--================ Document Head =====================================-->
+
+<!-- %head.misc defined earlier on as "SCRIPT|STYLE|META|LINK" -->
+
+<!ENTITY % head.content "TITLE & ISINDEX? & BASE?">
+
+<!ELEMENT HEAD O O (%head.content) +(%head.misc)>
+
+<!ELEMENT TITLE - - (#PCDATA)* -(%head.misc)
+ -- 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.
+ -->
+
+<!ELEMENT ISINDEX - O EMPTY>
+<!ATTLIST ISINDEX
+ prompt CDATA #IMPLIED -- prompt message --
+ %style;
+ >
+
+<!--
+ The BASE element gives an absolute URL for dereferencing relative
+ URLs, e.g.
+
+ <BASE href="http://foo.com/index.html">
+ ...
+ <IMG SRC="images/bar.gif">
+
+ The image is deferenced to
+
+ http://foo.com/images/bar.gif
+
+ In the absence of a BASE element the document URL should be used.
+ Note that this is not necessarily the same as the URL used to
+ request the document, as the base URL may be overridden by an HTTP
+ header accompanying the document.
+-->
+
+<!ELEMENT BASE - O EMPTY>
+<!ATTLIST BASE
+ href %URL #REQUIRED
+ >
+
+<!ELEMENT META - O EMPTY -- Generic Metainformation -->
+<!ATTLIST META
+ http-equiv NAME #IMPLIED -- HTTP response header name --
+ name NAME #IMPLIED -- metainformation name --
+ content CDATA #REQUIRED -- associated information --
+ >
+
+<!ELEMENT STYLE - - CDATA -- style info -->
+<!ATTLIST STYLE
+ type CDATA #IMPLIED -- Internet media type for style --
+ title CDATA #IMPLIED -- advisory title for this style --
+ media %MEDIA ALL -- intended rendering medium --
+ >
+
+<!-- SCRIPT is a place holder for transition to next version of HTML -->
+<!ELEMENT SCRIPT - - CDATA -- script statements -->
+
+<!--================ Document Structure ================================-->
+
+<!ENTITY % version.attr "VERSION CDATA #FIXED '%HTML.Version;'">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % html.content "HEAD, BODY, PLAINTEXT?">
+]]>
+<!ENTITY % html.content "HEAD, BODY">
+
+<!ELEMENT HTML O O (%html.content)>
+<!ATTLIST HTML
+ %version.attr;
+ %style;
+ >
+
diff --git a/htdocs/sgml-lib/html-cougar.dtd b/htdocs/sgml-lib/html-cougar.dtd
new file mode 100644
index 0000000..399ec24
--- /dev/null
+++ b/htdocs/sgml-lib/html-cougar.dtd
@@ -0,0 +1,866 @@
+<!--
+ This is an EXPERIMENTAL version of HTML (code named Cougar) that
+ extends HTML 3.2 to add support for work by the HTML ERB, including
+ style sheets, scripting, the object tag, internationalization and
+ some extensions to forms. The frame tags will probably be added
+ once we have an agreed definition for them.
+
+ Draft: Wednesday 10-July-96
+
+ Author: Dave Raggett <dsr@w3.org>
+
+ This is SUBJECT TO CHANGE, pending final approval by member
+ organizations of the World Wide Web Consortium.
+-->
+
+<!ENTITY % HTML.Version
+ "-//W3C//DTD HTML Experimental 19960710//EN"
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Experimental 19960710//EN">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+<!--================== Deprecated Features Switch =========================-->
+
+<!ENTITY % HTML.Deprecated "INCLUDE">
+
+<!--================== Imported Names =====================================-->
+
+<!ENTITY % Content-Type "CDATA"
+ -- meaning a MIME content type, as per RFC1521
+ -->
+
+<!ENTITY % HTTP-Method "GET | POST"
+ -- as per HTTP specification
+ -->
+
+<!ENTITY % URL "CDATA"
+ -- The term URL means a CDATA attribute
+ whose value is a Uniform Resource Locator,
+ See RFC1808 (June 95) and RFC1738 (Dec 94).
+ -->
+
+<!ENTITY % script "CDATA" -- scriptlet -->
+
+<!-- Parameter Entities -->
+
+<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK" -- repeatable head elements -->
+
+<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
+
+<!ENTITY % list "UL | OL | DIR | MENU">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % preformatted "PRE | XMP | LISTING">
+]]>
+
+<!ENTITY % preformatted "PRE">
+
+<!--================ Character mnemonic entities ==========================-->
+
+<!ENTITY % ISOlat1 PUBLIC
+ "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML">
+%ISOlat1;
+
+<!--================ Entities for special symbols =========================-->
+
+<!ENTITY copy CDATA "&#169" -- copyright sign -->
+<!ENTITY reg CDATA "&#174" -- registered sign -->
+<!ENTITY amp CDATA "&#38;" -- ampersand -->
+<!ENTITY gt CDATA "&#62;" -- greater than -->
+<!ENTITY lt CDATA "&#60;" -- less than -->
+<!ENTITY quot CDATA "&#34;" -- double quote -->
+<!ENTITY nbsp CDATA "&#160;" -- non breaking space -->
+<!ENTITY trade CDATA "&#8482;" -- trade mark symbol -->
+<!ENTITY shy CDATA "&#173;" -- soft hyphen -->
+<!ENTITY thinsp CDATA "&#8201;" -- thin space -->
+<!ENTITY emsp CDATA "&#8195;" -- em space -->
+<!ENTITY ensp CDATA "&#8194;" -- en space -->
+<!ENTITY emdash CDATA "&#8212;" -- em dash -->
+<!ENTITY endash CDATA "&#8211;" -- en dash -->
+
+<!-- Language-dependent BIDI and contextual analysis -->
+<!ENTITY zwnj CDATA "&#8204;" -- zero width non-joiner -->
+<!ENTITY zwj CDATA "&#8205;" -- zero width joiner -->
+<!ENTITY lrm CDATA "&#8206;" -- left-to-right mark -->
+<!ENTITY rlm CDATA "&#8207;" -- right-to-left mark -->
+
+<!--=================== Generic Attributes ================================-->
+
+<!ENTITY % style
+ "id ID #IMPLIED -- document wide unique id --
+ class CDATA #IMPLIED -- comma list of class values --
+ style CDATA #IMPLIED -- associated style info --"
+ >
+
+<!ENTITY % i18n
+ "lang NAME #IMPLIED -- RFC 1766 language value --
+ dir (ltr|rtl) #IMPLIED -- default directionality --"
+ >
+
+<!ENTITY % attrs "%style %i18n">
+
+<!ENTITY % just
+ "align (left|center|right|justify) #IMPLIED"
+ -- default is left for ltr paragraphs, right for rtl --
+ >
+
+<!--=================== Text Markup =======================================-->
+
+<!ENTITY % font "TT | I | B | U | S | BIG | SMALL | SUB | SUP">
+
+<!ENTITY % phrase "EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE | Q">
+
+<!ENTITY % special "A|IMG|APPLET|OBJECT|FONT|BR|SCRIPT|STYLE|MAP|SPAN|BDO">
+
+<!ENTITY % form "INPUT | SELECT | TEXTAREA | LABEL">
+
+<!ENTITY % text "#PCDATA | %font | %phrase | %special | %form">
+
+<!ELEMENT (%font|%phrase) - - (%text)*>
+<!ATTLIST (%font|%phrase) %attrs>
+
+<!-- There are also 16 widely known color names:
+
+ 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
+
+ These colors were originally picked as being the standard
+ 16 colors supported with the Windows VGA palette. The above
+ gives the sRGB values in hex (#RRGGBB).
+ -->
+
+<!ELEMENT SPAN - - (%text)* -- generic language/style container -->
+<!ATTLIST SPAN %attrs>
+
+<!ELEMENT BDO - - (%text)* -- I18N BiDi over-ride -->
+<!ATTLIST BDO
+ lang NAME #IMPLIED -- RFC 1766 language value --
+ dir (ltr|rtl) #REQUIRED -- directionality --
+ >
+
+<!ELEMENT FONT - - (%text)* -- local change to font -->
+<!ATTLIST FONT
+ size CDATA #IMPLIED -- [+]nn e.g. size="+1", size=4 --
+ color CDATA #IMPLIED -- #RRGGBB in hex, e.g. red: color="#FF0000" --
+ face CDATA #IMPLIED -- comma separated list of font names --
+ >
+
+<!ELEMENT BR - O EMPTY -- forced line break -->
+<!ATTLIST BR
+ %attrs; -- id, class, style, lang, dir --
+ clear (left|all|right|none) none -- control of text flow --
+ >
+
+<!--================== HTML content models ================================-->
+<!--
+ HTML has three basic content models:
+
+ %text character level elements and text strings
+ %flow block-like elements e.g. paragraphs and lists
+ %bodytext as (b) plus headers and ADDRESS
+-->
+
+<!ENTITY % block
+ "P | %list | %preformatted | DL | DIV | CENTER |
+ BLOCKQUOTE | FORM | ISINDEX | HR | TABLE | FIELDSET">
+
+<!-- %flow is used for DD and LI -->
+
+<!ENTITY % flow "(%text | %block)*">
+
+<!--=================== Document Body =====================================-->
+
+<!ENTITY % body.content "(%heading | %text | %block | ADDRESS)*">
+
+<!ENTITY % color "CDATA" -- a color specification: #HHHHHH @@ details? -->
+
+<!ENTITY % body-color-attrs "
+ bgcolor %color #IMPLIED
+ text %color #IMPLIED
+ link %color #IMPLIED
+ vlink %color #IMPLIED
+ alink %color #IMPLIED
+ ">
+
+<!ELEMENT BODY O O %body.content>
+<!ATTLIST BODY
+ %attrs; -- id, class, style, lang, dir --
+ background %URL #IMPLIED -- texture tile for document background --
+ %body-color-attrs; -- bgcolor, text, link, vlink, alink --
+ onLoad %script #IMPLIED -- intrinsic event --
+ onUnload %script #IMPLIED -- intrinsic event --
+ >
+
+<!ENTITY % address.content "((%text;) | P)*">
+
+<!ELEMENT ADDRESS - - %address.content>
+
+<!ELEMENT DIV - - %body.content>
+<!ATTLIST DIV
+ %attrs; -- id, class, style, lang, dir --
+ %just; -- alignment of following text --
+ >
+
+<!-- CENTER is a shorthand for DIV with ALIGN=CENTER -->
+<!ELEMENT center - - %body.content>
+
+<!--================== The Anchor Element =================================-->
+<!-- see WD-object draft for OBJECT client-side imagemap extensions -->
+
+<!ENTITY % SHAPE "(rect|circle|poly|default)">
+<!ENTITY % COORDS "CDATA" -- comma separated list of numbers -->
+
+<!ELEMENT A - - (%text)* -(A)>
+<!ATTLIST A
+ %attrs; -- id, class, style, lang, dir --
+ name CDATA #IMPLIED -- named link end --
+ href %URL #IMPLIED -- URL for linked resource --
+ rel CDATA #IMPLIED -- forward link types --
+ rev CDATA #IMPLIED -- reverse link types --
+ title CDATA #IMPLIED -- advisory title string --
+ accesskey CDATA #IMPLIED -- accessibility key character --
+ shape %SHAPE rect -- for use with OBJECT SHAPES --
+ coords %COORDS #IMPLIED -- for use with OBJECT SHAPES --
+ tabindex NUMBER #IMPLIED -- position in tabbing order --
+ notab (notab) #IMPLIED -- exclude from tabbing order --
+ onClick %script #IMPLIED -- intrinsic event --
+ onMouseOver %script #IMPLIED -- intrinsic event --
+ onMouseOut %script #IMPLIED -- intrinsic event --
+ >
+
+<!--================== 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 - - (AREA)*>
+<!ATTLIST MAP
+ name CDATA #IMPLIED
+ >
+
+<!ELEMENT AREA - O EMPTY>
+<!ATTLIST AREA
+ shape %SHAPE rect
+ coords %COORDS #IMPLIED -- always needed except for shape=default --
+ href %URL #IMPLIED -- this region acts as hypertext link --
+ nohref (nohref) #IMPLIED -- this region has no action --
+ alt CDATA #REQUIRED -- label for text only browsers --
+ tabindex NUMBER #IMPLIED -- position in tabbing order --
+ notab (notab) #IMPLIED -- exclude from tabbing order --
+ onClick %script #IMPLIED -- intrinsic event --
+ onMouseOver %script #IMPLIED -- intrinsic event --
+ onMouseOut %script #IMPLIED -- intrinsic event --
+ >
+
+<!--================== The LINK Element ==================================-->
+
+<!ENTITY % Types "CDATA"
+ -- See Internet Draft: draft-ietf-html-relrev-00.txt
+ LINK has been part of HTML since the early days
+ although few browsers as yet take advantage of it.
+
+ Relationship values can be used in principle:
+
+ a) for document specific toolbars/menus when used
+ with the LINK element in document head:
+ 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=print)
+-->
+
+<!ELEMENT LINK - O EMPTY>
+<!ATTLIST LINK
+ %style; -- id, class, style --
+ href %URL #IMPLIED -- URL for linked resource --
+ rel %Types #IMPLIED -- forward link types --
+ rev %Types #IMPLIED -- reverse link types --
+ title CDATA #IMPLIED -- advisory title string --
+ type CDATA #IMPLIED -- advisory Internet media type --
+ >
+
+<!--=================== Images ============================================-->
+
+<!ENTITY % Length "CDATA" -- nn for pixels or nn% for percentage length -->
+<!ENTITY % Pixels "CDATA" -- integer representing length in pixels -->
+
+<!-- Suggested widths are used for negotiating image size
+ with the module responsible for painting the image.
+ align=left or right cause image to float to margin
+ and for subsequent text to wrap around image -->
+
+<!ENTITY % IAlign "(top|middle|bottom|left|right)" -- center? -->
+
+<!ELEMENT IMG - O EMPTY -- Embedded image -->
+<!ATTLIST IMG
+ %style; -- id, class, style --
+ src %URL #REQUIRED -- URL of image to embed --
+ alt CDATA #IMPLIED -- for display in place of image --
+ align %IAlign #IMPLIED -- vertical or horizontal alignment --
+ height %Pixels #IMPLIED -- suggested height in pixels --
+ width %Pixels #IMPLIED -- suggested width in pixels --
+ border %Pixels #IMPLIED -- suggested link border width --
+ hspace %Pixels #IMPLIED -- suggested horizontal gutter --
+ vspace %Pixels #IMPLIED -- suggested vertical gutter --
+ usemap %URL #IMPLIED -- use client-side image map --
+ ismap (ismap) #IMPLIED -- use server image map --
+ title CDATA #IMPLIED -- advisory title string --
+ >
+
+<!-- USEMAP points to a MAP element which may be in this document
+ or an external document, although the latter is not widely supported -->
+
+<!--=================== OBJECT tag ===================================-->
+<!-- OBJECT is a character-like element for inserting objects, see
+ W3C working draft: http://www.w3.org/pub/WWW/TR/WD-object.html -->
+
+<!ENTITY % OAlign "(texttop|middle|textmiddle|baseline|
+ textbottom|left|center|right)">
+
+<!ELEMENT OBJECT - - (param | %body.content)*>
+<!ATTLIST OBJECT
+ %attrs -- id, class, style, lang, dir --
+ declare (declare) #IMPLIED -- declare but don't instantiate flag --
+ classid %URL #IMPLIED -- identifies an implementation --
+ codebase %URL #IMPLIED -- some systems need an additional URL --
+ data %URL #IMPLIED -- reference to object's data --
+ type CDATA #IMPLIED -- Internet media type for data --
+ codetype CDATA #IMPLIED -- Internet media type for code --
+ standby CDATA #IMPLIED -- message to show while loading --
+ align %OAlign #IMPLIED -- positioning inside document --
+ height %Length #IMPLIED -- suggested height --
+ width %Length #IMPLIED -- suggested width --
+ border %Length #IMPLIED -- suggested link border width --
+ hspace %Length #IMPLIED -- suggested horizontal gutter --
+ vspace %Length #IMPLIED -- suggested vertical gutter --
+ usemap %URL #IMPLIED -- reference to image map --
+ shapes (shapes) #IMPLIED -- object has shaped hypertext links --
+ name %URL #IMPLIED -- submit as part of form --
+ title CDATA #IMPLIED -- advisory title string --
+ tabindex NUMBER #IMPLIED -- position in tabbing order --
+ notab (notab) #IMPLIED -- exclude from tabbing order --
+ >
+
+<!ELEMENT param - O EMPTY -- named property value -->
+<!ATTLIST param
+ name CDATA #REQUIRED -- property name --
+ value CDATA #IMPLIED -- property value --
+ valuetype (DATA|REF|OBJECT) DATA -- How to interpret value --
+ type CDATA #IMPLIED -- Internet media type --
+ >
+
+<!--=================== Java APPLET tag ===================================-->
+<!--
+ This tag is supported by all java enabled browsers. Applet resources
+ (including their classes) are normally loaded relative to the document
+ URL (or <BASE> element if it is defined). The CODEBASE attribute is used
+ to change this default behavior. If the CODEBASE attribute is defined then
+ it specifies a different location to find applet resources. The value
+ can be an absolute URL or a relative URL. The absolute URL is used as is
+ without modification and is not effected by the documents <BASE> element.
+ When the codebase attribute is relative, then it is relative to the
+ document URL (or <BASE> tag if defined). <TEXTFLOW> avoids the problems
+ with SGML mixed content. It can always be omitted *except* when the APPLET
+ element hasn't any content. White space, comments and PARAM elements
+ don't count as content for this purpose. TEXTFLOW was introduced into
+ the DTD to satisfy SGML parsers, but is ignored by current Web browsers.
+-->
+<!ELEMENT APPLET - - (PARAM*, TEXTFLOW)>
+<!ATTLIST APPLET
+ %style; -- id, class, style --
+ codebase %URL #IMPLIED -- code base --
+ code CDATA #REQUIRED -- class file --
+ name CDATA #IMPLIED -- applet name --
+ alt CDATA #IMPLIED -- for display in place of applet --
+ align %IAlign #IMPLIED -- vertical or horizontal alignment --
+ height %Pixels #REQUIRED -- suggested height in pixels --
+ width %Pixels #REQUIRED -- suggested width in pixels --
+ hspace %Pixels #IMPLIED -- suggested horizontal gutter --
+ vspace %Pixels #IMPLIED -- suggested vertical gutter --
+ title CDATA #IMPLIED -- advisory title string --
+ download NUMBER #IMPLIED -- image download order --
+ >
+
+<!ELEMENT TEXTFLOW O O (%text)* -- needed to bypass mixed content model -->
+
+<!--
+Here is an example:
+
+ <applet codebase="applets/NervousText"
+ code=NervousText.class
+ width=300
+ height=50>
+ <param name=text value="Java is Cool!">
+ <img src=sorry.gif alt="This looks better with Java support">
+ </applet>
+-->
+
+<!--=================== Horizontal Rule ===================================-->
+
+<!ELEMENT HR - O EMPTY>
+<!ATTLIST HR
+ %style; -- id, class, style --
+ align (left|right|center) #IMPLIED
+ noshade (noshade) #IMPLIED
+ size %Pixels #IMPLIED
+ width %Length #IMPLIED
+ >
+<!--=================== Paragraphs=========================================-->
+
+<!ELEMENT P - O (%text)*>
+<!ATTLIST P
+ %attrs; -- id, class, style, lang, dir --
+ %just; -- text alignment --
+ >
+
+<!--=================== Headings ==========================================-->
+
+<!--
+ There are six levels of headers from H1 (the most important)
+ to H6 (the least important).
+-->
+
+<!ELEMENT ( %heading ) - - (%text;)*>
+<!ATTLIST ( %heading )
+ %attrs; -- id, class, style, lang, dir --
+ %just; -- text alignment --
+ >
+
+<!--=================== Preformatted Text =================================-->
+
+<!-- excludes images and changes in font size -->
+
+<!ENTITY % pre.exclusion "IMG|BIG|SMALL|SUB|SUP|FONT">
+
+<!ELEMENT PRE - - (%text)* -(%pre.exclusion)>
+<!ATTLIST PRE
+ %attrs; -- id, class, style, lang, dir --
+ width NUMBER #implied -- is this widely supported? --
+ >
+
+<![ %HTML.Deprecated [
+
+<!ENTITY % literal "CDATA"
+ -- historical, non-conforming parsing mode where
+ the only markup signal is the end tag
+ in full
+ -->
+
+<!ELEMENT (XMP|LISTING) - - %literal>
+<!ELEMENT PLAINTEXT - O %literal>
+
+]]>
+
+<!--=================== Block-like Quotes =================================-->
+
+<!ELEMENT BLOCKQUOTE - - %body.content>
+<!ATTLIST BLOCKQUOTE %attrs>
+
+<!--=================== Lists =============================================-->
+
+<!--
+ HTML 3.2 allows you to control the sequence number for ordered lists.
+ You can set the sequence number with the START and VALUE attributes.
+ The TYPE attribute may be used to specify the rendering of ordered
+ and unordered lists.
+-->
+
+<!-- definition lists - DT for term, DD for its definition -->
+
+<!ELEMENT DL - - (DT|DD)*>
+<!ATTLIST DL
+ %attrs; -- id, class, style, lang, dir --
+ compact (compact) #IMPLIED -- more compact style --
+ >
+
+<!ELEMENT DT - O (%text)*>
+<!ELEMENT DD - O %flow;>
+<!ATTLIST (DT|DD) %attrs>
+
+<!-- Ordered lists OL, and unordered lists UL -->
+<!ELEMENT (OL|UL) - - (LI)*>
+
+<!--
+ 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] -->
+
+<!ATTLIST OL -- ordered lists --
+ %attrs; -- id, class, style, lang, dir --
+ type %OLStyle #IMPLIED -- numbering style --
+ start NUMBER #IMPLIED -- starting sequence number --
+ compact (compact) #IMPLIED -- reduced interitem spacing --
+ >
+
+<!-- bullet styles -->
+
+<!ENTITY % ULStyle "disc|square|circle">
+
+<!ATTLIST UL -- unordered lists --
+ %attrs; -- id, class, style, lang, dir --
+ type (%ULStyle) #IMPLIED -- bullet style --
+ compact (compact) #IMPLIED -- reduced interitem spacing --
+ >
+
+<!ELEMENT (DIR|MENU) - - (LI)* -(%block)>
+<!ATTLIST DIR
+ compact (compact) #IMPLIED
+ >
+<!ATTLIST MENU
+ compact (compact) #IMPLIED
+ >
+
+<!-- <DIR> Directory list -->
+<!-- <DIR COMPACT> Compact list style -->
+<!-- <MENU> Menu list -->
+<!-- <MENU COMPACT> Compact list style -->
+
+<!-- The type attribute can be used to change the bullet style
+ in unordered lists and the numbering style in ordered lists -->
+
+<!ENTITY % LIStyle "CDATA" -- constrained to: "(%ULStyle|%OLStyle)" -->
+
+<!ELEMENT LI - O %flow -- list item -->
+<!ATTLIST LI
+ %attrs; -- id, class, style, lang, dir --
+ type %LIStyle #IMPLIED -- list item style --
+ value NUMBER #IMPLIED -- reset sequence number --
+ >
+
+<!--================ Forms ===============================================-->
+
+<!ELEMENT FORM - - %body.content -(FORM)>
+<!ATTLIST FORM
+ action %URL #REQUIRED -- server-side form handler --
+ method (%HTTP-Method) GET -- see HTTP specification --
+ enctype %Content-Type; "application/x-www-form-urlencoded"
+ onSubmit %script #IMPLIED -- intrinsic event --
+ >
+
+<!ELEMENT LABEL - - (%text)* -(LABEL) -- field label text -->
+<!ATTLIST LABEL
+ %attrs; -- id, class, style, lang, dir --
+ for IDREF #IMPLIED -- matches field ID value --
+ accesskey CDATA #IMPLIED -- accessibility key character --
+ title CDATA #IMPLIED -- advisory title string --
+ onClick %script #IMPLIED -- intrinsic event --
+ >
+<!ENTITY % InputType
+ "(TEXT | PASSWORD | CHECKBOX |
+ RADIO | SUBMIT | RESET |
+ FILE | HIDDEN | IMAGE | BUTTON)"
+ >
+
+<!ELEMENT INPUT - O EMPTY>
+<!ATTLIST INPUT
+ %attrs; -- id, class, style, lang, dir --
+ type %InputType TEXT -- what kind of widget is needed --
+ name CDATA #IMPLIED -- required for all but submit and reset --
+ value CDATA #IMPLIED -- required for radio and checkboxes --
+ checked (checked) #IMPLIED -- for radio buttons and check boxes --
+ title CDATA #IMPLIED -- advisory title string --
+ size CDATA #IMPLIED -- specific to each type of field --
+ maxlength NUMBER #IMPLIED
+ src %URL #IMPLIED -- for fields with background images --
+ align (top|middle|bottom|left|right) top -- image alignment --
+ tabindex NUMBER #IMPLIED -- position in tabbing order --
+ notab (notab) #IMPLIED -- exclude from tabbing order --
+ onClick %script #IMPLIED -- intrinsic event --
+ onFocus %script #IMPLIED -- intrinsic event --
+ onBlur %script #IMPLIED -- intrinsic event --
+ onSelect %script #IMPLIED -- intrinsic event --
+ onChange %script #IMPLIED -- intrinsic event --
+ >
+
+<!ELEMENT SELECT - - (OPTION+)>
+<!ATTLIST SELECT
+ %attrs; -- id, class, style, lang, dir --
+ name CDATA #REQUIRED
+ size NUMBER #IMPLIED
+ multiple (multiple) #IMPLIED
+ title CDATA #IMPLIED -- advisory title string --
+ tabindex NUMBER #IMPLIED -- position in tabbing order --
+ notab (notab) #IMPLIED -- exclude from tabbing order --
+ onFocus %script #IMPLIED -- intrinsic event --
+ onBlur %script #IMPLIED -- intrinsic event --
+ onChange %script #IMPLIED -- intrinsic event --
+ >
+
+<!ELEMENT OPTION - O (#PCDATA)*>
+<!ATTLIST OPTION
+ %attrs; -- id, class, style, lang, dir --
+ selected (selected) #IMPLIED
+ value CDATA #IMPLIED -- defaults to element content --
+ >
+
+<!-- Multi-line text input field. -->
+
+<!ELEMENT TEXTAREA - - (#PCDATA)*>
+<!ATTLIST TEXTAREA
+ %attrs; -- id, class, style, lang, dir --
+ name CDATA #REQUIRED
+ rows NUMBER #REQUIRED
+ cols NUMBER #REQUIRED
+ title CDATA #IMPLIED -- advisory title string --
+ tabindex NUMBER #IMPLIED -- position in tabbing order --
+ notab (notab) #IMPLIED -- exclude from tabbing order --
+ onFocus %script #IMPLIED -- intrinsic event --
+ onBlur %script #IMPLIED -- intrinsic event --
+ onSelect %script #IMPLIED -- intrinsic event --
+ onChange %script #IMPLIED -- intrinsic event --
+ >
+
+<!-- captioned set of related form fields -->
+
+<!ELEMENT FIELDSET - - (CAPTION?, %body.content)>
+<!ATTLIST FIELDSET
+ %attrs; -- id, class, style, lang, dir --
+ title CDATA #IMPLIED -- advisory title string -->
+
+<!--======================= Tables ========================================-->
+
+<!-- IETF HTML table standard, see RFC 1942 e.g. at
+ http://www.ics.uci.edu/pub/ietf/html/rfc1942.txt -->
+
+<!--
+ 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, its appropriate to treat this as frame=border for backwards
+ compatibility with deployed browsers.
+-->
+
+<!ENTITY % Frame "(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 % Rules "(none | groups | rows | cols | all)">
+
+<!-- horizontal placement of table relative to window -->
+<!ENTITY % Where "(left|center|right)">
+
+<!-- horizontal alignment attributes for cell contents -->
+<!ENTITY % cell.halign
+ "align (left|center|right|justify|char) #IMPLIED
+ char CDATA #IMPLIED -- alignment char, e.g. char=':' --
+ charoff CDATA #IMPLIED -- offset for alignment char --"
+ >
+
+<!-- vertical alignment attributes for cell contents -->
+<!ENTITY % cell.valign
+ "valign (top|middle|bottom|baseline) #IMPLIED"
+ >
+
+<!ELEMENT table - - (caption?, (col*|colgroup*), thead?, tfoot?, tbody+)>
+<!ELEMENT caption - - (%text;)+>
+<!ELEMENT thead - O (tr+)>
+<!ELEMENT tfoot - O (tr+)>
+<!ELEMENT tbody O O (tr+)>
+<!ELEMENT colgroup - O (col*)>
+<!ELEMENT col - O EMPTY>
+<!ELEMENT tr - O (th|td)+>
+<!ELEMENT (th|td) - O %body.content>
+
+<!ATTLIST table -- table element --
+ %attrs; -- id, lang, style, dir and class --
+ align %Where; #IMPLIED -- table position relative to window --
+ width CDATA #IMPLIED -- table width relative to window --
+ cols NUMBER #IMPLIED -- used for immediate display mode --
+ border CDATA #IMPLIED -- controls frame width around table --
+ frame %Frame; #IMPLIED -- which parts of table frame to include --
+ rules %Rules; #IMPLIED -- rulings between rows and cols --
+ cellspacing CDATA #IMPLIED -- spacing between cells --
+ cellpadding CDATA #IMPLIED -- spacing within cells --
+ >
+
+<!-- ALIGN is used here for compatibility with deployed browsers -->
+<!ENTITY % Caption "(top|bottom|left|right)">
+
+<!ATTLIST caption -- table caption --
+ %attrs; -- id, lang, style, dir and class --
+ align %Caption; #IMPLIED -- relative to table --
+ accesskey CDATA #IMPLIED -- accessibility key character --
+ >
+
+<!--
+COLGROUP groups a set of COL elements. It allows you to group
+several columns together.
+-->
+
+<!ATTLIST colgroup
+ %attrs; -- id, lang, style, dir and class --
+ span NUMBER 1 -- default number of columns in group --
+ width CDATA #IMPLIED -- default width for enclosed COLs --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
+
+<!--
+ COL elements define the alignment properties for cells in a given
+ column or spanned 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
+-->
+
+<!ATTLIST col -- column groups and properties --
+ %attrs; -- id, lang, style, dir and class --
+ span NUMBER 1 -- number of columns spanned by group --
+ width CDATA #IMPLIED -- column width specification --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
+
+<!--
+ Use THEAD to duplicate headers when breaking table
+ across page boundaries, or for static headers when
+ body sections are rendered in scrolling panel.
+
+ Use TFOOT to duplicate footers when breaking table
+ across page boundaries, or for static footers when
+ body 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; -- id, lang, style, dir and class --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
+
+<!ATTLIST tr -- table row --
+ %attrs; -- id, lang, style, dir and class --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
+
+<!ATTLIST (th|td) -- header or data cell --
+ %attrs; -- id, lang, style, dir and class --
+ axis CDATA #IMPLIED -- defaults to cell content --
+ axes CDATA #IMPLIED -- list of axis names --
+ nowrap (nowrap) #IMPLIED -- suppress word wrap --
+ bgcolor %color #IMPLIED -- cell background color --
+ rowspan NUMBER 1 -- number of rows spanned by cell --
+ colspan NUMBER 1 -- number of cols spanned by cell --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
+<!--================ Document Head ========================================-->
+
+<!-- %head.misc defined earlier on as "SCRIPT|STYLE|META|LINK" -->
+
+<!ENTITY % head.content "TITLE & ISINDEX? & BASE?">
+
+<!ELEMENT HEAD O O (%head.content) +(%head.misc)>
+
+<!ELEMENT TITLE - - (#PCDATA)* -(%head.misc)
+ -- 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.
+ -->
+<!ATTLIST TITLE %i18n>
+
+<!ELEMENT ISINDEX - O EMPTY>
+<!ATTLIST ISINDEX
+ %i18n; -- lang, dir --
+ prompt CDATA #IMPLIED -- prompt message -->
+
+<!--
+ The BASE element gives an absolute URL for dereferencing relative
+ URLs, e.g.
+
+ <BASE href="http://foo.com/index.html">
+ ...
+ <IMG SRC="images/bar.gif">
+
+ The image is deferenced to
+
+ http://foo.com/images/bar.gif
+
+ In the absence of a BASE element the document URL should be used.
+ Note that this is not necessarily the same as the URL used to
+ request the document, as the base URL may be overridden by an HTTP
+ header accompanying the document.
+-->
+
+<!ELEMENT BASE - O EMPTY>
+<!ATTLIST BASE
+ href %URL #REQUIRED
+ >
+
+<!ELEMENT META - O EMPTY -- Generic Metainformation -->
+<!ATTLIST META
+ http-equiv NAME #IMPLIED -- HTTP response header name --
+ name NAME #IMPLIED -- metainformation name --
+ content CDATA #REQUIRED -- associated information --
+ >
+
+<!-- SCRIPT/STYLE are place holders for transition to next version of HTML -->
+
+<!ELEMENT STYLE - - CDATA -- style info -->
+<!ATTLIST STYLE
+ %i18n; -- lang, dir for use with title string --
+ type CDATA #REQUIRED -- Internet media type for style notation --
+ title CDATA #IMPLIED -- advisory title for this style --
+ >
+
+<!ELEMENT SCRIPT - - CDATA -- script statements -->
+<!ATTLIST SCRIPT
+ type CDATA #IMPLIED -- Internet media type for style notation --
+ language CDATA #IMPLIED -- predefined script language name --
+ src %URL #IMPLIED -- URL for an external script --
+ >
+
+<!--================ Document Structure ===================================-->
+
+<!ENTITY % version.attr "VERSION CDATA #FIXED '%HTML.Version;'">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % html.content "HEAD, BODY, PLAINTEXT?">
+]]>
+
+<!ENTITY % html.content "HEAD, BODY">
+
+<!ELEMENT HTML O O (%html.content)>
+<!ATTLIST HTML
+ %version.attr;
+ >
diff --git a/htdocs/sgml-lib/html-hj.dtd b/htdocs/sgml-lib/html-hj.dtd
new file mode 100644
index 0000000..9273916
--- /dev/null
+++ b/htdocs/sgml-lib/html-hj.dtd
@@ -0,0 +1,1305 @@
+<!--
+ html-hj.dtd
+
+ Document Type Definition for the HyperText Markup Language (HTML
+ DTD) for Sun Microsystems Corp. HotJava environment
+
+
+ Date: 24 Jul 95
+
+ Revisions made by: Mark Gaither (markg@hal.com)
+ Original Author: Dave Raggett <dsr@hplb.hpl.hp.com>
+
+ I have taken the HTML 3.0 DTD dated 16 Mar 95 and added the APP
+ element introduced by Sun Microsystems Corp. to accomodate their
+ Java/HotJava WWW application environment.
+
+ Revised by Gerald Oskoboiny, <gerald@pobox.com>, 3 Feb 1996:
+ changed 'Sun Micorsystems' in FPI to 'Sun Microsystems'.
+-->
+
+<!ENTITY % HTML.Version
+ "-//Sun Microsystems Corp.//DTD HotJava HTML//EN"
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC "-//Sun Microsystems Corp.//DTD HotJava HTML//EN">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+<!--================== Flags for Marked Sections ==========================-->
+
+<!ENTITY % HTML.Recommended "IGNORE"
+ -- Certain features of the language are necessary for compatibility
+ with widespread usage, but they may compromise the structural
+ integrity of a document. This feature test entity enables
+ a more prescriptive document type definition that eliminates
+ the above features.
+ -->
+
+<![ %HTML.Recommended [
+ <!ENTITY % HTML.Deprecated "IGNORE">
+]]>
+
+<!ENTITY % HTML.Deprecated "INCLUDE"
+ -- Certain features of the language are necessary for compatibility
+ with earlier versions of the specification, but they tend
+ to be used an implemented inconsistently, and their use is
+ deprecated. This feature test entity enables a document type
+ definition that eliminates these features.
+ -->
+
+<!ENTITY % HTML.Obsoleted "IGNORE"
+ -- The XMP, LISTING and PLAINTEXT tags are incompatible with SGML
+ and derive from very early versions of HTML. They require non-
+ standard parsers and will cause problems for processing
+ documents with standard SGML tools.
+ -->
+
+<!--================== Imported Names =====================================-->
+
+<!ENTITY % Content-Type "CDATA"
+ -- meaning a MIME content type, as per RFC1521
+ -->
+
+<!ENTITY % HTTP-Method "GET | POST"
+ -- as per HTTP specification
+ -->
+
+<!ENTITY % URI "CDATA"
+ -- The term URI means a CDATA attribute
+ whose value is a Uniform Resource Identifier,
+ as defined by
+ "Uniform Resource Identifiers" by Tim Berners-Lee
+ aka http://info.cern.ch/hypertext/WWW/Addressing/URL/URI_Overview.html
+ aka RFC 1630
+
+ Note that CDATA attributes are limited by the LITLEN
+ capacity (1024 in the current version of html.decl),
+ so that URIs in HTML have a bounded length.
+
+ -->
+
+<!ENTITY % REAL "CDATA" -- real numbers (not in SGML) -->
+
+<!ENTITY % SHAPE "CDATA"
+ -- Shape of hotzone in image.
+
+ All coordinates are assumed to be numbers in the range 0 to 1
+ and interpreted as fractional width/height and measured from
+ the top left corner of the associated image.
+
+ The attribute value is a string taking one of the following forms:
+
+ "default"
+
+ Used to define a default link for the figure background.
+
+ "circle x, y, r"
+
+ (x, y) define the center and r the radius.
+
+ "rect x, y, w, h"
+
+ (x, y) defines upper left, and w and h the width and height.
+
+ "polygon x1, y1, x2, y2, ..."
+
+ Given n pairs of x, y coordinates, the polygon is closed by a
+ line linking the n'th point to the first. Intersecting polygons
+ use the non-zero winding number rule to determine if a point lies
+ inside the polygon.I
+ --
+>
+
+<!-- 3.0 Parameter Entities -->
+
+<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
+
+<![ %HTML.Obsoleted [
+ <!ENTITY % preformatted "PRE | XMP | LISTING">
+]]>
+
+
+<![ %HTML.Deprecated [
+ <!ENTITY % list "UL | OL | DIR | MENU">
+ <!ENTITY % blockquote "BLOCKQUOTE | BQ">
+]]>
+
+<!ENTITY % list "UL | OL">
+
+<!ENTITY % blockquote "BQ">
+
+<!ENTITY % preformatted "PRE">
+
+
+<!-- The CLASS attribute is used to subclass HTML elements for
+ rendering purposes, when used with style sheets, e.g. DSSSL lite -->
+
+<!ENTITY % attrs -- common attributes for elements --
+ 'id ID #IMPLIED -- as target for hrefs (link ends) --
+ lang CDATA "en.us" -- ISO language, country code --
+ class NAMES #IMPLIED -- for subclassing elements --'>
+
+<!-- SGML standard forces different NAMES for all attribute values
+ in the same element, regardless of the attribute name! As a result
+ CDATA is used for CLEAR attribute to avoid clash with ALIGN attribute.-->
+
+<!--
+When text flows around a figure or table in the margin, you sometimes want
+to start an element like a header, paragraph or list below the figure rather
+than alongside it. The CLEAR attribute allows you to move down unconditionally:
+
+ clear=left move down until left margin is clear
+ clear=right move down until right margin is clear
+ clear=all move down until both margins are clear
+
+Alternatively, you can decide to place the element alongside the figure just
+so long as there is enough room. The minimum width needed is specified as:
+
+ clear="40 en" move down until there is at least 40 en units free
+ clear="100 pixels" move down until there is at least 100 pixels free
+
+The style sheet (or browser defaults) may provide default minimum widths for
+each class of block-like elements.
+-->
+
+<!ENTITY % needs -- Attributes for controlling text flow. Used in headers
+ and other elements to guarantee sufficient room --
+ 'clear CDATA #IMPLIED'>
+
+<!--
+ The following attribute may be included where ever a URL can be given:
+
+ md message digest e.g. md="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ"
+ where the digest is base64 encoded and preceded by a prefix
+ denoting the algorithm (in this case MD5).
+-->
+
+<!ENTITY % url.link -- Attributes associated with URL based links --
+ "md CDATA #IMPLIED -- message digest for linked object --">
+
+<!--================ Character mnemonic entities ==========================-->
+
+<!-- The HTML list of Latin-1 entities includes the full range
+ of characters in widely available Latin-1 fonts, and as such
+ is a mixture of ISOlat1 and other ISO publishing symbols -->
+
+<!ENTITY % HTMLlat1 PUBLIC
+ "-//IETF//ENTITIES Added Latin 1 for HTML//EN">
+%HTMLlat1;
+
+<!--================ Entities for special symbols =========================-->
+
+<!ENTITY emsp SDATA "[emsp ]" -- em space -->
+<!ENTITY ensp SDATA "[ensp ]" -- en space (1/2-em) -->
+<!ENTITY mdash SDATA "[ndash ]" -- em dash -->
+<!ENTITY ndash SDATA "[ndash ]" -- en dash (1/2-em) -->
+<!ENTITY nbsp SDATA "[nbsp ]" -- non breaking space -->
+<!ENTITY shy SDATA "[shy ]" -- soft hyphen -->
+<!ENTITY copy SDATA "[copy ]" -- copyright sign -->
+<!ENTITY trade SDATA "[trade ]" -- trade mark sign -->
+<!ENTITY reg SDATA "[reg ]" -- registered sign -->
+
+<!--================ Entities for standard icons ==========================-->
+
+<!-- a range of standard icons such as &folder; for use
+ in speeding up display of directory listings etc. -->
+
+<!ENTITY % HTMLicons PUBLIC
+ "-//IETF//ENTITIES icons for HTML//EN">
+%HTMLicons;
+
+<!--================ Entities for math symbols ============================-->
+
+<!-- ISO subset chosen for use with the widely available Adobe math font -->
+
+<!ENTITY % HTMLmath PUBLIC
+ "-//IETF//ENTITIES Math and Greek for HTML//EN">
+%HTMLmath;
+
+<!--=================== Text Markup =======================================-->
+
+<!ENTITY % font " U | S | TT | I | BIG | SMALL">
+
+<!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE">
+
+<!ENTITY % misc "Q | LANG | AU | DFN | PERSON | ACRONYM | ABBREV | INS | DEL">
+
+<!ENTITY % special "TAB | MATH | A | IMG | BR">
+
+<!ENTITY % notmath "%font | %phrase | %special | %misc">
+
+<!ENTITY % text "#PCDATA | SUB | SUP | B | %notmath">
+
+
+<!ENTITY % pre.exclusion "TAB|MATH|IMG|BIG|SMALL|SUB|SUP">
+
+<!ELEMENT (%font|B|%phrase|%misc) - - (%text)+>
+<!ATTLIST (%font|B|%phrase|%misc) %attrs;>
+
+<!-- Subscripts and superscripts. The ALIGN attribute is only used for math -->
+
+<!ELEMENT (SUB|SUP) - - (%text)+>
+<!ATTLIST (SUB|SUP)
+ %attrs;
+ align (left|center|right) #IMPLIED
+ >
+
+<!-- Forced line break -->
+
+<!ELEMENT BR - O EMPTY>
+<!ATTLIST BR
+ %attrs;
+ %needs; -- for control of text flow --
+ >
+
+<!-- Named left, center and right tab stops (independent of '\t' char) -->
+
+<!ELEMENT TAB - O EMPTY>
+<!ATTLIST TAB
+ id ID #IMPLIED -- defines named tab stop --
+ indent NUMBER 0 -- en units before new tab stop --
+ to IDREF #IMPLIED -- jump to named tab stop --
+ align (left|center|right|decimal) left
+ dp CDATA #IMPLIED -- decimal point e.g. dp="," --
+ >
+
+<!--================== Link Markup ========================================-->
+
+<!--
+ With HTML 3.0 you can use ID attributes on most elements for named
+ link ends. The use of the NAME attribute on anchors is deprecated.
+
+ Do we want to support arbitrary elements for link starts? This would
+ involve adding HREF and related attributes to most elements.
+-->
+
+<![ %HTML.Deprecated [
+ <!ENTITY % linkName "name CDATA #IMPLIED -- named link end --">
+]]>
+
+<!ENTITY % linkName "">
+
+
+<!ENTITY % ToolBar "home|toc|index|glossary|copyright|
+ up|previous|next|help|bookmark"
+
+ -- LINK RELationship values which are used to create toolbar
+ buttons or menu items for navigation, where toc stands
+ for table of contents and bookmark provides for an open
+ ended set of links, i.e. you can use multiple bookmarks
+ for key entry points. Use the optional TITLE attribute
+ to override default names.
+ -->
+
+<!ENTITY % linkType "NAME"
+ -- A definitive list will be specified at a later date.
+
+ They are used
+
+ a) by stylesheets to control how collections of
+ html nodes are rendered into printed documents
+
+ b) for document specific toolbars/menus when used
+ with the LINK element in document head:
+
+ "home|toc|index|glossary|copyright|
+ up|previous|next|help|bookmark"
+
+ where toc stands for table of contents and
+ bookmark provides for an open ended set of links,
+ i.e. you can use several bookmarks for key entry
+ points. Use the optional TITLE attribute to
+ override default names.
+
+ c) for hypertext paths or guided tours,
+ with REL=NODE and REL=PATH.
+
+ d) to make a link to a style sheet, e.g. rel=stylesheet
+ (used only with the LINK element).
+
+ e) to make a link to a separate banner, e.g. rel=banner
+ (used only with the LINK element).
+ -->
+
+
+<!ENTITY % linkExtraAttributes -- URN moved to %url.link --
+ "rel %linkType #IMPLIED -- forward relationship type --
+ rev %linkType #IMPLIED -- reversed relationship type
+ to referent data --
+ title CDATA #IMPLIED -- advisory only --
+ methods NAMES #IMPLIED -- supported public methods of the object:
+ TEXTSEARCH, GET, HEAD, ... --
+ ">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % A.content "(%heading|%text)+">
+]]>
+
+<!ENTITY % A.content "(%text)+">
+
+<!ELEMENT A - - %A.content -(A)>
+
+<!ATTLIST A
+ %attrs;
+ href %URI; #IMPLIED
+ %url.link; -- standard link attributes --
+ %linkName; -- name attribute is deprecated; use ID instead --
+ shape %SHAPE; #IMPLIED -- for shaped hotzones in FIGs --
+ %linkExtraAttributes;
+ >
+
+<!--=================== Images ============================================-->
+
+<!-- Desired widths are used for negotiating image size
+ with the module responsible for painting the image.
+ align=left or right cause image to float to margin
+ and for subsequent text to wrap around image -->
+
+<!ELEMENT IMG - O EMPTY -- Embedded image -->
+<!ATTLIST IMG
+ %attrs;
+ src %URI; #REQUIRED -- URI of image to embed --
+ %url.link; -- standard link attributes --
+ alt CDATA #IMPLIED -- for display in place of image --
+ align (top|middle|bottom|left|right) top -- relative to baseline
+ -- width NUMBER #IMPLIED -- desired width in en's or pixels --
+ height NUMBER #IMPLIED -- desired height in en's or pixels --
+ units (en|pixels) pixels -- units for width and height --
+ ismap (ismap) #IMPLIED -- pass clicks to server --
+ >
+
+<!--=================== Paragraphs=========================================-->
+
+<!ELEMENT P - O (%text)+>
+<!ATTLIST P
+ %attrs;
+ align (left|center|right|justify) #IMPLIED
+ %needs; -- for control of text flow --
+ nowrap (nowrap) #IMPLIED -- disable wordwrap --
+ >
+
+<!--=================== Headings, Titles, Sections ========================-->
+
+<!ELEMENT HR - O EMPTY -- customizable horizontal rule -->
+<!ATTLIST HR
+ %attrs;
+ src %URI; #IMPLIED -- URI of custom rule graphic --
+ %url.link; -- standard link attributes --
+ %needs; -- for control of text flow --
+ >
+
+<!--
+ Headers can be numbered, although this is a matter for style sheets.
+ The style sheet controls the numbering style:
+
+ a) whether the parent numbering is inherited, e.g. 5.i.c
+ where 5 is the current sequence number for H1 headers, and
+ 1 is the number for H2 headers and 3 for H3 headers.
+
+ b) what style is used for current sequence number
+ e.g. arabic, upperalpha, loweralpha, upperroman, lowerroman
+ or a numbering scheme appropriate for the current language
+
+ The skip attribute is used to skip over sequence numbers for items
+ which have been left out of the list, e.g. skip=3 advances the
+ sequence number past 3 omitted items. The seqnum sets the sequence
+ number to a specified value. Note that the style sheet may take
+ advantage of the sequence number for higher level headers.
+
+ The dingbat or src attributes may be used to specify a bullet like
+ image to be placed adjacent to the header. Defining this in the
+ header element simplifies the document markup and avoids the need
+ to use the clear or needs attribute in the following element to
+ prevent it flowing around this image.
+-->
+
+<!ELEMENT ( %heading ) - - (%text;)+>
+<!ATTLIST ( %heading )
+ %attrs;
+ align (left|center|right|justify) #IMPLIED
+ %needs; -- for control of text flow --
+ seqnum NUMBER #IMPLIED -- starting sequence number --
+ skip NUMBER 0 -- skip seq nums for missing items --
+ dingbat ENTITY #IMPLIED -- dingbat entity from HTMLicons --
+ src (%URI;) #IMPLIED -- bullet defined by graphic --
+ %url.link; -- standard link attributes --
+ nowrap (nowrap) #IMPLIED -- disable wordwrap --
+ >
+
+<!ELEMENT TITLE - - (#PCDATA)
+ -- 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.
+ -->
+
+<!--=================== Text Flows ========================================-->
+
+<!ENTITY % block
+ "P | %list | DL
+ | %preformatted
+ | %blockquote
+ | FORM | ISINDEX | FN
+ | TABLE | FIG | NOTE">
+
+<!--
+ ((%block)* | (%text)*) would be much nicer as it would avoid the need
+ for a <P> tag when all you want is a few words of text. The problem
+ is that it also prevents: "<LI> <P>some text" since it forbids PCDATA
+ and hence the white space between the <LI> and the <P>.
+-->
+
+<![ %HTML.Recommended [
+ <!ENTITY % flow "(%block)*">
+]]>
+
+<!ENTITY % flow "(%text | %block)*">
+
+<!ELEMENT PRE - - (%text)* -(%pre.exclusion)>
+
+<!ATTLIST PRE
+ %attrs;
+ width NUMBER #implied
+ %needs; -- for control of text flow --
+ >
+
+<![ %HTML.Obsoleted [
+
+<!ENTITY % literal "CDATA"
+ -- special non-conforming parsing mode where
+ the only markup signal is the end tag
+ in full. This will cause problems for
+ standard SGML tools!
+ -->
+
+<!ELEMENT XMP - - %literal>
+<!ELEMENT LISTING - - %literal>
+<!ELEMENT PLAINTEXT - O %literal>
+
+]]>
+
+<!--=================== Lists =============================================-->
+
+<!ELEMENT DL - - (LH?, (DT|DD)+) -- this is perhaps too lax? -->
+<!ATTLIST DL
+ %attrs;
+ %needs; -- for control of text flow --
+ compact (compact) #IMPLIED -- more compact style --
+ >
+
+<!ELEMENT DT - O (%text)+>
+<!ELEMENT DD - O %flow;>
+<!ATTLIST (DT|DD)
+ %attrs;
+ %needs; -- for control of text flow --
+ >
+
+
+<!ELEMENT (OL|UL) - - (LH?, LI+) -- should we allow a list header ? -->
+
+<!-- style sheet controls numbering style
+ a) whether the parent numbering is inherited, e.g. 5.1.c
+ b) what style is used for current sequence number
+ e.g. arabic, upperalpha, loweralpha, upperroman, lowerroman
+ or a numbering scheme for the current language
+-->
+<!ATTLIST OL
+ %attrs;
+ %needs; -- for control of text flow --
+ continue (continue) #IMPLIED -- don't restart sequence number --
+ seqnum NUMBER #IMPLIED -- starting sequence number --
+ compact (compact) #IMPLIED -- reduced interitem spacing --
+ >
+
+<!-- Unordered lists:
+
+ o single or multicolumn with
+ horizontal or vertical wrapping
+
+ o plain or bulletted list items
+
+ o bullets can be customised via:
+ - entities (dingbats in HTMLicons)
+ - external graphic via URL
+ - individual attributes on LI tags
+-->
+<!ATTLIST UL
+ %attrs;
+ %needs; -- for control of text flow --
+ wrap (vert|horiz|none) none -- multicolumn list style --
+ plain (plain) #IMPLIED -- suppress bullets --
+ dingbat ENTITY #IMPLIED -- dingbat entity from HTMLicons --
+ src (%URI;) #IMPLIED -- bullet defined by graphic --
+ %url.link; -- standard link attributes --
+ compact (compact) #IMPLIED -- reduced interitem spacing --
+ >
+
+<!ELEMENT LH - O (%text;)+ -- list header -->
+<!ATTLIST LH %attrs;>
+
+<!--
+ For unordered lists, you can override the standard bullet with
+ a custom graphic specified via a URI e.g. src="splash.gif" or
+ a reference to one of the HTMLicons graphics e.g. dingbat=folder
+
+ The skip attribute is used with ordered lists to skip over sequence
+ numbers for items which have been left out of the list, e.g. skip=3
+ advances the sequence number past 3 omitted items.
+-->
+
+<!ELEMENT LI - O %flow; -- list item -->
+<!ATTLIST LI
+ %attrs;
+ %needs; -- for control of text flow --
+ dingbat ENTITY #IMPLIED -- dingbat entity from HTMLicons --
+ src (%URI;) #IMPLIED -- custom bullet graphic --
+ %url.link; -- standard link attributes --
+ skip NUMBER 0 -- skip seq nums for missing items --
+ >
+
+<!-- DIR and MENU are now subsumed by UL with type=plain. Use the
+ wrap attribute to control wrapping style for multicolumn lists -->
+
+<![ %HTML.Deprecated [
+ <!ELEMENT (DIR|MENU) - - (LI)+ -(%block)>
+ <!ATTLIST (DIR|MENU)
+ compact (compact) #IMPLIED>
+]]>
+
+<!--=================== Document Body =====================================-->
+
+<![ %HTML.Recommended [
+ <!ENTITY % body.content "(DIV|%heading|%block|HR|ADDRESS|APP)*"
+ -- <h1>Heading</h1>
+ <p>Text ...
+ is preferred to
+ <h1>Heading</h1>
+ Text ...
+ -->
+]]>
+
+<!ENTITY % body.content "(DIV | %heading | %text | %block | HR | ADDRESS | APP)*">
+
+<!ELEMENT BODY O O (BANNER?, BODYTEXT) +(SPOT)>
+<!ATTLIST BODY
+ %attrs;
+ background %URI; #IMPLIED -- texture tile for document background --
+ >
+
+<!ELEMENT BODYTEXT O O %body.content -- dummy element -->
+
+<!--
+ The BANNER element is used for a banner section which appears at
+ the top of the window and doesn't scroll with window contents.
+ This can be used for corporate logos, copyright statements and
+ disclaimers, as well as customized navigation/search controls.
+-->
+<!ELEMENT BANNER - - %body.content>
+<!ATTLIST BANNER %attrs; >
+
+<!-- SPOT is used to insert IDs at arbitrary places
+ e.g. for end points of a marked range (see RANGE) -->
+<!ELEMENT SPOT - O EMPTY>
+<!ATTLIST SPOT id ID #REQUIRED>
+
+<!ELEMENT (%blockquote) - - (BODYTEXT, CREDIT?)>
+<!ATTLIST (%blockquote)
+ %attrs;
+ %needs; -- for control of text flow --
+ nowrap (nowrap) #IMPLIED -- disable wordwrap --
+ >
+
+<!ENTITY % address.content "((%text;)* | P*)">
+
+<!ELEMENT ADDRESS - - %address.content>
+<!ATTLIST ADDRESS
+ %attrs;
+ %needs; -- for control of text flow --
+ >
+
+<!ELEMENT APP - O EMPTY>
+<!ATTLIST APP
+ class CDATA #REQUIRED
+ src %URI; #IMPLIED
+ align (bottom|top|middle) #IMPLIED
+ width NUMBER #IMPLIED
+ height NUMBER #IMPLIED
+ >
+
+<!--
+ DIV can be used with the CLASS attribute to represent different
+ kinds of container, e.g. chapter, section, abstract, appendix.
+-->
+
+<!ELEMENT DIV - - %body.content>
+<!ATTLIST DIV
+ %attrs;
+ %needs; -- for control of text flow --
+ align (left|center|right) left -- alignment of following text --
+ nowrap (nowrap) #IMPLIED -- disable wordwrap --
+ >
+
+<!--================ Forms ===============================================-->
+
+<!--
+ As HTML 2.0 plus a few extensions:
+
+ a) A RANGE control which varies between pair of values
+ specified with the size attribute, e.g. SIZE="1, 10"
+
+ b) FILE widget for uploading one or more files to a server
+
+ c) SCRIBBLE on image widget that sends the "ink" to the server
+
+ d) SUBMIT/RESET buttons can now be customised with an image.
+ This subsumes the IMAGE type which is now deprecated.
+
+ e) Graphical SELECTion menus are now supported, using
+ the new SHAPE attribute on OPTION elements.
+
+ Further extensions are in the pipeline (e.g. table entry,
+ multiple data formats for textarea fields and client-side
+ scripts with custom widgets) but will have to wait until
+ the backlog of implementation work diminishes.
+-->
+
+<!ELEMENT FORM - - %body.content -(FORM) +(INPUT|SELECT|TEXTAREA)>
+<!ATTLIST FORM
+ action %URI #REQUIRED -- server-side form handler --
+ method (%HTTP-Method) GET -- see HTTP specification --
+ enctype %Content-Type; "application/x-www-form-urlencoded"
+ script %URI #IMPLIED -- link to client-side script --
+ >
+
+<![ %HTML.Deprecated [
+ <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT
+ | RESET | RANGE | FILE | SCRIBBLE | HIDDEN | IMAGE)">
+]]>
+
+<!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT
+ | RESET | RANGE | FILE | SCRIBBLE | HIDDEN)">
+
+<!ELEMENT INPUT - O EMPTY>
+<!ATTLIST INPUT
+ %attrs;
+ type %InputType TEXT
+ name NAME #IMPLIED -- required for all but submit and reset --
+ value CDATA #IMPLIED -- required for radio buttons & checkboxes --
+ disabled (disabled) #IMPLIED -- read-only fields --
+ error CDATA #IMPLIED -- why field is in error --
+ checked (checked) #IMPLIED -- for radio buttons and check boxes --
+ size NUMBER #IMPLIED -- visible width of TEXT fields --
+ maxlength NUMBER #IMPLIED -- max number of chars for TEXT fields --
+ min %REAL #IMPLIED -- lower limit for RANGE fields --
+ max %REAL #IMPLIED -- upper limit for RANGE fields --
+ accept CDATA #IMPLIED -- list of MIME types for file fields --
+ src %URI #IMPLIED -- for fields with background images --
+ %url.link; -- standard link attributes --
+ align (top|middle|bottom|left|right) top
+ >
+
+<!--
+ SRC attribute added for graphical selection menus
+ The WIDTH, HEIGHT and UNITS attributes apply to the
+ image specified by the SRC attribute.
+ -->
+
+<!ELEMENT SELECT - - (OPTION+) -(INPUT|TEXTAREA|SELECT)>
+<!ATTLIST SELECT
+ %attrs;
+ name CDATA #REQUIRED
+ multiple (multiple) #IMPLIED
+ disabled (disabled) #IMPLIED -- read-only menu --
+ error CDATA #IMPLIED -- why selections are in error --
+ src %URI #IMPLIED -- for graphical selection menus --
+ %url.link; -- standard link attributes --
+ width NUMBER #IMPLIED -- desired width of in en's or pixels --
+ height NUMBER #IMPLIED -- desired height in en's or pixels --
+ units (en|pixels) pixels -- units for width and height --
+ align (top|middle|bottom|left|right) top
+ >
+
+<!ELEMENT OPTION - O (#PCDATA)>
+<!ATTLIST OPTION
+ %attrs;
+ selected (selected) #IMPLIED
+ value CDATA #IMPLIED -- default to element content --
+ shape %SHAPE; #IMPLIED -- for graphical selection menus --
+ disabled (disabled) #IMPLIED -- unselectable option --
+ error CDATA #IMPLIED -- why this choice is in error --
+ >
+
+<!--
+ Multi-line text input field. align=left or right
+ causes the field to float to margin and for
+ subsequent text to wrap around the field.
+-->
+
+<!ELEMENT TEXTAREA - - (#PCDATA) -(INPUT|TEXTAREA|SELECT)>
+<!ATTLIST TEXTAREA
+ %attrs;
+ name CDATA #REQUIRED
+ rows NUMBER #REQUIRED
+ cols NUMBER #REQUIRED
+ disabled (disabled) #IMPLIED -- read-only field --
+ error CDATA #IMPLIED -- why field is in error --
+ align (top|middle|bottom|left|right) top
+ >
+
+<!--======================= Captions ======================================-->
+
+<!ELEMENT CAPTION - - (%text;)+ -- table or figure caption -->
+<!ATTLIST CAPTION
+ %attrs;
+ align (top|bottom|left|right) #IMPLIED
+ >
+<!--======================= Tables ========================================-->
+
+<!--
+ Tables and figures can be aligned in several ways:
+
+ bleedleft flush left with the left (window) border
+ left flush left with the left text margin
+ center centered (text flow is disabled for this mode)
+ right flush right with the right text margin
+ bleedright flush right with the right (window) border
+ justify when applicable the table/figure should stretch
+ to fill space between the text margins
+
+ Note: text will flow around the table or figure if the browser
+ judges there is enough room and the alignment is not centered
+ or justified. The table or figure may itself be part of the
+ text flow around some earlier figure. You can in this case use
+ the clear or needs attributes to move the new table or figure
+ down the page beyond the obstructing earlier figure. Similarly,
+ you can use the clear or needs attributes with other elements
+ such as headers and lists to move them further down the page.
+-->
+
+<!ENTITY % block.align
+ "align (bleedleft|left|center|right|bleedright|justify) center">
+
+<!--
+ The HTML 3.0 table model has been chosen for its simplicity
+ and the ease in writing filters from common DTP packages.
+
+ By default the table is automatically sized according to the
+ cell contents and the current window size. Specifying the columns
+ widths using the colspec attribute allows browsers to start
+ displaying the table without having to wait for last row.
+
+ The colspec attribute is a list of column widths and alignment
+ specifications. The columns are listed from left to right with
+ a capital letter followed by a number, e.g. COLSPEC="L20 C8 L40".
+ The letter is L for left, C for center, R for right alignment of
+ cell contents. J is for justification, when feasible, otherwise
+ this is treated in the same way as L for left alignment.
+ Column entries are delimited by one or more space characters.
+
+ The number specifies the width in en's, pixels or as a
+ fractional value of the table width, as according to the
+ associated units attribute. This approach is more compact
+ than used with most SGML table models and chosen to simplify
+ hand entry. The width attribute allows you to specify the
+ width of the table in pixels, en units or as a percentage
+ of the space between the current left and right margins.
+
+ To assist with rendering to speech, row and column headers
+ can be given short names using the AXIS attribute. The AXES
+ attribute is used to explicitly specify the row and column
+ names for use with each cell. Otherwise browsers can follow
+ up columns and left along rows (right for some languages)
+ to find the corresponding header cells.
+
+ Table content model: Braille limits the width of tables,
+ placing severe limits on column widths. User agents need
+ to render big cells by moving the content to a note placed
+ before the table. The cell is then rendered as a link to
+ the corresponding note.
+
+ To assist with formatting tables to paged media, authors
+ can differentiate leading and trailing rows that are to
+ be duplicated when splitting tables across page boundaries.
+ The recommended way is to subclass rows with the CLASS attribute
+ For example: <TR CLASS=Header>, <TR CLASS=Footer> are used for
+ header and footer rows. Paged browsers insert footer rows at
+ the bottom of the current page and header rows at the top of
+ the new page, followed by the remaining body rows.
+-->
+
+<!ELEMENT TABLE - - (CAPTION?, TR*) -- mixed headers and data -->
+<!ATTLIST TABLE
+ %attrs;
+ %needs; -- for control of text flow --
+ border (border) #IMPLIED -- draw borders --
+ colspec CDATA #IMPLIED -- column widths and alignment --
+ units (en|pixels|relative) en -- units for column widths --
+ dp CDATA #IMPLIED -- decimal point e.g. dp="," --
+ width NUMBER #IMPLIED -- absolute or percentage width --
+ %block.align; -- horizontal alignment --
+ noflow (noflow) #IMPLIED -- noflow around table --
+ nowrap (nowrap) #IMPLIED -- don't wrap words --
+ >
+
+<!ENTITY % cell "TH | TD">
+<!ENTITY % horiz.align "left|center|right|justify">
+<!ENTITY % vert.align "top|middle|bottom|baseline">
+
+<!--
+ Browsers should tolerate an omission of the first <TR>
+ tag as it is implied by the context. Missing trailing
+ <TR>s implied by rowspans should be ignored.
+
+ The alignment attributes act as defaults for rows
+ overriding the colspec attribute and being in turn
+ overridden by alignment attributes on cell elements.
+ Use valign=baseline when you want to ensure that text
+ in different cells on the same row is aligned on the
+ same baseline regardless of fonts. It only applies
+ when the cells contain a single line of text.
+-->
+
+<!ELEMENT TR - O (%cell)* -- row container -->
+<!ATTLIST TR
+ %attrs;
+ align (%horiz.align) #IMPLIED -- horizontal alignment --
+ valign (%vert.align) top -- vertical alignment --
+ dp CDATA #IMPLIED -- decimal point e.g. dp="," --
+ nowrap (nowrap) #IMPLIED -- don't wrap words --
+ >
+
+<!--
+ Note that table cells can include nested tables.
+ Missing cells are considered to be empty, while
+ missing rows should be ignored, i.e. if a cell
+ spans a row and there are no further TR elements
+ then the implied row should be ignored.
+-->
+
+<!ELEMENT (%cell) - O %body.content>
+<!ATTLIST (%cell)
+ %attrs;
+ colspan NUMBER 1 -- columns spanned --
+ rowspan NUMBER 1 -- rows spanned --
+ align (%horiz.align) #IMPLIED -- horizontal alignment --
+ valign (%vert.align) top -- vertical alignment --
+ dp CDATA #IMPLIED -- decimal point e.g. dp="," --
+ nowrap (nowrap) #IMPLIED -- don't wrap words --
+ axis CDATA #IMPLIED -- axis name, defaults to element content --
+ axes CDATA #IMPLIED -- comma separated list of axis names --
+ >
+
+<!--====================== Figures ========================================-->
+
+<!--
+ The element contains text for use in non-graphical displays. Note that
+ you can use the shape attribute in anchors to specify hotzones on images.
+ This provides for local processing of pointer clicks and a unified method
+ for dealing with graphical and non-graphical displays.
+
+ Text is flowed around figures when the figure is left or right aligned.
+ You can request the browser to move down until there is enough room for
+ the next element, see the CLEAR and NEED attributes (in %needs)
+
+ Figures offer a path towards embedding arbitrary information formats
+ via some kind of OLE/OpenDoc mechanism.
+-->
+
+<!ELEMENT FIG - - (OVERLAY*, CAPTION?, FIGTEXT, CREDIT?) -(FIG|IMG)>
+<!ATTLIST FIG
+ %attrs;
+ %needs; -- for control of text flow --
+ src %URI; #REQUIRED -- URI of document to embed --
+ %url.link; -- standard link attributes --
+ %block.align; -- horizontal alignment --
+ noflow (noflow) #IMPLIED -- noflow around figure --
+ width NUMBER #IMPLIED -- desired width in units --
+ height NUMBER #IMPLIED -- desired height in units --
+ units (en|pixels) pixels -- specifies units as en's or pixels --
+ imagemap (%URI) #IMPLIED -- pass background clicks to server --
+ >
+
+<!ELEMENT FIGTEXT O O %body.content -- dummy element -->
+
+<!--
+ Figure overlays. When combined with local caching, overlays
+ provide a cheap way of modifying a larger base image sent as
+ part of a previous page.
+-->
+
+<!ELEMENT OVERLAY - O EMPTY -- image overlay -->
+<!ATTLIST OVERLAY
+ src %URI; #REQUIRED -- URI of image overlay --
+ %url.link; -- standard link attributes --
+ units (en|pixels) pixels -- specifies units as en's or pixels --
+ x NUMBER 0 -- offset from left in units --
+ y NUMBER 0 -- offset from top in units --
+ width NUMBER #IMPLIED -- desired width in units --
+ height NUMBER #IMPLIED -- desired height in units --
+ imagemap (%URI) #IMPLIED -- pass background clicks to server --
+ >
+
+<!ELEMENT CREDIT - - (%text;)* -- source of image -->
+<!ATTLIST CREDIT
+ %attrs;
+ >
+
+<!--======================== Notes ========================================-->
+
+<!--
+The NOTE element is used for admonishments. The CLASS attribute
+is used to differentiate NOTE's, e.g. Note, Caution or Warning.
+-->
+
+<!ELEMENT NOTE - - %body.content; -- admonishment -->
+<!ATTLIST NOTE
+ %attrs;
+ src %URI; #IMPLIED -- URI of custom graphic --
+ %url.link; -- standard link attributes --
+ %needs; -- for control of text flow --
+ >
+
+<!--======================== Footnotes ====================================-->
+
+<!--
+Typically rendered as popup note. These elements are referenced
+by hypertext links specified with the anchor element.
+-->
+<!ELEMENT FN - - %body.content;>
+<!ATTLIST FN %attrs;>
+
+<!--======================== Math ========================================-->
+
+<!-- Use &thinsp; &emsp; etc for greater control of spacing. -->
+
+<!-- Subscripts and Superscripts
+
+ <SUB> and <SUP> are used for subscripts and superscripts.
+
+ i j
+ X <SUP>i</SUP>Y<SUP>j</SUP> is X Y
+
+ i.e. the space following the X disambiguates the binding.
+ The align attribute can be used for horizontal alignment,
+ e.g. to explicitly place an index above an element:
+ i
+ X<sup align=center>i</sup> produces X
+
+Short references are defined for superscripts, subscripts and boxes
+to save typing when manually editing HTML math, e.g.
+
+ x^2^ is mapped to x<sup>2</sup>
+ y_z_ is mapped to y<sub>z</sub>
+ {a+b} is mapped to <box>a + b</box>
+
+Note that these only apply within the MATH element and can't be
+used in normal text!
+-->
+<!ENTITY REF1 STARTTAG "SUP">
+<!ENTITY REF2 ENDTAG "SUP">
+<!ENTITY REF3 STARTTAG "SUB">
+<!ENTITY REF4 ENDTAG "SUB">
+<!ENTITY REF5 STARTTAG "BOX">
+<!ENTITY REF6 ENDTAG "BOX">
+
+<!USEMAP MAP1 MATH>
+<!USEMAP MAP2 SUP>
+<!USEMAP MAP3 SUB>
+<!USEMAP MAP4 BOX>
+
+<!SHORTREF MAP1 "^" REF1
+ "_" REF3
+ "{" REF5 >
+
+<!SHORTREF MAP2 "^" REF2
+ "_" REF3
+ "{" REF5 >
+
+<!SHORTREF MAP3 "_" REF4
+ "^" REF1
+ "{" REF5 >
+
+<!SHORTREF MAP4 "}" REF6
+ "^" REF1
+ "_" REF3
+ "{" REF5 >
+
+<!--
+ The inclusion of %math and exclusion of %notmath is used here
+ to alter the content model for the B, SUB and SUP elements,
+ to limit them to formulae rather than general text elements.
+-->
+
+<!ENTITY % mathvec "VEC|BAR|DOT|DDOT|HAT|TILDE" -- common accents -->
+<!ENTITY % mathface "B|T|BT" -- control of font face -->
+<!ENTITY % math "BOX|ABOVE|BELOW|%mathvec|ROOT|SQRT|ARRAY|SUB|SUP|%mathface">
+<!ENTITY % formula "#PCDATA|%math">
+
+<!ELEMENT MATH - - (#PCDATA)* -(%notmath) +(%math)>
+<!ATTLIST MATH
+ id ID #IMPLIED
+ class NAMES #IMPLIED -- e.g. class=chem -->
+
+<!-- The BOX element acts as brackets. Delimiters are optional and
+ stretch to match the height of the box. The OVER element is used
+ when you want a line between numerator and denominator. This line
+ is suppressed with the alternative ATOP element. CHOOSE acts like
+ ATOP but adds enclosing round brackets as a convenience for binomial
+ coefficients. Note the use of { and } as shorthand for <BOX> and
+ </BOX> respectively:
+
+ 1 + X
+ {1 + X<OVER>Y} is _______
+ Y
+
+ a + b
+ {a + b<ATOP>c - d} is
+ c - d
+
+ The delimiters are represented using the LEFT and RIGHT
+ elements as in:
+
+ {[<LEFT>x + y<RIGHT>]} is [ x + y ]
+ {(<LEFT>a<RIGHT>]} is (a]
+ {||<LEFT>a<RIGHT>||} is || a ||
+
+ Use &lbrace; and &rbrace; for "{" and "}" respectively as
+ these symbols are used as shorthand for BOX, e.g.
+
+ {&lbrace;<LEFT>a+b<RIGHT>&rbrace;} is {a+b}
+
+ You can stretch definite integrals to match the integrand, e.g.
+
+ {&int;<SUB>a</SUB><SUP>b</SUP><LEFT>{f(x)<over>1+x} dx}
+
+ b
+ / f(x)
+ | ----- dx
+ / 1 + x
+ a
+
+ Note the complex content model for BOX is a work around
+ for the absence of support for infix operators in SGML.
+
+ You can get oversize delimiters with the SIZE attribute,
+ for example <BOX SIZE=large>(<LEFT>...<RIGHT>)</BOX>
+
+ Note that the names of common functions are recognized
+ by the parser without the need to use "&" and ";" around
+ them, e.g. int, sum, sin, cos, tan, ...
+-->
+
+<!ELEMENT BOX - - ((%formula)*, (LEFT, (%formula)*)?,
+ ((OVER|ATOP|CHOOSE), (%formula)*)?,
+ (RIGHT, (%formula)*)?)>
+<!ATTLIST BOX
+ size (normal|medium|large|huge) normal -- oversize delims -->
+
+<!ELEMENT (OVER|ATOP|CHOOSE|LEFT|RIGHT) - O EMPTY>
+
+<!-- Horizontal line drawn ABOVE contents
+ The symbol attribute allows authors to supply
+ an entity name for an accent, arrow symbol etc.
+ Generalisation of LaTeX's overline command.
+
+ e.g. <above sym=ssmile>x</above>
+ places an upwardly turning curve above the "x"
+ -->
+
+<!ELEMENT ABOVE - - (%formula)+>
+<!ATTLIST ABOVE sym ENTITY #IMPLIED>
+
+<!-- Horizontal line drawn BELOW contents
+ The symbol attribute allows authors to
+ supply an entity name for an arrow symbol etc.
+ Generalisation of LaTeX's underline command.
+ -->
+
+<!ELEMENT BELOW - - (%formula)+>
+<!ATTLIST BELOW sym ENTITY #IMPLIED>
+
+<!-- Convenience tags for common accents:
+ vec, bar, dot, ddot, hat and tilde
+-->
+
+<!ELEMENT (%mathvec) - - (%formula)+>
+
+<!--
+ T and BT are used to designate terms which should
+ be rendered in an upright font (& bold face for BT)
+-->
+
+<!ELEMENT (T|BT) - - (%formula)+>
+<!ATTLIST (T|BT) class NAMES #IMPLIED>
+
+<!-- Roots e.g. <ROOT>3<OF>1+x</ROOT> -->
+
+<!ELEMENT ROOT - - ((%formula)+, OF, (%formula)+)>
+<!ELEMENT OF - O (%formula)* -- what the root applies to -->
+
+<!ELEMENT SQRT - - (%formula)* -- square root convenience tag -->
+
+<!-- LaTeX like arrays. The COLDEF attribute specifies
+ a single capital letter for each column determining
+ how the column should be aligned, e.g. coldef="CCC"
+
+ "L" left
+ "C" center
+ "R" right
+
+ An optional separator letter can occur between columns
+ and should be one of + - or =, e.g. "C+C+C+C=C".
+ Whitespace within coldef is ignored. By default, the
+ columns are all centered.
+
+ The ALIGN attribute alters the vertical position of the
+ array as compared with preceding and following expressions.
+
+ Use LDELIM and RDELIM attributes for delimiter entities.
+ When the LABELS attribute is present, the array is
+ displayed with the first row and the first column as
+ labels displaced from the other elements. In this case,
+ the first element of the first row should normally be
+ left blank.
+
+ Use &vdots; &cdots; and &ddots; for vertical, horizontal
+ and diagonal ellipsis dots. Use &dotfill; to fill an array
+ cell with horizontal dots (e.g. for a full row).
+ Note &ldots; places the dots on the baseline, while &cdots;
+ places them higher up.
+-->
+
+<!ELEMENT ARRAY - - (ROW)+>
+<!ATTLIST ARRAY
+ align (top|middle|bottom) middle -- vertical alignment --
+ coldef CDATA #IMPLIED -- column alignment and separator --
+ ldelim CDATA #IMPLIED -- stretchy left delimiter --
+ rdelim CDATA #IMPLIED -- stretchy right delimiter --
+ labels (labels) #IMPLIED -- TeX's \bordermatrix style -->
+
+<!ELEMENT ROW - O (ITEM)*>
+<!ELEMENT ITEM - O (%formula)*>
+<!ATTLIST ITEM
+ align CDATA #IMPLIED -- override coldef alignment --
+ colspan NUMBER 1 -- merge columns as per TABLE --
+ rowspan NUMBER 1 -- merge rows as per TABLE -->
+
+<!--================ Document Head ========================================-->
+
+<![ %HTML.Deprecated [
+ <!ENTITY % head.content "TITLE & ISINDEX? & BASE? & STYLE?
+ & META* & LINK* & RANGE* & NEXTID?">
+]]>
+
+<!ENTITY % head.nextid "">
+
+<!ENTITY % head.content "TITLE & ISINDEX? & BASE? & STYLE?
+ & META* & LINK* & RANGE*">
+
+<!ELEMENT HEAD O O (%head.content)>
+
+<!ELEMENT LINK - O EMPTY>
+<!ATTLIST LINK
+ href %URI #REQUIRED
+ %linkExtraAttributes; >
+
+<!ELEMENT RANGE - O EMPTY>
+<!ATTLIST RANGE
+ id ID #IMPLIED -- for naming marked range --
+ class NAMES #IMPLIED -- for subclassing --
+ from IDREF #REQUIRED -- start of marked range --
+ until IDREF #REQUIRED -- end of marked range --
+ >
+
+<!ELEMENT ISINDEX - O EMPTY>
+<!ATTLIST ISINDEX
+ href %URI #IMPLIED -- server handling queries --
+ prompt CDATA #IMPLIED -- prompt message -->
+
+<!--
+ The BASE element gives the base URL for
+ dereferencing relative URLs, e.g.
+
+ <BASE href="http://foo.com/images">
+ ...
+ <IMG SRC="bar.gif">
+
+ The image is deferenced to
+
+ http://foo.com/images/bar.gif
+-->
+
+<!ELEMENT BASE - O EMPTY>
+<!ATTLIST BASE
+ id ID #IMPLIED
+ href %URI; #REQUIRED
+ >
+
+<![ %HTML.Deprecated [
+ <!ELEMENT NEXTID - O EMPTY>
+ <!ATTLIST NEXTID N CDATA #REQUIRED>
+]]>
+
+<!ELEMENT META - O EMPTY -- Generic Metainformation -->
+<!ATTLIST META
+ http-equiv NAME #IMPLIED -- HTTP response header name --
+ name NAME #IMPLIED -- metainformation name --
+ content CDATA #REQUIRED -- associated information --
+ >
+
+<!--
+ A style sheet can be associated with the document using the
+ LINK element, e.g. <LINK rel=style href="housestyle.dsssl">.
+ Style overrides can be placed in the document head using the
+ STYLE element, e.g.
+
+ <style notation=dsssl-lite>
+ dsss-lite stuff
+ </style>
+
+ Later on in the document you can use:
+
+ <h2 class=bigcaps>Header with bigger than normal capitals</h2>
+ <p class=abstract>A paragraph with a unique style of its own
+ ...
+
+ Statements in the given style notation
+
+ The tag names, class and id attributes are used in the style sheet
+ notation to describe how to render matching elements.
+-->
+
+<!ENTITY % style-notations "dsssl-lite | w3c-style">
+
+<!--
+<!NOTATION dsssl-lite PUBLIC
+ "ISO/IEC 10179:1995//NOTATION DSSSL Style Language//EN">
+
+<!NOTATION w3c-style PUBLIC "IETF/RFC nnn/W3C Style Language//EN">
+-->
+
+<!ELEMENT STYLE - O (#PCDATA)>
+<!ATTLIST STYLE
+ notation NOTATION (%style-notations;) #REQUIRED
+>
+
+<!--================ Document Structure ===================================-->
+
+<!ENTITY % html.content "HEAD, BODY">
+
+<!ELEMENT HTML O O (%html.content)>
+<!ENTITY % version.attr 'VERSION CDATA #FIXED "%HTML.Version;"'>
+
+<!-- suggested roles are: TOC, DOC, DOCPART, HITLIST, DIALOG -->
+
+<!ATTLIST HTML
+ %version.attr; -- report DTD version to application --
+ urn CDATA #IMPLIED -- universal resource name for this document --
+ class NAMES #IMPLIED -- role of this document, eg table of contents --
+ >
+
+<!-- The END -->
diff --git a/htdocs/sgml-lib/html-hjs.dtd b/htdocs/sgml-lib/html-hjs.dtd
new file mode 100644
index 0000000..151a756
--- /dev/null
+++ b/htdocs/sgml-lib/html-hjs.dtd
@@ -0,0 +1,27 @@
+<!-- html-hjs.dtd
+
+ Document Type Definition for the HyperText Markup Language
+ with strict validation of the HotJava DTD.
+
+ Author: Daniel W. Connolly <connolly@w3.org>
+ Applet additions by: Mark Gaither (markg@hal.com) 24 Jul 95
+
+-->
+
+<!ENTITY % HTML.Version
+ "-//Sun Microsystems Corp.//DTD HotJava Strict HTML//EN"
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC "-//Sun Microsystems Corp.//DTD HotJava HTML//EN">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+<!-- Feature Test Entities -->
+<!ENTITY % HTML.Recommended "INCLUDE">
+
+<!ENTITY % html PUBLIC "-//Sun Microsystems Corp.//DTD HotJava HTML//EN">
+%html;
diff --git a/htdocs/sgml-lib/html-i18n.decl b/htdocs/sgml-lib/html-i18n.decl
new file mode 100644
index 0000000..270ec49
--- /dev/null
+++ b/htdocs/sgml-lib/html-i18n.decl
@@ -0,0 +1,91 @@
+<!SGML "ISO 8879:1986"
+--
+ SGML Declaration for HyperText Markup Language version 2.x
+ (HTML 2.x = HTML 2.0 + i18n).
+
+--
+
+CHARSET
+ BASESET "ISO Registration Number 177//CHARSET
+ ISO/IEC 10646-1:1993 UCS-4 with
+ implementation level 3//ESC 2/5 2/15 4/6"
+ DESCSET 0 9 UNUSED
+ 9 2 9
+ 11 2 UNUSED
+ 13 1 13
+ 14 18 UNUSED
+ 32 95 32
+ 127 1 UNUSED
+ 128 32 UNUSED
+ 160 2147483486 160
+--
+ In ISO 10646, the positions with hexadecimal
+ values 0000D800 - 0000DFFF, used in the UTF-16
+ encoding of UCS-4, are reserved, as well as the last
+ two code values in each plane of UCS-4, i.e. all
+ values of the hexadecimal form xxxxFFFE or xxxxFFFF.
+ These code values or the corresponding numeric
+ character references must not be included when
+ generating a new HTML document, and they should be
+ ignored if encountered when processing a HTML
+ document.
+--
+
+CAPACITY SGMLREF
+ TOTALCAP 150000
+ GRPCAP 150000
+ ENTCAP 150000
+
+SCOPE DOCUMENT
+SYNTAX
+ SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+ 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127
+
+ BASESET "ISO 646IRV:1991//CHARSET
+ International Reference Version
+ (IRV)//ESC 2/8 4/2"
+ DESCSET 0 128 0
+
+ FUNCTION
+ RE 13
+ RS 10
+ SPACE 32
+ TAB SEPCHAR 9
+
+ NAMING LCNMSTRT ""
+ UCNMSTRT ""
+ LCNMCHAR ".-"
+ UCNMCHAR ".-"
+ NAMECASE GENERAL YES
+ ENTITY NO
+ DELIM GENERAL SGMLREF
+ SHORTREF SGMLREF
+ NAMES SGMLREF
+ QUANTITY SGMLREF
+ ATTSPLEN 2100
+ LITLEN 1024
+ NAMELEN 72 -- somewhat arbitrary; taken from
+ internet line length conventions --
+ PILEN 1024
+ TAGLVL 100
+ TAGLEN 2100
+ GRPGTCNT 150
+ GRPCNT 64
+
+FEATURES
+ MINIMIZE
+ DATATAG NO
+ OMITTAG YES
+ RANK NO
+ SHORTTAG YES
+ LINK
+ SIMPLE NO
+ IMPLICIT NO
+ EXPLICIT NO
+ OTHER
+ CONCUR NO
+ SUBDOC NO
+ FORMAL YES
+ APPINFO "SDA" -- conforming SGML Document Access application
+ --
+>
diff --git a/htdocs/sgml-lib/html-icons.sgml b/htdocs/sgml-lib/html-icons.sgml
new file mode 100644
index 0000000..6eeb32c
--- /dev/null
+++ b/htdocs/sgml-lib/html-icons.sgml
@@ -0,0 +1,8 @@
+<!--
+ HTMLicons fake entity declarations to get the html-3.dtd to work
+-->
+
+<!ENTITY folder SDATA "[folder ]" -- folder icon -->
+<!-- should have a bunch more icons, like the internal icons =
+
+ in Mosaic and Netscape -->
diff --git a/htdocs/sgml-lib/html-latin.sgml b/htdocs/sgml-lib/html-latin.sgml
new file mode 100644
index 0000000..0ed82b5
--- /dev/null
+++ b/htdocs/sgml-lib/html-latin.sgml
@@ -0,0 +1,161 @@
+<!-- Portions of this text are copyright ISO:
+
+ (C) International Organization for Standardization 1986
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+-->
+<!-- Character entity set. Typical invocation:
+ <!ENTITY % HTMLlat1 PUBLIC
+ "-//W3O//ENTITIES W3 Latin 1 for HTML//EN">
+ %HTMLlat1;
+-->
+<!-- Modified for use in HTML
+ $Id: html-latin.sgml,v 1.1.1.1 1998-07-25 00:00:22 gerald Exp $ =
+
+-->
+<!-- Modified to add characters in the range &161; to &191; in
+ the ISO Latin-1 character set, which could only be referred =
+
+ to by numeric references. Entity names based on relevant entities in
+ ISO 8879-1986//ENTITIES Numeric and Special Graphic//EN"
+ Also added the standard lt gt amp entities from HTML 2.0
+ Chris Lilley, 13 March 1995
+ =
+
+ This covers all of Latin 1, but we are still unable to display a =
+
+ Trade Mark (TM)
+-->
+
+<!ENTITY AElig CDATA "&#198;" -- capital AE diphthong (ligature) -->
+<!ENTITY Aacute CDATA "&#193;" -- capital A, acute accent -->
+<!ENTITY Acirc CDATA "&#194;" -- capital A, circumflex accent -->
+<!ENTITY Agrave CDATA "&#192;" -- capital A, grave accent -->
+<!ENTITY Aring CDATA "&#197;" -- capital A, ring -->
+<!ENTITY Atilde CDATA "&#195;" -- capital A, tilde -->
+<!ENTITY Auml CDATA "&#196;" -- capital A, dieresis or umlaut mark -->
+<!ENTITY Ccedil CDATA "&#199;" -- capital C, cedilla -->
+<!ENTITY ETH CDATA "&#208;" -- capital Eth, Icelandic -->
+<!ENTITY Eacute CDATA "&#201;" -- capital E, acute accent -->
+<!ENTITY Ecirc CDATA "&#202;" -- capital E, circumflex accent -->
+<!ENTITY Egrave CDATA "&#200;" -- capital E, grave accent -->
+<!ENTITY Euml CDATA "&#203;" -- capital E, dieresis or umlaut mark -->
+<!ENTITY Iacute CDATA "&#205;" -- capital I, acute accent -->
+<!ENTITY Icirc CDATA "&#206;" -- capital I, circumflex accent -->
+<!ENTITY Igrave CDATA "&#204;" -- capital I, grave accent -->
+<!ENTITY Iuml CDATA "&#207;" -- capital I, dieresis or umlaut mark -->
+<!ENTITY Ntilde CDATA "&#209;" -- capital N, tilde -->
+<!ENTITY Oacute CDATA "&#211;" -- capital O, acute accent -->
+<!ENTITY Ocirc CDATA "&#212;" -- capital O, circumflex accent -->
+<!ENTITY Ograve CDATA "&#210;" -- capital O, grave accent -->
+<!ENTITY Oslash CDATA "&#216;" -- capital O, slash -->
+<!ENTITY Otilde CDATA "&#213;" -- capital O, tilde -->
+<!ENTITY Ouml CDATA "&#214;" -- capital O, dieresis or umlaut mark -->
+<!ENTITY THORN CDATA "&#222;" -- capital THORN, Icelandic -->
+<!ENTITY Uacute CDATA "&#218;" -- capital U, acute accent -->
+<!ENTITY Ucirc CDATA "&#219;" -- capital U, circumflex accent -->
+<!ENTITY Ugrave CDATA "&#217;" -- capital U, grave accent -->
+<!ENTITY Uuml CDATA "&#220;" -- capital U, dieresis or umlaut mark -->
+<!ENTITY Yacute CDATA "&#221;" -- capital Y, acute accent -->
+<!ENTITY aacute CDATA "&#225;" -- small a, acute accent -->
+<!ENTITY acirc CDATA "&#226;" -- small a, circumflex accent -->
+<!ENTITY aelig CDATA "&#230;" -- small ae diphthong (ligature) -->
+<!ENTITY agrave CDATA "&#224;" -- small a, grave accent -->
+<!ENTITY aring CDATA "&#229;" -- small a, ring -->
+<!ENTITY atilde CDATA "&#227;" -- small a, tilde -->
+<!ENTITY auml CDATA "&#228;" -- small a, dieresis or umlaut mark -->
+<!ENTITY ccedil CDATA "&#231;" -- small c, cedilla -->
+<!ENTITY eacute CDATA "&#233;" -- small e, acute accent -->
+<!ENTITY ecirc CDATA "&#234;" -- small e, circumflex accent -->
+<!ENTITY egrave CDATA "&#232;" -- small e, grave accent -->
+<!ENTITY eth CDATA "&#240;" -- small eth, Icelandic -->
+<!ENTITY euml CDATA "&#235;" -- small e, dieresis or umlaut mark -->
+<!ENTITY iacute CDATA "&#237;" -- small i, acute accent -->
+<!ENTITY icirc CDATA "&#238;" -- small i, circumflex accent -->
+<!ENTITY igrave CDATA "&#236;" -- small i, grave accent -->
+<!ENTITY iuml CDATA "&#239;" -- small i, dieresis or umlaut mark -->
+<!ENTITY ntilde CDATA "&#241;" -- small n, tilde -->
+<!ENTITY oacute CDATA "&#243;" -- small o, acute accent -->
+<!ENTITY ocirc CDATA "&#244;" -- small o, circumflex accent -->
+<!ENTITY ograve CDATA "&#242;" -- small o, grave accent -->
+<!ENTITY oslash CDATA "&#248;" -- small o, slash -->
+<!ENTITY otilde CDATA "&#245;" -- small o, tilde -->
+<!ENTITY ouml CDATA "&#246;" -- small o, dieresis or umlaut mark -->
+<!ENTITY szlig CDATA "&#223;" -- small sharp s, German (sz ligature) -->
+<!ENTITY thorn CDATA "&#254;" -- small thorn, Icelandic -->
+<!ENTITY uacute CDATA "&#250;" -- small u, acute accent -->
+<!ENTITY ucirc CDATA "&#251;" -- small u, circumflex accent -->
+<!ENTITY ugrave CDATA "&#249;" -- small u, grave accent -->
+<!ENTITY uuml CDATA "&#252;" -- small u, dieresis or umlaut mark -->
+<!ENTITY yacute CDATA "&#253;" -- small y, acute accent -->
+<!ENTITY yuml CDATA "&#255;" -- small y, dieresis or umlaut mark -->
+<!-- =
+
+ Ones that aren't accented characters, and so not in ISO Added Latin =
+1.
+
+ umlaut. macron, acute, cedilla
+ were not in ISO Numeric and Special Graphic
+ either; I took their names from the numeric entity list in
+ http://www.hpl.hp.co.uk/people/dsr/html/latin1.html =
+
+ Chris Lilley, 13 March 1995 =
+
+-->
+
+<!ENTITY iexcl SDATA "=A1" --=3D inverted exclamation mark &161; -->
+<!ENTITY cent SDATA "=A2" --=3D cent sign &162; -->
+<!ENTITY pound SDATA "=A3" --=3D pound sterling sign &163; -->
+<!ENTITY curren SDATA "=A4" --=3D general currency sign &164; -->
+<!ENTITY yen SDATA "=A5" --=3D yen sign &165; -->
+<!ENTITY brvbar SDATA "=A6" --=3D broken (vertical) bar &166; -->
+<!ENTITY sect SDATA "=A7" --=3D section sign &167; -->
+<!ENTITY umlaut SDATA "=A8" --=3D umlaut (dieresis) &168; -->
+<!ENTITY copy SDATA "=A9" --=3D copyright sign &169; -->
+<!ENTITY ordf SDATA "=AA" --=3D ordinal indicator, feminine &170; -->
+<!ENTITY laquo SDATA "=AB" --=3D angle quotation mark, left &171; -->
+<!ENTITY not SDATA "=AC" --=3D not sign &172; -->
+<!ENTITY shy SDATA "=AD" --=3D soft hyphen &173;-->
+<!ENTITY reg SDATA "=AE" --=3D registered trademark &174; -->
+<!ENTITY macron SDATA "=AF" --=3D macron &175; -->
+<!ENTITY deg SDATA "=B0" --=3D degree sign &176; -->
+<!ENTITY plusmn SDATA "=B1" --=3D plus-or-minus sign &177; -->
+<!ENTITY sup2 SDATA "=B2" --=3D superscript two &178; -->
+<!ENTITY sup3 SDATA "=B3" --=3D superscript three &179; -->
+<!ENTITY acute SDATA "=B4" --=3D acute accent &180; -->
+<!ENTITY micro SDATA "=B5" --=3D micro sign &181; -->
+<!ENTITY para SDATA "=B6" --=3D pilcrow (paragraph sign) &182; -->
+<!ENTITY middot SDATA "=B7" --=3D middle dot (centred decimal point) &183; -->
+<!ENTITY cedilla SDATA "=B8" --=3D cedilla accent &184; -->
+<!ENTITY sup1 SDATA "=B9" --=3D superscript one -->
+<!ENTITY ordm SDATA "=BA" --=3D ordinal indicator, masculine -->
+<!ENTITY raquo SDATA "=BB" --=3D angle quotation mark, right -->
+<!ENTITY frac14 SDATA "=BC" --=3D fraction one-quarter -->
+<!ENTITY frac12 SDATA "=BD" --=3D fraction one-half -->
+<!ENTITY frac34 SDATA "=BE" --=3D fraction three-quarters -->
+<!ENTITY iquest SDATA "=BF" --=3D inverted question mark -->
+<!-- the odd ones tucked in amongs the accented letters -->
+<!ENTITY times SDATA "=D7" --=3D multiply sign -->
+<!ENTITY divide SDATA "=F7" --=3D divide sign -->
+
+<!ENTITY amp CDATA "&#38;" -- ampersand -->
+<!ENTITY gt CDATA "&#62;" -- greater than -->
+<!ENTITY lt CDATA "&#60;" -- less than -->
+<!ENTITY quot CDATA "&#34;" -- double quote -->
+
+<!--
+ Should the dollar sign and such like also be given entity names?
+ There are suitable ones around. For example, people using =
+
+ internationalised keyboards in various countries might not be =
+
+ readily able to access some of these characters.
+ =
+
+ On such grounds, I suggest entity names for these:
+ ! " # $ % ' ( ) * + , - . / : ; =3D ? [ \ ] ^ _ ` { | } ~
+ Lastly, what about &tab; for those whose editors convert all
+ tabs to spaces?
+
+-->
diff --git a/htdocs/sgml-lib/html-math.sgml b/htdocs/sgml-lib/html-math.sgml
new file mode 100644
index 0000000..2d292a8
--- /dev/null
+++ b/htdocs/sgml-lib/html-math.sgml
@@ -0,0 +1,53 @@
+<!-- all these entities copied from =
+
+ ftp://ifi.uio.no/pub/SGML/ENTITIES/ISOgrk1 -->
+
+<!ENTITY agr SDATA "[agr ]"--small alpha, Greek-->
+<!ENTITY Agr SDATA "[Agr ]"--capital Alpha, Greek-->
+<!ENTITY bgr SDATA "[bgr ]"--small beta, Greek-->
+<!ENTITY Bgr SDATA "[Bgr ]"--capital Beta, Greek-->
+<!ENTITY ggr SDATA "[ggr ]"--small gamma, Greek-->
+<!ENTITY Ggr SDATA "[Ggr ]"--capital Gamma, Greek-->
+<!ENTITY dgr SDATA "[dgr ]"--small delta, Greek-->
+<!ENTITY Dgr SDATA "[Dgr ]"--capital Delta, Greek-->
+<!ENTITY egr SDATA "[egr ]"--small epsilon, Greek-->
+<!ENTITY Egr SDATA "[Egr ]"--capital Epsilon, Greek-->
+<!ENTITY zgr SDATA "[zgr ]"--small zeta, Greek-->
+<!ENTITY Zgr SDATA "[Zgr ]"--capital Zeta, Greek-->
+<!ENTITY eegr SDATA "[eegr ]"--small eta, Greek-->
+<!ENTITY EEgr SDATA "[EEgr ]"--capital Eta, Greek-->
+<!ENTITY thgr SDATA "[thgr ]"--small theta, Greek-->
+<!ENTITY THgr SDATA "[THgr ]"--capital Theta, Greek-->
+<!ENTITY igr SDATA "[igr ]"--small iota, Greek-->
+<!ENTITY Igr SDATA "[Igr ]"--capital Iota, Greek-->
+<!ENTITY kgr SDATA "[kgr ]"--small kappa, Greek-->
+<!ENTITY Kgr SDATA "[Kgr ]"--capital Kappa, Greek-->
+<!ENTITY lgr SDATA "[lgr ]"--small lambda, Greek-->
+<!ENTITY Lgr SDATA "[Lgr ]"--capital Lambda, Greek-->
+<!ENTITY mgr SDATA "[mgr ]"--small mu, Greek-->
+<!ENTITY Mgr SDATA "[Mgr ]"--capital Mu, Greek-->
+<!ENTITY ngr SDATA "[ngr ]"--small nu, Greek-->
+<!ENTITY Ngr SDATA "[Ngr ]"--capital Nu, Greek-->
+<!ENTITY xgr SDATA "[xgr ]"--small xi, Greek-->
+<!ENTITY Xgr SDATA "[Xgr ]"--capital Xi, Greek-->
+<!ENTITY ogr SDATA "[ogr ]"--small omicron, Greek-->
+<!ENTITY Ogr SDATA "[Ogr ]"--capital Omicron, Greek-->
+<!ENTITY pgr SDATA "[pgr ]"--small pi, Greek-->
+<!ENTITY Pgr SDATA "[Pgr ]"--capital Pi, Greek-->
+<!ENTITY rgr SDATA "[rgr ]"--small rho, Greek-->
+<!ENTITY Rgr SDATA "[Rgr ]"--capital Rho, Greek-->
+<!ENTITY sgr SDATA "[sgr ]"--small sigma, Greek-->
+<!ENTITY Sgr SDATA "[Sgr ]"--capital Sigma, Greek-->
+<!ENTITY sfgr SDATA "[sfgr ]"--final small sigma, Greek-->
+<!ENTITY tgr SDATA "[tgr ]"--small tau, Greek-->
+<!ENTITY Tgr SDATA "[Tgr ]"--capital Tau, Greek-->
+<!ENTITY ugr SDATA "[ugr ]"--small upsilon, Greek-->
+<!ENTITY Ugr SDATA "[Ugr ]"--capital Upsilon, Greek-->
+<!ENTITY phgr SDATA "[phgr ]"--small phi, Greek-->
+<!ENTITY PHgr SDATA "[PHgr ]"--capital Phi, Greek-->
+<!ENTITY khgr SDATA "[khgr ]"--small chi, Greek-->
+<!ENTITY KHgr SDATA "[KHgr ]"--capital Chi, Greek-->
+<!ENTITY psgr SDATA "[psgr ]"--small psi, Greek-->
+<!ENTITY PSgr SDATA "[PSgr ]"--capital Psi, Greek-->
+<!ENTITY ohgr SDATA "[ohgr ]"--small omega, Greek-->
+<!ENTITY OHgr SDATA "[OHgr ]"--capital Omega, Greek-->
diff --git a/htdocs/sgml-lib/html-mcom.dtd b/htdocs/sgml-lib/html-mcom.dtd
new file mode 100644
index 0000000..afa0d76
--- /dev/null
+++ b/htdocs/sgml-lib/html-mcom.dtd
@@ -0,0 +1,541 @@
+<!-- html-mcom.dtd
+
+ Document Type Definition for the HyperText Markup Language (HTML DTD)
+ with Netscape Communications Corp Extensions
+
+ Date: 27 Oct. 1994
+
+ Author: Daniel W. Connolly <connolly@w3.org>
+ See Also: html.decl, ISOlat1.sgml
+ http://home.netscape.com/assist/net_sites/html_extensions.html
+ http://www.halsoft.com/sgml/Mozilla/DTD-HOME.html
+ http://www.hpl.hp.co.uk/people/dsr/html3/Contents.html
+
+ Maintanence by: Mark Gaither (markg@webtechs.com)
+
+ Copyright 1996 - WebTechs - Austin, TX
+ http://www.webtechs.com/
+-->
+
+<!ENTITY % HTML.Version
+ "-//WebTechs//DTD Mozilla HTML 2.0//EN"
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC "-//WebTechs//DTD Mozilla HTML 2.0//EN">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+
+<!--================== Feature Test Entities ==============================-->
+
+<!ENTITY % HTML.Recommended "IGNORE"
+ -- Certain features of the language are necessary for compatibility
+ with widespread usage, but they may compromise the structural
+ integrity of a document. This feature test entity enables
+ a more prescriptive document type definition that eliminates
+ the above features.
+ -->
+
+<![ %HTML.Recommended [
+ <!ENTITY % HTML.Deprecated "IGNORE">
+]]>
+
+<!ENTITY % HTML.Deprecated "INCLUDE"
+ -- Certain features of the language are necessary for compatibility
+ with earlier versions of the specification, but they tend
+ to be used an implemented inconsistently, and their use is
+ deprecated. This feature test entity enables a document type
+ definition that eliminates these features.
+ -->
+
+<!ENTITY % HTML.Highlighting "INCLUDE">
+<!ENTITY % HTML.Forms "INCLUDE">
+
+<!--================== Imported Names =====================================-->
+
+<!ENTITY % Content-Type "CDATA"
+ -- meaning a MIME content type, as per RFC1521
+ -->
+
+<!ENTITY % HTTP-Method "GET | POST"
+ -- as per HTTP specification
+ -->
+
+<!ENTITY % URI "CDATA"
+ -- The term URI means a CDATA attribute
+ whose value is a Uniform Resource Identifier,
+ as defined by
+ "Universal Resource Identifiers" by Tim Berners-Lee
+ aka http://info.cern.ch/hypertext/WWW/Addressing/URL/URI_Overview.html
+ aka RFC 1630
+
+ Note that CDATA attributes are limited by the LITLEN
+ capacity (1024 in the current version of html.decl),
+ so that URIs in HTML have a bounded length.
+
+ -->
+
+
+<!-- DTD "macros" -->
+
+<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
+
+<!ENTITY % list " UL | OL | DIR | MENU " >
+
+
+<!--================ Character mnemonic entities ==========================-->
+
+<!ENTITY % ISOlat1 PUBLIC
+ "-//IETF//ENTITIES Added Latin 1 for HTML//EN">
+%ISOlat1;
+
+<!ENTITY amp CDATA "&#38;" -- ampersand -->
+<!ENTITY gt CDATA "&#62;" -- greater than -->
+<!ENTITY lt CDATA "&#60;" -- less than -->
+<!ENTITY quot CDATA "&#34;" -- double quote -->
+
+<!ENTITY reg CDATA "&#174;" -- registered trademark -->
+<!ENTITY copy CDATA "&#169;" -- copyright -->
+
+<!--=================== Text Markup =======================================-->
+
+<![ %HTML.Highlighting [
+
+<!ENTITY % font " TT | B | I | FONT | BIG | SMALL | SUB | SUP ">
+
+<!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE | BLINK">
+
+<!ENTITY % text "#PCDATA | A | IMG | BR | WBR | NOBR | BASEFONT
+ | %phrase | %font">
+
+<!ENTITY % text.nonparseable "A | IMG | BR | WBR | NOBR | BASEFONT
+ | %phrase | %font">
+
+<!ENTITY % pre.content "#PCDATA | A | HR | BR | %font | %phrase">
+
+<!ELEMENT (%font;|%phrase) - - (%text)+>
+
+<!ELEMENT basefont - - ANY>
+
+<!ATTLIST (font|basefont)
+ SIZE CDATA #IMPLIED -- should be NUTOKEN, using size=plus3, --
+ COLOR CDATA #IMPLIED -- color attribute --
+ >
+]]>
+
+<!ENTITY % text "#PCDATA | A | IMG | BR | WBR | NOBR | CENTER">
+
+<!ELEMENT BR - O EMPTY>
+<!ATTLIST BR
+ CLEAR (left|right|all) #IMPLIED>
+
+<!ELEMENT NOBR - - (%text)+>
+<!ELEMENT WBR - O EMPTY>
+
+<!--================== Link Markup ========================================-->
+
+<![ %HTML.Recommended [
+ <!ENTITY % linkName "ID">
+]]>
+
+<!ENTITY % linkName "CDATA">
+
+<!ENTITY % linkType "NAME"
+ -- a list of these will be specified at a later date -->
+
+<!ENTITY % linkExtraAttributes
+ "REL %linkType #IMPLIED -- forward relationship type --
+ REV %linkType #IMPLIED -- reversed relationship type
+ to referent data --
+ URN CDATA #IMPLIED -- universal resource number --
+
+ TITLE CDATA #IMPLIED -- advisory only --
+ METHODS NAMES #IMPLIED -- supported public methods of the object:
+ TEXTSEARCH, GET, HEAD, ... --
+ ">
+
+<![ %HTML.Recommended [
+ <!ENTITY % A.content "(%text)+"
+ -- <H1><a name="xxx">Heading</a></H1>
+ is preferred to
+ <a name="xxx"><H1>Heading</H1></a>
+ -->
+]]>
+
+<!ENTITY % A.content "(%heading|%text)+">
+
+<!ELEMENT A - - %A.content -(A)>
+
+<!ATTLIST A
+ HREF %URI #IMPLIED
+ NAME %linkName #IMPLIED
+ %linkExtraAttributes;
+ >
+
+<!--=================== Images ============================================-->
+
+<!ENTITY % img.alt.default "#IMPLIED"
+ -- ALT attribute required in Level 0 docs -->
+
+<!ELEMENT IMG - O EMPTY -- Embedded image -->
+<!ATTLIST IMG
+ SRC %URI; #REQUIRED -- URI of document to embed --
+ LOWSRC %URI; #IMPLIED -- low resolution images spec --
+ USEMAP %URI; #IMPLIED -- client-side mape --
+ ALT CDATA %img.alt.default;
+ ALIGN (left|right|center|top|texttop|middle|
+ absmiddle|baseline|bottom|absbottom) baseline
+ WIDTH CDATA #IMPLIED
+ HEIGHT NUMBER #IMPLIED
+ BORDER NUMBER #IMPLIED
+ VSPACE NUMBER #IMPLIED
+ HSPACE NUMBER #IMPLIED
+ ISMAP (ISMAP) #IMPLIED
+ >
+<!ELEMENT MAP - - (AREA)+>
+<!ATTLIST MAP
+ NAME CDATA #REQUIRED -- name of client side map --
+ >
+
+<!ELEMENT AREA - O EMPTY>
+<!ATTLIST AREA
+ SHAPE (rect|poly|circle|default) rect -- shape of area --
+ COORDS CDATA #REQUIRED -- coordinates of shape --
+ HREF %URI; #IMPLIED -- reference --
+ NOHREF (nohref) #IMPLIED -- do nothing on a click --
+ >
+
+<!--=================== Paragraphs=========================================-->
+
+<!ENTITY % attrs -- common attributes for elements --
+ 'id ID #IMPLIED -- as target for hrefs (link ends) --
+ lang CDATA "en.us" -- ISO language, country code --
+ class NAMES #IMPLIED -- for subclassing elements --'>
+
+<!ENTITY % needs -- Attributes for controlling text flow. Used in headers
+ and other elements to guarantee sufficient room --
+ 'clear CDATA "no" -- (left|right|all|no) move down past figures --
+ needs CDATA #IMPLIED -- minimum width needed in em"s or pixels --
+ -- e.g. "40 em" or "100 pixels" --'>
+
+<!ELEMENT P - O (%text)+>
+<!ATTLIST P
+ %attrs;
+ align (left|center|right) #IMPLIED
+ %needs; -- for control of text flow --
+ nowrap (nowrap) #IMPLIED -- disable wordwrap --
+ >
+
+<!--=================== Headings, Titles, Sections ========================-->
+
+<!ELEMENT HR - O EMPTY -- horizontal rule -->
+<!ATTLIST HR
+ SIZE NUMBER #IMPLIED
+ WIDTH CDATA #IMPLIED
+ ALIGN (left|right|center) #IMPLIED
+ NOSHADE (NOSHADE) #IMPLIED>
+
+<!ELEMENT ( %heading ) - - (%text;)+>
+<!ATTLIST ( %heading )
+ %attrs;
+ align (left|center|right|justify) #IMPLIED
+ %needs; -- for control of text flow --
+ >
+
+
+<!ELEMENT TITLE - - (#PCDATA)
+ -- 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.
+ -->
+
+
+<!--=================== Text Flows ========================================-->
+
+<![ %HTML.Forms [
+ <!ENTITY % block.forms "FORM | TABLE | ISINDEX">
+]]>
+
+<!ENTITY % block.forms "">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % preformatted "PRE | XMP | LISTING">
+]]>
+
+<!ENTITY % preformatted "PRE">
+
+<!ENTITY % block "P | %list | DL
+ | %preformatted
+ | BLOCKQUOTE | APPLET | CENTER | %block.forms">
+
+<!ENTITY % flow "(%text|%block)*">
+
+<!ENTITY % pre.content "#PCDATA | A | HR | BR">
+<!ELEMENT PRE - - (%pre.content)+>
+
+<!ATTLIST PRE
+ WIDTH NUMBER #implied
+ >
+
+<![ %HTML.Deprecated [
+
+<!ENTITY % literal "CDATA"
+ -- special non-conforming parsing mode where
+ the only markup signal is the end tag
+ in full
+ -->
+
+<!ELEMENT XMP - - %literal>
+<!ELEMENT LISTING - - %literal>
+<!ELEMENT PLAINTEXT - O %literal>
+
+]]>
+
+
+<!--=================== Lists =============================================-->
+
+<!ELEMENT DL - - (DT*, DD?)+>
+<!ATTLIST DL
+ COMPACT (COMPACT) #IMPLIED>
+
+<!ELEMENT DT - O (%text)+>
+<!ELEMENT DD - O %flow>
+
+<!ELEMENT (OL|UL) - - (LI)+>
+<!ELEMENT (DIR|MENU) - - (LI)+ -(%block)>
+<!ATTLIST (UL)
+ COMPACT (COMPACT) #IMPLIED
+ TYPE (disc|circle|square) disc
+ >
+<!ATTLIST (OL)
+ START NUMBER #IMPLIED
+ COMPACT (COMPACT) #IMPLIED
+ TYPE (a|i|1) 1
+ >
+
+<!ELEMENT LI - O %flow>
+<!ATTLIST LI
+ TYPE (disc|circle|square|a|i|1) disc
+ VALUE NUMBER #IMPLIED
+ >
+
+<!--=================== Document Body =====================================-->
+<![ %HTML.Recommended [
+ <!ENTITY % body.content "(MAP|DIV|%heading|%block|HR|ADDRESS)*"
+ -- <h1>Heading</h1>
+ <p>Text ...
+ is preferred to
+ <h1>Heading</h1>
+ Text ...
+ -->
+]]>
+
+<!ENTITY % body.content "(MAP | DIV | %heading | %text | %block | HR | ADDRESS)*">
+
+<!ELEMENT BODY O O %body.content>
+<!ATTLIST BODY
+ BACKGROUND %URI; #IMPLIED
+ BGCOLOR CDATA #IMPLIED
+ TEXT CDATA #IMPLIED
+ LINK CDATA #IMPLIED
+ VLINK CDATA #IMPLIED
+ ALINK CDATA #IMPLIED
+ >
+
+<!ELEMENT BLOCKQUOTE - - %body.content>
+
+<!ELEMENT CENTER - - %body.content>
+
+<![ %HTML.Recommended [
+ <!ENTITY % address.content "(%text)*">
+]]>
+<!ENTITY % address.content "(%text|P)*">
+<!ELEMENT ADDRESS - - %address.content>
+
+<!ELEMENT DIV - - %body.content>
+<!ATTLIST DIV
+ %attrs;
+ %needs; -- for control of text flow --
+ align (left|center|right) left -- alignment of following text --
+ nowrap (nowrap) #IMPLIED -- disable wordwrap --
+ >
+
+<!--================ Forms ===============================================-->
+
+<![ %HTML.Forms [
+
+<!ELEMENT FORM - - %body.content -(FORM) +(INPUT|SELECT|TEXTAREA)>
+<!ATTLIST FORM
+ ACTION %URI #REQUIRED
+ METHOD (%HTTP-Method) GET
+ ENCTYPE %Content-Type; "application/x-www-form-urlencoded"
+ >
+
+<!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX |
+ RADIO | SUBMIT | RESET |
+ IMAGE | HIDDEN )">
+<!ELEMENT INPUT - O EMPTY>
+<!ATTLIST INPUT
+ TYPE %InputType TEXT
+ NAME CDATA #IMPLIED -- required for all but submit and reset --
+ VALUE CDATA #IMPLIED
+ SRC %URI #IMPLIED -- for image inputs --
+ CHECKED (CHECKED) #IMPLIED
+ SIZE CDATA #IMPLIED -- like NUMBERS,
+ but delimited with comma, not space --
+ MAXLENGTH NUMBER #IMPLIED
+ ALIGN (top|middle|bottom) #IMPLIED
+ >
+
+<!ELEMENT SELECT - - (OPTION+)>
+<!ATTLIST SELECT
+ NAME CDATA #REQUIRED
+ SIZE NUMBER #IMPLIED
+ MULTIPLE (MULTIPLE) #IMPLIED
+ >
+
+<!ELEMENT OPTION - O (#PCDATA)>
+<!ATTLIST OPTION
+ SELECTED (SELECTED) #IMPLIED
+ VALUE CDATA #IMPLIED
+ >
+
+<!ELEMENT TEXTAREA - - (#PCDATA)>
+<!ATTLIST TEXTAREA
+ NAME CDATA #REQUIRED
+ ROWS NUMBER #REQUIRED
+ COLS NUMBER #REQUIRED
+ >
+
+]]>
+
+
+<!--================ Document Head ========================================-->
+
+<!ENTITY % head.link "& LINK*">
+
+<![ %HTML.Recommended [
+ <!ENTITY % head.nextid "">
+]]>
+<!ENTITY % head.nextid "& NEXTID?">
+
+<!ENTITY % head.content "TITLE & ISINDEX? & BASE? & META*
+ %head.nextid
+ %head.link">
+
+<!ELEMENT HEAD O O (%head.content)>
+
+<!ELEMENT LINK - O EMPTY>
+<!ATTLIST LINK
+ HREF %URI #REQUIRED
+ %linkExtraAttributes; >
+
+<!ELEMENT ISINDEX - O EMPTY>
+<!ATTLIST ISINDEX
+ PROMPT CDATA "This is a searchable index. Enter search keywords:">
+
+<!ELEMENT BASE - O EMPTY>
+<!ATTLIST BASE
+ HREF %URI; #REQUIRED
+ >
+
+<!ELEMENT NEXTID - O EMPTY>
+<!ATTLIST NEXTID N %linkName #REQUIRED>
+
+<!ELEMENT META - O EMPTY -- Generic Metainformation -->
+<!ATTLIST META
+ HTTP-EQUIV NAME #IMPLIED -- HTTP response header name --
+ NAME NAME #IMPLIED -- metainformation name --
+ CONTENT CDATA #REQUIRED -- associated information --
+ >
+
+<!--================ Tables ===================================-->
+
+
+<!ENTITY % block.align
+ "align (bleedleft|left|center|right|bleedright|justify) center">
+
+<!ELEMENT CAPTION - - (%text;)+ -- table or figure caption -->
+<!ATTLIST CAPTION
+ %attrs;
+ align (top|bottom|left|right) #IMPLIED
+ >
+
+<!ELEMENT TABLE - - (CAPTION?, TR*) -- mixed headers and data -->
+<!ATTLIST TABLE
+ %attrs;
+ %needs; -- for control of text flow --
+ border NUMBER #IMPLIED -- draw borders --
+ colspec CDATA #IMPLIED -- column widths and alignment --
+ units (em|pixels|relative) em -- units for column widths --
+ width CDATA #IMPLIED -- absolute or percentage width --
+ %block.align; -- horizontal alignment --
+ nowrap (nowrap) #IMPLIED -- don't wrap words --
+ cellspacing NUMBER 2 -- insert space between cells --
+ cellpadding NUMBER 1 -- pad between cell border and content --
+ >
+
+<!ENTITY % cell "TH | TD">
+<!ENTITY % vertical.align "top|middle|bottom|baseline">
+
+<!ELEMENT TR - O (%cell)* -- row container -->
+<!ATTLIST TR
+ %attrs;
+ align (left|center|right|justify) #IMPLIED
+ valign (%vertical.align) top -- vertical alignment --
+ nowrap (nowrap) #IMPLIED -- don't wrap words --
+ >
+
+<!ELEMENT (%cell) - O %body.content>
+<!ATTLIST (%cell)
+ %attrs;
+ colspan NUMBER 1 -- columns spanned --
+ rowspan NUMBER 1 -- rows spanned --
+ align (left|center|right|justify) #IMPLIED
+ valign (%vertical.align) top -- vertical alignment --
+ nowrap (nowrap) #IMPLIED -- don't wrap words --
+ width CDATA #IMPLIED -- allow width for cells --
+ axis CDATA #IMPLIED -- axis name, defaults to element content --
+ axes CDATA #IMPLIED -- comma separated list of axis names --
+ >
+
+<!--===============Applet======================================-->
+
+<!ELEMENT param - O EMPTY>
+<!ATTLIST param
+ name NAME #REQUIRED -- The name of the parameter --
+ value CDATA #IMPLIED -- The value of the parameter --
+>
+
+<!ELEMENT applet - - (param*, (%text.nonparseable;)*)>
+<!ATTLIST applet
+ codebase CDATA #IMPLIED -- code base --
+ code CDATA #REQUIRED -- code file --
+ name CDATA #IMPLIED -- applet name --
+ width NUMBER #REQUIRED
+ height NUMBER #REQUIRED
+ align (left|right|top|texttop|middle|
+ absmiddle|baseline|bottom|absbottom) baseline
+ vspace NUMBER #IMPLIED
+ hspace NUMBER #IMPLIED
+>
+
+<!--================ Document Structure ===================================-->
+
+<![ %HTML.Deprecated [
+ <!ENTITY % html.content "HEAD, BODY, PLAINTEXT?">
+]]>
+<!ENTITY % html.content "HEAD, BODY">
+
+<!ELEMENT HTML O O (%html.content)>
+<!ENTITY % version.attr "VERSION CDATA #FIXED &#34;%HTML.Version;&#34;">
+
+<!ATTLIST HTML
+ %version.attr;-- report DTD version to application --
+ >
+
+
diff --git a/htdocs/sgml-lib/html-mcoms.dtd b/htdocs/sgml-lib/html-mcoms.dtd
new file mode 100644
index 0000000..81067d8
--- /dev/null
+++ b/htdocs/sgml-lib/html-mcoms.dtd
@@ -0,0 +1,36 @@
+<!-- html-mcom.dtd
+
+ Document Type Definition for the HyperText Markup Language (HTML DTD)
+ with Mosaic Communications Copr Extensions and with strict
+ validation (HTML Strict DTD).
+
+ $Id: html-mcoms.dtd,v 1.1.1.1 1998-07-25 00:00:22 gerald Exp $
+
+ Author: Daniel W. Connolly <connolly@w3.org>
+ See Also: html.decl, ISOlat1.sgml
+ http://home.netscape.com/assist/net_sites/html_extensions.html
+ http://www.halsoft.com/sgml/Mozilla/DTD-HOME.html
+ http://www.hpl.hp.co.uk/people/dsr/html3/Contents.html
+
+ Table addtions by: Mark Gaither (markg@hal.com) 26 Jun 95
+-->
+
+<!ENTITY % HTML.Version
+ "-//Netscape Comm. Corp. Strict//DTD HTML//EN"
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC "-//Netscape Comm. Corp. Strict//DTD HTML//EN">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+
+<!--================== Feature Test Entities ==============================-->
+
+<!ENTITY % HTML.Recommended "INCLUDE">
+
+<!ENTITY % html PUBLIC "-//Netscape Comm. Corp.//DTD HTML//EN">
+%html;
diff --git a/htdocs/sgml-lib/html-old.decl b/htdocs/sgml-lib/html-old.decl
new file mode 100644
index 0000000..4f3cac0
--- /dev/null
+++ b/htdocs/sgml-lib/html-old.decl
@@ -0,0 +1,79 @@
+<!SGML "ISO 8879:1986"
+--
+SGML Declaration for HyperText Markup Language (HTML, all versions).
+--
+CHARSET
+ BASESET "ISO 646:1983//CHARSET
+ International Reference Version
+ (IRV)//ESC 2/5 4/0"
+ DESCSET 0 9 UNUSED
+ 9 2 9
+ 11 2 UNUSED
+ 13 1 13
+ 14 18 UNUSED
+ 32 95 32
+ 127 1 UNUSED
+ BASESET "ISO Registration Number 100//CHARSET
+ ECMA-94 Right Part of
+ Latin Alphabet Nr. 1//ESC 2/13 4/1"
+ DESCSET 128 32 UNUSED
+ 160 96 32
+CAPACITY SGMLREF
+ TOTALCAP 150000
+ GRPCAP 150000
+ENTCAP 150000
+SCOPE DOCUMENT
+SYNTAX
+ SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+ 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127
+ BASESET "ISO 646:1983//CHARSET
+ International Reference Version
+ (IRV)//ESC 2/5 4/0"
+ DESCSET 0 128 0
+ FUNCTION
+ RE 13
+ RS 10
+ SPACE 32
+ TAB SEPCHAR 9
+ NAMING LCNMSTRT ""
+ UCNMSTRT ""
+ LCNMCHAR ".-"
+ UCNMCHAR ".-"
+ NAMECASE GENERAL YES
+ ENTITY NO
+ DELIM GENERAL SGMLREF
+ SHORTREF SGMLREF
+ NAMES SGMLREF
+ QUANTITY SGMLREF
+ ATTSPLEN 2100
+ LITLEN 1024
+ NAMELEN 72 -- somewhat arbitrary; taken from
+ internet line length conventions --
+ PILEN 1024
+ TAGLVL 100
+ TAGLEN 2100
+ GRPGTCNT 150
+ GRPCNT 64
+ ATTCNT 128
+FEATURES
+ MINIMIZE
+ DATATAG NO
+ OMITTAG YES
+ RANK NO
+ SHORTTAG YES
+ LINK
+ SIMPLE NO
+ IMPLICIT NO
+ EXPLICIT NO
+ OTHER
+ CONCUR NO
+ SUBDOC NO
+ FORMAL YES
+ APPINFO "SDA" -- conforming SGML Document Access application
+ -->
+
+<!-- Original source:
+$Id: html-old.decl,v 1.1.1.1 1998-07-25 00:00:22 gerald Exp $
+Author: Daniel W. Connolly <connolly@w3.org>
+See also: http://www.w3.org/hypertext/WWW/MarkUp/MarkUp.html
+ -->
diff --git a/htdocs/sgml-lib/html-old2.decl b/htdocs/sgml-lib/html-old2.decl
new file mode 100644
index 0000000..5138446
--- /dev/null
+++ b/htdocs/sgml-lib/html-old2.decl
@@ -0,0 +1,81 @@
+<!SGML "ISO 8879:1986"
+ --
+ SGML Declaration for HTML 3.2 + style
+
+ With support for ISO Latin-1 and increased limits
+ for tag and literal lengths etc.
+ --
+
+ CHARSET
+ BASESET "ISO 646:1983//CHARSET
+ International Reference Version
+ (IRV)//ESC 2/5 4/0"
+ DESCSET 0 9 UNUSED
+ 9 2 9
+ 11 2 UNUSED
+ 13 1 13
+ 14 18 UNUSED
+ 32 95 32
+ 127 1 UNUSED
+ BASESET "ISO Registration Number 100//CHARSET
+ ECMA-94 Right Part of
+ Latin Alphabet Nr. 1//ESC 2/13 4/1"
+ DESCSET 128 32 UNUSED
+ 160 96 32
+
+ CAPACITY SGMLREF
+ TOTALCAP 200000
+ GRPCAP 150000
+ ENTCAP 150000
+
+ SCOPE DOCUMENT
+ SYNTAX
+ SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+ 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127
+ BASESET "ISO 646:1983//CHARSET
+ International Reference Version
+ (IRV)//ESC 2/5 4/0"
+ DESCSET 0 128 0
+
+ FUNCTION
+ RE 13
+ RS 10
+ SPACE 32
+ TAB SEPCHAR 9
+
+ NAMING LCNMSTRT ""
+ UCNMSTRT ""
+ LCNMCHAR ".-"
+ UCNMCHAR ".-"
+ NAMECASE GENERAL YES
+ ENTITY NO
+ DELIM GENERAL SGMLREF
+ SHORTREF SGMLREF
+ NAMES SGMLREF
+ QUANTITY SGMLREF
+ ATTSPLEN 30000
+ LITLEN 30000
+ NAMELEN 239
+ PILEN 30000
+ TAGLVL 100
+ TAGLEN 30000
+ GRPGTCNT 150
+ GRPCNT 64
+
+ FEATURES
+ MINIMIZE
+ DATATAG NO
+ OMITTAG YES
+ RANK NO
+ SHORTTAG YES
+ LINK
+ SIMPLE NO
+ IMPLICIT NO
+ EXPLICIT NO
+ OTHER
+ CONCUR NO
+ SUBDOC NO
+ FORMAL YES
+ APPINFO NONE
+>
+
diff --git a/htdocs/sgml-lib/html-orig.decl b/htdocs/sgml-lib/html-orig.decl
new file mode 100644
index 0000000..8ccf9b1
--- /dev/null
+++ b/htdocs/sgml-lib/html-orig.decl
@@ -0,0 +1,88 @@
+<!SGML "ISO 8879:1986"
+--
+ SGML Declaration for HyperText Markup Language (HTML).
+
+--
+
+CHARSET
+ BASESET "ISO 646:1983//CHARSET
+ International Reference Version
+ (IRV)//ESC 2/5 4/0"
+ DESCSET 0 9 UNUSED
+ 9 2 9
+ 11 2 UNUSED
+ 13 1 13
+ 14 18 UNUSED
+ 32 95 32
+ 127 1 UNUSED
+ BASESET "ISO Registration Number 100//CHARSET
+ ECMA-94 Right Part of
+ Latin Alphabet Nr. 1//ESC 2/13 4/1"
+
+ DESCSET 128 32 UNUSED
+ 160 96 32
+
+CAPACITY SGMLREF
+ TOTALCAP 150000
+ GRPCAP 150000
+ ENTCAP 150000
+
+SCOPE DOCUMENT
+SYNTAX
+ SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+ 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127
+ BASESET "ISO 646:1983//CHARSET
+ International Reference Version
+ (IRV)//ESC 2/5 4/0"
+ DESCSET 0 128 0
+ FUNCTION
+ RE 13
+ RS 10
+ SPACE 32
+ TAB SEPCHAR 9
+
+
+ NAMING LCNMSTRT ""
+ UCNMSTRT ""
+ LCNMCHAR ".-"
+ UCNMCHAR ".-"
+ NAMECASE GENERAL YES
+ ENTITY NO
+ DELIM GENERAL SGMLREF
+ SHORTREF SGMLREF
+ NAMES SGMLREF
+ QUANTITY SGMLREF
+ ATTSPLEN 2100
+ LITLEN 1024
+ NAMELEN 72 -- somewhat arbitrary; taken from
+ internet line length conventions --
+ PILEN 1024
+ TAGLVL 100
+ TAGLEN 2100
+ GRPGTCNT 150
+ GRPCNT 64
+
+FEATURES
+ MINIMIZE
+ DATATAG NO
+ OMITTAG YES
+ RANK NO
+ SHORTTAG YES
+ LINK
+ SIMPLE NO
+ IMPLICIT NO
+ EXPLICIT NO
+ OTHER
+ CONCUR NO
+ SUBDOC NO
+ FORMAL YES
+ APPINFO "SDA" -- conforming SGML Document Access application
+ --
+>
+<!--
+ $Id: html-orig.decl,v 1.1.1.1 1998-07-25 00:00:22 gerald Exp $
+
+ Author: Daniel W. Connolly <connolly@w3.org>
+
+ See also: http://www.w3.org/hypertext/WWW/MarkUp/MarkUp.html
+ -->
diff --git a/htdocs/sgml-lib/html-s.dtd b/htdocs/sgml-lib/html-s.dtd
new file mode 100644
index 0000000..ac3aea6
--- /dev/null
+++ b/htdocs/sgml-lib/html-s.dtd
@@ -0,0 +1,29 @@
+<!-- html-s.dtd
+
+ Document Type Definition for the HyperText Markup Language
+ with strict validation (HTML Strict DTD).
+
+ $Id: html-s.dtd,v 1.1.1.1 1998-07-25 00:00:22 gerald Exp $
+
+ Author: Daniel W. Connolly <connolly@w3.org>
+ See Also: http://www.w3.org/hypertext/WWW/MarkUp/MarkUp.html
+-->
+
+<!ENTITY % HTML.Version
+ "-//IETF//DTD HTML 2.0 Strict//EN"
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC
+ "-//IETF//DTD HTML Strict//EN">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+<!-- Feature Test Entities -->
+<!ENTITY % HTML.Recommended "INCLUDE">
+
+<!ENTITY % html PUBLIC "-//IETF//DTD HTML 2.0//EN">
+%html;
diff --git a/htdocs/sgml-lib/html-sq.dtd b/htdocs/sgml-lib/html-sq.dtd
new file mode 100644
index 0000000..c507db9
--- /dev/null
+++ b/htdocs/sgml-lib/html-sq.dtd
@@ -0,0 +1,962 @@
+<!-- @(#)hmpro2.dtd 1.1 9/12/95 SoftQuad -->
+<!-- This is the DTD as used by HoTMetaL PRO 2.0.
+ Copyright 1995 SoftQuad, Inc.
+
+ Based on the:
+
+ Document Type Definition for the HyperText Markup Language
+ (HTML DTD)
+
+ $Id: html-sq.dtd,v 1.1.1.1 1998-07-25 00:00:22 gerald Exp $
+
+ Author: Daniel W. Connolly <connolly@w3.org>
+ See Also: html.decl, html-1.dtd
+ http://www.w3.org/hypertext/WWW/MarkUp/MarkUp.html
+-->
+
+
+<!--============ General Comments =====================================-->
+<!-- The DTD used here has Highlighting and Forms set to INCLUDE. The
+ HTML3 and Netscape additions should only be made to a DTD that is
+ Level 2 conformant, ie with Highlighting and Forms turned on. It
+ makes no sense to have level 3 features without Level 1 or
+ Level 2 features in the DTD. -->
+<!-- Recommended is also set to INCLUDE -->
+
+
+<!--============ Feature Test Entities ========================-->
+
+<!ENTITY % HTML.Recommended "INCLUDE"
+ -- Certain features of the language are necessary for
+ compatibility with widespread usage, but they may
+ compromise the structural integrity of a document.
+ This feature test entity enables a more prescriptive
+ document type definition that eliminates
+ those features.
+ -->
+
+<![ %HTML.Recommended [
+ <!ENTITY % HTML.Deprecated "IGNORE">
+]]>
+
+<!ENTITY % HTML.Deprecated "INCLUDE"
+ -- Certain features of the language are necessary for
+ compatibility with earlier versions of the specification,
+ but they tend to be used an implemented inconsistently,
+ and their use is deprecated. This feature test entity
+ enables a document type definition that eliminates
+ these features.
+ -->
+
+<!--============== Braille On/Off Switch =======================-->
+
+<!ENTITY % SDA.Attributes "IGNORE"
+ -- Use this switch to effectively remove the ICADD
+ attributes wherever they are used by themselves in a
+ declaration list. Those which are part of a longer list
+ of attributes are commented out. This allows software
+ which displays attributes to not display these (since
+ they are all set as FIXED by this DTD).
+ -->
+
+<!--============== Imported Names ==============================-->
+
+<!ENTITY % Content-Type "CDATA"
+ -- meaning an internet media type
+ (aka MIME content type, as per RFC1521)
+ -->
+
+<!ENTITY % HTTP-Method "GET | POST"
+ -- as per HTTP specification, in progress
+ -->
+
+<!--========= DTD "Macros" =====================-->
+
+<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
+
+<!ENTITY % list " UL | OL | DIR | MENU " >
+
+
+<!--======= Character mnemonic entities =================-->
+
+<!ENTITY % ISOlat1 PUBLIC
+ "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML">
+%ISOlat1;
+
+<!ENTITY amp SDATA "&" -- ampersand -->
+<!ENTITY gt SDATA ">" -- greater than -->
+<!ENTITY lt SDATA "<" -- less than -->
+<!ENTITY quot SDATA '"' -- double quote -->
+
+<!--================ Entities for special symbols =========================-->
+
+<!ENTITY emsp SDATA "[emsp ]" -- em space -->
+<!ENTITY ensp SDATA "[ensp ]" -- en space (1/2-em) -->
+<!ENTITY mdash SDATA "[ndash ]" -- em dash -->
+<!ENTITY ndash SDATA "[ndash ]" -- en dash (1/2-em) -->
+<!ENTITY nbsp SDATA "[nbsp ]" -- non breaking space -->
+<!ENTITY shy SDATA "[shy ]" -- soft hyphen -->
+<!ENTITY copy SDATA "[copy ]" -- copyright sign -->
+<!ENTITY trade SDATA "[trade ]" -- trade mark sign -->
+<!ENTITY reg SDATA "[reg ]" -- registered sign -->
+
+
+<!--========= SGML Document Access (SDA) Parameter Entities =====-->
+
+<!-- HTML 2.0 contains SGML Document Access (SDA) fixed attributes
+in support of easy transformation to the International Committee
+for Accessible Document Design (ICADD) DTD
+ "-//EC-USA-CDA/ICADD//DTD ICADD22//EN".
+ICADD applications are designed to support usable access to
+structured information by print-impaired individuals through
+Braille, large print and voice synthesis. For more information on
+SDA & ICADD:
+ - ISO 12083:1993, Annex A.8, Facilities for Braille,
+ large print and computer voice
+ - ICADD ListServ
+ <ICADD%ASUACAD.BITNET@ARIZVM1.ccit.arizona.edu>
+ - Usenet news group bit.listserv.easi
+ - Recording for the Blind, +1 800 221 4792
+-->
+
+<![ %SDA.Attributes; [
+<!ENTITY % SDAFORM "SDAFORM CDATA #FIXED"
+ -- one to one mapping -->
+<!ENTITY % SDARULE "SDARULE CDATA #FIXED"
+ -- context-sensitive mapping -->
+<!ENTITY % SDAPREF "SDAPREF CDATA #FIXED"
+ -- generated text prefix -->
+<!ENTITY % SDASUFF "SDASUFF CDATA #FIXED"
+ -- generated text suffix -->
+<!ENTITY % SDASUSP "SDASUSP NAME #FIXED"
+ -- suspend transform process -->
+]]>
+
+<!--========== Text Markup =====================-->
+
+<!ENTITY % font " U | S | TT | B | I |BIG | SMALL | FONT">
+<!-- blink and font are Netscape extensions, the rest HTML 3 -->
+
+<!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE | DFN | BLINK ">
+
+<!-- add SUP and SUB from HTML3 to the Netscape extensions -->
+<!ENTITY % text "#PCDATA | A | IMG | BR | %phrase | %font | NOBR | WBR | SUB | SUP">
+<!ELEMENT (SUB|SUP) - - (%text)* >
+
+<!-- Two Netscape extensions -->
+<!ELEMENT NOBR - - (%text;)* -(NOBR) >
+<!ELEMENT WBR - O EMPTY >
+
+<!ELEMENT (%font;|%phrase) - - (%text)*>
+<!ATTLIST font size CDATA #REQUIRED >
+<![ %SDA.Attributes; [
+<!ATTLIST ( TT | CODE | SAMP | KBD | VAR )
+ %SDAFORM; "Lit"
+ >
+<!ATTLIST ( B | STRONG )
+ %SDAFORM; "B"
+ >
+<!ATTLIST ( I | EM | CITE )
+ %SDAFORM; "It"
+ >
+]]>
+
+<!-- <TT> Typewriter text -->
+<!-- <B> Bold text -->
+<!-- <I> Italic text -->
+
+<!-- <EM> Emphasized phrase -->
+<!-- <STRONG> Strong emphasis -->
+<!-- <CODE> Source code phrase -->
+<!-- <SAMP> Sample text or characters -->
+<!-- <KBD> Keyboard phrase, e.g. user input -->
+<!-- <VAR> Variable phrase or substitutable -->
+<!-- <CITE> Name or title of cited work -->
+
+<!ENTITY % pre.content "#PCDATA | A | HR | BR | %font | %phrase">
+
+
+<!ELEMENT BR - O EMPTY>
+
+<!-- <BR> Line break -->
+
+<![ %SDA.Attributes; [
+<!ENTITY % br.sda "%SDAPREF; '&#RE;'">
+]]>
+<!ENTITY % br.sda "">
+
+<!ATTLIST BR
+ clear CDATA #IMPLIED
+ %br.sda;
+ >
+<!-- Netscape accepts values left, right, all -->
+
+<!--========= Link Markup ======================-->
+
+<!ENTITY % linkType "NAMES">
+
+<!ENTITY % linkExtraAttributes
+ "METHODS NAMES #IMPLIED
+ REL %linkType #IMPLIED
+ REV %linkType #IMPLIED
+ URN CDATA #IMPLIED
+ TITLE CDATA #IMPLIED
+ ">
+
+<![ %HTML.Recommended [
+ <!ENTITY % A.content "(%text)*"
+ -- <H1><a name="xxx">Heading</a></H1>
+ is preferred to
+ <a name="xxx"><H1>Heading</H1></a>
+ -->
+]]>
+
+<!ENTITY % A.content "(%heading|%text)*">
+
+<!ELEMENT A - - %A.content -(A)>
+<![ %SDA.Attributes; [
+<!ENTITY % a.sda "%SDAPREF; '<Anchor: #AttList>'">
+]]>
+<!ENTITY % a.sda "">
+<!ATTLIST A
+ %linkExtraAttributes;
+ HREF CDATA #IMPLIED
+ NAME CDATA #IMPLIED
+ %a.sda;
+ >
+<!-- <A> Anchor; source/destination of link -->
+<!-- <A NAME="..."> Name of this anchor -->
+<!-- <A HREF="..."> Address of link destination -->
+<!-- <A URN="..."> Permanent address of destination -->
+<!-- <A REL=...> Relationship to destination -->
+<!-- <A REV=...> Relationship of destination to this -->
+<!-- <A TITLE="..."> Title of destination (advisory) -->
+<!-- <A METHODS="..."> Operations on destination (advisory) -->
+
+
+<!--========== Images ==========================-->
+
+<!ELEMENT IMG - O EMPTY>
+
+<!ENTITY % img.align "left|right|top|texttop|middle|absmiddle|baseline|
+ bottom|absbottom">
+<!-- top, middle, bottom HTML2; left, right HTML3; rest Netscape -->
+
+<![ %SDA.Attributes; [
+<!ENTITY % img.sda "%SDAPREF; '<Fig><?SDATrans Img: #AttList>#AttVal(Alt)</Fig>'">
+]]>
+<!ENTITY % img.sda "">
+
+<!ATTLIST IMG
+ ALIGN (%img.align;) #IMPLIED
+ SRC CDATA #REQUIRED
+ ALT CDATA #IMPLIED
+ ISMAP (ISMAP) #IMPLIED
+ %img.sda;
+ lowsrc CDATA #IMPLIED
+ border NUMBER #IMPLIED
+ vspace NUMBER #IMPLIED
+ hspace NUMBER #IMPLIED
+ width CDATA #IMPLIED -- number for HTML 3, cdata for Netscape --
+ height CDATA #IMPLIED -- number for HTML 3 cdata for Netscape--
+ >
+
+<!-- <IMG> Image; icon, glyph or illustration -->
+<!-- <IMG SRC="..."> Address of image object -->
+<!-- <IMG ALT="..."> Textual alternative -->
+<!-- <IMG ALIGN=...> Position relative to text -->
+<!-- <IMG ISMAP> Each pixel can be a link -->
+
+<!--========== Paragraphs=======================-->
+
+<!ELEMENT P - O (%text)*>
+<!-- HTML 3, except for center which is also Netscape -->
+<![ %SDA.Attributes; [
+<!ENTITY % p.sda "%SDAFORM; 'Para'">
+]]>
+<!ENTITY % p.sda "">
+<!ATTLIST P
+ align (left|center|right|justify) #IMPLIED
+ %p.sda;
+ >
+
+<!-- note that need HTML3 to get SDA. OK for hmpro -->
+<!-- <P> Paragraph -->
+
+
+<!--========== Headings, Titles, Sections ===============-->
+
+<!ELEMENT HR - O EMPTY>
+
+<![ %SDA.Attributes; [
+<!ENTITY % hr.sda "%SDAPREF; '&#RE;&#RE;'">
+]]>
+<!ENTITY % hr.sda "">
+
+<!ATTLIST HR
+ %hr.sda;
+ size NUMBER #IMPLIED
+ width CDATA #IMPLIED -- number or percent => CDATA --
+ align (left|right|center) #IMPLIED
+ noshade (noshade) #IMPLIED -- these four only Netscape --
+ src CDATA #IMPLIED -- URI of custom rule graphic (HTML 3) --
+ >
+
+
+<!-- <HR> Horizontal rule -->
+
+<!ELEMENT ( %heading ) - - (%text;)*>
+<!-- HTML 3, except for center which is also supported by Netscape -->
+<!ENTITY % head.att "
+ align (left|center|right|justify) #IMPLIED
+">
+<![ %SDA.Attributes; [
+<!ENTITY % h1.sda "%SDAFORM; 'H1'">
+<!ENTITY % h2.sda "%SDAFORM; 'H2'">
+<!ENTITY % h3.sda "%SDAFORM; 'H3'">
+<!ENTITY % h4.sda "%SDAFORM; 'H4'">
+<!ENTITY % h5.sda "%SDAFORM; 'H5'">
+<!ENTITY % h6.sda "%SDAFORM; 'H6'">
+]]>
+<!ENTITY % h1.sda "">
+<!ENTITY % h2.sda "">
+<!ENTITY % h3.sda "">
+<!ENTITY % h4.sda "">
+<!ENTITY % h5.sda "">
+<!ENTITY % h6.sda "">
+
+<!ATTLIST H1
+ %head.att;
+ %h1.sda;
+ >
+<!ATTLIST H2
+ %head.att;
+ %h2.sda;
+ >
+<!ATTLIST H3
+ %head.att;
+ %h3.sda;
+ >
+<!ATTLIST H4
+ %head.att;
+ %h4.sda;
+ >
+<!ATTLIST H5
+ %head.att;
+ %h5.sda;
+ >
+<!ATTLIST H6
+ %head.att;
+ %h6.sda;
+ >
+
+<!-- <H1> Heading, level 1 -->
+<!-- <H2> Heading, level 2 -->
+<!-- <H3> Heading, level 3 -->
+<!-- <H4> Heading, level 4 -->
+<!-- <H5> Heading, level 5 -->
+<!-- <H6> Heading, level 6 -->
+
+
+<!--========== Text Flows ======================-->
+
+<!ENTITY % block.forms "BLOCKQUOTE | FORM | ISINDEX | TABLE">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % preformatted "PRE | XMP | LISTING">
+]]>
+
+<!ENTITY % preformatted "PRE">
+
+<!ENTITY % block "P | %list | DL
+ | %preformatted
+ | %block.forms">
+
+<!ENTITY % flow "(%text|%block|CENTER)*">
+<!-- center is a Netscape extension -->
+
+<!ENTITY % pre.exclusion "IMG|BIG|SMALL|SUB|SUP">
+<!ELEMENT PRE - - (%pre.content)* -(%pre.exclusion;) >
+
+<![ %SDA.Attributes; [
+<!ENTITY % pre.sda "%SDAFORM; 'Lit'">
+]]>
+<!ENTITY % pre.sda "">
+
+<!ATTLIST PRE
+ WIDTH NUMBER #implied
+ %pre.sda;
+ >
+
+<!-- <PRE> Preformatted text -->
+<!-- <PRE WIDTH=...> Maximum characters per line -->
+
+<![ %HTML.Deprecated [
+
+<!ENTITY % literal "CDATA"
+ -- historical, non-conforming parsing mode where
+ the only markup signal is the end tag
+ in full
+ -->
+
+<!ELEMENT (XMP|LISTING) - - %literal>
+<![ %SDA.Attributes; [
+<!ATTLIST XMP
+ %SDAFORM; "Lit"
+ %SDAPREF; "Example:&#RE;"
+ >
+<!ATTLIST LISTING
+ %SDAFORM; "Lit"
+ %SDAPREF; "Listing:&#RE;"
+ >
+]]>
+
+<!-- <XMP> Example section -->
+<!-- <LISTING> Computer listing -->
+
+<!ELEMENT PLAINTEXT - O %literal>
+<!-- <PLAINTEXT> Plain text passage -->
+
+<![ %SDA.Attributes; [
+<!ATTLIST PLAINTEXT
+ %SDAFORM; "Lit"
+ >
+]]>
+]]>
+<!-- end of deprecated marked section -->
+
+
+<!--========== Lists ==================-->
+
+<!ELEMENT DL - - (DT | DD)+>
+<![ %SDA.Attributes; [
+<!ENTITY % dl.sda "%SDAFORM; 'List'
+ %SDAPREF; 'Definition List:'
+ ">
+]]>
+<!ENTITY % dl.sda "">
+<!ATTLIST DL
+ COMPACT (COMPACT) #IMPLIED
+ %dl.sda;
+ >
+
+<!ELEMENT DT - O (%text)*>
+<![ %SDA.Attributes; [
+<!ATTLIST DT
+ %SDAFORM; "Term"
+ >
+]]>
+
+<!ELEMENT DD - O %flow>
+<![ %SDA.Attributes; [
+<!ATTLIST DD
+ %SDAFORM; "LItem"
+ >
+]]>
+
+<!-- <DL> Definition list, or glossary -->
+<!-- <DL COMPACT> Compact style list -->
+<!-- <DT> Term in definition list -->
+<!-- <DD> Definition of term -->
+
+<!ELEMENT (OL|UL) - - (LI)+>
+<!-- deleted the HTML3 sttributes %url.link;, %attrs; and %needs;
+ from these lists -->
+
+<![ %SDA.Attributes; [
+<!ENTITY % ol.sda "%SDAFORM; 'List'">
+]]>
+<!ENTITY % ol.sda "">
+
+<!ATTLIST OL
+ continue (continue) #IMPLIED -- don't restart sequence number --
+ seqnum NUMBER #IMPLIED -- starting sequence number --
+ -- above two HTML 3--
+ type CDATA #IMPLIED -- Netscape --
+ start NUMBER #IMPLIED -- Netscape --
+ COMPACT (COMPACT) #IMPLIED
+ %ol.sda;
+ >
+<![ %SDA.Attributes; [
+<!ENTITY % ul.sda "%SDAFORM; 'List'">
+]]>
+<!ENTITY % ul.sda "">
+
+<!ATTLIST UL
+ wrap (vert|horiz|none) none -- multicolumn list style --
+ plain (plain) #IMPLIED -- suppress bullets --
+ dingbat CDATA #IMPLIED -- dingbat entity from HTMLicons --
+ src CDATA #IMPLIED -- bullet defined by graphic --
+ -- these four HTML 3. dingbat usually ENTITY, but sets
+ not yet defined --
+ type (disc|circle|square) #IMPLIED -- Netscape --
+ COMPACT (COMPACT) #IMPLIED
+ %ul.sda;
+ >
+<!-- <UL> Unordered list -->
+<!-- <UL COMPACT> Compact list style -->
+<!-- <OL> Ordered, or numbered list -->
+<!-- <OL COMPACT> Compact list style -->
+
+<![ %SDA.Attributes; [
+<!ENTITY % dir.sda "
+ %SDAFORM; 'List'
+ %SDAPREF; '<LHead>Directory</LHead>'
+ ">
+]]>
+<!ENTITY % dir.sda "">
+
+<![ %SDA.Attributes; [
+<!ENTITY % menu.sda "
+ %SDAFORM; 'List'
+ %SDAPREF; '<LHead>Menu</LHead>'
+ ">
+]]>
+<!ENTITY % menu.sda "">
+
+<!ELEMENT (DIR|MENU) - - (LI)+ -(%block)>
+<!ATTLIST DIR
+ COMPACT (COMPACT) #IMPLIED
+ %dir.sda;
+ >
+<!ATTLIST MENU
+ COMPACT (COMPACT) #IMPLIED
+ %menu.sda;
+ >
+
+<!-- <DIR> Directory list -->
+<!-- <DIR COMPACT> Compact list style -->
+<!-- <MENU> Menu list -->
+<!-- <MENU COMPACT> Compact list style -->
+
+<!ELEMENT LI - O %flow>
+<![ %SDA.Attributes; [
+<!ENTITY % li.sda "
+ %SDAFORM; "LItem"
+ ">
+]]>
+<!ENTITY % li.sda "">
+<!ATTLIST LI
+ dingbat CDATA #IMPLIED -- dingbat entity from HTMLicons --
+ src CDATA #IMPLIED -- custom bullet graphic --
+ skip NUMBER 0 -- skip seq nums for missing items --
+ -- above three HTML 3 --
+ type CDATA #IMPLIED -- Netscape --
+ value NUMBER #IMPLIED -- Netscape --
+ %li.sda;
+ >
+
+<!-- <LI> List item -->
+
+<!ELEMENT center - - (%heading;|%text;|ADDRESS|TABLE|P|%list;|DL)* >
+
+
+
+<!--========== Document Body ===================-->
+
+<![ %HTML.Recommended [
+ <!ENTITY % body.content "(%heading|%block|HR|ADDRESS|IMG|CENTER)*"
+ -- <h1>Heading</h1>
+ <p>Text ...
+ is preferred to
+ <h1>Heading</h1>
+ Text ...
+ -->
+]]>
+
+<!ENTITY % body.content "(%heading | %text | %block | CENTER |
+ HR | ADDRESS)*">
+
+
+<!ELEMENT BODY O O %body.content>
+
+<!ATTLIST BODY
+ background CDATA #IMPLIED -- background image --
+ -- both HTML 3 and Netscape --
+ bgcolor CDATA #IMPLIED -- background colour in hex #rrggbb format --
+ text CDATA #IMPLIED -- colour of normal text in #rrggbb format --
+ link CDATA #IMPLIED -- colour of link text in #rrggbb format --
+ vlink CDATA #IMPLIED -- colour of visited link text in #rrggbb --
+ alink CDATA #IMPLIED -- colour of active link text in #rrggbb --
+ -- these last five all Netscape -->
+
+<!-- <BODY> Document body -->
+
+<!ELEMENT BLOCKQUOTE - - %body.content>
+<![ %SDA.Attributes; [
+<!ATTLIST BLOCKQUOTE
+ %SDAFORM; "BQ"
+ >
+]]>
+
+<!-- <BLOCKQUOTE> Quoted passage -->
+
+<!ELEMENT ADDRESS - - (%text|P)*>
+<![ %SDA.Attributes; [
+<!ATTLIST ADDRESS
+ %SDAFORM; "Lit"
+ %SDAPREF; "Address:&#RE;"
+ >
+]]>
+
+<!-- <ADDRESS> Address, signature, or byline -->
+
+
+<!--======= Forms ====================-->
+
+<![ %SDA.Attributes; [
+<!ENTITY % form.sda "
+ %SDAPREF; '<Para>Form:</Para>'
+ %SDASUFF; '<Para>Form End.</Para>'
+ ">
+]]>
+<!ENTITY % form.sda "">
+<!ELEMENT FORM - - %body.content -(FORM) +(INPUT|SELECT|TEXTAREA)>
+<!ATTLIST FORM
+ ACTION CDATA #IMPLIED
+ METHOD (%HTTP-Method) GET
+ ENCTYPE %Content-Type; "application/x-www-form-urlencoded"
+ %form.sda;
+ >
+
+<!-- <FORM> Fill-out or data-entry form -->
+<!-- <FORM ACTION="..."> Address for completed form -->
+<!-- <FORM METHOD=...> Method of submitting form -->
+<!-- <FORM ENCTYPE="..."> Representation of form data -->
+
+<!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX |
+ RADIO | SUBMIT | RESET |
+ IMAGE | HIDDEN )">
+<![ %SDA.Attributes; [
+<!ENTITY % input.sda "
+ %SDAPREF; 'Input: '
+ ">
+]]>
+<!ENTITY % input.sda "">
+<!ELEMENT INPUT - O EMPTY>
+<!ATTLIST INPUT
+ TYPE %InputType TEXT
+ NAME CDATA #IMPLIED
+ VALUE CDATA #IMPLIED
+ SRC CDATA #IMPLIED
+ CHECKED (CHECKED) #IMPLIED
+ SIZE CDATA #IMPLIED
+ MAXLENGTH NUMBER #IMPLIED
+ ALIGN (top|middle|bottom) #IMPLIED
+ %input.sda;
+ >
+
+<!-- <INPUT> Form input datum -->
+<!-- <INPUT TYPE=...> Type of input interaction -->
+<!-- <INPUT NAME=...> Name of form datum -->
+<!-- <INPUT VALUE="..."> Default/initial/selected value -->
+<!-- <INPUT SRC="..."> Address of image -->
+<!-- <INPUT CHECKED> Initial state is "on" -->
+<!-- <INPUT SIZE=...> Field size hint -->
+<!-- <INPUT MAXLENGTH=...> Data length maximum -->
+<!-- <INPUT ALIGN=...> Image alignment -->
+
+<![ %SDA.Attributes; [
+<!ENTITY % select.sda "
+ %SDAFORM; 'List'
+ %SDAPREF;
+ '<LHead>Select #AttVal(Multiple)</LHead>'
+ ">
+]]>
+<!ENTITY % select.sda "">
+<!ELEMENT SELECT - - (OPTION+) -(INPUT|SELECT|TEXTAREA)>
+<!ATTLIST SELECT
+ NAME CDATA #REQUIRED
+ SIZE NUMBER #IMPLIED
+ MULTIPLE (MULTIPLE) #IMPLIED
+ %select.sda;
+ >
+
+<!-- <SELECT> Selection of option(s) -->
+<!-- <SELECT NAME=...> Name of form datum -->
+<!-- <SELECT SIZE=...> Options displayed at a time -->
+<!-- <SELECT MULTIPLE> Multiple selections allowed -->
+
+<![ %SDA.Attributes; [
+<!ENTITY % option.sda "
+ %SDAFORM; 'LItem'
+ %SDAPREF;
+ 'Option: #AttVal(Value) #AttVal(Selected)'
+ ">
+]]>
+<!ENTITY % option.sda "">
+
+<!ELEMENT OPTION - O (#PCDATA)*>
+<!ATTLIST OPTION
+ SELECTED (SELECTED) #IMPLIED
+ VALUE CDATA #IMPLIED
+ %option.sda;
+ >
+
+<!-- <OPTION> A selection option -->
+<!-- <OPTION SELECTED> Initial state -->
+<!-- <OPTION VALUE="..."> Form datum value for this option-->
+
+<![ %SDA.Attributes; [
+<!ENTITY % textarea.sda "
+ %SDAFORM; 'Para'
+ %SDAPREF; 'Input Text -- #AttVal(Name): '
+ ">
+]]>
+<!ENTITY % textarea.sda "">
+
+<!ELEMENT TEXTAREA - - (#PCDATA)* -(INPUT|SELECT|TEXTAREA)>
+<!ATTLIST TEXTAREA
+ NAME CDATA #REQUIRED
+ ROWS NUMBER #REQUIRED
+ COLS NUMBER #REQUIRED
+ %textarea.sda;
+ >
+
+<!-- <TEXTAREA> An area for text input -->
+<!-- <TEXTAREA NAME=...> Name of form datum -->
+<!-- <TEXTAREA ROWS=...> Height of area -->
+<!-- <TEXTAREA COLS=...> Width of area -->
+
+
+<!--======= Document Head ======================-->
+
+<![ %HTML.Recommended [
+ <!ENTITY % head.extra "">
+]]>
+
+<!ENTITY % head.extra "& NEXTID?">
+
+<!ENTITY % head.content "TITLE & ISINDEX? & BASE? %head.extra">
+
+<!ELEMENT HEAD O O (%head.content) +(META|LINK)>
+
+<!-- <HEAD> Document head -->
+
+<!ELEMENT TITLE - - (#PCDATA)* -(META|LINK) >
+<![ %SDA.Attributes; [
+<!ATTLIST TITLE
+ %SDAFORM; "Ti" >
+]]>
+
+<!-- <TITLE> Title of document -->
+
+<![ %SDA.Attributes; [
+<!ENTITY % link.sda "
+ %SDAPREF; 'Linked to : #AttVal (TITLE) (URN) (HREF)>'
+ ">
+]]>
+<!ENTITY % link.sda "">
+
+<!ELEMENT LINK - O EMPTY>
+<!ATTLIST LINK
+ HREF CDATA #REQUIRED
+ %linkExtraAttributes;
+ %link.sda;
+ >
+
+<!-- <LINK> Link from this document -->
+<!-- <LINK HREF="..."> Address of link destination -->
+<!-- <LINK URN="..."> Lasting name of destination -->
+<!-- <LINK REL=...> Relationship to destination -->
+<!-- <LINK REV=...> Relationship of destination to this -->
+<!-- <LINK TITLE="..."> Title of destination (advisory) -->
+<!-- <LINK METHODS="..."> Operations allowed (advisory) -->
+
+<!ELEMENT ISINDEX - O EMPTY>
+
+<![ %SDA.Attributes; [
+<!ENTITY % isindex.sda "
+ %SDAPREF;
+ '<Para>[Document is indexed/searchable.]</Para>'
+ ">
+]]>
+<!ENTITY % isindex.sda "">
+
+<!ATTLIST ISINDEX
+ prompt CDATA #IMPLIED
+ %isindex.sda;
+ >
+
+<!-- <ISINDEX> Document is a searchable index -->
+
+<!ELEMENT BASE - O EMPTY>
+<!ATTLIST BASE
+ HREF CDATA #REQUIRED >
+
+<!-- <BASE> Base context document -->
+<!-- <BASE HREF="..."> Address for this document -->
+
+<![ %HTML.Deprecated [
+<!ELEMENT NEXTID - O EMPTY>
+<!ATTLIST NEXTID
+ N CDATA #REQUIRED >
+
+<!-- <NEXTID> Next ID to use for link name -->
+<!-- <NEXTID N=...> Next ID to use for link name -->
+]]>
+
+
+<!ELEMENT META - O EMPTY>
+<!ATTLIST META
+ HTTP-EQUIV NAME #IMPLIED
+ NAME NAME #IMPLIED
+ CONTENT CDATA #REQUIRED
+ url CDATA #IMPLIED -- Netscape -->
+
+<!-- <META> Generic Metainformation -->
+<!-- <META HTTP-EQUIV=...> HTTP response header name -->
+<!-- <META NAME=...> Metainformation name -->
+<!-- <META CONTENT="..."> Associated information -->
+
+<!--======= Document Structure =================-->
+
+<![ %HTML.Deprecated [
+ <!ENTITY % html.content "HEAD, BODY, PLAINTEXT?">
+]]>
+<!ENTITY % html.content "HEAD, BODY">
+
+<!ELEMENT HTML O O (%html.content)>
+
+<![ %SDA.Attributes; [
+<!ENTITY % html.sda "
+ %SDAFORM; 'Book'
+ ">
+]]>
+<!ENTITY % html.sda "">
+
+<!ATTLIST HTML
+ VERSION CDATA #IMPLIED
+ %html.sda;
+ >
+
+
+<!--================= Tables : Added Support for HoTMetaL =================-->
+
+<!-- Tables -->
+
+<!--
+ SoftQuad's Canonical Table DTD fragment modified for compatibility
+ with the proposed ICADD-HTML harmonized table model.
+ Changed a lot by Lauren for the SQ HoTMetaL PRO 2.0.
+
+ Copyright (c) 1991, 1994, 1995 by SoftQuad Inc.
+
+ This DTD fragment defines the table structure used internally by
+ SoftQuad Author/Editor and uses names from the proposed
+ ICADD-HTML model.
+
+ It expects there to be a table.map file point to by SQCONFIG
+ and containing the following lines:
+TBODY COLDEFS COLDEF ROWS TR TD
+
+The CellMdl parameter entity should be modified to the current proposed
+model for table cells.
+-->
+
+<!ENTITY % TblBody "TBody">
+<!ENTITY % TblCDfs "ColDefs">
+<!ENTITY % TblCDef "ColDef">
+<!ENTITY % TblRows "Rows">
+<!ENTITY % TblRow "TR">
+<!ENTITY % TblCell "(TD|TH)">
+<!ENTITY % CellMdl "(%heading|%text|%block|ADDRESS|HR)* ">
+<!-- this allows <img>, fonts etc. -->
+
+<!ENTITY % VBorder
+ "(VSingle|VNone)">
+<!ENTITY % HBorder
+ "(HSingle|HNone)">
+<!ENTITY % VAlign "(Top|Middle|Bottom|baseline)">
+<!ENTITY % HAlign "(Left|Center|Right|justify)">
+<!-- justify only HTML 3, others both -->
+
+<!ENTITY % TblUnit "(percent|pixels|points|picas|mm|cm|inches)">
+
+<!ENTITY % RProps
+ 'VAlign %VAlign; #IMPLIED'>
+<!ENTITY % CProps
+ 'Align %HAlign; #IMPLIED'>
+
+<!ELEMENT TABLE - O (Caption?, TBody) >
+
+<!-- Netscape and HTML 3 -->
+<!ATTLIST TABLE
+ border (border|0|1|2|3|4|5|6|7|8|9|10) #IMPLIED
+ -- Netscape has BORDER and numbers as possible values. --
+ cellpadding NUMBER #IMPLIED
+ cellspacing NUMBER #IMPLIED
+ height CDATA #IMPLIED
+ width CDATA #IMPLIED
+ align (bleedleft|left|center|right|bleedright|justify) #IMPLIED
+ -- left, center, right are Netscape, all values are valid HTML 3--
+ nowrap (nowrap) #IMPLIED -- HTML 3 --
+ clear CDATA #IMPLIED -- HTML 3 --
+ >
+
+<!-- TblBody is the top-level table element -->
+<!ELEMENT TBody O O ((%TblCDfs;), (Rows))>
+<!ATTLIST %TblBody;
+ SQTABLE CDATA #FIXED 'TBLBODY' -- needed for program --
+ TblWd CDATA #IMPLIED
+ TblHt CDATA #IMPLIED
+>
+
+<!-- Table Column Definitions: -->
+<!ELEMENT %TblCDfs; O O (%TblCDef;)+>
+<!ATTLIST %TblCDfs;
+ SQTABLE CDATA #FIXED 'TBLCDEFS' -- needed for program --
+ -- CProps with default values to apply to all columns --
+ Align %HAlign; "Left"
+>
+<!-- there is exactly one TblCDef for each column in the table -->
+<!ELEMENT %TblCDef; - O EMPTY -- Only exists to hold attributes -->
+<!ATTLIST %TblCDef;
+ SQTABLE CDATA #FIXED 'TBLCDEF' -- needed for program --
+ %CProps; -- overrides settings in TblCDfs --
+ -- need the following two because of Keyword conversion --
+ ColWd CDATA #IMPLIED
+ TblUnits %TblUnit; #IMPLIED
+>
+
+<!-- Table Rows: -->
+<!ELEMENT Rows O O (TR)+>
+<!ATTLIST %TblRows;
+ SQTABLE CDATA #FIXED 'TBLROWS' -- needed for program --
+ -- RProps with default values to apply to all rows --
+ VAlign %VAlign; "top"
+>
+<!ELEMENT %TblRow; - O (TH|TD)*>
+<!ATTLIST %TblRow;
+ SQTABLE CDATA #FIXED 'TBLROW' -- needed for program --
+ VAlign %VAlign; top
+ -- HTML 3 setting; Netscape uses Middle--
+ Align %HAlign; Left
+ -- we need a setting for our table model --
+ nowrap (nowrap) #IMPLIED -- HTML 3 --
+>
+
+<!-- Table Cells -->
+<!ELEMENT %TblCell; - - %CellMdl; -(table)>
+<!ATTLIST %TblCell;
+ SQTABLE CDATA #FIXED 'TBLCELL' -- needed for program --
+ VAlign %VAlign; #IMPLIED
+ -- Netscape has VAlign set to Middle. In HTML 3, it's implied from TR --
+ Align %HAlign; #IMPLIED
+ -- #IMPLIED for HTML 3, Left for Netscape TD, center for TH --
+ -- cell positioning --
+ ColStart NUMBER #IMPLIED
+ ColSpan NUMBER "1" -- span >= 1 --
+ RowStart NUMBER #IMPLIED
+ RowSpan NUMBER "1" -- span >= 1 --
+ -- colspan and rowspan Netscape and HTML 3 --
+ nowrap (nowrap) #IMPLIED -- Netscape and HTML 3 --
+ width CDATA #IMPLIED -- Netscape only --
+>
+<!-- need colstart and rowstart attributes for internals -->
+
+<!ELEMENT caption - O (%text;)* >
+<!-- both HTML 3 and Netscape, values "left", "right" only HTML 3 -->
+<!ATTLIST caption
+ align (top|bottom|left|right) #IMPLIED
+ >
diff --git a/htdocs/sgml-lib/html.dtd b/htdocs/sgml-lib/html.dtd
new file mode 100644
index 0000000..a7061c7
--- /dev/null
+++ b/htdocs/sgml-lib/html.dtd
@@ -0,0 +1,599 @@
+<!-- html.dtd
+
+ Document Type Definition for the HyperText Markup Language
+ (HTML DTD)
+
+ $Id: html.dtd,v 1.1.1.1 1998-07-25 00:00:22 gerald Exp $
+
+ Author: Daniel W. Connolly <connolly@w3.org>
+ See Also: html.decl, html-1.dtd
+ http://www.w3.org/hypertext/WWW/MarkUp/MarkUp.html
+-->
+
+<!ENTITY % HTML.Version
+ "-//IETF//DTD HTML 2.0//EN"
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+
+<!--============ Feature Test Entities ========================-->
+
+<!ENTITY % HTML.Recommended "IGNORE"
+ -- Certain features of the language are necessary for
+ compatibility with widespread usage, but they may
+ compromise the structural integrity of a document.
+ This feature test entity enables a more prescriptive
+ document type definition that eliminates
+ those features.
+ -->
+
+<![ %HTML.Recommended [
+ <!ENTITY % HTML.Deprecated "IGNORE">
+]]>
+
+<!ENTITY % HTML.Deprecated "INCLUDE"
+ -- Certain features of the language are necessary for
+ compatibility with earlier versions of the specification,
+ but they tend to be used and implemented inconsistently,
+ and their use is deprecated. This feature test entity
+ enables a document type definition that eliminates
+ these features.
+ -->
+
+<!ENTITY % HTML.Highlighting "INCLUDE"
+ -- Use this feature test entity to validate that a
+ document uses no highlighting tags, which may be
+ ignored on minimal implementations.
+ -->
+
+<!ENTITY % HTML.Forms "INCLUDE"
+ -- Use this feature test entity to validate that a document
+ contains no forms, which may not be supported in minimal
+ implementations
+ -->
+
+<!--============== Imported Names ==============================-->
+
+<!ENTITY % Content-Type "CDATA"
+ -- meaning an internet media type
+ (aka MIME content type, as per RFC1521)
+ -->
+
+<!ENTITY % HTTP-Method "GET | POST"
+ -- as per HTTP specification, in progress
+ -->
+
+<!--========= DTD "Macros" =====================-->
+
+<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
+
+<!ENTITY % list " UL | OL | DIR | MENU " >
+
+
+<!--======= Character mnemonic entities =================-->
+
+<!ENTITY % ISOlat1 PUBLIC
+ "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML">
+%ISOlat1;
+
+<!ENTITY amp CDATA "&#38;" -- ampersand -->
+<!ENTITY gt CDATA "&#62;" -- greater than -->
+<!ENTITY lt CDATA "&#60;" -- less than -->
+<!ENTITY quot CDATA "&#34;" -- double quote -->
+
+
+<!--========= SGML Document Access (SDA) Parameter Entities =====-->
+
+<!-- HTML 2.0 contains SGML Document Access (SDA) fixed attributes
+in support of easy transformation to the International Committee
+for Accessible Document Design (ICADD) DTD
+ "-//EC-USA-CDA/ICADD//DTD ICADD22//EN".
+ICADD applications are designed to support usable access to
+structured information by print-impaired individuals through
+Braille, large print and voice synthesis. For more information on
+SDA & ICADD:
+ - ISO 12083:1993, Annex A.8, Facilities for Braille,
+ large print and computer voice
+ - ICADD ListServ
+ <ICADD%ASUACAD.BITNET@ARIZVM1.ccit.arizona.edu>
+ - Usenet news group bit.listserv.easi
+ - Recording for the Blind, +1 800 221 4792
+-->
+
+<!ENTITY % SDAFORM "SDAFORM CDATA #FIXED"
+ -- one to one mapping -->
+<!ENTITY % SDARULE "SDARULE CDATA #FIXED"
+ -- context-sensitive mapping -->
+<!ENTITY % SDAPREF "SDAPREF CDATA #FIXED"
+ -- generated text prefix -->
+<!ENTITY % SDASUFF "SDASUFF CDATA #FIXED"
+ -- generated text suffix -->
+<!ENTITY % SDASUSP "SDASUSP NAME #FIXED"
+ -- suspend transform process -->
+
+
+<!--========== Text Markup =====================-->
+
+<![ %HTML.Highlighting [
+
+<!ENTITY % font " TT | B | I ">
+
+<!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE ">
+
+<!ENTITY % text "#PCDATA | A | IMG | BR | %phrase | %font">
+
+<!ELEMENT (%font;|%phrase) - - (%text)*>
+<!ATTLIST ( TT | CODE | SAMP | KBD | VAR )
+ %SDAFORM; "Lit"
+ >
+<!ATTLIST ( B | STRONG )
+ %SDAFORM; "B"
+ >
+<!ATTLIST ( I | EM | CITE )
+ %SDAFORM; "It"
+ >
+
+<!-- <TT> Typewriter text -->
+<!-- <B> Bold text -->
+<!-- <I> Italic text -->
+
+<!-- <EM> Emphasized phrase -->
+<!-- <STRONG> Strong emphasis -->
+<!-- <CODE> Source code phrase -->
+<!-- <SAMP> Sample text or characters -->
+<!-- <KBD> Keyboard phrase, e.g. user input -->
+<!-- <VAR> Variable phrase or substitutable -->
+<!-- <CITE> Name or title of cited work -->
+
+<!ENTITY % pre.content "#PCDATA | A | HR | BR | %font | %phrase">
+
+]]>
+
+<!ENTITY % text "#PCDATA | A | IMG | BR">
+
+<!ELEMENT BR - O EMPTY>
+<!ATTLIST BR
+ %SDAPREF; "&#RE;"
+ >
+
+<!-- <BR> Line break -->
+
+
+<!--========= Link Markup ======================-->
+
+<!ENTITY % linkType "NAMES">
+
+<!ENTITY % linkExtraAttributes
+ "REL %linkType #IMPLIED
+ REV %linkType #IMPLIED
+ URN CDATA #IMPLIED
+ TITLE CDATA #IMPLIED
+ METHODS NAMES #IMPLIED
+ ">
+
+<![ %HTML.Recommended [
+ <!ENTITY % A.content "(%text)*"
+ -- <H1><a name="xxx">Heading</a></H1>
+ is preferred to
+ <a name="xxx"><H1>Heading</H1></a>
+ -->
+]]>
+
+<!ENTITY % A.content "(%heading|%text)*">
+
+<!ELEMENT A - - %A.content -(A)>
+<!ATTLIST A
+ HREF CDATA #IMPLIED
+ NAME CDATA #IMPLIED
+ %linkExtraAttributes;
+ %SDAPREF; "<Anchor: #AttList>"
+ >
+<!-- <A> Anchor; source/destination of link -->
+<!-- <A NAME="..."> Name of this anchor -->
+<!-- <A HREF="..."> Address of link destination -->
+<!-- <A URN="..."> Permanent address of destination -->
+<!-- <A REL=...> Relationship to destination -->
+<!-- <A REV=...> Relationship of destination to this -->
+<!-- <A TITLE="..."> Title of destination (advisory) -->
+<!-- <A METHODS="..."> Operations on destination (advisory) -->
+
+
+<!--========== Images ==========================-->
+
+<!ELEMENT IMG - O EMPTY>
+<!ATTLIST IMG
+ SRC CDATA #REQUIRED
+ ALT CDATA #IMPLIED
+ ALIGN (top|middle|bottom) #IMPLIED
+ ISMAP (ISMAP) #IMPLIED
+ %SDAPREF; "<Fig><?SDATrans Img: #AttList>#AttVal(Alt)</Fig>"
+ >
+
+<!-- <IMG> Image; icon, glyph or illustration -->
+<!-- <IMG SRC="..."> Address of image object -->
+<!-- <IMG ALT="..."> Textual alternative -->
+<!-- <IMG ALIGN=...> Position relative to text -->
+<!-- <IMG ISMAP> Each pixel can be a link -->
+
+<!--========== Paragraphs=======================-->
+
+<!ELEMENT P - O (%text)*>
+<!ATTLIST P
+ %SDAFORM; "Para"
+ >
+
+<!-- <P> Paragraph -->
+
+
+<!--========== Headings, Titles, Sections ===============-->
+
+<!ELEMENT HR - O EMPTY>
+<!ATTLIST HR
+ %SDAPREF; "&#RE;&#RE;"
+ >
+
+<!-- <HR> Horizontal rule -->
+
+<!ELEMENT ( %heading ) - - (%text;)*>
+<!ATTLIST H1
+ %SDAFORM; "H1"
+ >
+<!ATTLIST H2
+ %SDAFORM; "H2"
+ >
+<!ATTLIST H3
+ %SDAFORM; "H3"
+ >
+<!ATTLIST H4
+ %SDAFORM; "H4"
+ >
+<!ATTLIST H5
+ %SDAFORM; "H5"
+ >
+<!ATTLIST H6
+ %SDAFORM; "H6"
+ >
+
+<!-- <H1> Heading, level 1 -->
+<!-- <H2> Heading, level 2 -->
+<!-- <H3> Heading, level 3 -->
+<!-- <H4> Heading, level 4 -->
+<!-- <H5> Heading, level 5 -->
+<!-- <H6> Heading, level 6 -->
+
+
+<!--========== Text Flows ======================-->
+
+<![ %HTML.Forms [
+ <!ENTITY % block.forms "BLOCKQUOTE | FORM | ISINDEX">
+]]>
+
+<!ENTITY % block.forms "BLOCKQUOTE">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % preformatted "PRE | XMP | LISTING">
+]]>
+
+<!ENTITY % preformatted "PRE">
+
+<!ENTITY % block "P | %list | DL
+ | %preformatted
+ | %block.forms">
+
+<!ENTITY % flow "(%text|%block)*">
+
+<!ENTITY % pre.content "#PCDATA | A | HR | BR">
+<!ELEMENT PRE - - (%pre.content)*>
+<!ATTLIST PRE
+ WIDTH NUMBER #implied
+ %SDAFORM; "Lit"
+ >
+
+<!-- <PRE> Preformatted text -->
+<!-- <PRE WIDTH=...> Maximum characters per line -->
+
+<![ %HTML.Deprecated [
+
+<!ENTITY % literal "CDATA"
+ -- historical, non-conforming parsing mode where
+ the only markup signal is the end tag
+ in full
+ -->
+
+<!ELEMENT (XMP|LISTING) - - %literal>
+<!ATTLIST XMP
+ %SDAFORM; "Lit"
+ %SDAPREF; "Example:&#RE;"
+ >
+<!ATTLIST LISTING
+ %SDAFORM; "Lit"
+ %SDAPREF; "Listing:&#RE;"
+ >
+
+<!-- <XMP> Example section -->
+<!-- <LISTING> Computer listing -->
+
+<!ELEMENT PLAINTEXT - O %literal>
+<!-- <PLAINTEXT> Plain text passage -->
+
+<!ATTLIST PLAINTEXT
+ %SDAFORM; "Lit"
+ >
+]]>
+
+
+<!--========== Lists ==================-->
+
+<!ELEMENT DL - - (DT | DD)+>
+<!ATTLIST DL
+ COMPACT (COMPACT) #IMPLIED
+ %SDAFORM; "List"
+ %SDAPREF; "Definition List:"
+ >
+
+<!ELEMENT DT - O (%text)*>
+<!ATTLIST DT
+ %SDAFORM; "Term"
+ >
+
+<!ELEMENT DD - O %flow>
+<!ATTLIST DD
+ %SDAFORM; "LItem"
+ >
+
+<!-- <DL> Definition list, or glossary -->
+<!-- <DL COMPACT> Compact style list -->
+<!-- <DT> Term in definition list -->
+<!-- <DD> Definition of term -->
+
+<!ELEMENT (OL|UL) - - (LI)+>
+<!ATTLIST OL
+ COMPACT (COMPACT) #IMPLIED
+ %SDAFORM; "List"
+ >
+<!ATTLIST UL
+ COMPACT (COMPACT) #IMPLIED
+ %SDAFORM; "List"
+ >
+<!-- <UL> Unordered list -->
+<!-- <UL COMPACT> Compact list style -->
+<!-- <OL> Ordered, or numbered list -->
+<!-- <OL COMPACT> Compact list style -->
+
+
+<!ELEMENT (DIR|MENU) - - (LI)+ -(%block)>
+<!ATTLIST DIR
+ COMPACT (COMPACT) #IMPLIED
+ %SDAFORM; "List"
+ %SDAPREF; "<LHead>Directory</LHead>"
+ >
+<!ATTLIST MENU
+ COMPACT (COMPACT) #IMPLIED
+ %SDAFORM; "List"
+ %SDAPREF; "<LHead>Menu</LHead>"
+ >
+
+<!-- <DIR> Directory list -->
+<!-- <DIR COMPACT> Compact list style -->
+<!-- <MENU> Menu list -->
+<!-- <MENU COMPACT> Compact list style -->
+
+<!ELEMENT LI - O %flow>
+<!ATTLIST LI
+ %SDAFORM; "LItem"
+ >
+
+<!-- <LI> List item -->
+
+<!--========== Document Body ===================-->
+
+<![ %HTML.Recommended [
+ <!ENTITY % body.content "(%heading|%block|HR|ADDRESS|IMG)*"
+ -- <h1>Heading</h1>
+ <p>Text ...
+ is preferred to
+ <h1>Heading</h1>
+ Text ...
+ -->
+]]>
+
+<!ENTITY % body.content "(%heading | %text | %block |
+ HR | ADDRESS)*">
+
+<!ELEMENT BODY O O %body.content>
+
+<!-- <BODY> Document body -->
+
+<!ELEMENT BLOCKQUOTE - - %body.content>
+<!ATTLIST BLOCKQUOTE
+ %SDAFORM; "BQ"
+ >
+
+<!-- <BLOCKQUOTE> Quoted passage -->
+
+<!ELEMENT ADDRESS - - (%text|P)*>
+<!ATTLIST ADDRESS
+ %SDAFORM; "Lit"
+ %SDAPREF; "Address:&#RE;"
+ >
+
+<!-- <ADDRESS> Address, signature, or byline -->
+
+
+<!--======= Forms ====================-->
+
+<![ %HTML.Forms [
+
+<!ELEMENT FORM - - %body.content -(FORM) +(INPUT|SELECT|TEXTAREA)>
+<!ATTLIST FORM
+ ACTION CDATA #IMPLIED
+ METHOD (%HTTP-Method) GET
+ ENCTYPE %Content-Type; "application/x-www-form-urlencoded"
+ %SDAPREF; "<Para>Form:</Para>"
+ %SDASUFF; "<Para>Form End.</Para>"
+ >
+
+<!-- <FORM> Fill-out or data-entry form -->
+<!-- <FORM ACTION="..."> Address for completed form -->
+<!-- <FORM METHOD=...> Method of submitting form -->
+<!-- <FORM ENCTYPE="..."> Representation of form data -->
+
+<!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX |
+ RADIO | SUBMIT | RESET |
+ IMAGE | HIDDEN )">
+<!ELEMENT INPUT - O EMPTY>
+<!ATTLIST INPUT
+ TYPE %InputType TEXT
+ NAME CDATA #IMPLIED
+ VALUE CDATA #IMPLIED
+ SRC CDATA #IMPLIED
+ CHECKED (CHECKED) #IMPLIED
+ SIZE CDATA #IMPLIED
+ MAXLENGTH NUMBER #IMPLIED
+ ALIGN (top|middle|bottom) #IMPLIED
+ %SDAPREF; "Input: "
+ >
+
+<!-- <INPUT> Form input datum -->
+<!-- <INPUT TYPE=...> Type of input interaction -->
+<!-- <INPUT NAME=...> Name of form datum -->
+<!-- <INPUT VALUE="..."> Default/initial/selected value -->
+<!-- <INPUT SRC="..."> Address of image -->
+<!-- <INPUT CHECKED> Initial state is "on" -->
+<!-- <INPUT SIZE=...> Field size hint -->
+<!-- <INPUT MAXLENGTH=...> Data length maximum -->
+<!-- <INPUT ALIGN=...> Image alignment -->
+
+<!ELEMENT SELECT - - (OPTION+) -(INPUT|SELECT|TEXTAREA)>
+<!ATTLIST SELECT
+ NAME CDATA #REQUIRED
+ SIZE NUMBER #IMPLIED
+ MULTIPLE (MULTIPLE) #IMPLIED
+ %SDAFORM; "List"
+ %SDAPREF;
+ "<LHead>Select #AttVal(Multiple)</LHead>"
+ >
+
+<!-- <SELECT> Selection of option(s) -->
+<!-- <SELECT NAME=...> Name of form datum -->
+<!-- <SELECT SIZE=...> Options displayed at a time -->
+<!-- <SELECT MULTIPLE> Multiple selections allowed -->
+
+<!ELEMENT OPTION - O (#PCDATA)*>
+<!ATTLIST OPTION
+ SELECTED (SELECTED) #IMPLIED
+ VALUE CDATA #IMPLIED
+ %SDAFORM; "LItem"
+ %SDAPREF;
+ "Option: #AttVal(Value) #AttVal(Selected)"
+ >
+
+<!-- <OPTION> A selection option -->
+<!-- <OPTION SELECTED> Initial state -->
+<!-- <OPTION VALUE="..."> Form datum value for this option-->
+
+<!ELEMENT TEXTAREA - - (#PCDATA)* -(INPUT|SELECT|TEXTAREA)>
+<!ATTLIST TEXTAREA
+ NAME CDATA #REQUIRED
+ ROWS NUMBER #REQUIRED
+ COLS NUMBER #REQUIRED
+ %SDAFORM; "Para"
+ %SDAPREF; "Input Text -- #AttVal(Name): "
+ >
+
+<!-- <TEXTAREA> An area for text input -->
+<!-- <TEXTAREA NAME=...> Name of form datum -->
+<!-- <TEXTAREA ROWS=...> Height of area -->
+<!-- <TEXTAREA COLS=...> Width of area -->
+
+]]>
+
+
+<!--======= Document Head ======================-->
+
+<![ %HTML.Recommended [
+ <!ENTITY % head.extra "">
+]]>
+<!ENTITY % head.extra "& NEXTID?">
+
+<!ENTITY % head.content "TITLE & ISINDEX? & BASE? %head.extra">
+
+<!ELEMENT HEAD O O (%head.content) +(META|LINK)>
+
+<!-- <HEAD> Document head -->
+
+<!ELEMENT TITLE - - (#PCDATA)* -(META|LINK)>
+<!ATTLIST TITLE
+ %SDAFORM; "Ti" >
+
+<!-- <TITLE> Title of document -->
+
+<!ELEMENT LINK - O EMPTY>
+<!ATTLIST LINK
+ HREF CDATA #REQUIRED
+ %linkExtraAttributes;
+ %SDAPREF; "Linked to : #AttVal (TITLE) (URN) (HREF)>" >
+
+<!-- <LINK> Link from this document -->
+<!-- <LINK HREF="..."> Address of link destination -->
+<!-- <LINK URN="..."> Lasting name of destination -->
+<!-- <LINK REL=...> Relationship to destination -->
+<!-- <LINK REV=...> Relationship of destination to this -->
+<!-- <LINK TITLE="..."> Title of destination (advisory) -->
+<!-- <LINK METHODS="..."> Operations allowed (advisory) -->
+
+<!ELEMENT ISINDEX - O EMPTY>
+<!ATTLIST ISINDEX
+ %SDAPREF;
+ "<Para>[Document is indexed/searchable.]</Para>">
+
+<!-- <ISINDEX> Document is a searchable index -->
+
+<!ELEMENT BASE - O EMPTY>
+<!ATTLIST BASE
+ HREF CDATA #REQUIRED >
+
+<!-- <BASE> Base context document -->
+<!-- <BASE HREF="..."> Address for this document -->
+
+<!ELEMENT NEXTID - O EMPTY>
+<!ATTLIST NEXTID
+ N CDATA #REQUIRED >
+
+<!-- <NEXTID> Next ID to use for link name -->
+<!-- <NEXTID N=...> Next ID to use for link name -->
+
+<!ELEMENT META - O EMPTY>
+<!ATTLIST META
+ HTTP-EQUIV NAME #IMPLIED
+ NAME NAME #IMPLIED
+ CONTENT CDATA #REQUIRED >
+
+<!-- <META> Generic Meta-information -->
+<!-- <META HTTP-EQUIV=...> HTTP response header name -->
+<!-- <META NAME=...> Meta-information name -->
+<!-- <META CONTENT="..."> Associated information -->
+
+<!--======= Document Structure =================-->
+
+<![ %HTML.Deprecated [
+ <!ENTITY % html.content "HEAD, BODY, PLAINTEXT?">
+]]>
+<!ENTITY % html.content "HEAD, BODY">
+
+<!ELEMENT HTML O O (%html.content)>
+<!ENTITY % version.attr "VERSION CDATA #FIXED '%HTML.Version;'">
+
+<!ATTLIST HTML
+ %version.attr;
+ %SDAFORM; "Book"
+ >
+
+<!-- <HTML> HTML Document -->
diff --git a/htdocs/sgml-lib/htmli.decl b/htdocs/sgml-lib/htmli.decl
new file mode 100644
index 0000000..c465429
--- /dev/null
+++ b/htdocs/sgml-lib/htmli.decl
@@ -0,0 +1,80 @@
+
+<!SGML "ISO 8879:1986"
+--
+ SGML Declaration for HyperText Markup Language version 2.x
+ (HTML 2.x = HTML 2.0 + i18n).
+
+--
+
+CHARSET
+ BASESET "ISO Registration Number 177//CHARSET
+ ISO/IEC 10646-1:1993 UCS-4 with
+ implementation level 3//ESC 2/5 2/15 4/6"
+ DESCSET 0 9 UNUSED
+ 9 2 9
+ 11 2 UNUSED
+ 13 1 13
+ 14 18 UNUSED
+ 32 95 32
+ 127 1 UNUSED
+ 128 32 UNUSED
+ 160 2147483486 160
+
+CAPACITY SGMLREF
+ TOTALCAP 150000
+ GRPCAP 150000
+ ENTCAP 150000
+
+SCOPE DOCUMENT
+SYNTAX
+ SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+ 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127
+ BASESET "ISO 646:1983//CHARSET
+ International Reference Version
+ (IRV)//ESC 2/5 4/0"
+ DESCSET 0 128 0
+
+ FUNCTION
+ RE 13
+ RS 10
+ SPACE 32
+ TAB SEPCHAR 9
+
+ NAMING LCNMSTRT ""
+ UCNMSTRT ""
+ LCNMCHAR ".-"
+ UCNMCHAR ".-"
+ NAMECASE GENERAL YES
+ ENTITY NO
+ DELIM GENERAL SGMLREF
+ SHORTREF SGMLREF
+ NAMES SGMLREF
+ QUANTITY SGMLREF
+ ATTSPLEN 2100
+ LITLEN 1024
+ NAMELEN 72 -- somewhat arbitrary; taken from
+ internet line length conventions --
+ PILEN 1024
+ TAGLVL 100
+ TAGLEN 2100
+ GRPGTCNT 150
+ GRPCNT 64
+
+FEATURES
+ MINIMIZE
+ DATATAG NO
+ OMITTAG YES
+ RANK NO
+ SHORTTAG YES
+ LINK
+ SIMPLE NO
+ IMPLICIT NO
+ EXPLICIT NO
+ OTHER
+ CONCUR NO
+ SUBDOC NO
+ FORMAL YES
+ APPINFO "SDA" -- conforming SGML Document Access application
+ --
+>
+
diff --git a/htdocs/sgml-lib/ie30-s.dtd b/htdocs/sgml-lib/ie30-s.dtd
new file mode 100644
index 0000000..7d893f3
--- /dev/null
+++ b/htdocs/sgml-lib/ie30-s.dtd
@@ -0,0 +1,23 @@
+<!-- html-s.dtd
+
+ Document Type Definition for strict HTML that works with Internet Explorer.
+-->
+
+<!ENTITY % HTML.Version
+ "-//Microsoft//DTD Internet Explorer 3.0 HTML Strict//EN"
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC
+ "-//Microsoft//DTD Internet Explorer 3.0 HTML Strict//EN">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+<!-- Feature Test Entities -->
+<!ENTITY % HTML.Recommended "INCLUDE">
+
+<!ENTITY % html PUBLIC "-//Microsoft//DTD Internet Explorer 3.0 HTML//EN">
+%html;
diff --git a/htdocs/sgml-lib/ie30.dtd b/htdocs/sgml-lib/ie30.dtd
new file mode 100644
index 0000000..f317a8f
--- /dev/null
+++ b/htdocs/sgml-lib/ie30.dtd
@@ -0,0 +1,853 @@
+<!--
+ Microsoft Document Type Definition for Internet Explorer 3.0 HTML.
+
+ Version: 0.9 Date: 11/7/96
+
+ Author: Mark Buckley <mbuckley@microsoft.com>
+
+ This markup is based as much as possible on the DTD for HTML 3.2
+ published by W3C (also known as the Wilbur DTD), dated 5/31/96.
+-->
+
+<!ENTITY % HTML.Version
+ "-//Microsoft//DTD Internet Explorer 3.0 HTML//EN" >
+
+<!--================== Deprecated Features Switch =========================-->
+
+<!ENTITY % HTML.Recommended "IGNORE" >
+
+<![ %HTML.Recommended [
+ <!ENTITY % HTML.Deprecated "IGNORE">
+]]>
+
+<!ENTITY % HTML.Deprecated "INCLUDE">
+
+<!--================== Imported Names =====================================-->
+
+<!ENTITY % Content-Type "CDATA"
+ -- meaning a MIME content type, as per RFC1521
+ -->
+
+<!ENTITY % HTTP-Method "GET | POST"
+ -- as per HTTP specification
+ -->
+
+<!ENTITY % URL "CDATA"
+ -- The term URL means a CDATA attribute
+ whose value is a Uniform Resource Locator,
+ See RFC1808 (June 95) and RFC1738 (Dec 94).
+ -->
+
+<!--========= Common attributes ============================================-->
+
+<!ENTITY % attrs -- common attributes. Taken from the HTML 3 DTD --
+ 'id ID #IMPLIED -- as target for hrefs (link ends) --
+ lang CDATA "en.us" -- ISO language, country code --
+ class NAMES #IMPLIED -- for subclassing elements --
+ style CDATA #IMPLIED'>
+
+<!--========= Color attribute ============================================-->
+
+<!ENTITY % color "CDATA" -- a color specification: #HHHHHH @@ details? -->
+
+
+<!--================ Character mnemonic entities ==========================-->
+
+<!ENTITY % ISOlat1 PUBLIC
+ "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML">
+%ISOlat1;
+
+<!--================ Entities for special symbols =========================-->
+<!-- &trade &shy and &cbsp are not widely deployed and so not included here -->
+
+<!ENTITY copy CDATA "&#169" -- copyright sign -->
+<!ENTITY reg CDATA "&#174" -- registered sign -->
+<!ENTITY amp CDATA "&#38;" -- ampersand -->
+<!ENTITY gt CDATA "&#62;" -- greater than -->
+<!ENTITY lt CDATA "&#60;" -- less than -->
+<!ENTITY quot CDATA "&#34;" -- double quote -->
+<!ENTITY nbsp CDATA "&#160;" -- non breaking space -->
+
+<!-- Parameter Entities -->
+
+<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
+
+
+<!--=================== Text Content =======================================-->
+
+<![ %HTML.Deprecated [
+<!ENTITY % font "TT | I | B | U | STRIKE | BIG | SMALL | SUB | SUP | FONT | S">
+]]>
+
+<!ENTITY % font "TT | I | B | U | STRIKE | BIG | SMALL | SUB | SUP | FONT">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % phrase "EM | STRONG | DFN |CODE | SAMP | KBD | VAR | CITE | ENTITY">
+]]>
+
+<!ENTITY % phrase "EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE | SPAN">
+
+<!ENTITY % break "BR | NOBR | WBR" >
+
+<!ENTITY % anchors "A" >
+
+<![ %HTML.Deprecated [
+<!ENTITY % mmobjects "IMG | APPLET | SCRIPT | NOSCRIPT | MAP | BGSOUND | MARQUEE | OBJECT | EMBED" >
+]]>
+
+<!ENTITY % mmobjects "IMG | APPLET | SCRIPT | NOSCRIPT | MAP | BGSOUND | MARQUEE | OBJECT" >
+
+<!ENTITY % formitems "INPUT | SELECT | TEXTAREA">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % text "#PCDATA | %font | %phrase | %break | %anchors | %mmobjects | %formitems">
+]]>
+
+<!ENTITY % text "#PCDATA | %font | %phrase | %break | %anchors | %mmobjects">
+
+<!--=================== Flow Content =======================================-->
+
+<!ENTITY % list "UL | OL | DL | DIR | MENU">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % preformatted "PRE | XMP | LISTING | PLAINTEXT">
+]]>
+
+<!ENTITY % preformatted "PRE">
+
+
+<![ %HTML.Deprecated [
+<!ENTITY % block
+ "P | %list | %preformatted | DIV | BLOCKQUOTE | FORM | ISINDEX |
+ HR | TABLE | IFRAME | CENTER">
+]]>
+
+<!ENTITY % block
+ "P | %list | %preformatted | DIV | BLOCKQUOTE | FORM | ISINDEX |
+ HR | TABLE | IFRAME">
+
+
+<![ %HTML.Deprecated [
+<!ENTITY % mixed.content "(%heading|%text|%block|ADDRESS|BASEFONT)*" >
+]]>
+
+<!-- %flow is used for DD and LI -->
+
+<![ %HTML.Deprecated [
+<!ENTITY % flow "(%mixed.content)*">
+]]>
+
+<!ENTITY % flow "(%text | %block)*">
+
+<![ %HTML.Deprecated [
+<!ENTITY % font.content "(%mixed.content)*">
+]]>
+
+<!ENTITY % font.content "(%text)*">
+
+
+<!-- Text Elements -->
+
+<!ELEMENT (%font) - - %font.content >
+
+<!ATTLIST FONT
+ %attrs;
+ size CDATA #IMPLIED -- [+]nn e.g. size="+1", size=4 --
+ color %color #IMPLIED -- #RRGGBB in hex, e.g. red: color="#FF0000" --
+ face CDATA #IMPLIED
+ >
+
+<!ATTLIST (TT | I | B | U | STRIKE | BIG | SMALL | SUB | SUP)
+ %attrs;
+ size CDATA #IMPLIED -- [+]nn e.g. size="+1", size=4 --
+ color %color #IMPLIED -- #RRGGBB in hex, e.g. red: color="#FF0000" --
+ face CDATA #IMPLIED
+ >
+
+<![ %HTML.Deprecated [
+ <!ATTLIST S
+ %attrs;
+ >
+]]>
+
+<!ELEMENT (%phrase) - - (%text)*>
+<!ATTLIST (%phrase)
+ %attrs;
+ >
+
+<!ELEMENT (%break) - O EMPTY -- forced line break -->
+
+<!ATTLIST BR
+ %attrs;
+ clear (left|all|right|none) none -- control of text flow --
+ >
+
+<!ATTLIST (NOBR | WBR)
+ %attrs;
+ >
+
+<!--=================== Document Body =====================================-->
+
+<![ %HTML.Recommended [
+ <!ENTITY % body.content "(%heading|%block|%mmobjects|ADDRESS|BASEFONT)*" >
+]]>
+
+<![ %HTML.Deprecated [
+<!ENTITY % body.content "%mixed.content" >
+]]>
+
+<!ENTITY % body-color-attrs "
+ bgcolor %color #IMPLIED
+ text %color #IMPLIED
+ link %color #IMPLIED
+ vlink %color #IMPLIED
+ alink %color #IMPLIED
+ ">
+
+<!ELEMENT BODY O O %body.content>
+<!ATTLIST BODY
+ %attrs;
+ background %URL #IMPLIED -- texture tile for document background --
+ %body-color-attrs; -- bgcolor, text, link, vlink, alink --
+ bgproperties CDATA #IMPLIED
+ leftmargin NUMBER #IMPLIED
+ topmargin NUMBER #IMPLIED
+ >
+
+<![ %HTML.Deprecated [
+ <!ENTITY % address.content "((%text;) | P | CENTER)*">
+]]>
+
+<!ENTITY % address.content "((%text;) | P )*">
+
+<!ELEMENT ADDRESS - - %address.content>
+<!ATTLIST ADDRESS
+ %attrs;
+ >
+
+<!ELEMENT DIV - - %body.content>
+<!ATTLIST DIV
+ %attrs
+ align (left|center|right) left -- alignment of following text --
+ >
+
+<![ %HTML.Deprecated [
+ <!-- CENTER is a shorthand for DIV with ALIGN=CENTER -->
+ <!ELEMENT center - - %mixed.content>
+ <!ATTLIST center
+ %attrs
+ >
+]]>
+
+<!--================== The Anchor Element =================================-->
+
+<!ELEMENT A - - (%text)* -(A)>
+<!ATTLIST A
+ %attrs
+ name CDATA #IMPLIED -- named link end --
+ href %URL #IMPLIED -- URL for linked resource --
+ rel CDATA #IMPLIED -- forward link types --
+ rev CDATA #IMPLIED -- reverse link types --
+ title CDATA #IMPLIED -- advisory title string --
+ target CDATA #IMPLIED -- frame target --
+ >
+
+<!--================== 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 -->
+
+<!ENTITY % SHAPE "(rect|rectangle|circ|circle|poly|polygon|default)">
+<!ENTITY % COORDS "CDATA" -- comma separated list of numbers -->
+
+<!ELEMENT MAP - - (AREA)*>
+<!ATTLIST MAP
+ name CDATA #IMPLIED
+ >
+
+<!ELEMENT AREA - O EMPTY>
+<!ATTLIST AREA
+ %attrs
+ shape %SHAPE rect
+ coords %COORDS #IMPLIED -- always needed except for shape=default --
+ href %URL #IMPLIED -- this region acts as hypertext link --
+ nohref (nohref) #IMPLIED -- this region has no action --
+ alt CDATA #IMPLIED
+ target CDATA #IMPLIED
+ >
+
+<!--================== The LINK Element ==================================-->
+
+<!ENTITY % Types "CDATA"
+ -- See Internet Draft: draft-ietf-html-relrev-00.txt
+ LINK has been part of HTML since the early days
+ although few browsers as yet take advantage of it.
+
+ Relationship values can be used in principle:
+
+ a) for document specific toolbars/menus when used
+ with the LINK element in document head:
+ 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=print)
+-->
+
+<!ELEMENT LINK - O EMPTY>
+<!ATTLIST LINK
+ %attrs;
+ href %URL #IMPLIED -- URL for linked resource --
+ rel %Types #IMPLIED -- forward link types --
+ rev %Types #IMPLIED -- reverse link types --
+ title CDATA #IMPLIED -- advisory title string --
+ >
+
+<!--=================== Images ============================================-->
+
+<!ENTITY % Length "CDATA" -- nn for pixels or nn% for percentage length -->
+<!ENTITY % Pixels "CDATA" -- integer representing length in pixels -->
+
+<!-- Suggested widths are used for negotiating image size
+ with the module responsible for painting the image.
+ align=left or right cause image to float to margin
+ and for subsequent text to wrap around image -->
+
+<!ENTITY % IAlign "(top|middle|bottom|left|right)">
+
+<!ELEMENT IMG - O EMPTY -- Embedded image -->
+<!ATTLIST IMG
+ %attrs;
+ src %URL #REQUIRED -- URL of image to embed --
+ alt CDATA #IMPLIED -- for display in place of image --
+ align %IAlign #IMPLIED -- vertical or horizontal alignment --
+ height %Pixels #IMPLIED -- suggested height in pixels --
+ width %Pixels #IMPLIED -- suggested width in pixels --
+ border %Pixels #IMPLIED -- suggested link border width --
+ hspace %Pixels #IMPLIED -- suggested horizontal gutter --
+ vspace %Pixels #IMPLIED -- suggested vertical gutter --
+ usemap %URL #IMPLIED -- use client-side image map --
+ ismap (ismap) #IMPLIED -- use server image map --
+ dynsrc %URL #IMPLIED -- URL of image to embed --
+ start NAMES #IMPLIED
+ loop NMTOKEN #IMPLIED
+ controls (controls) #IMPLIED
+ vrml CDATA #IMPLIED
+ >
+
+<!-- USEMAP points to a MAP element which may be in this document
+ or an external document, although the latter is not widely supported -->
+
+<!--=================== Java APPLET tag ===================================-->
+<!--
+ This tag is supported by all java enabled browsers. Applet resources
+ (including their classes) are normally loaded relative to the document
+ URL (or <BASE> element if it is defined). The CODEBASE attribute is used
+ to change this default behavior. If the CODEBASE attribute is defined then
+ it specifies a different location to find applet resources. The value
+ can be an absolute URL or a relative URL. The absolute URL is used as is
+ without modification and is not effected by the documents <BASE> element.
+ When the codebase attribute is relative, then it is relative to the
+ document URL (or <BASE> tag if defined). <TEXTFLOW> avoids the problems
+ with SGML mixed content. It can always be omitted *except* when the APPLET
+ element hasn't any content. White space, comments and PARAM elements
+ don't count as content for this purpose. TEXTFLOW was introduced into
+ the DTD to satisfy SGML parsers, but is ignored by current Web browsers.
+-->
+<!ELEMENT APPLET - - (PARAM*, TEXTFLOW)>
+<!ATTLIST APPLET
+ %attrs
+ codebase %URL #IMPLIED -- code base --
+ code CDATA #REQUIRED -- class file --
+ name CDATA #IMPLIED -- applet name --
+ alt CDATA #IMPLIED -- for display in place of applet --
+ align %IAlign #IMPLIED -- vertical or horizontal alignment --
+ height %Pixels #REQUIRED -- suggested height in pixels --
+ width %Pixels #REQUIRED -- suggested width in pixels --
+ hspace %Pixels #IMPLIED -- suggested horizontal gutter --
+ vspace %Pixels #IMPLIED -- suggested vertical gutter --
+ border NUMBER #IMPLIED
+ >
+
+
+<!ELEMENT TEXTFLOW O O (%text)* -- needed to bypass mixed content model -->
+
+<!--
+Here is an example:
+
+ <applet codebase="applets/NervousText"
+ code=NervousText.class
+ width=300
+ height=50>
+ <param name=text value="Java is Cool!">
+ <img src=sorry.gif alt="This looks better with Java support">
+ </applet>
+-->
+
+<!--=================== Horizontal Rule ===================================-->
+
+<!ELEMENT HR - O EMPTY>
+<!ATTLIST HR
+ %attrs;
+ align (left|right|center) #IMPLIED
+ noshade (noshade) #IMPLIED
+ size %Pixels #IMPLIED
+ width %Length #IMPLIED
+ color %color #IMPLIED
+ >
+
+<!--=================== Paragraphs=========================================-->
+
+<![ %HTML.Deprecated [
+ <!ENTITY % P.content "(%text|CENTER)*" >
+]]>
+
+<!ENTITY % P.content "(%text)*" >
+
+<!ELEMENT P - O %P.content >
+<!ATTLIST P
+ %attrs;
+ align (left|center|right) #IMPLIED
+ >
+
+
+<!--=================== Base Font =========================================-->
+
+<!ELEMENT BASEFONT - O EMPTY>
+<!ATTLIST BASEFONT
+ %attrs;
+ size NUMBER #IMPLIED
+ color %color #IMPLIED
+ face CDATA #IMPLIED
+ >
+
+<!--=================== Background Sound =================================-->
+
+<!ELEMENT BGSOUND - O EMPTY>
+<!ATTLIST BGSOUND
+ %attrs;
+ src %URL #IMPLIED
+ loop NMTOKEN #IMPLIED
+ start CDATA #IMPLIED
+ >
+
+<!--=================== Marquee =========================================-->
+
+<!ELEMENT MARQUEE - O (%text)*>
+<!ATTLIST MARQUEE
+ %attrs;
+ align (top|middle|bottom) top
+ behavior (scroll|slide|alternate) SCROLL
+ bgcolor %color #IMPLIED
+ direction (left|right) LEFT
+ height CDATA #IMPLIED
+ hspace NUMBER #IMPLIED
+ loop CDATA #IMPLIED
+ scrollamount NUMBER #IMPLIED
+ scrolldelay NUMBER #IMPLIED
+ vspace NUMBER #IMPLIED
+ width CDATA #IMPLIED
+ border NUMBER #IMPLIED
+ background %URL #IMPLIED -- texture tile for document background --
+ >
+
+<!--=================== Headings ==========================================-->
+
+<!--
+ There are six levels of headers from H1 (the most important)
+ to H6 (the least important).
+-->
+
+<!ELEMENT ( %heading ) - - %P.content >
+<!ATTLIST ( %heading )
+ %attrs
+ align (left|center|right) #IMPLIED
+ >
+
+<!--=================== Preformatted Text =================================-->
+
+<!-- excludes images and changes in font size -->
+
+<!ENTITY % pre.exclusion "IMG|BIG|SMALL|SUB|SUP|FONT">
+
+<!ELEMENT PRE - - (%text)* -(%pre.exclusion)>
+<!ATTLIST PRE
+ %attrs;
+ width NUMBER #implied
+ >
+
+<![ %HTML.Deprecated [
+
+<!ENTITY % literal "CDATA"
+ -- historical, non-conforming parsing mode where
+ the only markup signal is the end tag
+ in full
+ -->
+
+<!ELEMENT (XMP|LISTING) - - %literal>
+<!ELEMENT PLAINTEXT - O %literal>
+
+<!ATTLIST (XMP|LISTING|PLAINTEXT)
+ %attrs;
+ >
+
+]]>
+
+<!--=================== Block-like Quotes =================================-->
+
+<!ELEMENT BLOCKQUOTE - - %body.content>
+<!ATTLIST BLOCKQUOTE
+ %attrs;
+ >
+
+<!--=================== Lists =============================================-->
+
+<!--
+ HTML 3.2 allows you to control the sequence number for ordered lists.
+ You can set the sequence number with the START and VALUE attributes.
+ The TYPE attribute may be used to specify the rendering of ordered
+ and unordered lists.
+-->
+
+<!-- definition lists - DT for term, DD for its definition -->
+
+<!ELEMENT DL - - (DT|DD)*>
+<!ATTLIST DL
+ %attrs;
+ compact (compact) #IMPLIED -- more compact style --
+ >
+
+<!ELEMENT DT - O (%text)*>
+<!ATTLIST DT
+ %attrs;
+ >
+
+<!ELEMENT DD - O %flow;>
+<!ATTLIST DD
+ %attrs;
+ >
+
+<!-- Ordered lists OL, and unordered lists UL -->
+<!ELEMENT (OL|UL) - - (LI)*>
+
+<!--
+ Numbering style
+ 1 arabic 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] -->
+
+<!ATTLIST OL -- ordered lists --
+ %attrs;
+ type %OLStyle #IMPLIED -- numbering style --
+ start NUMBER #IMPLIED -- starting sequence number --
+ compact (compact) #IMPLIED -- reduced interitem spacing --
+ >
+
+<!-- bullet styles -->
+
+<!ENTITY % ULStyle "disc|square|circle">
+
+<!ATTLIST UL -- unordered lists --
+ %attrs;
+ type (%ULStyle) #IMPLIED -- bullet style --
+ compact (compact) #IMPLIED -- reduced interitem spacing --
+ >
+
+<!ELEMENT (DIR|MENU) - - (LI)* -(%block)>
+<!ATTLIST (DIR|MENU)
+ %attrs;
+ compact (compact) #IMPLIED
+ >
+
+<!-- The type attribute can be used to change the bullet style
+ in unordered lists and the numbering style in ordered lists -->
+
+<!ENTITY % LIStyle "CDATA" -- constrained to: "(%ULStyle|%OLStyle)" -->
+
+<!ELEMENT LI - O %flow -- list item -->
+<!ATTLIST LI
+ %attrs;
+ type %LIStyle #IMPLIED -- list item style --
+ value NUMBER #IMPLIED -- reset sequence number --
+ >
+
+<!--================ Forms ===============================================-->
+
+<!ELEMENT FORM - - %body.content -(FORM) +(%formitems)>
+<!ATTLIST FORM
+ %attrs;
+ action %URL #REQUIRED -- server-side form handler --
+ method (%HTTP-Method) GET -- see HTTP specification --
+ enctype %Content-Type; "application/x-www-form-urlencoded"
+ name CDATA #IMPLIED
+ target CDATA #IMPLIED
+ >
+
+<!ENTITY % InputType
+ "(TEXT | TEXTAREA | PASSWORD | CHECKBOX | RADIO | SUBMIT
+ | RESET | FILE | HIDDEN | IMAGE)">
+
+<!ELEMENT INPUT - O EMPTY>
+<!ATTLIST INPUT
+ %attrs;
+ type %InputType TEXT -- what kind of widget is needed --
+ name CDATA #IMPLIED -- required for all but submit and reset --
+ value CDATA #IMPLIED -- required for radio and checkboxes --
+ checked (checked|true|false) #IMPLIED -- for radio buttons and check boxes --
+ size CDATA #IMPLIED -- specific to each type of field --
+ maxlength NUMBER #IMPLIED
+ src %URL #IMPLIED -- for fields with background images --
+ align (top|middle|bottom|left|right) top -- image alignment --
+ >
+
+<!ELEMENT SELECT - - (OPTION+)>
+<!ATTLIST SELECT
+ %attrs;
+ name CDATA #REQUIRED
+ size NUMBER #IMPLIED
+ multiple (multiple) #IMPLIED
+ >
+
+<!ELEMENT OPTION - O (#PCDATA)*>
+<!ATTLIST OPTION
+ %attrs;
+ selected (selected) #IMPLIED
+ value CDATA #IMPLIED -- defaults to element content --
+ >
+
+<!-- Multi-line text input field. -->
+
+<!ELEMENT TEXTAREA - - (#PCDATA)* -(INPUT|SELECT|TEXTAREA)>
+<!ATTLIST TEXTAREA
+ %attrs;
+ name CDATA #REQUIRED
+ rows NUMBER #REQUIRED
+ cols NUMBER #REQUIRED
+ >
+
+<!--======================= Tables ========================================-->
+
+<!-- Invoke TABLES DTD -->
+<!ENTITY % ietables PUBLIC "-//Microsoft//DTD Internet Explorer 3.0 Tables//EN" >
+%ietables;
+
+<!--================ Document Head ========================================-->
+
+<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|BGSOUND" -- repeatable head elements -->
+
+<![ %HTML.Deprecated [
+ <!ENTITY % head.content "TITLE & ISINDEX? & BASE? & NEXTID?">
+]]>
+
+<!ENTITY % head.content "TITLE & ISINDEX? & BASE?">
+
+<!ELEMENT HEAD O O (%head.content) +(%head.misc)>
+
+<!ELEMENT TITLE - - (#PCDATA)* -(%head.misc)
+ -- 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.
+ -->
+
+<!ELEMENT ISINDEX - O EMPTY>
+<!ATTLIST ISINDEX
+ %attrs
+ prompt CDATA #IMPLIED -- prompt message --
+ action CDATA #IMPLIED >
+
+<!--
+ The BASE element gives an absolute URL for dereferencing relative
+ URLs, e.g.
+
+ <BASE href="http://foo.com/index.html">
+ ...
+ <IMG SRC="images/bar.gif">
+
+ The image is deferenced to
+
+ http://foo.com/images/bar.gif
+
+ In the absence of a BASE element the document URL should be used.
+ Note that this is not necessarily the same as the URL used to
+ request the document, as the base URL may be overridden by an HTTP
+ header accompanying the document.
+-->
+
+<!ELEMENT BASE - O EMPTY>
+<!ATTLIST BASE
+ href %URL #REQUIRED
+ target CDATA #IMPLIED
+ >
+
+<![ %HTML.Deprecated [
+ <!ELEMENT NEXTID - O EMPTY>
+ <!ATTLIST NEXTID
+ N CDATA #REQUIRED >
+]]>
+
+<!ELEMENT META - O EMPTY -- Generic Metainformation -->
+<!ATTLIST META
+ http-equiv NAME #IMPLIED -- HTTP response header name --
+ name NAME #IMPLIED -- metainformation name --
+ content CDATA #REQUIRED -- associated information --
+ charset CDATA #IMPLIED
+ >
+
+<!-- SCRIPT/STYLE are place holders for transition to next version of HTML -->
+
+<!ELEMENT STYLE - - (#PCDATA)* -(%head.misc) -- style info -->
+<!ATTLIST STYLE
+ type CDATA #IMPLIED
+ title CDATA #IMPLIED >
+
+<!-- Script markup taken from WD-script-960208 found at
+ http://www.w3.org/pub/WWW/TR/WD-script.html -->
+
+<!-- SCRIPT is a character-like element for embedding script code
+ that can be placed anywhere in the document HEAD or BODY -->
+
+<!ENTITY % Event "CDATA" -- event name and optional param list -->
+
+<!ELEMENT SCRIPT - - (#PCDATA)* -(%head.misc)>
+<!ATTLIST SCRIPT
+ %attrs;
+ type CDATA #IMPLIED -- script language media type --
+ language CDATA #IMPLIED -- predefined script language name --
+ src %URL #IMPLIED -- URL for an external script --
+ name CDATA #IMPLIED
+ >
+
+<!ELEMENT NOSCRIPT - - (%body.content)>
+<!ATTLIST NOSCRIPT
+ %attrs;
+ >
+
+<!--================ Document Structure ===================================-->
+
+<!ENTITY % version.attr "VERSION CDATA #FIXED '%HTML.Version;'">
+
+<!ELEMENT HTML O O (HEAD, (BODY|FRAMESET) )>
+<!ATTLIST HTML
+ %attrs
+ %version.attr
+ >
+
+<!-- Frames -->
+
+<!ELEMENT FRAMESET - - (FRAMESET|FRAME|NOFRAMES)+ >
+<!ATTLIST FRAMESET
+ %attrs;
+ layout (TILES|PAGES) TILES
+ rows CDATA #IMPLIED
+ cols CDATA #IMPLIED
+ framespacing CDATA #IMPLIED
+ frameborder NUMBER #IMPLIED
+ >
+
+<!ELEMENT FRAME - O EMPTY >
+<!ATTLIST FRAME
+ %attrs;
+ src CDATA #REQUIRED
+ name CDATA #IMPLIED
+ height NUMBER #IMPLIED
+ hspace NUMBER #IMPLIED
+ width NUMBER #IMPLIED
+ vspace NUMBER #IMPLIED
+ marginwidth NUMBER #IMPLIED -- check this --
+ marginheight NUMBER #IMPLIED -- check this --
+ frameborder CDATA #IMPLIED -- need to check with IE --
+ framespacing NUMBER #IMPLIED
+ scrolling (YES|NO|AUTO) AUTO
+ noresize (NORESIZE) #IMPLIED
+ align (LEFT|CENTER|RIGHT|TOP|TEXTTOP|MIDDLE|ABSMIDDLE|
+ BASELINE|BOTTOM|ABSBOTTOM) #IMPLIED
+ >
+
+<!ELEMENT IFRAME - O EMPTY >
+<!ATTLIST IFRAME
+ %attrs;
+ src CDATA #REQUIRED
+ name CDATA #IMPLIED
+ marginwidth NUMBER #IMPLIED
+ marginheight NUMBER #IMPLIED
+ border CDATA #IMPLIED
+ frameborder CDATA #IMPLIED
+ framespacing NUMBER #IMPLIED
+ scrolling (YES|NO|AUTO) AUTO
+ noresize (NORESIZE) #IMPLIED
+ align (LEFT|CENTER|RIGHT|TOP|MIDDLE|BOTTOM) #IMPLIED
+ >
+
+<!ELEMENT NOFRAMES - - %body.content >
+
+<!-- Objects
+
+Adapted from
+WD-object-960422: Inserting objects into HTM
+http://www.w3.org/pub/WWW/TR/WD-object.html
+5/9/96
+
+-->
+
+<!ENTITY % OAlign "(texttop|middle|textmiddle|baseline|
+ textbottom|left|center|right)">
+
+<!-- OBJECT is a character-like element for inserting objects -->
+<!ELEMENT OBJECT - - (PARAM | %body.content;)*>
+<!ATTLIST OBJECT
+ %attrs -- id, class, style, lang, dir --
+ declare (declare) #IMPLIED -- declare but don't instantiate flag --
+ classid %URL #IMPLIED -- identifies an implementation --
+ codebase %URL #IMPLIED -- some systems need an additional URL --
+ data %URL #IMPLIED -- reference to object's data --
+ type CDATA #IMPLIED -- Internet media type for data --
+ codetype CDATA #IMPLIED -- Internet media type for code --
+ standby CDATA #IMPLIED -- message to show while loading --
+ align %OAlign #IMPLIED -- positioning inside document --
+ height %Length #IMPLIED -- suggested height --
+ width %Length #IMPLIED -- suggested width --
+ border %Length #IMPLIED -- suggested link border width --
+ hspace %Length #IMPLIED -- suggested horizontal gutter --
+ vspace %Length #IMPLIED -- suggested vertical gutter --
+ ismap (ismap) #IMPLIED -- use server image map --
+ usemap %URL #IMPLIED -- reference to image map --
+ shapes (shapes) #IMPLIED -- object has shaped hypertext links --
+ name %URL #IMPLIED -- submit as part of form --
+ >
+
+<!ELEMENT PARAM - O EMPTY -- named property value -->
+<!ATTLIST PARAM
+ name CDATA #REQUIRED -- property name --
+ value CDATA #IMPLIED -- property value --
+ valuetype (DATA|REF|OBJECT) DATA -- How to interpret value --
+ type CDATA #IMPLIED -- Internet media type --
+ >
+
+<![ %HTML.Deprecated [
+
+<!ELEMENT EMBED - - (NOEMBED | %body.content;)* >
+<!ATTLIST EMBED
+ %attrs;
+ name CDATA #IMPLIED
+ height CDATA #IMPLIED
+ width CDATA #IMPLIED
+ param CDATA #IMPLIED
+ src %URL #REQUIRED -- URL of image to embed --
+ >
+
+<!ELEMENT NOEMBED - - EMPTY>
+
+]]>
+
+
diff --git a/htdocs/sgml-lib/ie30tables.dtd b/htdocs/sgml-lib/ie30tables.dtd
new file mode 100644
index 0000000..219bb6e
--- /dev/null
+++ b/htdocs/sgml-lib/ie30tables.dtd
@@ -0,0 +1,181 @@
+<!-- Note: I originally excerpted this from the document entitled
+"The HTML3 Table Model" by Dave Raggett, which I found at
+http://www.w3.org/hypertext/WWW/TR/WD-tables. This file
+identified itself as W3C Working Draft, dated 12/22/95. There are
+slight modifications.
+
+Added width attribute to th and td elements.
+
+Version: 11/11/96
+
+-->
+
+<!-- Content model entities imported from parent DTD:
+
+ %body.content; allows table cells to contain headers, paras,
+ lists, form elements and even arbitrarily nested tables.
+
+ %text; is text characters, including character entities and
+ character emphasis elements, IMG and anchors
+-->
+
+<!ENTITY % attrs
+ "id ID #IMPLIED -- element identifier --
+ class NAMES #IMPLIED -- for subclassing elements --
+ style CDATA #IMPLIED -- rendering annotation --
+ lang NAME #IMPLIED -- as per RFC 1766 --
+ -- dir (ltr|rtl) #IMPLIED -- -- I18N text direction --">
+
+<!--
+ 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, its appropriate to treat this as frame=border for backwards
+ compatibility with deployed browsers.
+-->
+
+<!ENTITY % Frame "(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 % Rules "(none | groups | rows | cols | all)">
+
+<!-- horizontal placement of table relative to window -->
+<!ENTITY % Where "(left|center|right)">
+<!-- horizontal alignment attributes for cell contents -->
+<!ENTITY % cell.halign
+ "align (left|center|right|justify|char) #IMPLIED
+ char CDATA #IMPLIED -- alignment char, e.g. char=':' --
+ charoff CDATA #IMPLIED -- offset for alignment char --"
+ >
+
+<!-- vertical alignment attributes for cell contents -->
+<!ENTITY % cell.valign
+ "valign (top|middle|bottom|baseline) #IMPLIED"
+ >
+
+<!ELEMENT table - - (caption?, colgroup*, thead?, tfoot?, tbody+)>
+<!ELEMENT caption - - (%text;)+>
+<!ELEMENT thead - O (tr+)>
+<!ELEMENT tfoot - O (tr+)>
+<!ELEMENT tbody O O (tr+)>
+<!ELEMENT colgroup - O (col*)>
+<!ELEMENT col - O EMPTY>
+<!ELEMENT tr - O (th|td)+>
+<!ELEMENT (th|td) - O %body.content>
+
+<!ATTLIST table -- table element --
+ %attrs; -- id, lang, style, dir and class --
+ align %Where; #IMPLIED -- table position relative to window --
+ width CDATA #IMPLIED -- table width relative to window --
+ cols NUMBER #IMPLIED -- used for immediate display mode --
+ border CDATA #IMPLIED -- controls frame width around table --
+ frame %Frame; #IMPLIED -- which parts of table frame to include --
+ rules %Rules; #IMPLIED -- rulings between rows and cols --
+ cellspacing CDATA #IMPLIED -- spacing between cells --
+ cellpadding CDATA #IMPLIED -- spacing within cells --
+ background %URL #IMPLIED -- background picture --
+ bgcolor CDATA #IMPLIED -- table background color --
+ bordercolor CDATA #IMPLIED -- table border color --
+ bordercolorlight CDATA #IMPLIED -- 3D table border color --
+ bordercolordark CDATA #IMPLIED -- 3D table border color --
+ >
+
+<!-- ALIGN is used here for compatibility with deployed browsers -->
+<!ENTITY % Caption "(top|bottom)">
+
+<!ATTLIST caption -- table caption --
+ %attrs; -- id, lang, style, dir and class --
+ align %Caption; #IMPLIED -- relative to table --
+ height CDATA #IMPLIED -- added for IE3 --
+ width CDATA #IMPLIED -- added for IE3 --
+ >
+
+<!--
+COLGROUP groups a set of COL elements. It allows you to group
+several columns together.
+-->
+
+<!ATTLIST colgroup
+ %attrs; -- id, lang, style, dir and class --
+ span NUMBER 1 -- default number of columns in group --
+ width CDATA #IMPLIED -- default width for enclosed COLs --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
+
+<!--
+ COL elements define the alignment properties for cells in a given
+ column or spanned 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
+-->
+
+<!ATTLIST col -- column groups and properties --
+ %attrs; -- id, lang, style, dir and class --
+ span NUMBER 1 -- number of columns spanned by group --
+ width CDATA #IMPLIED -- column width specification --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
+
+<!--
+ Use THEAD to duplicate headers when breaking table
+ across page boundaries, or for static headers when
+ body sections are rendered in scrolling panel.
+
+ Use TFOOT to duplicate footers when breaking table
+ across page boundaries, or for static footers when
+ body 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; -- id, lang, style, dir and class --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
+
+<!ATTLIST tr -- table row --
+ %attrs; -- id, lang, style, dir and class --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ bgcolor CDATA #IMPLIED -- table background color --
+ bordercolor CDATA #IMPLIED -- table border color --
+ bordercolorlight CDATA #IMPLIED -- 3D table border color --
+ bordercolordark CDATA #IMPLIED -- 3D table border color --
+ >
+
+<!ATTLIST (th|td) -- header or data cell --
+ %attrs; -- id, lang, style, dir and class --
+ axis CDATA #IMPLIED -- defaults to cell content --
+ axes CDATA #IMPLIED -- list of axis names --
+ nowrap (nowrap) #IMPLIED -- suppress word wrap --
+ rowspan NUMBER 1 -- number of rows spanned by cell --
+ colspan NUMBER 1 -- number of cols spanned by cell --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ background CDATA #IMPLIED -- background graphic --
+ bgcolor CDATA #IMPLIED -- background color for cell --
+ bordercolor CDATA #IMPLIED -- cell border color --
+ bordercolorlight CDATA #IMPLIED -- 3D cell border color --
+ bordercolordark CDATA #IMPLIED -- 3D cell border color --
+ height CDATA #IMPLIED
+ width CDATA #IMPLIED
+ >
+
diff --git a/htdocs/sgml-lib/iehtml-s.dtd b/htdocs/sgml-lib/iehtml-s.dtd
new file mode 100644
index 0000000..0bf7eef
--- /dev/null
+++ b/htdocs/sgml-lib/iehtml-s.dtd
@@ -0,0 +1,24 @@
+<!-- html-s.dtd
+
+ Document Type Definition for HTML that works with Internet Explorer,
+ based on IETF's Strict HTML DTD.
+-->
+
+<!ENTITY % HTML.Version
+ "-//Microsoft//DTD Internet Explorer 2.0 HTML Strict//EN"
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC
+ "-//Microsoft//DTD Internet Explorer 2.0 HTML Strict//EN">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+<!-- Feature Test Entities -->
+<!ENTITY % HTML.Recommended "INCLUDE">
+
+<!ENTITY % html PUBLIC "-//Microsoft//DTD Internet Explorer 2.0 HTML//EN">
+%html;
diff --git a/htdocs/sgml-lib/iehtml.dtd b/htdocs/sgml-lib/iehtml.dtd
new file mode 100644
index 0000000..aeb1984
--- /dev/null
+++ b/htdocs/sgml-lib/iehtml.dtd
@@ -0,0 +1,835 @@
+<!-- DTD for Internet Explorer 2.0 HTML
+
+ Beta version: 0.9 Date: 3/4/96
+
+ Document Type Definition for the HyperText Markup Language
+ for Internet Explorer, V 2.0.
+
+ Author: Mark Buckley <mbuckley@microsoft.com>
+
+ This markup is based as much as possible on the DTD for HTML 2.0
+ published in the 12/95 IETF working draft. Table markup is based
+ on the table DTD included in the HTML3 DTD, not the 12/95 tables
+ draft.
+
+ Note that SGML Document Access (SDA) fixed attributes have not
+ necessarily been worked out yet for added elements.
+
+ Principal changes from the IETF DTD:
+
+ Took out the HTML.Highlighting and HTML.Forms marked sections.
+ Highlighting and form elements are now always included.
+
+ Moved entity declarations for common content models together & up
+ top in the DTD to allow for more effective recombination for the
+ deprecated case.
+
+ Moved DL into %lists for simplification.
+
+ Added IE HTML extensions and most Netscape extensions.
+
+ Changes since 2/26/96:
+
+ 3/4/96:
+ Added BGSOUND to HEAD.
+
+
+-->
+
+<!ENTITY % HTML.Version "-//Microsoft//DTD Internet Explorer 2.0 HTML//EN" >
+
+
+<!--============ Feature Test Entities ========================-->
+
+<!ENTITY % HTML.Recommended "IGNORE"
+ -- Certain features of the language are necessary for
+ compatibility with widespread usage, but they may
+ compromise the structural integrity of a document.
+ This feature test entity enables a more prescriptive
+ document type definition that eliminates
+ those features.
+ -->
+
+<![ %HTML.Recommended [
+ <!ENTITY % HTML.Deprecated "IGNORE">
+]]>
+
+<!ENTITY % HTML.Deprecated "INCLUDE"
+ -- Certain features of the language are necessary for
+ compatibility with earlier versions of the specification,
+ but they tend to be used and implemented inconsistently,
+ and their use is deprecated. This feature test entity
+ enables a document type definition that eliminates
+ these features.
+ -->
+
+
+<!--============== Imported Names ==============================-->
+
+<!ENTITY % Content-Type "CDATA"
+ -- meaning an internet media type
+ (aka MIME content type, as per RFC1521)
+ -->
+
+<!ENTITY % HTTP-Method "GET | POST"
+ -- as per HTTP specification, in progress
+ -->
+
+
+<!--======= Character mnemonic entities =================-->
+
+<!ENTITY % ISOlat1 PUBLIC
+ "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML">
+%ISOlat1;
+
+<!ENTITY amp CDATA "&#38;" -- ampersand -->
+<!ENTITY gt CDATA "&#62;" -- greater than -->
+<!ENTITY lt CDATA "&#60;" -- less than -->
+<!ENTITY quot CDATA "&#34;" -- double quote -->
+
+
+<!ENTITY nbsp SDATA "[nbsp ]" -- non-breaking space -->
+<!ENTITY reg SDATA "&#174" -- registered trademark symbol -->
+<!ENTITY copy SDATA "&#169" -- copyright symbol -->
+
+
+<!--========= SGML Document Access (SDA) Parameter Entities =====-->
+
+<!-- HTML 2.0 contains SGML Document Access (SDA) fixed attributes
+in support of easy transformation to the International Committee
+for Accessible Document Design (ICADD) DTD
+ "-//EC-USA-CDA/ICADD//DTD ICADD22//EN".
+ICADD applications are designed to support usable access to
+structured information by print-impaired individuals through
+Braille, large print and voice synthesis. For more information on
+SDA & ICADD:
+ - ISO 12083:1993, Annex A.8, Facilities for Braille,
+ large print and computer voice
+ - ICADD ListServ
+ <ICADD%ASUACAD.BITNET@ARIZVM1.ccit.arizona.edu>
+ - Usenet news group bit.listserv.easi
+ - Recording for the Blind, +1 800 221 4792
+-->
+
+<!ENTITY % SDAFORM "SDAFORM CDATA #FIXED"
+ -- one to one mapping -->
+<!ENTITY % SDARULE "SDARULE CDATA #FIXED"
+ -- context-sensitive mapping -->
+<!ENTITY % SDAPREF "SDAPREF CDATA #FIXED"
+ -- generated text prefix -->
+<!ENTITY % SDASUFF "SDASUFF CDATA #FIXED"
+ -- generated text suffix -->
+<!ENTITY % SDASUSP "SDASUSP NAME #FIXED"
+ -- suspend transform process -->
+
+<!--========= Common attributes ============================================-->
+
+<!ENTITY % attrs -- common attributes. Taken from the HTML 3 DTD --
+ 'id ID #IMPLIED -- as target for hrefs (link ends) --
+ lang CDATA "en.us" -- ISO language, country code --
+ class NAMES #IMPLIED -- for subclassing elements --'>
+
+<!--========= Common content models and element groups =====================-->
+
+
+<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
+
+<!ENTITY % list "UL | OL | DL | DIR | MENU" >
+
+<!ENTITY % mmobjects "IMG|MAP|FETCH|BGSOUND|MARQUEE" >
+
+<!ENTITY % font "TT | B | I | U | STRIKE | FONT">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE
+ | DFN | ENTITY">
+]]>
+
+<!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE">
+
+<!ENTITY % break "BR | NOBR | WBR" >
+
+<!ENTITY % text "#PCDATA | A | %mmobjects | %break | %phrase | %font">
+
+<!ENTITY % block.forms "BLOCKQUOTE | FORM | ISINDEX">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % preformatted "PRE | XMP | LISTING">
+]]>
+
+<!ENTITY % preformatted "PRE">
+
+<![ %HTML.Deprecated [
+<!ENTITY % block "P | TABLE
+ | %list
+ | %preformatted
+ | %block.forms
+ | COMMENT
+ | CENTER">
+]]>
+
+<!ENTITY % block "P | TABLE
+ | %list
+ | %preformatted
+ | %block.forms
+ | CENTER">
+
+<!ENTITY % mixed.content "(%heading|%text|%block|HR|ADDRESS|BASEFONT)*" >
+
+<![ %HTML.Recommended [
+ <!ENTITY % body.content "(%heading|%block|%mmobjects|HR|ADDRESS|BASEFONT)*" >
+]]>
+
+<!ENTITY % body.content "%mixed.content" >
+
+<![ %HTML.Recommended [
+ <!ENTITY % font.content "(%text)*" >
+]]>
+
+<!ENTITY % font.content "(%body.content)*" >
+
+<!ENTITY % flow "(%text|%block)*">
+
+
+<!--========== Text Markup =====================-->
+<!ELEMENT (%font) - - %font.content >
+
+<!ELEMENT (%phrase) - - (%text)* >
+
+<!ATTLIST FONT
+ %attrs;
+ SIZE NUMBER #IMPLIED
+ COLOR CDATA #IMPLIED
+ FACE CDATA #IMPLIED
+ >
+
+<!ATTLIST ( TT | CODE | SAMP | KBD | VAR )
+ %attrs;
+ %SDAFORM; "Lit"
+ >
+<!ATTLIST ( B | STRONG )
+ %attrs;
+ %SDAFORM; "B"
+ >
+<!ATTLIST ( I | EM | CITE )
+ %attrs;
+ %SDAFORM; "It"
+ >
+
+<!ATTLIST (U | STRIKE)
+ %attrs;
+ >
+
+<![ %HTML.Deprecated [
+<!ATTLIST (DFN | ENTITY)
+ %attrs;
+ >
+]]>
+
+<!-- <FONT> Font -->
+<!-- <TT> Typewriter text -->
+<!-- <B> Bold text -->
+<!-- <I> Italic text -->
+<!-- <U> Underlined text -->
+
+<!-- <EM> Emphasized phrase -->
+<!-- <STRONG> Strong emphasis -->
+<!-- <CODE> Source code phrase -->
+<!-- <SAMP> Sample text or characters -->
+<!-- <KBD> Keyboard phrase, e.g. user input -->
+<!-- <VAR> Variable phrase or substitutable -->
+<!-- <CITE> Name or title of cited work -->
+
+<!ENTITY % pre.content "#PCDATA | A | HR | BR | %font | %phrase">
+
+<!ELEMENT BR - O EMPTY>
+<!ATTLIST BR
+ %attrs;
+ CLEAR (ALL|LEFT|RIGHT) #IMPLIED
+ %SDAPREF; "&#RE;"
+ >
+
+<!-- <BR> Line break -->
+
+<!ELEMENT NOBR - O EMPTY>
+<!ATTLIST NOBR
+ %attrs;
+ >
+
+<!-- <NOBR> Disallow Line break -->
+
+<!ELEMENT WBR - O EMPTY>
+<!ATTLIST WBR
+ %attrs;
+ >
+
+<!-- <WBR> Word break -->
+
+<!--========= Link Markup ======================-->
+
+<!ENTITY % linkType "NAMES">
+
+<!ENTITY % linkExtraAttributes
+ "REL %linkType #IMPLIED
+ REV %linkType #IMPLIED
+ URN CDATA #IMPLIED
+ TITLE CDATA #IMPLIED
+ METHODS NAMES #IMPLIED
+ ">
+
+<![ %HTML.Recommended [
+ <!ENTITY % A.content "(%text)*"
+ -- <H1><a name="xxx">Heading</a></H1>
+ is preferred to
+ <a name="xxx"><H1>Heading</H1></a>
+ -->
+]]>
+
+<!ENTITY % A.content "(%heading|%text)*">
+
+<!ELEMENT A - - %A.content -(A)>
+<!ATTLIST A
+ %attrs;
+ HREF CDATA #IMPLIED
+ NAME CDATA #IMPLIED
+ X-SIZE NUMBER #IMPLIED
+ NOCACHE (NOCACHE) #IMPLIED
+ %linkExtraAttributes;
+ %SDAPREF; "<Anchor: #AttList>"
+ >
+<!-- <A> Anchor; source/destination of link -->
+<!-- <A NAME="..."> Name of this anchor -->
+<!-- <A HREF="..."> Address of link destination -->
+<!-- <A URN="..."> Permanent address of destination -->
+<!-- <A REL=...> Relationship to destination -->
+<!-- <A REV=...> Relationship of destination to this -->
+<!-- <A TITLE="..."> Title of destination (advisory) -->
+<!-- <A METHODS="..."> Operations on destination (advisory) -->
+
+
+<!--========== Images ==========================-->
+
+<!ELEMENT IMG - O EMPTY>
+<!ATTLIST IMG
+ %attrs;
+ SRC CDATA #REQUIRED
+ DYNSRC CDATA #IMPLIED
+ LOOP NMTOKEN #IMPLIED
+ START CDATA #IMPLIED
+ BORDER NUMBER #IMPLIED
+ ALT CDATA #IMPLIED
+ ALIGN (LEFT|RIGHT|TOP|TEXTTOP|MIDDLE|ABSMIDDLE|
+ BASELINE|BOTTOM|ABSBOTTOM) #IMPLIED
+ -- Values supported by IE2:
+ (LEFT|RIGHT|TOP||MIDDLE|BOTTOM) --
+ ISMAP (ISMAP) #IMPLIED
+ USEMAP CDATA #IMPLIED
+ HEIGHT CDATA #IMPLIED
+ WIDTH CDATA #IMPLIED
+ VSPACE NUMBER #IMPLIED
+ HSPACE NUMBER #IMPLIED
+ CONTROLS (CONTROLS) #IMPLIED
+ VRML CDATA #IMPLIED
+ %SDAPREF; "<Fig><?SDATrans Img: #AttList>#AttVal(Alt)</Fig>"
+ >
+
+<!-- <IMG> Image; icon, glyph or illustration -->
+<!-- <IMG SRC="..."> Address of image object -->
+<!-- <IMG ALT="..."> Textual alternative -->
+<!-- <IMG ALIGN=...> Position relative to text -->
+<!-- <IMG ISMAP> Each pixel can be a link -->
+
+<!ELEMENT MAP - - (AREA)+>
+<!ATTLIST MAP
+ %attrs;
+ NAME CDATA #REQUIRED
+ >
+
+<!-- <MAP> Map -->
+
+<!ELEMENT AREA - O EMPTY>
+<!ATTLIST AREA
+ %attrs;
+ COORDS CDATA #IMPLIED
+ HREF CDATA #IMPLIED
+ NOHREF (NOHREF) #IMPLIED
+ SHAPE (RECT|RECTANGLE|CIRC|CIRCLE|POLY|POLYGON) #IMPLIED
+ ALT CDATA #IMPLIED
+ >
+
+<!-- <AREA> Area -->
+
+<!ELEMENT FETCH - O EMPTY>
+<!ATTLIST FETCH
+ %attrs;
+ DESC CDATA #IMPLIED
+ GUID CDATA #IMPLIED
+ REQUIRED CDATA #IMPLIED
+ SRC CDATA #IMPLIED
+ TS CDATA #IMPLIED
+ >
+
+<!-- <FETCH> Fetc -->
+
+<!--========== Paragraphs=======================-->
+
+<!ELEMENT P - O (%text|CENTER)*>
+<!ATTLIST P
+ %attrs;
+ %SDAFORM; "Para"
+ ALIGN (CENTER) #IMPLIED
+ >
+
+<!-- <P> Paragraph -->
+
+
+<!--========== Headings, Titles, Sections ===============-->
+
+<!ELEMENT HR - O EMPTY>
+<!ATTLIST HR
+ %attrs;
+ %SDAPREF; "&#RE;&#RE;"
+ SIZE NUMBER #IMPLIED
+ WIDTH CDATA #IMPLIED
+ ALIGN (LEFT|RIGHT|CENTER) #IMPLIED
+ NOSHADE (NOSHADE) #IMPLIED -- Not supported by IE2 --
+ >
+
+<!-- <HR> Horizontal rule -->
+
+<!ELEMENT ( %heading ) - - (%text;|CENTER)*>
+<!ATTLIST H1
+ %attrs;
+ ALIGN (CENTER) #IMPLIED
+ %SDAFORM; "H1"
+ >
+<!ATTLIST H2
+ %attrs;
+ ALIGN (CENTER) #IMPLIED
+ %SDAFORM; "H2"
+ >
+<!ATTLIST H3
+ %attrs;
+ ALIGN (CENTER) #IMPLIED
+ %SDAFORM; "H3"
+ >
+<!ATTLIST H4
+ %attrs;
+ ALIGN (CENTER) #IMPLIED
+ %SDAFORM; "H4"
+ >
+<!ATTLIST H5
+ %attrs;
+ ALIGN (CENTER) #IMPLIED
+ %SDAFORM; "H5"
+ >
+<!ATTLIST H6
+ %attrs;
+ ALIGN (CENTER) #IMPLIED
+ %SDAFORM; "H6"
+ >
+
+<!-- <H1> Heading, level 1 -->
+<!-- <H2> Heading, level 2 -->
+<!-- <H3> Heading, level 3 -->
+<!-- <H4> Heading, level 4 -->
+<!-- <H5> Heading, level 5 -->
+<!-- <H6> Heading, level 6 -->
+
+
+<!--========== Text Flows ======================-->
+
+
+<!ELEMENT PRE - - (%pre.content)*>
+<!ATTLIST PRE
+ %attrs;
+ WIDTH CDATA #implied
+ %SDAFORM; "Lit"
+ >
+
+<!-- <PRE> Preformatted text -->
+<!-- <PRE WIDTH=...> Maximum characters per line -->
+
+<![ %HTML.Deprecated [
+
+<!ENTITY % literal "CDATA"
+ -- historical, non-conforming parsing mode where
+ the only markup signal is the end tag
+ in full
+ -->
+
+<!ELEMENT (XMP|LISTING) - - %literal>
+<!ATTLIST XMP
+ %attrs;
+ %SDAFORM; "Lit"
+ %SDAPREF; "Example:&#RE;"
+ >
+<!ATTLIST LISTING
+ %attrs;
+ %SDAFORM; "Lit"
+ %SDAPREF; "Listing:&#RE;"
+ >
+
+<!-- <XMP> Example section -->
+<!-- <LISTING> Computer listing -->
+
+<!ELEMENT PLAINTEXT - O %literal>
+<!-- <PLAINTEXT> Plain text passage -->
+
+<!ATTLIST PLAINTEXT
+ %attrs;
+ %SDAFORM; "Lit"
+ >
+]]>
+
+
+<!--========== Lists ==================-->
+
+<!ELEMENT DL - - (DT | DD)+>
+<!ATTLIST DL
+ %attrs;
+ COMPACT (COMPACT) #IMPLIED
+ %SDAFORM; "List"
+ %SDAPREF; "Definition List:"
+ >
+
+<!ELEMENT DT - O (%text)*>
+<!ATTLIST DT
+ %attrs;
+ %SDAFORM; "Term"
+ >
+
+<!ELEMENT DD - O %flow>
+<!ATTLIST DD
+ %attrs;
+ %SDAFORM; "LItem"
+ >
+
+<!-- <DL> Definition list, or glossary -->
+<!-- <DL COMPACT> Compact style list -->
+<!-- <DT> Term in definition list -->
+<!-- <DD> Definition of term -->
+
+<!ELEMENT (OL|UL) - - (LI)+>
+<!ATTLIST OL
+ %attrs;
+ COMPACT (COMPACT) #IMPLIED
+ %SDAFORM; "List"
+ TYPE CDATA #IMPLIED
+ START NUMBER #IMPLIED
+ >
+<!ATTLIST UL
+ %attrs;
+ COMPACT (COMPACT) #IMPLIED
+ %SDAFORM; "List"
+ TYPE (DISC|CIRCLE|SQUARE) #IMPLIED -- Not supported by IE2 --
+ >
+<!-- <UL> Unordered list -->
+<!-- <UL COMPACT> Compact list style -->
+<!-- <OL> Ordered, or numbered list -->
+<!-- <OL COMPACT> Compact list style -->
+
+
+<!ELEMENT (DIR|MENU) - - (LI)+ -(%block)>
+<!ATTLIST DIR
+ %attrs;
+ COMPACT (COMPACT) #IMPLIED
+ %SDAFORM; "List"
+ %SDAPREF; "<LHead>Directory</LHead>"
+ >
+<!ATTLIST MENU
+ %attrs;
+ COMPACT (COMPACT) #IMPLIED
+ %SDAFORM; "List"
+ %SDAPREF; "<LHead>Menu</LHead>"
+ >
+
+<!-- <DIR> Directory list -->
+<!-- <DIR COMPACT> Compact list style -->
+<!-- <MENU> Menu list -->
+<!-- <MENU COMPACT> Compact list style -->
+
+<!ELEMENT LI - O %flow>
+<!ATTLIST LI
+ %attrs;
+ %SDAFORM; "LItem"
+ TYPE CDATA #IMPLIED
+ VALUE NUMBER #IMPLIED
+ >
+
+<!-- <LI> List item -->
+
+<!--========== Document Body ===================-->
+
+<!ELEMENT BODY O O %body.content >
+<!ATTLIST BODY
+ %attrs;
+ BACKGROUND CDATA #IMPLIED
+ BGCOLOR CDATA #IMPLIED
+ BGPROPERTIES CDATA #IMPLIED
+ LEFTMARGIN NUMBER #IMPLIED
+ TOPMARGIN NUMBER #IMPLIED
+ TEXT CDATA #IMPLIED
+ LINK CDATA #IMPLIED
+ VLINK CDATA #IMPLIED
+ ALINK CDATA #IMPLIED
+ >
+
+<!-- <BODY> Document body -->
+
+
+<!ELEMENT CENTER - - %mixed.content >
+<!ATTLIST CENTER
+ %attrs;
+ %SDAFORM; "Para"
+ >
+
+<!-- <CENTER> Center -->
+
+<![ %HTML.Deprecated [
+<!ELEMENT COMMENT - - (%text|CENTER)*>
+
+<!-- <COMMENT> Comment -->
+]]>
+
+<!ELEMENT BASEFONT - O EMPTY>
+<!ATTLIST BASEFONT
+ %attrs;
+ SIZE NUMBER #IMPLIED
+ COLOR CDATA #IMPLIED
+ FACE CDATA #IMPLIED
+ >
+
+<!-- <BASEFONT> Basefont -->
+
+<!ELEMENT BGSOUND - O EMPTY>
+<!ATTLIST BGSOUND
+ %attrs;
+ SRC CDATA #IMPLIED
+ LOOP NMTOKEN #IMPLIED
+ >
+
+<!-- <BGSOUND> Background sound.
+ Only one background sound should exist in a document. -->
+
+<!ELEMENT MARQUEE - O (%text)*>
+<!ATTLIST MARQUEE
+ %attrs;
+ ALIGN (TOP|MIDDLE|BOTTOM) MIDDLE -- is this the right default? --
+ DIRECTION (LEFT|RIGHT) LEFT
+ BEHAVIOR (SCROLL|SLIDE|ALTERNATE) SCROLL
+ SCROLLAMOUNT NUMBER #IMPLIED
+ SCROLLDELAY NUMBER #IMPLIED
+ LOOP CDATA "INFINITE" -- is this the right default? --
+ BGCOLOR CDATA #IMPLIED
+ BORDER NUMBER #IMPLIED
+ HEIGHT CDATA #IMPLIED
+ WIDTH CDATA #IMPLIED
+ HSPACE NUMBER #IMPLIED
+ VSPACE NUMBER #IMPLIED
+ >
+
+<!-- <MARQUEE> Marquee -->
+
+<!ELEMENT BLOCKQUOTE - - %body.content>
+<!ATTLIST BLOCKQUOTE
+ %attrs;
+ %SDAFORM; "BQ"
+ >
+
+<!-- <BLOCKQUOTE> Quoted passage -->
+
+<!ELEMENT ADDRESS - - (%text|P|CENTER)*>
+<!ATTLIST ADDRESS
+ %attrs;
+ %SDAFORM; "Lit"
+ %SDAPREF; "Address:&#RE;"
+ >
+
+<!-- <ADDRESS> Address, signature, or byline -->
+
+
+<!--======= Forms ====================-->
+
+<!ELEMENT FORM - - %body.content -(FORM) +(INPUT|SELECT|TEXTAREA)>
+<!ATTLIST FORM
+ %attrs;
+ ACTION CDATA #IMPLIED
+ METHOD (%HTTP-Method) GET
+ ENCTYPE %Content-Type; "application/x-www-form-urlencoded"
+ %SDAPREF; "<Para>Form:</Para>"
+ %SDASUFF; "<Para>Form End.</Para>"
+ >
+
+<!-- <FORM> Fill-out or data-entry form -->
+<!-- <FORM ACTION="..."> Address for completed form -->
+<!-- <FORM METHOD=...> Method of submitting form -->
+<!-- <FORM ENCTYPE="..."> Representation of form data -->
+
+<!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX |
+ RADIO | SUBMIT | RESET |
+ IMAGE | HIDDEN )">
+<!ELEMENT INPUT - O EMPTY>
+<!ATTLIST INPUT
+ %attrs;
+ TYPE %InputType TEXT
+ NAME CDATA #IMPLIED
+ VALUE CDATA #IMPLIED
+ SRC CDATA #IMPLIED
+ CHECKED (CHECKED) #IMPLIED
+ SIZE CDATA #IMPLIED
+ MAXLENGTH NUMBER #IMPLIED
+ ALIGN (TOP|MIDDLE|BOTTOM) #IMPLIED
+ %SDAPREF; "Input: "
+ >
+
+<!-- <INPUT> Form input datum -->
+<!-- <INPUT TYPE=...> Type of input interaction -->
+<!-- <INPUT NAME=...> Name of form datum -->
+<!-- <INPUT VALUE="..."> Default/initial/selected value -->
+<!-- <INPUT SRC="..."> Address of image -->
+<!-- <INPUT CHECKED> Initial state is "on" -->
+<!-- <INPUT SIZE=...> Field size hint -->
+<!-- <INPUT MAXLENGTH=...> Data length maximum -->
+<!-- <INPUT ALIGN=...> Image alignment -->
+
+<!ELEMENT SELECT - - (OPTION+) -(INPUT|SELECT|TEXTAREA)>
+<!ATTLIST SELECT
+ %attrs;
+ NAME CDATA #REQUIRED
+ SIZE NUMBER #IMPLIED
+ MULTIPLE (MULTIPLE) #IMPLIED
+ %SDAFORM; "List"
+ %SDAPREF;
+ "<LHead>Select #AttVal(Multiple)</LHead>"
+ >
+
+<!-- <SELECT> Selection of option(s) -->
+<!-- <SELECT NAME=...> Name of form datum -->
+<!-- <SELECT SIZE=...> Options displayed at a time -->
+<!-- <SELECT MULTIPLE> Multiple selections allowed -->
+
+<!ELEMENT OPTION - O (#PCDATA)*>
+<!ATTLIST OPTION
+ %attrs;
+ SELECTED (SELECTED) #IMPLIED
+ VALUE CDATA #IMPLIED
+ %SDAFORM; "LItem"
+ %SDAPREF;
+ "Option: #AttVal(Value) #AttVal(Selected)"
+ >
+
+<!-- <OPTION> A selection option -->
+<!-- <OPTION SELECTED> Initial state -->
+<!-- <OPTION VALUE="..."> Form datum value for this option-->
+
+<!ELEMENT TEXTAREA - - (#PCDATA)* -(INPUT|SELECT|TEXTAREA)>
+<!ATTLIST TEXTAREA
+ %attrs;
+ NAME CDATA #REQUIRED
+ ROWS NUMBER #REQUIRED
+ COLS NUMBER #REQUIRED
+ %SDAFORM; "Para"
+ %SDAPREF; "Input Text -- #AttVal(Name): "
+ >
+
+<!-- <TEXTAREA> An area for text input -->
+<!-- <TEXTAREA NAME=...> Name of form datum -->
+<!-- <TEXTAREA ROWS=...> Height of area -->
+<!-- <TEXTAREA COLS=...> Width of area -->
+
+
+<!--======= Document Head ======================-->
+
+<![ %HTML.Recommended [
+ <!ENTITY % head.extra "">
+]]>
+<!ENTITY % head.extra "& NEXTID?">
+
+<!ENTITY % head.content "TITLE & ISINDEX? & BASE? %head.extra">
+
+<!ELEMENT HEAD O O ((%head.content),BGSOUND*) +(META|LINK)>
+
+<!-- <HEAD> Document head -->
+
+<!ELEMENT TITLE - - (#PCDATA)* -(META|LINK)>
+<!ATTLIST TITLE
+ %attrs;
+ %SDAFORM; "Ti" >
+
+<!-- <TITLE> Title of document -->
+
+<!ELEMENT LINK - O EMPTY>
+<!ATTLIST LINK
+ HREF CDATA #REQUIRED
+ %linkExtraAttributes;
+ %SDAPREF; "Linked to : #AttVal (TITLE) (URN) (HREF)>" >
+
+<!-- <LINK> Link from this document -->
+<!-- <LINK HREF="..."> Address of link destination -->
+<!-- <LINK URN="..."> Lasting name of destination -->
+<!-- <LINK REL=...> Relationship to destination -->
+<!-- <LINK REV=...> Relationship of destination to this -->
+<!-- <LINK TITLE="..."> Title of destination (advisory) -->
+<!-- <LINK METHODS="..."> Operations allowed (advisory) -->
+
+<!ELEMENT ISINDEX - O EMPTY>
+<!ATTLIST ISINDEX
+ %attrs;
+ %SDAPREF;
+ "<Para>[Document is indexed/searchable.]</Para>"
+ PROMPT CDATA #IMPLIED
+ ACTION CDATA #IMPLIED
+ >
+
+<!-- <ISINDEX> Document is a searchable index -->
+
+<!ELEMENT BASE - O EMPTY>
+<!ATTLIST BASE
+ %attrs;
+ HREF CDATA #REQUIRED >
+
+<!-- <BASE> Base context document -->
+<!-- <BASE HREF="..."> Address for this document -->
+
+<![ %HTML.Deprecated [
+<!ELEMENT NEXTID - O EMPTY>
+<!ATTLIST NEXTID
+ %attrs;
+ N CDATA #REQUIRED >
+
+<!-- <NEXTID> Next ID to use for link name -->
+<!-- <NEXTID N=...> Next ID to use for link name -->
+]]>
+
+<!ELEMENT META - O EMPTY>
+<!ATTLIST META
+ HTTP-EQUIV NAME #IMPLIED
+ NAME NAME #IMPLIED
+ CONTENT CDATA #REQUIRED >
+
+<!-- <META> Generic Meta-information -->
+<!-- <META HTTP-EQUIV=...> HTTP response header name -->
+<!-- <META NAME=...> Meta-information name -->
+<!-- <META CONTENT="..."> Associated information -->
+
+<!--======= Document Structure =================-->
+
+<![ %HTML.Deprecated [
+ <!ENTITY % html.content "HEAD, BODY, PLAINTEXT?">
+]]>
+<!ENTITY % html.content "HEAD, BODY">
+
+<!ELEMENT HTML O O (%html.content)>
+<!ENTITY % version.attr "VERSION CDATA #FIXED '%HTML.Version;'">
+
+<!ATTLIST HTML
+ %version.attr;
+ %SDAFORM; "Book"
+ >
+
+<!-- <HTML> HTML Document -->
+
+<!-- Invoke TABLES DTD -->
+<!ENTITY % ietables PUBLIC "-//Microsoft//DTD Internet Explorer 2.0 Tables//EN" >
+%ietables;
diff --git a/htdocs/sgml-lib/ietables.dtd b/htdocs/sgml-lib/ietables.dtd
new file mode 100644
index 0000000..bc1a425
--- /dev/null
+++ b/htdocs/sgml-lib/ietables.dtd
@@ -0,0 +1,110 @@
+<!-- DTD for Internet Explorer 2.0 Tables
+
+ Beta Version 0.9 Date: 2/26/96
+
+ This markup is based on the tables markup
+ contained in the IETF March 1995 Draft HTML3 DTD.
+
+ Attributes have been added as noted.
+
+ Typical invocation:
+
+ <!ENTITY % ietables PUBLIC
+ "-//Microsoft//DTD Internet Explorer 2.0 Tables//EN" >
+
+-->
+
+<!ENTITY % attrs -- common attributes for elements --
+ 'id ID #IMPLIED -- as target for hrefs (link ends) --
+ lang CDATA "en.us" -- ISO language, country code --
+ class NAMES #IMPLIED -- for subclassing elements --'>
+
+<!ENTITY % needs -- Attributes for controlling text flow. Used in headers
+ and other elements to guarantee sufficient room --
+ 'clear CDATA "no" -- (left|right|all|no) move down past figures --
+ needs CDATA #IMPLIED -- minimum width needed in em"s or pixels --
+ -- e.g. "40 em" or "100 pixels" --'>
+
+<!ENTITY % cell "TH | TD">
+<!ENTITY % horiz.align "left|center|right|justify">
+<!ENTITY % vert.align "top|middle|bottom|baseline">
+<!ENTITY % block.align
+ "align (bleedleft|left|center|right|bleedright|justify) center">
+
+
+<!ELEMENT TABLE - - (CAPTION?, TR*) -- mixed headers and data -->
+<!ATTLIST TABLE
+ %attrs;
+ %needs; -- for control of text flow --
+ border NUMBER #IMPLIED -- draw borders --
+ colspec CDATA #IMPLIED -- column widths and alignment.
+ Not supported by IE2 --
+ units (en|pixels|relative) en -- units for column widths
+ Not supported by IE2 --
+ dp CDATA #IMPLIED -- decimal point e.g. dp=","
+ Not supported by IE2 --
+ width CDATA #IMPLIED -- absolute or percentage width --
+ %block.align; -- horizontal alignment --
+ valign (%vert.align) top -- vertical alignment --
+ noflow (noflow) #IMPLIED -- noflow around table
+ Not supported by IE2 --
+ nowrap (nowrap) #IMPLIED -- don't wrap words --
+
+ -- Added for IE2 --
+ bgcolor CDATA #IMPLIED -- Table background color --
+ bordercolor CDATA #IMPLIED -- table border color --
+ bordercolorlight CDATA #IMPLIED -- 3D table border color --
+ bordercolordark CDATA #IMPLIED -- 3D table border color --
+ cellpadding NUMBER #IMPLIED -- cell padding. --
+ cellspacing NUMBER #IMPLIED -- cell spacing --
+ >
+
+<!ELEMENT TR - O (%cell)* -- row container -->
+<!ATTLIST TR
+ %attrs;
+ align (%horiz.align) #IMPLIED -- horizontal alignment --
+ valign (%vert.align) top -- vertical alignment --
+ dp CDATA #IMPLIED -- decimal point e.g. dp=","
+ Not supported by IE2 --
+ nowrap (nowrap) #IMPLIED -- don't wrap words --
+
+ -- Added for IE2 --
+ bgcolor CDATA #IMPLIED -- background color for cell --
+ bordercolor CDATA #IMPLIED -- cell border color --
+ bordercolorlight CDATA #IMPLIED -- 3D cell border color --
+ bordercolordark CDATA #IMPLIED -- 3D cell border color --
+ width CDATA #IMPLIED -- cell width --
+ >
+
+<!ELEMENT (%cell) - O %body.content>
+<!ATTLIST (%cell)
+ %attrs;
+ colspan NUMBER 1 -- columns spanned --
+ rowspan NUMBER 1 -- rows spanned --
+ align (%horiz.align) #IMPLIED -- horizontal alignment --
+ valign (%vert.align) top -- vertical alignment --
+ dp CDATA #IMPLIED -- decimal point e.g. dp=","
+ Not supported by IE2 --
+ nowrap (nowrap) #IMPLIED -- don't wrap words --
+ axis CDATA #IMPLIED -- axis name, defaults to element content
+ Not supported by IE2 --
+ axes CDATA #IMPLIED -- comma separated list of axis names
+ Not supported by IE2 --
+
+ -- Added for IE2 --
+ bgcolor CDATA #IMPLIED -- background color for cell --
+ bordercolor CDATA #IMPLIED -- cell border color --
+ bordercolorlight CDATA #IMPLIED -- 3D cell border color --
+ bordercolordark CDATA #IMPLIED -- 3D cell border color --
+ width CDATA #IMPLIED -- added for IE2 --
+ >
+
+<!--======================= Captions ======================================-->
+
+<!ELEMENT CAPTION - - (%text;)+ -- table or figure caption -->
+<!ATTLIST CAPTION
+ %attrs;
+ align (left|right|center) #IMPLIED
+ valign (top|bottom) #IMPLIED
+ >
+
diff --git a/htdocs/sgml-lib/oreilly-additional.entities b/htdocs/sgml-lib/oreilly-additional.entities
new file mode 100644
index 0000000..8f3b7d9
--- /dev/null
+++ b/htdocs/sgml-lib/oreilly-additional.entities
@@ -0,0 +1,8 @@
+<!ENTITY copy "&#169;" --copyright symbol-->
+<!ENTITY nbsp SDATA "[nbsp]" --non-breakable space-->
+<!ENTITY trade "&#153;" --trade mark sign -->
+<!ENTITY reg SDATA "[reg ]" --registered sign -->
+<!ENTITY emsp " " --em space-->
+<!ENTITY ensp " " --en space (technically, 1/2-em) -->
+<!ENTITY mdash "---" --em dash-->
+<!ENTITY ndash "--" --en dash (1/2-em) -->
diff --git a/htdocs/sgml-lib/oreilly-draft-table.elements b/htdocs/sgml-lib/oreilly-draft-table.elements
new file mode 100644
index 0000000..5b0901f
--- /dev/null
+++ b/htdocs/sgml-lib/oreilly-draft-table.elements
@@ -0,0 +1,157 @@
+ <!-- Content model entities imported from parent DTD:
+
+ %body.content; allows table cells to contain headers, paras,
+ lists, form elements and even arbitrarily nested tables.
+
+ %text; is text characters, including character entities and
+ character emphasis elements, IMG and anchors
+ -->
+
+ <!ENTITY % attrs
+ "id ID #IMPLIED -- element identifier --
+ class NAMES #IMPLIED -- for subclassing elements --
+ lang NAME #IMPLIED -- as per RFC 1766 --
+ dir (ltr|rtl) #IMPLIED -- I18N text direction --">
+
+ <!--
+ 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, its appropriate to treat this as frame=border for backwards
+ compatibility with deployed browsers.
+ -->
+
+ <!ENTITY % Frame "(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 % Rules "(none | groups | rows | cols | all)">
+
+ <!-- horizontal placement of table relative to window -->
+ <!ENTITY % Where "(left|center|right)">
+
+ <!-- horizontal alignment attributes for cell contents -->
+ <!ENTITY % cell.halign
+ "align (left|center|right|justify|char) #IMPLIED
+ char CDATA #IMPLIED -- alignment char, e.g. char=':' --
+ charoff CDATA #IMPLIED -- offset for alignment char --"
+ >
+
+ <!-- vertical alignment attributes for cell contents -->
+ <!ENTITY % cell.valign
+ "valign (top|middle|bottom|baseline) #IMPLIED"
+ >
+
+ <!ELEMENT table - - (caption?, (col*|colgroup*), thead?, tfoot?, tbody+)>
+ <!ELEMENT caption - - (%text;)+>
+ <!ELEMENT thead - O (tr+)>
+ <!ELEMENT tfoot - O (tr+)>
+ <!ELEMENT tbody O O (tr+)>
+ <!ELEMENT colgroup - O (col*)>
+ <!ELEMENT col - O EMPTY>
+ <!ELEMENT tr - - (th|td)+>
+
+<![ %HTML.Recommended [
+ <!ELEMENT (th|td) - - (%body.content
+ | #PCDATA | A | BR | %phrase | %font)>
+]]>
+
+<![ %HTML.Deprecated [
+ <!ELEMENT (th|td) - - (%body.content)>
+]]>
+
+ <!ATTLIST table -- table element --
+ %attrs; -- id, lang, dir and class --
+ align %Where; #IMPLIED -- table position relative to window --
+ width CDATA #IMPLIED -- table width relative to window --
+ cols NUMBER #IMPLIED -- used for immediate display mode --
+ border CDATA #IMPLIED -- controls frame width around table --
+ frame %Frame; #IMPLIED -- which parts of table frame to include --
+ rules %Rules; #IMPLIED -- rulings between rows and cols --
+ cellspacing CDATA #IMPLIED -- spacing between cells --
+ cellpadding CDATA #IMPLIED -- spacing within cells --
+ >
+
+ <!-- ALIGN is used here for compatibility with deployed browsers -->
+ <!ENTITY % Caption "(top|bottom|left|right)">
+
+ <!ATTLIST caption -- table caption --
+ %attrs; -- id, lang, dir and class --
+ align %Caption; #IMPLIED -- relative to table --
+ >
+
+ <!--
+ COLGROUP groups a set of COL elements. It allows you to group
+ several columns together.
+ -->
+ <!ATTLIST colgroup
+ %attrs; -- id, lang, dir and class --
+ span NUMBER 1 -- default number of columns in group --
+ width CDATA #IMPLIED -- default width for enclosed COLs --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
+
+ <!--
+ COL elements define the alignment properties for cells in a given
+ column or spanned 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
+ -->
+
+ <!ATTLIST col -- column groups and properties --
+ %attrs; -- id, lang, dir and class --
+ span NUMBER 1 -- number of columns spanned by group --
+ width CDATA #IMPLIED -- column width specification --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
+
+ <!--
+ Use THEAD to duplicate headers when breaking table
+ across page boundaries, or for static headers when
+ body sections are rendered in scrolling panel.
+
+ Use TFOOT to duplicate footers when breaking table
+ across page boundaries, or for static footers when
+ body 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; -- id, lang, dir and class --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
+
+ <!ATTLIST tr -- table row --
+ %attrs; -- id, lang, dir and class --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
+
+ <!ATTLIST (th|td) -- header or data cell --
+ %attrs; -- id, lang, dir and class --
+ axis CDATA #IMPLIED -- defaults to cell content --
+ axes CDATA #IMPLIED -- list of axis names --
+ nowrap (nowrap) #IMPLIED -- suppress word wrap --
+ rowspan NUMBER 1 -- number of rows spanned by cell --
+ colspan NUMBER 1 -- number of cols spanned by cell --
+ %cell.halign; -- horizontal alignment in cells --
+ %cell.valign; -- vertical alignment in cells --
+ >
diff --git a/htdocs/sgml-lib/oreilly-html-relaxed.dtd b/htdocs/sgml-lib/oreilly-html-relaxed.dtd
new file mode 100644
index 0000000..1586524
--- /dev/null
+++ b/htdocs/sgml-lib/oreilly-html-relaxed.dtd
@@ -0,0 +1,249 @@
+<!-- ======================================================================
+ oreilly-html.dtd
+
+ The O'Reilly HTML Extended DTD is an extension of the
+ "recommended" interpretation of the HTML 2.0 DTD as defined in
+ RFC 1866. The extensions add the following popular features:
+
+ + Tables
+
+ The table model from the now defunct HTML 3.0 DTD has been
+ used with the following modifications: the content model of
+ <TD> has been extended to include text (non-block) elements
+ and the type of the BORDER attribute has been changed to
+ NUMBER in order to support changes to the border width.
+
+ Note: In SGML, the validity of <TABLE BORDER> and
+ <TABLE BORDER=value> are mutually exclusive. In order to support
+ <TABLE BORDER=value> in this DTD, it is necessary to make
+ <TABLE BORDER> invalid. This makes the O'Reilly HTML
+ Extended DTD backwards-incompatible with HTML 2.0.
+
+
+ + Modification of browser background and colors through attributes
+ on the <BODY> element.
+ + Support for WIDTH and ALIGN attributes on HR.
+ + Support for ALIGN=left and ALIGN=right on IMG.
+ + Support for CLEAR attribute on BR.
+ + Support for an ALIGN attribute on P.
+ + Support for an ALIGN attribute on headings.
+ + Support for the <FONT> element.
+ + Support for the <CENTER> element.
+ + Support for the additional entities: &copy; and &nbsp;.
+
+ We use the following DOCTYPE to identify this DTD:
+
+ <!DOCTYPE HTML PUBLIC "-//O'Reilly and Associates//DTD HTML Extended 1.0//EN">
+
+ In addition, four external entities (files) are referenced by
+ this DTD:
+
+ 1. PUBLIC "-//O'Reilly and Associates//DTD HTML 2.0//EN"
+
+ The HTML DTD from RFC 1866 with a few slight modifications.
+
+ 2. PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML"
+
+ The ISO Latin1 entities (referenced by the RFC 1866 DTD).
+
+ 3. PUBLIC "-//O'Reilly and Associates//ELEMENTS Table Fragment 1.0//EN"
+
+ The table elements, extracted from the now defunct HTML 3.0 DTD,
+ with the modifications noted above.
+
+ 4. PUBLIC "-//O'Reilly and Associates//ENTITIES Additional HTML 1.0//EN"
+
+ Additional entity definitions.
+
+ An appropriate SGML Open catalog file for this DTD is:
+
+ PUBLIC "-//O'Reilly and Associates//DTD HTML 2.0//EN"
+ /local/path/on/your/system/to/oreilly-rfc1866.dtd
+
+ PUBLIC "-//O'Reilly and Associates//DTD HTML Extended 1.0//EN"
+ /local/path/on/your/system/to/oreilly-html.dtd
+
+ PUBLIC "-//O'Reilly and Associates//ELEMENTS Table Fragment 1.0//EN"
+ /local/path/on/your/system/to/oreilly-table.elements
+
+ PUBLIC "-//O'Reilly and Associates//ENTITIES Additional HTML 1.0//EN"
+ /local/path/on/your/system/to/oreilly-additional.entities
+
+ PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML"
+ /local/path/on/your/system/to/ISOlatin1
+
+ If you have questions or comments about this DTD, please send
+ them to:
+
+ Norman Walsh <norm@ora.com>
+ Technical Director, Online Publishing
+ O'Reilly & Associates, Inc.
+ 90 Sherman Street
+ Cambridge, MA 02140
+ (617) 354-5800/661-1116 FAX
+====================================================================== -->
+
+<!-- the following was added from the original by Gerald Oskoboiny, because --
+ -- I currently use this to determine which level of HTML is being used in --
+ -- my validator (although I don't know if that's the best way to do it.) --
+ -- Gerald Oskoboiny, 15 Mar 1996 -->
+<!ENTITY % HTML.Version
+ "-//OReilly and Associates//DTD HTML Extended Relaxed 1.0//EN"
+ >
+<!-- end of additions by Gerald Oskoboiny -->
+
+<!ENTITY % HTML.Recommended "IGNORE">
+
+<!-- ==================== FONT Extension ==================== -->
+<!-- -->
+
+<!ENTITY % font " TT | B | I | FONT">
+
+<!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE ">
+
+<!ENTITY % text "#PCDATA | A | IMG | BR | CENTER | %phrase | %font">
+
+<!ATTLIST FONT
+ SIZE CDATA #REQUIRED
+ >
+
+<!-- -->
+<!-- ==================== /FONT Extension =================== -->
+
+<!-- ==================== Tables Extensions ================= -->
+<!-- -->
+
+<!-- Begin by allowing TABLE in block content, modification -->
+<!-- continues below ... -->
+<!ENTITY % block.forms "BLOCKQUOTE | TABLE | FORM | ISINDEX">
+
+<!-- -->
+<!-- ==================== Attribute Extensions ============== -->
+
+<!-- Unfortunately, these modifications require changes to the
+ base DTD to comment out the otherwise conflicting attribute
+ definitions. Hence "oreilly-rfc1866.dtd" and not the
+ actually, official HTML DTD. -->
+
+<!ATTLIST HR
+ SDAPREF CDATA #FIXED "&#RE;&#RE;"
+ WIDTH CDATA #IMPLIED
+ ALIGN (left|right|center) #IMPLIED
+ >
+
+<!ATTLIST IMG
+ SRC CDATA #REQUIRED
+ ALT CDATA #IMPLIED
+ ALIGN (top|middle|bottom|left|right) #IMPLIED
+ ISMAP (ISMAP) #IMPLIED
+ HEIGHT CDATA #IMPLIED
+ WIDTH CDATA #IMPLIED
+ BORDER CDATA #IMPLIED
+ SDAPREF CDATA #FIXED "<Fig><?SDATrans Img: #AttList>#AttVal(Alt)</Fig>"
+ >
+
+<!ATTLIST BR
+ SDAPREF CDATA #FIXED "&#RE;"
+ CLEAR (CLEAR) #IMPLIED -- clear text flow around images --
+ >
+
+<!ATTLIST P
+ SDAFORM CDATA #FIXED "Para"
+ ALIGN (left|right|center) #IMPLIED
+ >
+
+<!ATTLIST H1
+ SDAFORM CDATA #FIXED "H1"
+ ALIGN (left|right|center) #IMPLIED
+ >
+<!ATTLIST H2
+ SDAFORM CDATA #FIXED "H2"
+ ALIGN (left|right|center) #IMPLIED
+ >
+<!ATTLIST H3
+ SDAFORM CDATA #FIXED "H3"
+ ALIGN (left|right|center) #IMPLIED
+ >
+<!ATTLIST H4
+ SDAFORM CDATA #FIXED "H4"
+ ALIGN (left|right|center) #IMPLIED
+ >
+<!ATTLIST H5
+ SDAFORM CDATA #FIXED "H5"
+ ALIGN (left|right|center) #IMPLIED
+ >
+<!ATTLIST H6
+ SDAFORM CDATA #FIXED "H6"
+ ALIGN (left|right|center) #IMPLIED
+ >
+
+<!-- ==================== /Attribute Extensions ============= -->
+
+<!-- ==================== BODY Extension ==================== -->
+<!-- -->
+
+<!ENTITY % URI "CDATA"
+ -- The term URI means a CDATA attribute
+ whose value is a Uniform Resource Identifier,
+ as defined by
+ "Universal Resource Identifiers" by Tim Berners-Lee
+ aka http://info.cern.ch/hypertext/WWW/Addressing/URL/URI_Overview.html
+ aka RFC 1630
+
+ Note that CDATA attributes are limited by the LITLEN
+ capacity (1024 in the current version of html.decl),
+ so that URIs in HTML have a bounded length.
+ -->
+
+<!ATTLIST BODY
+ BACKGROUND %URI; #IMPLIED
+ BGCOLOR CDATA #IMPLIED
+ TEXT CDATA #IMPLIED
+ LINK CDATA #IMPLIED
+ VLINK CDATA #IMPLIED
+ ALINK CDATA #IMPLIED
+ >
+
+<!-- -->
+<!-- ==================== /BODY Extension =================== -->
+
+<!-- ==================== IETF DTD ========================== -->
+<!-- -->
+
+<!ENTITY % IETF.HTML.DTD PUBLIC "-//O'Reilly and Associates//DTD HTML 2.0//EN">
+%IETF.HTML.DTD;
+
+<!-- ==================== /IETF DTD ========================= -->
+
+<!-- ==================== CENTER Element ==================== -->
+<!-- -->
+
+<!ELEMENT CENTER - - ((%block | %text)+)>
+
+<!-- -->
+<!-- ==================== /CENTER Element =================== -->
+
+<!-- ==================== Tables Extension ================== -->
+<!-- -->
+
+<!ENTITY % attrs -- common attributes for elements --
+ 'id ID #IMPLIED -- as target for hrefs (link ends) --
+ lang CDATA "en.us" -- ISO language, country code --'>
+
+<!ENTITY % needs -- Attributes for controlling text flow. Used in headers
+ and other elements to guarantee sufficient room --
+ 'clear CDATA #IMPLIED'>
+
+<!ENTITY % OReilly.Table.Fragment
+ PUBLIC "-//O'Reilly and Associates//ELEMENTS Table Fragment 1.0//EN">
+%OReilly.Table.Fragment;
+
+<!ENTITY % OReilly.Additional.HTML.Entities
+ PUBLIC "-//O'Reilly and Associates//ENTITIES Additional HTML 1.0//EN">
+%OReilly.Additional.HTML.Entities;
+
+<!-- -->
+<!-- ==================== /Tables Extension ================= -->
+
+<!-- EOF -->
+
diff --git a/htdocs/sgml-lib/oreilly-html.dtd b/htdocs/sgml-lib/oreilly-html.dtd
new file mode 100644
index 0000000..07e1018
--- /dev/null
+++ b/htdocs/sgml-lib/oreilly-html.dtd
@@ -0,0 +1,240 @@
+<!-- ======================================================================
+ oreilly-html.dtd
+
+ The O'Reilly HTML Extended DTD is an extension of the
+ "recommended" interpretation of the HTML 2.0 DTD as defined in
+ RFC 1866. The extensions add the following popular features:
+
+ + Tables
+
+ The table model from the now defunct HTML 3.0 DTD has been
+ used with the following modifications: the content model of
+ <TD> has been extended to include text (non-block) elements
+ and the type of the BORDER attribute has been changed to
+ NUMBER in order to support changes to the border width.
+
+ Note: In SGML, the validity of <TABLE BORDER> and
+ <TABLE BORDER=value> are mutually exclusive. In order to support
+ <TABLE BORDER=value> in this DTD, it is necessary to make
+ <TABLE BORDER> invalid. This makes the O'Reilly HTML
+ Extended DTD backwards-incompatible with HTML 2.0.
+
+
+ + Modification of browser background and colors through attributes
+ on the <BODY> element.
+ + Support for WIDTH and ALIGN attributes on HR.
+ + Support for HEIGHT, WIDTH, BORDER, ALIGN=left and ALIGN=right on IMG.
+ + Support for CLEAR attribute on BR.
+ + Support for an ALIGN attribute on P.
+ + Support for an ALIGN attribute on headings.
+ + Support for the <FONT> element.
+ + Support for the <CENTER> element.
+ + Support for the additional entities: &copy; and &nbsp;.
+
+ We use the following DOCTYPE to identify this DTD:
+
+ <!DOCTYPE HTML PUBLIC "-//O'Reilly and Associates//DTD HTML Extended 1.0//EN">
+
+ In addition, four external entities (files) are referenced by
+ this DTD:
+
+ 1. PUBLIC "-//O'Reilly and Associates//DTD HTML 2.0//EN"
+
+ The HTML DTD from RFC 1866 with a few slight modifications.
+
+ 2. PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML"
+
+ The ISO Latin1 entities (referenced by the RFC 1866 DTD).
+
+ 3. PUBLIC "-//O'Reilly and Associates//ELEMENTS Table Fragment 1.0//EN"
+
+ The table elements, extracted from the now defunct HTML 3.0 DTD,
+ with the modifications noted above.
+
+ 4. PUBLIC "-//O'Reilly and Associates//ENTITIES Additional HTML 1.0//EN"
+
+ Additional entity definitions.
+
+ An appropriate SGML Open catalog file for this DTD is:
+
+ PUBLIC "-//O'Reilly and Associates//DTD HTML 2.0//EN"
+ /local/path/on/your/system/to/oreilly-rfc1866.dtd
+
+ PUBLIC "-//O'Reilly and Associates//DTD HTML Extended 1.0//EN"
+ /local/path/on/your/system/to/oreilly-html.dtd
+
+ PUBLIC "-//O'Reilly and Associates//ELEMENTS Table Fragment 1.0//EN"
+ /local/path/on/your/system/to/oreilly-table.elements
+
+ PUBLIC "-//O'Reilly and Associates//ENTITIES Additional HTML 1.0//EN"
+ /local/path/on/your/system/to/oreilly-additional.entities
+
+ PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML"
+ /local/path/on/your/system/to/ISOlatin1
+
+ If you have questions or comments about this DTD, please send
+ them to:
+
+ Norman Walsh <norm@ora.com>
+ Technical Director, Online Publishing
+ O'Reilly & Associates, Inc.
+ 90 Sherman Street
+ Cambridge, MA 02140
+ (617) 354-5800/661-1116 FAX
+====================================================================== -->
+
+<!ENTITY % HTML.Recommended "INCLUDE">
+
+<!-- ==================== FONT Extension ==================== -->
+<!-- -->
+
+<!ENTITY % font " TT | B | I | FONT">
+
+<!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE ">
+
+<!ENTITY % text "#PCDATA | A | IMG | BR | CENTER | %phrase | %font">
+
+<!ATTLIST FONT
+ SIZE CDATA #REQUIRED
+ >
+
+<!-- -->
+<!-- ==================== /FONT Extension =================== -->
+
+<!-- ==================== Tables Extensions ================= -->
+<!-- -->
+
+<!-- Begin by allowing TABLE in block content, modification -->
+<!-- continues below ... -->
+<!ENTITY % block.forms "BLOCKQUOTE | TABLE | FORM | ISINDEX">
+
+<!-- -->
+<!-- ==================== Attribute Extensions ============== -->
+
+<!-- Unfortunately, these modifications require changes to the
+ base DTD to comment out the otherwise conflicting attribute
+ definitions. Hence "oreilly-rfc1866.dtd" and not the
+ actually, official HTML DTD. -->
+
+<!ATTLIST HR
+ SDAPREF CDATA #FIXED "&#RE;&#RE;"
+ WIDTH CDATA #IMPLIED
+ ALIGN (left|right|center) #IMPLIED
+ >
+
+<!ATTLIST IMG
+ SRC CDATA #REQUIRED
+ ALT CDATA #IMPLIED
+ ALIGN (top|middle|bottom|left|right) #IMPLIED
+ ISMAP (ISMAP) #IMPLIED
+ HEIGHT CDATA #IMPLIED
+ WIDTH CDATA #IMPLIED
+ BORDER CDATA #IMPLIED
+ SDAPREF CDATA #FIXED "<Fig><?SDATrans Img: #AttList>#AttVal(Alt)</Fig>"
+ >
+
+<!ATTLIST BR
+ SDAPREF CDATA #FIXED "&#RE;"
+ CLEAR (CLEAR) #IMPLIED -- clear text flow around images --
+ >
+
+<!ATTLIST P
+ SDAFORM CDATA #FIXED "Para"
+ ALIGN (left|right|center) #IMPLIED
+ >
+
+<!ATTLIST H1
+ SDAFORM CDATA #FIXED "H1"
+ ALIGN (left|right|center) #IMPLIED
+ >
+<!ATTLIST H2
+ SDAFORM CDATA #FIXED "H2"
+ ALIGN (left|right|center) #IMPLIED
+ >
+<!ATTLIST H3
+ SDAFORM CDATA #FIXED "H3"
+ ALIGN (left|right|center) #IMPLIED
+ >
+<!ATTLIST H4
+ SDAFORM CDATA #FIXED "H4"
+ ALIGN (left|right|center) #IMPLIED
+ >
+<!ATTLIST H5
+ SDAFORM CDATA #FIXED "H5"
+ ALIGN (left|right|center) #IMPLIED
+ >
+<!ATTLIST H6
+ SDAFORM CDATA #FIXED "H6"
+ ALIGN (left|right|center) #IMPLIED
+ >
+
+<!-- ==================== /Attribute Extensions ============= -->
+
+<!-- ==================== BODY Extension ==================== -->
+<!-- -->
+
+<!ENTITY % URI "CDATA"
+ -- The term URI means a CDATA attribute
+ whose value is a Uniform Resource Identifier,
+ as defined by
+ "Universal Resource Identifiers" by Tim Berners-Lee
+ aka http://info.cern.ch/hypertext/WWW/Addressing/URL/URI_Overview.html
+ aka RFC 1630
+
+ Note that CDATA attributes are limited by the LITLEN
+ capacity (1024 in the current version of html.decl),
+ so that URIs in HTML have a bounded length.
+ -->
+
+<!ATTLIST BODY
+ BACKGROUND %URI; #IMPLIED
+ BGCOLOR CDATA #IMPLIED
+ TEXT CDATA #IMPLIED
+ LINK CDATA #IMPLIED
+ VLINK CDATA #IMPLIED
+ ALINK CDATA #IMPLIED
+ >
+
+<!-- -->
+<!-- ==================== /BODY Extension =================== -->
+
+<!-- ==================== IETF DTD ========================== -->
+<!-- -->
+
+<!ENTITY % IETF.HTML.DTD PUBLIC "-//O'Reilly and Associates//DTD HTML 2.0//EN">
+%IETF.HTML.DTD;
+
+<!-- ==================== /IETF DTD ========================= -->
+
+<!-- ==================== CENTER Element ==================== -->
+<!-- -->
+
+<!ELEMENT CENTER - - ((%block | %text)+)>
+
+<!-- -->
+<!-- ==================== /CENTER Element =================== -->
+
+<!-- ==================== Tables Extension ================== -->
+<!-- -->
+
+<!ENTITY % attrs -- common attributes for elements --
+ 'id ID #IMPLIED -- as target for hrefs (link ends) --
+ lang CDATA "en.us" -- ISO language, country code --'>
+
+<!ENTITY % needs -- Attributes for controlling text flow. Used in headers
+ and other elements to guarantee sufficient room --
+ 'clear CDATA #IMPLIED'>
+
+<!ENTITY % OReilly.Table.Fragment
+ PUBLIC "-//O'Reilly and Associates//ELEMENTS Table Fragment 1.0//EN">
+%OReilly.Table.Fragment;
+
+<!ENTITY % OReilly.Additional.HTML.Entities
+ PUBLIC "-//O'Reilly and Associates//ENTITIES Additional HTML 1.0//EN">
+%OReilly.Additional.HTML.Entities;
+
+<!-- -->
+<!-- ==================== /Tables Extension ================= -->
+
+<!-- EOF -->
+
diff --git a/htdocs/sgml-lib/oreilly-rfc1866.dtd b/htdocs/sgml-lib/oreilly-rfc1866.dtd
new file mode 100644
index 0000000..f3c4242
--- /dev/null
+++ b/htdocs/sgml-lib/oreilly-rfc1866.dtd
@@ -0,0 +1,622 @@
+<!-- html.dtd
+
+ Document Type Definition for the HyperText Markup Language
+ (HTML DTD)
+
+ $Id: oreilly-rfc1866.dtd,v 1.1.1.1 1998-07-25 00:00:22 gerald Exp $
+
+ Author: Daniel W. Connolly <connolly@w3.org>
+ See Also: html.decl, html-1.dtd
+ http://www.w3.org/hypertext/WWW/MarkUp/MarkUp.html
+-->
+
+<!-- NB: A few small modifications by O'Reilly: comment out the ATTLIST
+ for HR, IMG, BR, P, and H1 to H6 to avoid duplicate ATTLIST errors
+ in our DTD.
+-->
+
+<!ENTITY % HTML.Version
+-- the following was changed from the original by Gerald Oskoboiny, because --
+-- I currently use this to determine which level of HTML is being used in my --
+-- validator (although I don't know if that's the best way to do it.) --
+-- Gerald Oskoboiny, 15 Mar 1996 --
+ "-//OReilly and Associates//DTD HTML Extended 1.0//EN"
+-- "-//IETF//DTD HTML 2.0//EN" --
+-- end of changes by Gerald Oskoboiny --
+
+ -- Typical usage:
+
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+ <html>
+ ...
+ </html>
+ --
+ >
+
+
+<!--============ Feature Test Entities ========================-->
+
+<!ENTITY % HTML.Recommended "IGNORE"
+ -- Certain features of the language are necessary for
+ compatibility with widespread usage, but they may
+ compromise the structural integrity of a document.
+ This feature test entity enables a more prescriptive
+ document type definition that eliminates
+ those features.
+ -->
+
+<![ %HTML.Recommended [
+ <!ENTITY % HTML.Deprecated "IGNORE">
+]]>
+
+<!ENTITY % HTML.Deprecated "INCLUDE"
+ -- Certain features of the language are necessary for
+ compatibility with earlier versions of the specification,
+ but they tend to be used and implemented inconsistently,
+ and their use is deprecated. This feature test entity
+ enables a document type definition that eliminates
+ these features.
+ -->
+
+<!ENTITY % HTML.Highlighting "INCLUDE"
+ -- Use this feature test entity to validate that a
+ document uses no highlighting tags, which may be
+ ignored on minimal implementations.
+ -->
+
+<!ENTITY % HTML.Forms "INCLUDE"
+ -- Use this feature test entity to validate that a document
+ contains no forms, which may not be supported in minimal
+ implementations
+ -->
+
+<!--============== Imported Names ==============================-->
+
+<!ENTITY % Content-Type "CDATA"
+ -- meaning an internet media type
+ (aka MIME content type, as per RFC1521)
+ -->
+
+<!ENTITY % HTTP-Method "GET | POST"
+ -- as per HTTP specification, in progress
+ -->
+
+<!--========= DTD "Macros" =====================-->
+
+<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
+
+<!ENTITY % list " UL | OL | DIR | MENU " >
+
+
+<!--======= Character mnemonic entities =================-->
+
+<!ENTITY % ISOlat1 PUBLIC
+ "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML">
+%ISOlat1;
+
+<!ENTITY amp CDATA "&#38;" -- ampersand -->
+<!ENTITY gt CDATA "&#62;" -- greater than -->
+<!ENTITY lt CDATA "&#60;" -- less than -->
+<!ENTITY quot CDATA "&#34;" -- double quote -->
+
+
+<!--========= SGML Document Access (SDA) Parameter Entities =====-->
+
+<!-- HTML 2.0 contains SGML Document Access (SDA) fixed attributes
+in support of easy transformation to the International Committee
+for Accessible Document Design (ICADD) DTD
+ "-//EC-USA-CDA/ICADD//DTD ICADD22//EN".
+ICADD applications are designed to support usable access to
+structured information by print-impaired individuals through
+Braille, large print and voice synthesis. For more information on
+SDA & ICADD:
+ - ISO 12083:1993, Annex A.8, Facilities for Braille,
+ large print and computer voice
+ - ICADD ListServ
+ <ICADD%ASUACAD.BITNET@ARIZVM1.ccit.arizona.edu>
+ - Usenet news group bit.listserv.easi
+ - Recording for the Blind, +1 800 221 4792
+-->
+
+<!ENTITY % SDAFORM "SDAFORM CDATA #FIXED"
+ -- one to one mapping -->
+<!ENTITY % SDARULE "SDARULE CDATA #FIXED"
+ -- context-sensitive mapping -->
+<!ENTITY % SDAPREF "SDAPREF CDATA #FIXED"
+ -- generated text prefix -->
+<!ENTITY % SDASUFF "SDASUFF CDATA #FIXED"
+ -- generated text suffix -->
+<!ENTITY % SDASUSP "SDASUSP NAME #FIXED"
+ -- suspend transform process -->
+
+
+<!--========== Text Markup =====================-->
+
+<![ %HTML.Highlighting [
+
+<!ENTITY % font " TT | B | I ">
+
+<!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE ">
+
+<!ENTITY % text "#PCDATA | A | IMG | BR | %phrase | %font">
+
+<!ELEMENT (%font;|%phrase) - - (%text)*>
+<!ATTLIST ( TT | CODE | SAMP | KBD | VAR )
+ %SDAFORM; "Lit"
+ >
+<!ATTLIST ( B | STRONG )
+ %SDAFORM; "B"
+ >
+<!ATTLIST ( I | EM | CITE )
+ %SDAFORM; "It"
+ >
+
+<!-- <TT> Typewriter text -->
+<!-- <B> Bold text -->
+<!-- <I> Italic text -->
+
+<!-- <EM> Emphasized phrase -->
+<!-- <STRONG> Strong emphasis -->
+<!-- <CODE> Source code phrase -->
+<!-- <SAMP> Sample text or characters -->
+<!-- <KBD> Keyboard phrase, e.g. user input -->
+<!-- <VAR> Variable phrase or substitutable -->
+<!-- <CITE> Name or title of cited work -->
+
+<!ENTITY % pre.content "#PCDATA | A | HR | BR | %font | %phrase">
+
+]]>
+
+<!ENTITY % text "#PCDATA | A | IMG | BR">
+
+<!ELEMENT BR - O EMPTY>
+<!-- O'Reilly modification: avoid duplicate ATTLIST for IMG...
+<!ATTLIST BR
+ %SDAPREF; "&#RE;"
+ >
+... O'Reilly modification ends here -->
+
+<!-- <BR> Line break -->
+
+
+<!--========= Link Markup ======================-->
+
+<!ENTITY % linkType "NAMES">
+
+<!ENTITY % linkExtraAttributes
+ "REL %linkType #IMPLIED
+ REV %linkType #IMPLIED
+ URN CDATA #IMPLIED
+ TITLE CDATA #IMPLIED
+ METHODS NAMES #IMPLIED
+ ">
+
+<![ %HTML.Recommended [
+ <!ENTITY % A.content "(%text)*"
+ -- <H1><a name="xxx">Heading</a></H1>
+ is preferred to
+ <a name="xxx"><H1>Heading</H1></a>
+ -->
+]]>
+
+<!ENTITY % A.content "(%heading|%text)*">
+
+<!ELEMENT A - - %A.content -(A)>
+<!ATTLIST A
+ HREF CDATA #IMPLIED
+ NAME CDATA #IMPLIED
+ %linkExtraAttributes;
+ %SDAPREF; "<Anchor: #AttList>"
+ >
+<!-- <A> Anchor; source/destination of link -->
+<!-- <A NAME="..."> Name of this anchor -->
+<!-- <A HREF="..."> Address of link destination -->
+<!-- <A URN="..."> Permanent address of destination -->
+<!-- <A REL=...> Relationship to destination -->
+<!-- <A REV=...> Relationship of destination to this -->
+<!-- <A TITLE="..."> Title of destination (advisory) -->
+<!-- <A METHODS="..."> Operations on destination (advisory) -->
+
+
+<!--========== Images ==========================-->
+
+<!ELEMENT IMG - O EMPTY>
+
+<!-- O'Reilly modification: avoid duplicate ATTLIST for IMG...
+<!ATTLIST IMG
+ SRC CDATA #REQUIRED
+ ALT CDATA #IMPLIED
+ ALIGN (top|middle|bottom) #IMPLIED
+ ISMAP (ISMAP) #IMPLIED
+ %SDAPREF; "<Fig><?SDATrans Img: #AttList>#AttVal(Alt)</Fig>"
+ >
+... O'Reilly modification ends here -->
+
+<!-- <IMG> Image; icon, glyph or illustration -->
+<!-- <IMG SRC="..."> Address of image object -->
+<!-- <IMG ALT="..."> Textual alternative -->
+<!-- <IMG ALIGN=...> Position relative to text -->
+<!-- <IMG ISMAP> Each pixel can be a link -->
+
+<!--========== Paragraphs=======================-->
+
+<!ELEMENT P - O (%text)*>
+<!-- O'Reilly modification: avoid duplicate ATTLIST for P...
+<!ATTLIST P
+ %SDAFORM; "Para"
+ >
+... O'Reilly modification ends here -->
+
+<!-- <P> Paragraph -->
+
+
+<!--========== Headings, Titles, Sections ===============-->
+
+<!ELEMENT HR - O EMPTY>
+<!-- O'Reilly modification: avoid duplicate ATTLIST for HR...
+<!ATTLIST HR
+ %SDAPREF; "&#RE;&#RE;"
+ >
+... O'Reilly modification ends here -->
+
+<!-- <HR> Horizontal rule -->
+
+<!ELEMENT ( %heading ) - - (%text;)*>
+<!-- O'Reilly modification: avoid duplicate ATTLIST for H1..H6...
+<!ATTLIST H1
+ %SDAFORM; "H1"
+ >
+<!ATTLIST H2
+ %SDAFORM; "H2"
+ >
+<!ATTLIST H3
+ %SDAFORM; "H3"
+ >
+<!ATTLIST H4
+ %SDAFORM; "H4"
+ >
+<!ATTLIST H5
+ %SDAFORM; "H5"
+ >
+<!ATTLIST H6
+ %SDAFORM; "H6"
+ >
+... O'Reilly modification ends here -->
+
+<!-- <H1> Heading, level 1 -->
+<!-- <H2> Heading, level 2 -->
+<!-- <H3> Heading, level 3 -->
+<!-- <H4> Heading, level 4 -->
+<!-- <H5> Heading, level 5 -->
+<!-- <H6> Heading, level 6 -->
+
+
+<!--========== Text Flows ======================-->
+
+<![ %HTML.Forms [
+ <!ENTITY % block.forms "BLOCKQUOTE | FORM | ISINDEX">
+]]>
+
+<!ENTITY % block.forms "BLOCKQUOTE">
+
+<![ %HTML.Deprecated [
+ <!ENTITY % preformatted "PRE | XMP | LISTING">
+]]>
+
+<!ENTITY % preformatted "PRE">
+
+<!ENTITY % block "P | %list | DL
+ | %preformatted
+ | %block.forms">
+
+<!ENTITY % flow "(%text|%block)*">
+
+<!ENTITY % pre.content "#PCDATA | A | HR | BR">
+<!ELEMENT PRE - - (%pre.content)*>
+<!ATTLIST PRE
+ WIDTH NUMBER #implied
+ %SDAFORM; "Lit"
+ >
+
+<!-- <PRE> Preformatted text -->
+<!-- <PRE WIDTH=...> Maximum characters per line -->
+
+<![ %HTML.Deprecated [
+
+<!ENTITY % literal "CDATA"
+ -- historical, non-conforming parsing mode where
+ the only markup signal is the end tag
+ in full
+ -->
+
+<!ELEMENT (XMP|LISTING) - - %literal>
+<!ATTLIST XMP
+ %SDAFORM; "Lit"
+ %SDAPREF; "Example:&#RE;"
+ >
+<!ATTLIST LISTING
+ %SDAFORM; "Lit"
+ %SDAPREF; "Listing:&#RE;"
+ >
+
+<!-- <XMP> Example section -->
+<!-- <LISTING> Computer listing -->
+
+<!ELEMENT PLAINTEXT - O %literal>
+<!-- <PLAINTEXT> Plain text passage -->
+
+<!ATTLIST PLAINTEXT
+ %SDAFORM; "Lit"
+ >
+]]>
+
+<!--========== Lists ==================-->
+
+<!ELEMENT DL - - (DT | DD)+>
+<!ATTLIST DL
+ COMPACT (COMPACT) #IMPLIED
+ %SDAFORM; "List"
+ %SDAPREF; "Definition List:"
+ >
+
+<!ELEMENT DT - O (%text)*>
+<!ATTLIST DT
+ %SDAFORM; "Term"
+ >
+
+<!ELEMENT DD - O %flow>
+<!ATTLIST DD
+ %SDAFORM; "LItem"
+ >
+
+<!-- <DL> Definition list, or glossary -->
+<!-- <DL COMPACT> Compact style list -->
+<!-- <DT> Term in definition list -->
+<!-- <DD> Definition of term -->
+
+<!ELEMENT (OL|UL) - - (LI)+>
+<!ATTLIST OL
+ COMPACT (COMPACT) #IMPLIED
+ %SDAFORM; "List"
+ >
+<!ATTLIST UL
+ COMPACT (COMPACT) #IMPLIED
+ %SDAFORM; "List"
+ >
+<!-- <UL> Unordered list -->
+<!-- <UL COMPACT> Compact list style -->
+<!-- <OL> Ordered, or numbered list -->
+<!-- <OL COMPACT> Compact list style -->
+
+
+<!ELEMENT (DIR|MENU) - - (LI)+ -(%block)>
+<!ATTLIST DIR
+ COMPACT (COMPACT) #IMPLIED
+ %SDAFORM; "List"
+ %SDAPREF; "<LHead>Directory</LHead>"
+ >
+
+<!ATTLIST MENU
+ COMPACT (COMPACT) #IMPLIED
+ %SDAFORM; "List"
+ %SDAPREF; "<LHead>Menu</LHead>"
+ >
+
+<!-- <DIR> Directory list -->
+<!-- <DIR COMPACT> Compact list style -->
+<!-- <MENU> Menu list -->
+<!-- <MENU COMPACT> Compact list style -->
+
+<!ELEMENT LI - O %flow>
+<!ATTLIST LI
+ %SDAFORM; "LItem"
+ >
+
+<!-- <LI> List item -->
+
+<!--========== Document Body ===================-->
+
+<![ %HTML.Recommended [
+ <!ENTITY % body.content "(%heading|%block|HR|ADDRESS|IMG)*"
+ -- <h1>Heading</h1>
+ <p>Text ...
+ is preferred to
+ <h1>Heading</h1>
+ Text ...
+ -->
+]]>
+
+<!ENTITY % body.content "(%heading | %text | %block |
+ HR | ADDRESS)*">
+
+<!ELEMENT BODY O O %body.content>
+
+<!-- <BODY> Document body -->
+
+<!ELEMENT BLOCKQUOTE - - %body.content>
+<!ATTLIST BLOCKQUOTE
+ %SDAFORM; "BQ"
+ >
+
+<!-- <BLOCKQUOTE> Quoted passage -->
+
+<!ELEMENT ADDRESS - - (%text|P)*>
+<!ATTLIST ADDRESS
+ %SDAFORM; "Lit"
+ %SDAPREF; "Address:&#RE;"
+ >
+
+<!-- <ADDRESS> Address, signature, or byline -->
+
+
+<!--======= Forms ====================-->
+
+<![ %HTML.Forms [
+
+<!ELEMENT FORM - - %body.content -(FORM) +(INPUT|SELECT|TEXTAREA)>
+<!ATTLIST FORM
+ ACTION CDATA #IMPLIED
+ METHOD (%HTTP-Method) GET
+ ENCTYPE %Content-Type; "application/x-www-form-urlencoded"
+ %SDAPREF; "<Para>Form:</Para>"
+ %SDASUFF; "<Para>Form End.</Para>"
+ >
+
+<!-- <FORM> Fill-out or data-entry form -->
+<!-- <FORM ACTION="..."> Address for completed form -->
+<!-- <FORM METHOD=...> Method of submitting form -->
+<!-- <FORM ENCTYPE="..."> Representation of form data -->
+
+<!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX |
+ RADIO | SUBMIT | RESET |
+ IMAGE | HIDDEN )">
+<!ELEMENT INPUT - O EMPTY>
+<!ATTLIST INPUT
+ TYPE %InputType TEXT
+ NAME CDATA #IMPLIED
+ VALUE CDATA #IMPLIED
+ SRC CDATA #IMPLIED
+ CHECKED (CHECKED) #IMPLIED
+ SIZE CDATA #IMPLIED
+ MAXLENGTH NUMBER #IMPLIED
+ ALIGN (top|middle|bottom) #IMPLIED
+ %SDAPREF; "Input: "
+ >
+
+<!-- <INPUT> Form input datum -->
+<!-- <INPUT TYPE=...> Type of input interaction -->
+<!-- <INPUT NAME=...> Name of form datum -->
+<!-- <INPUT VALUE="..."> Default/initial/selected value -->
+<!-- <INPUT SRC="..."> Address of image -->
+<!-- <INPUT CHECKED> Initial state is "on" -->
+<!-- <INPUT SIZE=...> Field size hint -->
+<!-- <INPUT MAXLENGTH=...> Data length maximum -->
+<!-- <INPUT ALIGN=...> Image alignment -->
+
+<!ELEMENT SELECT - - (OPTION+) -(INPUT|SELECT|TEXTAREA)>
+<!ATTLIST SELECT
+ NAME CDATA #REQUIRED
+ SIZE NUMBER #IMPLIED
+ MULTIPLE (MULTIPLE) #IMPLIED
+ %SDAFORM; "List"
+ %SDAPREF;
+ "<LHead>Select #AttVal(Multiple)</LHead>"
+ >
+
+<!-- <SELECT> Selection of option(s) -->
+<!-- <SELECT NAME=...> Name of form datum -->
+<!-- <SELECT SIZE=...> Options displayed at a time -->
+<!-- <SELECT MULTIPLE> Multiple selections allowed -->
+
+<!ELEMENT OPTION - O (#PCDATA)*>
+<!ATTLIST OPTION
+ SELECTED (SELECTED) #IMPLIED
+ VALUE CDATA #IMPLIED
+ %SDAFORM; "LItem"
+ %SDAPREF;
+ "Option: #AttVal(Value) #AttVal(Selected)"
+ >
+
+<!-- <OPTION> A selection option -->
+<!-- <OPTION SELECTED> Initial state -->
+<!-- <OPTION VALUE="..."> Form datum value for this option-->
+
+<!ELEMENT TEXTAREA - - (#PCDATA)* -(INPUT|SELECT|TEXTAREA)>
+<!ATTLIST TEXTAREA
+ NAME CDATA #REQUIRED
+ ROWS NUMBER #REQUIRED
+ COLS NUMBER #REQUIRED
+ %SDAFORM; "Para"
+ %SDAPREF; "Input Text -- #AttVal(Name): "
+ >
+
+<!-- <TEXTAREA> An area for text input -->
+<!-- <TEXTAREA NAME=...> Name of form datum -->
+<!-- <TEXTAREA ROWS=...> Height of area -->
+<!-- <TEXTAREA COLS=...> Width of area -->
+
+]]>
+
+
+<!--======= Document Head ======================-->
+
+<![ %HTML.Recommended [
+ <!ENTITY % head.extra "">
+]]>
+<!ENTITY % head.extra "& NEXTID?">
+
+<!ENTITY % head.content "TITLE & ISINDEX? & BASE? %head.extra">
+
+<!ELEMENT HEAD O O (%head.content) +(META|LINK)>
+
+<!-- <HEAD> Document head -->
+
+<!ELEMENT TITLE - - (#PCDATA)* -(META|LINK)>
+<!ATTLIST TITLE
+ %SDAFORM; "Ti" >
+
+<!-- <TITLE> Title of document -->
+
+<!ELEMENT LINK - O EMPTY>
+<!ATTLIST LINK
+ HREF CDATA #REQUIRED
+ %linkExtraAttributes;
+ %SDAPREF; "Linked to : #AttVal (TITLE) (URN) (HREF)>" >
+
+<!-- <LINK> Link from this document -->
+<!-- <LINK HREF="..."> Address of link destination -->
+<!-- <LINK URN="..."> Lasting name of destination -->
+<!-- <LINK REL=...> Relationship to destination -->
+<!-- <LINK REV=...> Relationship of destination to this -->
+<!-- <LINK TITLE="..."> Title of destination (advisory) -->
+<!-- <LINK METHODS="..."> Operations allowed (advisory) -->
+
+<!ELEMENT ISINDEX - O EMPTY>
+<!ATTLIST ISINDEX
+ %SDAPREF;
+ "<Para>[Document is indexed/searchable.]</Para>">
+
+<!-- <ISINDEX> Document is a searchable index -->
+
+<!ELEMENT BASE - O EMPTY>
+<!ATTLIST BASE
+ HREF CDATA #REQUIRED >
+
+<!-- <BASE> Base context document -->
+<!-- <BASE HREF="..."> Address for this document -->
+
+<!ELEMENT NEXTID - O EMPTY>
+<!ATTLIST NEXTID
+ N CDATA #REQUIRED >
+
+<!-- <NEXTID> Next ID to use for link name -->
+<!-- <NEXTID N=...> Next ID to use for link name -->
+
+<!ELEMENT META - O EMPTY>
+<!ATTLIST META
+ HTTP-EQUIV NAME #IMPLIED
+ NAME NAME #IMPLIED
+ CONTENT CDATA #REQUIRED >
+
+<!-- <META> Generic Meta-information -->
+<!-- <META HTTP-EQUIV=...> HTTP response header name -->
+<!-- <META NAME=...> Meta-information name -->
+<!-- <META CONTENT="..."> Associated information -->
+
+<!--======= Document Structure =================-->
+
+<![ %HTML.Deprecated [
+ <!ENTITY % html.content "HEAD, BODY, PLAINTEXT?">
+]]>
+<!ENTITY % html.content "HEAD, BODY">
+
+<!ELEMENT HTML O O (%html.content)>
+<!ENTITY % version.attr "VERSION CDATA #FIXED '%HTML.Version;'">
+
+<!ATTLIST HTML
+ %version.attr;
+ %SDAFORM; "Book"
+ >
+
+<!-- <HTML> HTML Document -->
+