diff etc/sgml/html-plus.dtd @ 8:4b173ad71786 r19-15b5

Import from CVS: tag r19-15b5
author cvs
date Mon, 13 Aug 2007 08:47:35 +0200
parents 376386a54a3c
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/sgml/html-plus.dtd	Mon Aug 13 08:47:35 2007 +0200
@@ -0,0 +1,925 @@
+<!SGML  "ISO 8879:1986"
+--
+  Document Type Definition for the HyperText Markup Language Plus 
+  for use with the World Wide Web application (HTML+ DTD).
+  This DTD is designed for use with SGML authoring tools and
+  it is expected that most browsers will tolerate omissions,
+  in particular, missing <DIVn> elements and <P> start tags
+  following headers, which can easily be inferred from the context.
+
+     The HTML+ DTD which is structured as an HTML core plus a
+     number of additional modules which can be included by an
+     entity definition in a document's <!DOCTYPE> element.
+     You can include specific features in your document
+     using the DOCTYPE declaration at the start, e.g.
+
+     <!DOCTYPE htmlplus [
+        <!ENTITY % HTML.tables "INCLUDE">
+        <!ENTITY % HTML.forms "INCLUDE">
+     ]>
+
+     This spec also allows for authors to extend the DTD and
+     to define how any new elements are rendered in terms of
+     existing ones. This should be used with caution.
+
+     I would like to acknowledge the influence of the TEI DTDs
+     which proved very helpful in restructuring the DTD.
+
+     Dave Raggett 21st March 1994
+
+     Changes:
+
+     Added support for graphical menus to SELECT/OPTION.
+
+     Liberalised content model for headers to %text;
+     Added SPACES attribute to P element to preserve spaces.
+
+     Dropped the LIT element and changed the TAB element
+     over to the LaTeX model. Added NOWRAP to P element.
+     Replaced TH/TD's align=numeric with ALIGNON="." etc.
+     
+     Made anchor NAME attribute conditional on HTML.obsolete
+     Added HTML.obsolete for obsoleted HTML elements
+
+     Added SIG attribute to A and LINK for specifying
+     a digital signature to attest that a linked document
+     is unchanged.
+
+     SRC attribute added to NOTE to allow authors to override
+     the default icon chosen on the basis of the ROLE attribute.
+
+     Switched REL/REV back to CDATA to avoid trouble with duplicate
+     name or name token error. Using an explicit list of relationship
+     types would force us to drop REV.
+
+     Added top/bottom alignment attribute to CAPTION
+
+     REL and REV domains now defined by parameter entities
+
+     SRC attribute added to LINK to allow images to be used
+     in document specific toolbar
+
+     Baseline attribute added to FIG and IMG to give precise
+     control of vertical position relative to baseline.
+
+     Revised comments for <A> and <LINK> to remove references to
+     obsoleted timing attributes and to add a list of "standard"
+     relationship types.
+
+     CHANGED element now uses more meaningful attribute names.
+
+     STATE dropped in favor of INPUT with TYPE="hidden". Forms now
+     support a link to a script for client-side execution of constraints.
+
+     The element definition for DIV1..DIV6 and P no longer permit the
+     start tag to be omitted. This was regrettably forced by a
+     restriction in the SGML standard. Browsers *must* be capable of
+     inferring them when missing,in order to cope with legacy documents.
+
+     Fixed some errors in earlier version to do with start tags and
+     definitions of parameter entities. The content model for FIG has
+     been changed to use a P element for text to avoid an SGML parsing
+     problem with a line break before the caption.
+--
+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  95  32
+                255   1  UNUSED
+
+CAPACITY        SGMLREF
+                TOTALCAP        150000
+                GRPCAP          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 255
+        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
+                 NAMELEN  32
+                 TAGLVL   100
+                 LITLEN   1024
+                 GRPGTCNT 150
+                 GRPCNT   64
+
+FEATURES
+  MINIMIZE
+    DATATAG  NO
+    OMITTAG  YES
+    RANK     NO
+    SHORTTAG NO
+  LINK
+    SIMPLE   NO
+    IMPLICIT NO
+    EXPLICIT NO
+  OTHER
+    CONCUR  NO
+    SUBDOC  NO
+    FORMAL  YES
+  APPINFO NONE
+>
+
+<!DOCTYPE HTMLPLUS [
+
+<!-- DTD for HTML+ 
+Markup minimisation should be avoided, otherwise the default <!SGML>
+declaration is fine. Browsers should be forgiving of markup errors,
+while authoring tools *should* enforce compliance with the DTD.
+
+Common Attributes:
+
+id      This attribute allows authors to name elements such as headers 
+        and paragraphs as potential destinations for links. Note that 
+        links don't specify points, but rather extended objects.
+
+charset This allows authors to switch to a different char set for
+        quotations or list etc. This is particularly useful for oriental
+        languages which need two byte character codes, e.g. see RFC 1468
+        "Japanese Character Encoding for Internet Messages"
+
+ENTITY DECLARATIONS
+
+ <!ENTITY % foo "X | Y | Z"> is a macro definition for parameters and in 
+ subsequent statements, the string "%foo;" is expanded to "X | Y | Z"
+
+ Various classes of SGML text types:
+
+  CDATA  text which doesn't include markup or entity references
+  RCDATA text with entity references but no markup
+  PCDATA text occurring in a context in which markup and entity references 
+     may occur.
+-->
+
+<!-- Core HTML+ DTD omits following features -->
+<!ENTITY % HTML.math "IGNORE">
+<!ENTITY % HTML.tables "IGNORE">
+<!ENTITY % HTML.figures "IGNORE">
+<!ENTITY % HTML.emph "IGNORE">
+<!ENTITY % HTML.forms "IGNORE">
+<!ENTITY % HTML.obsolete "IGNORE">
+
+<!ENTITY % cextra "" -- for character-like elements -->
+<!ENTITY % pextra "" -- for paragraph-like elements -->
+
+<!-- %cextra; and %pextra are designed to allow document specific
+     extensions to the HTML+ DTD, e.g.
+
+      <!DOCTYPE htmlplus [
+        <!ENTITY % cextra "|PROPNAME">
+        <!ELEMENT PROPNAME - - CDATA>
+      ]>
+
+     Use the RENDER element to specify how the browser should
+     display new elements in terms of existing ones, e.g.
+
+      <RENDER tag="PROPNAME" style="I">
+-->
+
+<!ENTITY % URL "CDATA" -- a URL or URN designating a hypertext node -->
+
+<!-- Browsers should render the following types of emphasis
+     distinctly when the obvious rendering is impractical
+
+     I = italic, B = bold, U = underline, S = strikethru,
+     TT = teletype font, SUP = superscript, SUB = subscript
+     REV = reverse video for highlighting hit areas in the result of a query
+     Q = inline quote (render according to local conventions)
+-->
+
+<!ENTITY % emph1 "I|B|U|TT|CITE|EM|STRONG|KBD|VAR|DFN|CODE|SAMP">
+<!ENTITY % emph2 "S|Q|PERSON|ACRONYM|ABBREV|CMD|ARG|REMOVED|ADDED|REV">
+<!ENTITY % emph3 "SUP|SUB|CHANGED|TAB|HIDE">
+
+<![ %HTML.emph [ <!ENTITY % emph  "%emph1;|%emph2;|%emph3;"> ]]>
+<!ENTITY % emph  "%emph1;">
+
+<![ %HTML.emph [ <!ENTITY % misc1 "|RENDER|FOOTNOTE|MARGIN"> ]]>
+<!ENTITY % misc1 "">
+
+<![ %HTML.forms [ <!ENTITY % misc2 "|INPUT|TEXTAREA|SELECT"> ]]>
+<!ENTITY % misc2 "">
+
+<!ENTITY % misc "BR %misc1 %misc2; %cextra;">
+
+<![ %HTML.figures [ <!ENTITY % text "#PCDATA|A|IMG|FIG|%emph;|%misc;"> ]]>
+<!ENTITY % text "#PCDATA|A|IMG|%emph;|%misc;">
+
+<![ %HTML.emph [ <!ENTITY % paras "P|PRE|%pextra;"> ]]>
+<!ENTITY % paras "P|PRE %pextra;">
+
+<!ENTITY % lists "UL|OL|DL">
+
+<![ %HTML.emph [ <!ENTITY % block1 "NOTE|QUOTE|ABSTRACT|ADDRESS|HR"> ]]>
+<!ENTITY % block1 "ADDRESS|HR">
+
+<![ %HTML.tables [ <!ENTITY % block2 "|TABLE"> ]]>
+<!ENTITY % block2 "">
+
+<![ %HTML.forms [ <!ENTITY % block3 "|FORM"> ]]>
+<!ENTITY % block3 "">
+
+<![ %HTML.math [ <!ENTITY % block4 "|MATH"> ]]>
+<!ENTITY % block4 "">
+
+<![ %HTML.obsolete [ <!ENTITY % block5 "|MENU|DIR|BLOCKQUOTE"> ]]>
+<!ENTITY % block5 "">
+
+<!ENTITY % block "%block1; %block2; %block3; %block4; %block5;">
+
+<![ %HTML.emph [<!ENTITY % setup1 "& RENDER*"> ]]>
+<!ENTITY % setup1 "">
+
+<!ENTITY % setup "(TITLE? & ISINDEX? & BASE? & META* & LINK* %setup1;)">
+
+<!ENTITY % main "%block;|%lists;|%paras;">
+
+<!-- these entities are used to simplify element definitions -->
+
+<!ENTITY % heading "H1|H2|H3|H4|H5|H6"> 
+<!ENTITY % table "P|%heading;|%lists;">
+<!ENTITY % math "BOX|ARRAY|ROOT|%text;">
+
+<![ %HTML.obsolete [<!ENTITY % anchorname "name NMTOKEN #IMPLIED"> ]]>
+<!ENTITY % anchorname "">
+
+<!-- Browsers should as a minimum support the following types
+     of INPUT fields, in addition to TEXTAREA and SELECT:
+
+     text, checkbox, radio, submit, and reset
+
+   password, int, float, date, url can be mapped to text fields
+   while image, scribble and audio fields can be ignored
+-->
+
+<![ %HTML.forms [
+ <!ENTITY % fields "text|password|checkbox|radio|submit|reset|int|
+                        float|date|url|hidden|range|scribble|audio">
+]]>
+
+
+<!-- Core DTD includes basic Latin-1 entities -->
+<!ENTITY % ISOlat1 PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN">
+%ISOlat1;
+
+<!-- additional entities normally found in Latin-1 char sets-->
+<!ENTITY % ISOnum PUBLIC "ISO 8879-1986//ENTITIES Numeric and Special Graphic//EN">
+%ISOnum;
+
+<!-- diacritical marks normally found in Latin-1 char sets-->
+<!ENTITY % ISOdia PUBLIC "ISO 8879-1986//ENTITIES Diacritical Marks//EN">
+%ISOdia;
+
+<!-- misc. from ISO Publishing entities -->
+<!ENTITY ndash  SDATA "[ndash ]"--=en dash-->
+<!ENTITY mdash  SDATA "[ndash ]"--=em dash-->
+<!ENTITY ensp   SDATA "[ensp  ]"--=en space (1/2-em)-->
+<!ENTITY emsp   SDATA "[emsp  ]"--=em space-->
+<!ENTITY hellip SDATA "[hellip]"--=ellipsis (horizontal)-->
+<!ENTITY vellip SDATA "[vellip]"--=ellipsis (vertical)-->
+
+<!-- maths symbols when needed -->
+<![ %HTML.math [
+    <!ENTITY % ISOtech PUBLIC "ISO 8879-1986//ENTITIES General Technical//EN">
+    %ISOtech;
+
+    <!ENTITY % ISOgrk3 PUBLIC "ISO 8879-1986//ENTITIES Greek Symbols//EN">
+    %ISOgrk3;
+
+    <!ENTITY % ISOamso PUBLIC "ISO 8879-1986//ENTITIES Added Math Symbols: Ordinary//EN">
+    %ISOamso;
+
+    <!ENTITY % ISOamsr PUBLIC "ISO 8879-1986//ENTITIES Added Math Symbols: Relations//EN">
+    %ISOamsr;
+
+    <!ENTITY % ISOamsc PUBLIC "ISO 8879-1986//ENTITIES Added Math Symbols: Delimiters//EN">
+    %ISOamsc;
+
+    <!-- misc. from ISO Binary and Large operators -->
+
+    <!ENTITY thinsp SDATA "[thinsp]"--=thin space (1/6 em)-->
+    <!ENTITY coprod SDATA "[coprod]"--/coprod L: coproduct operator-->
+    <!ENTITY prod   SDATA "[prod  ]"--/prod L: product operator-->
+    <!ENTITY sum    SDATA "[sum   ]"--/sum L: summation operator-->
+]]>
+
+<!-- Basic types of elements:
+  <!ELEMENT tagname - - CONTENT> elements needing end tags
+  <!ELEMENT tagname - O CONTENT> elements with optional end tags
+  <!ELEMENT tagname - O EMPTY> elements without content or end tags
+
+The content definition is:
+       -  an entity definition as defined above
+       -  a tagname
+       -  (brackets enclosing the above)
+These may be combined with the operators:
+  A*      A occurs zero or more times
+  A+      A occurs one or more times
+  A|B     implies either A or B
+  A?      A occurs zero or one times
+  A,B     implies first A then B
+  A&B     either or both A and B (in either order A B or B A)
+-->
+
+<!ELEMENT HTMLPLUS O O (HEAD, BODY)>
+<!ATTLIST HTMLPLUS
+        version CDATA #IMPLIED -- the HTML+ version number --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+
+<!ELEMENT HEAD - O (%setup;) -- delimits document wide properties -->
+<!ELEMENT BODY - O ((%main;)*, DIV6*, DIV5*, DIV4*, DIV3*, DIV2*, DIV1*)>
+
+<!--
+  Browsers *must* tolerate missing DIVn tags, e.g. the presence of an
+  <H1> tag implies a DIV1 element enclosing it and the following text.
+  The SGML standard unfortunately doesn't permit such inferences due
+  to a decision made to simplify writing general SGML parsers.
+-->
+
+<!ELEMENT DIV1 - - (H1, (%main;)*, DIV6*, DIV5*, DIV4*, DIV3*, DIV2*)>
+<!ELEMENT DIV2 - - (H2, (%main;)*, DIV6*, DIV5*, DIV4*, DIV3*)>
+<!ELEMENT DIV3 - - (H3, (%main;)*, DIV6*, DIV5*, DIV4*)>
+<!ELEMENT DIV4 - - (H4, (%main;)*, DIV6*, DIV5*)>
+<!ELEMENT DIV5 - - (H5, (%main;)*, DIV6*)>
+<!ELEMENT DIV6 - - (H6, (%main;)*)>
+
+<!ATTLIST (DIV6|DIV5|DIV4|DIV3|DIV2|DIV1)
+        id      ID      #IMPLIED -- link destination --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+
+<!-- Document headers -->
+<!ELEMENT (%heading;) - - (%text;)+>
+<!ATTLIST (%heading;)
+        id      ID      #IMPLIED -- defines link destination --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+
+<!-- character emphasis -->
+<!ELEMENT (%emph1;) - - (%text;)+>
+<!ATTLIST (%emph1;)
+        id      ID      #IMPLIED -- link destination --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+
+<!--
+ Paragraphs which act as containers for the following text
+
+ Browsers *must* be capable of inferring missing <P>
+ start tags from the content model. Basically, if the parser
+ comes across unexpected %text; then there's a missing <P>.
+-->
+<!ELEMENT P - O (%text;)+>
+<!ATTLIST P
+        id      ID      #IMPLIED -- link destination --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese --
+        nowrap (nowrap) #IMPLIED -- disable word wrap --
+        spaces (spaces) #IMPLIED -- preserve spaces --
+        align   (left|indent|center|right|justify) left>
+
+<!ELEMENT HR - O EMPTY -- Horizontal Rule -->
+<!ELEMENT BR - O EMPTY -- forced line break -->
+
+<!ELEMENT PRE - - (%text;)+ -- preformatted fixed pitch text -->
+<!ATTLIST PRE
+        id      ID      #IMPLIED -- link destination --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+
+<!ELEMENT ADDRESS - - (P)+ -- info on author -->
+<!ATTLIST ADDRESS
+        id      ID      #IMPLIED -- link destination --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+
+<!-- Lists which can be nested -->
+<!ELEMENT OL - - (LI)+ -- ordered list -->
+<!ATTLIST OL
+        id      ID      #IMPLIED
+        charset CDATA   #IMPLIED    -- eg "ISO-2022-JP" for japanese --
+        compact (compact) #IMPLIED  -- reduced interitem spacing -->
+
+<!ELEMENT UL - - (LI)+ -- unordered list -->
+<!ATTLIST UL
+        id      ID      #IMPLIED    -- link destination --
+        charset CDATA   #IMPLIED    -- eg "ISO-2022-JP" for japanese --
+        compact (compact) #IMPLIED  -- reduced interitem spacing --
+        plain   (plain) #IMPLIED    -- suppress bullets --
+        wrap (vert|horiz|none) none -- multicolumn list wrap style -->
+
+<!-- List items for UL and OL lists
+ The icon or label overides the default rendering -->
+<!ELEMENT LI - O (DL|UL|OL|P|HR)+ -- should we add PRE? -->
+<!ATTLIST LI
+        id      ID      #IMPLIED
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese --
+        icon    %URL;   #IMPLIED -- icon for use in place of bullet --
+        label   CDATA   #IMPLIED -- when you can't show the icon -->
+
+<!-- Definition Lists (terms + definitions) -->
+<!ELEMENT DL - - (DT*,DD)+>
+<!ATTLIST DL
+        id      ID      #IMPLIED
+        charset CDATA   #IMPLIED    -- eg "ISO-2022-JP" for japanese --
+        compact (compact) #IMPLIED  -- reduced interitem spacing -->
+
+<!ELEMENT DT - O (%text;)+          -- term text -- >
+<!ELEMENT DD - O (P|UL|OL|DL|HR)+   -- definition text (should we add PRE?)-- >
+<!ATTLIST (DT|DD)
+        id      ID      #IMPLIED
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+
+<!-- Hypertext Links from points within document nodes
+
+ The HREF attribute specifies the link destination as a URL or URN.
+ In figures, the SHAPE attribute defines the extent of the link as
+ a polygonal region, and is used with the FIG element.
+
+ The PRINT attribute determines how the browser should deal with
+ links when printing this document. This makes it possible for
+ users to print a document and related subdocuments with a single
+ menu action. If PRINT="Section", then the link is followed and
+ printed as a follow-on section after the current document. If
+ PRINT="Footnote" and the linked document is sufficiently small
+ then it is included as a footnote. If PRINT="Reference" then the
+ document's URL (and title) is included in a footnote or in a list
+ of references at the end of the document.
+
+ The TITLE attribute may be used for links in which the destination
+ node doesn't define a title itself, e.g. non-html documents.
+
+ The REL attribute is used to specify how the browser interprets
+ the link when this document is being used as a hypertext path
+ REL="Path" causes the linked document to be treated as a path
+ and inserted into the current path, while REL="Node" treats
+ the linked document as a node on the current path. REL="Embed"
+ is a hint to embed the referenced node into the current document.
+
+ The SIG attribute allows authors to specify a digital signature
+ of linked documents to check that they haven't been changed.
+ It starts with a prefix denoting the algorithm used, in particular
+ SIG="md5:2l3k4j2lkj423l" denotes the MD5 signature: 2l3k4j2lkj423l
+ which is encoded using the standard MIME base64 representation
+-->
+
+<!ELEMENT A - - (#PCDATA | IMG | %emph;)*>
+<!ATTLIST A
+        id      ID      #IMPLIED -- as target of link --
+        %anchorname;             -- see HTML.obsolete --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese --
+        shape   CDATA   #IMPLIED -- list of points for shaped buttons --
+        href    %URL;   #IMPLIED -- destination node --
+        rel     CDATA   #IMPLIED -- forward relationship type --
+        rev     CDATA   #IMPLIED --  reverse relationship type --
+        print   CDATA   #IMPLIED -- reference/footnote/section --
+        title   CDATA   #IMPLIED -- when otherwise unavailable --
+        sig     CDATA   #IMPLIED -- MD5 digital signature -->
+
+<!-- Other kinds of relationships between documents
+
+ There are a set of standard RELationship types which alter the
+ browser's navigation menu:
+
+    UseIndex        searchable index
+    UseGlossary     shared glossary
+    Contents        shared contents page
+    Previous        previous document in a hypertext path
+    Next            next document in a hypertext path
+    Bookmark        named with the title attribute
+    Made            Defines who is the "maker" of this document
+    Help            provides help on this document
+    Annotation      an additional note on current document
+    Reply           a note with equal footing to current document
+    Subdocument     defines parent->child relationship
+    Parent          defines child->parent relationship
+    StyleSheet      an associated style sheet
+
+ Bookmarks allow authors to define a set of useful links
+ which are to be accessed via a menu, rather than as conventional
+ in-line hypertext links. Previous and Next links are inserted
+ by the browser when interpreting a separate document as a path.
+ See above description of REL="Node" and REL="Path" for <A>.
+
+ The FROM attribute makes it possible to specify annotation
+ links separately from the document text flow. The FROM
+ attribute specifies an ID for the source of a link, while
+ the HREF attribute specifies its destination. HTTP servers
+ can use the WWW-Link: header to "insert" such annotations
+ into documents.
+-->
+
+<!ELEMENT LINK - O EMPTY>
+<!ATTLIST LINK
+        id      ID      #IMPLIED -- to allow meta info on links --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese --
+        from    IDREF   #IMPLIED -- starting point --
+        href    %URL;  #REQUIRED -- destination node --
+        rel     CDATA   #IMPLIED -- forward relationship type --
+        rev     CDATA   #IMPLIED -- reverse relationship type --
+        src     %URL;   #IMPLIED -- an image for displaying link --
+        print   CDATA   #IMPLIED -- reference/footnote/section --
+        title   CDATA   #IMPLIED -- when otherwise unavailable --
+        seal    CDATA   #IMPLIED -- MD5 digital signature -->
+
+<!-- Document title -->
+<!ELEMENT TITLE - - (#PCDATA | %emph;)+>
+<!ATTLIST TITLE
+        id      ID      #IMPLIED -- link destination --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+
+<!-- Original document URL for resolving relative URLs  -->
+<!ELEMENT BASE - O EMPTY>
+<!ATTLIST BASE HREF %URL; #IMPLIED>
+
+<!-- Signifies the document's URL accepts queries,
+     and may be implied by HTTP header info -->
+<!ELEMENT ISINDEX - O EMPTY>
+<!ATTLIST ISINDEX href %URL; #IMPLIED -- defaults to document's URL -->
+
+<!--
+ Servers should read the document head to generate HTTP headers
+ corresponding to META elements, e.g. if the document contains:
+
+        <meta name="Expires" value="Tue, 04 Dec 1993 21:29:02 GMT">
+
+ The server should include the HTTP date format header field:
+
+        Expires: Tue, 04 Dec 1993 21:29:02 GMT
+
+ Other likely names are "Keywords", "Created", "Owner" (a name)
+ and "Reply-To" (an email address)
+-->
+
+<!ELEMENT META - O EMPTY>
+<!ATTLIST META
+        id      ID      #IMPLIED -- to allow meta info  --
+        name    CDATA   #IMPLIED -- HTTP header e.g. "Expires" --
+        value   CDATA   #IMPLIED -- associated value -->
+
+<![ %HTML.obsolete [
+
+<!ELEMENT (MENU|DIR) - - (LI)+ -- plain single/multicolumn lists-->
+<!ATTLIST (MENU|DIR)
+        compact (compact) #IMPLIED  -- reduced interitem spacing -->
+
+<!ELEMENT BLOCKQUOTE - - (P)+ -- extended quotes -->
+
+]]>
+
+<![ %HTML.emph [
+
+<!-- additional character emphasis -->
+<!ELEMENT (%emph2;) - - (%text;)*>
+<!ATTLIST (%emph2;)
+        id      ID      #IMPLIED -- link destination --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+
+<!ELEMENT (SUP|SUB) - - (%text;)* -- superscripts and subscripts -->
+<!ATTLIST (SUP|SUB)
+        id      ID      #IMPLIED -- link destination --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+
+<!ELEMENT (FOOTNOTE|MARGIN) - - (%text;)* -(FOOTNOTE|MARGIN)>
+<!ATTLIST (FOOTNOTE|MARGIN)
+        id      ID      #IMPLIED -- link destination --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+
+<!-- RENDER only appears in the document head -->
+<!ELEMENT RENDER -O EMPTY -- how to render unknown elements -->
+<!ATTLIST RENDER
+        id      ID      #IMPLIED -- to allow meta info  --
+        tag     CDATA   #IMPLIED -- tag name --
+        equiv   CDATA   #IMPLIED -- HTML+ equivalent tag name --
+        style   NAMES   #IMPLIED -- space separated list of styles -->
+
+<!-- Based on LaTeX's tabbing environment -->
+<!ELEMENT TAB - O EMPTY>
+<!ATTLIST TAB
+        id      ID      #IMPLIED  -- used to set a tab stop --
+        to      IDREF   #IMPLIED  -- move to previously defined tab stop --
+        before  NUMBER  0         -- scaled em spaces before tab stop --
+        after   NUMBER  0         -- scaled em spaces after tab stop --
+        reset   (reset) #IMPLIED  -- clear all previous tab stops -->
+
+<!-- content is hidden, equivalent of LaTeX's \kill -->
+<!ELEMENT HIDE - - (%text;) (-HIDE)>
+
+<!ELEMENT QUOTE - - (P*) -- block quote -->
+<!ATTLIST QUOTE
+        id      ID      #IMPLIED -- link destination --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+
+<!ELEMENT ABSTRACT - - (P*) -- document summary -->
+<!ATTLIST ABSTRACT
+        id      ID      #IMPLIED -- link destination --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+
+<!-- often rendered with an icon in left margin,
+     the role is shown before the first paragraph -->
+<!ELEMENT NOTE - - (P*) -- admonishment -->
+<!ATTLIST NOTE
+        id      ID      #IMPLIED -- link destination --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese --
+        src     %URL;   #IMPLIED -- url for the icon --
+        role (Simple|Tip|Note|Warning|Error) Simple >
+
+<!-- change bars can bridge markup boundaries -->
+<!ELEMENT CHANGED - O EMPTY>
+<!ATTLIST CHANGED -- one of id or idref is always required --
+        begin    ID      #IMPLIED -- signals beginning of changes --
+        end      IDREF   #IMPLIED -- signals end of changes -->
+]]>
+
+
+<![ %HTML.figures [ <!ENTITY % HTML.captions "INCLUDE"> ]]>
+<![ %HTML.tables [ <!ENTITY % HTML.captions "INCLUDE"> ]]>
+<!ENTITY % HTML.captions "IGNORE">
+
+<![ %HTML.captions [
+
+<!ELEMENT CAPTION - - (%text;)+ -- table or figure caption -->
+<!ATTLIST CAPTION
+        id      ID      #IMPLIED
+        align (top|bottom) #IMPLIED
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+]]>
+
+<![ %HTML.tables [
+
+<!-- a pre-pass is needed to count columns and determine
+     min/max widths before sizing to match window size -->
+
+<!ELEMENT TABLE - - (CAPTION?, TR*) -- mixed headers and data -->
+<!ATTLIST TABLE
+        id      ID      #IMPLIED
+        border (border) #IMPLIED -- draw borders --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+
+<!-- browsers should tolerate an omission of the first
+  <TR> tag as it is implied by the context -->
+<!ELEMENT TR - O (TH|TD)* -- acts like row separator -->
+<!ATTLIST TR id ID #IMPLIED>
+
+<!ELEMENT TH - O (%table;)* -- a header cell -->
+<!ATTLIST TH
+        id      ID      #IMPLIED
+        colspan NUMBER    1      -- columns spanned --
+        rowspan NUMBER    1      -- rows spanned --
+        align (left|center|right) center
+        alignon CDATA   #IMPLIED -- align on decimal point etc --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+
+<!ELEMENT TD - O (%table;)* -- a data cell -->
+<!ATTLIST TD
+        id      ID      #IMPLIED
+        colspan NUMBER    1      -- columns spanned --
+        rowspan NUMBER    1      -- rows spanned --
+        align (left|center|right) center
+        alignon CDATA   #IMPLIED -- align on decimal point etc --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+]]>
+
+<![ %HTML.forms [
+
+<!--
+ The form contents are sent to the server upon pressing a submit
+ button. Forms can be associated with scripts, e.g. to make one
+ selection field effect which options are enabled for other fields.
+
+ Clicking on a selection or typing into a text field result in events
+ which are processed by the script. Event handlers are associated
+ with each field or with the form itself. The script language is
+ deliberately restricted to avoid any security issues.
+
+ Fields can be disabled (greyed out) or marked as being in error.
+ The MESSAGE element may be used by the server to set error messages.
+ Servers can store state information in forms with hidden input fields.
+ These are not displayed and can be used to hold transaction handles etc.
+-->
+
+<!ELEMENT FORM - - ((%main;)*, MESSAGE?) -(FORM) -- forms can't be nested -->
+<!ATTLIST FORM
+        id      ID      #IMPLIED
+        action  %URL;   #IMPLIED -- defaults for URL for current doc --
+        method  CDATA   #IMPLIED -- GET, PUT, POST, DELETE etc. --
+        enctype CDATA   #IMPLIED -- encoding type for form transfers --
+        script  %URL;   #IMPLIED -- locally executed event handlers --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+
+<!-- Types of INPUT field:
+ text: one line text fields, size gives visible width of field in chars
+       where value may grow beyond this up to MAX (MAXLENGTH) chars.
+ password: like text fields but with no echo of typed characters
+ checkbox: for simple yes/no choices
+ radio: for one from many choices, each radio button in a group
+        has the same NAME but a different VALUE.
+ submit: Sends form to server. If the SRC attribute specifies an
+       icon the point clicked is sent to the server. The default
+       NAME for this field is "Submit". Use different names for
+       multiple submit buttons in a form.
+ reset: Resets fields to their initial values.
+ int: for input of integers, SIZE attribute gives width of field
+ float: for input of floating point numbers
+ date: for input of dates
+ url: for input of universal resource locators
+ hidden: used by server for state info, opaque to client
+ range: integer range from MIN to MAX, rendered as a slider etc.
+ scribble: pen input, which may include time and pressure info
+ audio: sound input with up to MAX seconds
+-->
+<!ELEMENT INPUT - O EMPTY>
+<!ATTLIST INPUT
+        id      ID      #IMPLIED -- to allow meta info  --
+        name    CDATA   #IMPLIED -- attribute name (may not be unique) --
+        type    (%fields) text   -- a wide variety of field types --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese --
+        size    CDATA   #IMPLIED -- visible size of text fields --
+        min     NUMBER  #IMPLIED -- for range controls --
+        max     NUMBER  #IMPLIED -- for range controls or text fields --
+        maxlength NUMBER #IMPLIED -- max length of text fields (equiv to max)--
+        value   CDATA   #IMPLIED -- attribute value (altered by user) --
+        checked (checked) #IMPLIED -- for check boxes and radio buttons --
+        disabled (disabled) #IMPLIED -- if grayed out --
+        error   (error) #IMPLIED -- if in error --
+        src      %URL;  #IMPLIED -- for SUBMIT, SCRIBBLE & AUDIO fields --
+        alt     CDATA   #IMPLIED -- alternative text for VT100's etc --
+        align (top|middle|bottom) top -- for IMAGE fields only -->
+
+<!-- multiline text input fields, we probably will want
+     to generalise this to accept arbitrary clipboard data
+     e.g. hypertext and images, in addition to plain text -->
+<!ELEMENT TEXTAREA - - RCDATA -- multi-line text fields -->
+<!ATTLIST TEXTAREA
+        id      ID      #IMPLIED -- to allow meta info  --
+        name    CDATA   #IMPLIED -- attribute name (may not be unique) --
+        cols    NUMBER  #IMPLIED -- visible width in characters --
+        rows    NUMBER  #IMPLIED -- visible height in characters --
+        wrap    (wrap)  #IMPLIED -- wrap input in text area --
+        disabled (disabled) #IMPLIED -- if grayed out --
+        error   (error) #IMPLIED -- if in error --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+
+<!--
+     The EDIT attribute when present allows you to type and
+     edit the selected option.
+
+     The SRC attribute allows for graphical menus, e.g. users
+     wanting to buy a house could click on each of the areas on
+     a map that they were interested in.
+ -->
+<!ELEMENT SELECT - - (OPTION+) -- combo style selection lists -->
+<!ATTLIST SELECT
+        id      ID      #IMPLIED -- to allow meta info  --
+        name    CDATA   #IMPLIED -- attribute name (may not be unique) --
+        edit    NUMBER  #IMPLIED -- width of editable selection --
+        multiple (multiple) #IMPLIED -- permits multiple selections --
+        error   (error) #IMPLIED -- if in error --
+        src      %URL;  #IMPLIED -- for graphical menus --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+
+<!-- The SHAPE attribute defines a region in the image that
+     is specified by the SRC attribute for the SELECT element -->
+<!ELEMENT OPTION - O RCDATA>
+<!ATTLIST OPTION
+        id      ID      #IMPLIED -- to allow meta info  --
+        value   CDATA   #IMPLIED -- attribute value --
+        selected (selected) #IMPLIED -- if initially selected --
+        disabled (disabled) #IMPLIED -- if grayed out --
+        shape   CDATA   #IMPLIED -- list of points for shaped region --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+
+<!--
+ Scripts executed by the client need a way of displaying
+ warning/error messages. We define an element so that the
+ server too can initialise this one-per-form message area.
+ Clients should preferably avoid displaying the message
+ in-line, as the window size may prevent the user from 
+ seeing the message.
+ -->
+<!ELEMENT MESSAGE - O RCDATA -- place for error/warning/info -->
+<!ATTLIST MESSAGE
+        id      ID      #IMPLIED -- to allow meta info  --
+        status  (info|warning|error) info
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+]]>
+
+<![ %HTML.figures [
+
+<!-- figures which subsume the role of the earlier IMG element.
+
+  Behaves identically to IMG for align = top, middle or bottom.
+  Otherwise figure is inserted after next line break (soft or hard).
+  For align=left, the image is left aligned and text is flowed
+  on the right of the image, and similarly for align=right, with
+  no text flow for align=center (the default). The caption is
+  placed under the image.
+
+  Finer control of the vertical positioning relative to the text
+  line is possible with the baseline attribute. When present, the
+  figure acts like the IMG element but is shifted so that the baseline
+  occurs at the specified number of pixels above the bottom of the image. 
+  If this is given as a floating point number, it is interpreted as a
+  fraction of the image height and must lie in the range (0.0 to 1.0)
+
+  The <A> element is used for shaped buttons handled by browser,
+  while the ISMAP mechanism sends pointer clicks/drags to server.
+  The text contained by this element is used for text-only displays
+  and authors should remember to provide effective descriptions,
+  including label text for shaped buttons.
+-->
+<!ELEMENT FIG - - (CAPTION?, P*)>
+<!ATTLIST FIG
+        id      ID      #IMPLIED
+        align   (top|middle|bottom|left|center|right) center -- position --
+        baseline NUMBER #IMPLIED -- height of baseline above image bottom --
+        ismap   (ismap) #IMPLIED -- server can handle mouse clicks/drags --
+        src     %URL;   #IMPLIED -- link to image data --
+        charset CDATA   #IMPLIED -- eg "ISO-2022-JP" for japanese -->
+]]>
+
+<!-- img is left in for at least the short term -->
+<!ELEMENT IMG - O EMPTY>
+<!ATTLIST IMG
+        src     %URL;   #REQUIRED -- where to get image data --
+        align   (top|middle|bottom) top  -- top, middle or bottom --
+        baseline NUMBER #IMPLIED -- height of baseline above image bottom --
+        alt     CDATA   #IMPLIED -- description for text-only displays --
+        ismap   (ismap) #IMPLIED  -- send mouse clicks/drags to server -->
+
+<![ %HTML.math [
+
+<!-- Proposal for representing formulae
+
+  Delimiters should stretch to match the size of the delimited
+  object. <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.
+-->
+
+<!ELEMENT MATH - - (%math;)*>
+<!ATTLIST MATH id ID #IMPLIED>
+
+<!-- Invisible brackets which may also be
+     used for numerators and denominators:
+
+                                   1 + X
+     <BOX>1 + X<OVER>Y</BOX>  is  _______
+                                     Y
+
+                                 _____
+     <BOX><OVER>X + Y</BOX>  is  X + Y
+-->
+<!ELEMENT BOX - - ((%math;)*, (OVER, (%math;)*)?)>
+
+<!-- Horizontal line between numerator and denominator
+     The symbol attribute allows authors to supply an
+     entity name for an arrow symbol etc.
+ -->
+<!ELEMENT OVER - O EMPTY>
+<!ATTLIST OVER symbol ENTITY #IMPLIED>
+
+<!-- Roots - default to square root -->
+<!ELEMENT ROOT - - (%math;)*>
+<!ATTLIST ROOT root CDATA #IMPLIED>
+
+<!-- LaTeX like arrays. The align attribute specifies
+     a single letter for each column, which also determines
+     how the column should be aligned, e.g. align=ccc"
+
+        "l"     left
+        "c"     center
+        "r"     right
+-->
+<!ELEMENT ARRAY - - (ITEM)+>
+<!ATTLIST ARRAY align CDATA #REQUIRED>
+
+<!ELEMENT ITEM - O (%math;)*>
+
+]]>
+
+<!-- The END -->
+]>
+