<!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 11th March 1994
FIG
and IMG
to give precise
control of vertical position relative to baseline.
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.
-- 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 [ <!--
<!SGML>
declaration is fine. Browsers should be forgiving of markup errors,
while authoring tools should enforce compliance with the DTD.
Common Attributes:
Various classes of SGML text types:
--> <!-- 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
--> <!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"> <![ %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|LIT %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;"> <!--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"> ]]> <!-- 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 tagsThe content definition is:
--> <!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;) - - (#PCDATA | %emph;)+> <!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 --> <!--
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 -- 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 --> <!--
--> <!ELEMENT A - - (#PCDATA | IMG | %emph;)*> <!ATTLIST A id ID #IMPLIED -- as target of link -- 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 -- seal CDATA #IMPLIED -- MD5 digital signature --> <!--
There are a set of standard RELationship types which alter the browser's navigation menu:
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 GMTOther likely names are "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 --> <!ELEMENT LIT - - (TAB|%text;)+ -- literal variable pitch text --> <!ATTLIST LIT id ID #IMPLIED -- link destination -- charset CDATA #IMPLIED -- eg "ISO-2022-JP" for japanese --> <!ELEMENT TAB - O EMPTY -- tabs for imported text --> <!ATTLIST TAB id ID #IMPLIED -- to allow meta info -- at NUMBER #IMPLIED -- in em units or width of an "m" -- align (left|center|right|decimal) left -- tab alignment --> <!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|numeric) center 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|numeric) center 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 --> <!--
--> <!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 --> <!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 -- charset CDATA #IMPLIED -- eg "ISO-2022-JP" for japanese --> <!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 -- 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 [ <!--
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 --> ]]> <!NOTATION GIF PUBLIC "-//local//NOTATION GIF Image//EN"> <!NOTATION XBM PUBLIC "-//local//NOTATION XBM Image//EN"> <!-- 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 -- type NOTATION(GIF|XBM) #IMPLIED ismap (ismap) #IMPLIED -- send mouse clicks/drags to server --> <![ %HTML.math [ <!--
<SUB>
and <SUP>
are used for subscripts and superscripts
i j X <SUP>i</SUP>Y<SUP>j</SUP> is X Yi.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> <!--
"l" left "c" center "r" right --> <!ELEMENT ARRAY - - (ITEM)+> <!ATTLIST ARRAY align CDATA #REQUIRED> <!ELEMENT ITEM - O (%math;)*> ]]> <!-- The END --> ]>