summaryrefslogtreecommitdiffstats
path: root/htdocs/sgml-lib/html-3-as.dtd
diff options
context:
space:
mode:
Diffstat (limited to 'htdocs/sgml-lib/html-3-as.dtd')
-rw-r--r--htdocs/sgml-lib/html-3-as.dtd1657
1 files changed, 1657 insertions, 0 deletions
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 -->