home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-11-09 | 41.7 KB | 1,165 lines |
- <!--
- html3.dtd
-
- Document Type Definition for the HyperText Markup Language (HTML DTD)
-
- Draft: Thu 19-Jan-95 12:02:46
-
- 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.
-
- While HTML 3.0 is being discussed, please use text/x-html3
- as a temporary MIME content type, as this will allow clients
- to distinguish html 3 from current html documents.
-
- 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 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
-
- An (incomplete) list of issues:
-
- We need to pin down an explicit set of RELation values
- for <A> and <LINK>. Should these include "Chapter",
- "Section", etc. or just generic relationships?
-
- Should we support graphical selection menus with SELECT?
- These would process clicks locally rather than at the server.
-
- How should we support font selection in math for
- tensors, vectors, physical constants etc?
-
- 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 means for searching through documents, taking
- into account the 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, label styles for lists
- and text flow. It may be cleaner to drop these and force
- authors to use the style sheet mechanism instead.
-
- How far should we go to support HyTime?
-
- The extension to BASE caters for multiple scopes for
- resolving relative references, while indirect references
- can be resolved by servers. One area, where HyTime
- could help us, is with location ladders for affixing
- annotations: e.g. 3rd H2, 2nd para, 4th word, but this
- could also be handled via refining the URL syntax.
-
- I have added three attributes to every element that uses a URL
- for a hypertext link, or to name an inlined image. The BASE
- attribute is used to name a BASE element that defines the
- base URL for resolving relative links (defaults to document URL).
- The URN attribute is used to check if the desired object is
- present in a cache under a different URL. This will be a common
- case for images which are frequently copied around. The MD attribute
- specifies a message digest such as MD5 for the linked object and is
- needed to ensure someone hasn't tampered with a linked document.
- -->
-
- <!DOCTYPE HTML [
-
- <!ENTITY % HTML.Version
- "-//IETF//DTD HTML 3.0//EN//"
-
- -- Typical usage:
-
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN//">
- <html>
- ...
- </html>
- --
- >
-
- <!--================== Flags for Marked Sections ==========================-->
-
- <!ENTITY % HTML.Recommended "IGNORE"
- -- Certain features of the language are necessary for compatibility
- with widespread usage, but they may compromise the structural
- integrity of a document. This feature test entity enables
- a more prescriptive document type definition that eliminates
- the above features.
- -->
-
- <![ %HTML.Recommended [
- <!ENTITY % HTML.Deprecated "IGNORE">
- ]]>
-
- <!ENTITY % HTML.Deprecated "INCLUDE"
- -- Certain features of the language are necessary for compatibility
- with earlier versions of the specification, but they tend
- to be used an implemented inconsistently, and their use is
- deprecated. This feature test entity enables a document type
- definition that eliminates these features.
- -->
-
- <!--================== 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 % FLOAT "CDATA" -- floating point 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:
-
- "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 n : x1, y1, x2, y2, ..."
-
- n is the number of distinct points in the polygon, and is
- followed by 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.
- --
- >
-
- <!-- 3.0 Parameter Entities -->
-
- <!ENTITY % heading "H1|H2|H3|H4|H5|H6">
-
- <![ %HTML.Deprecated [
- <!ENTITY % list "UL | OL | DIR | MENU">
- <!ENTITY % blockquote "BLOCKQUOTE | BQ">
- <!ENTITY % preformatted "PRE | XMP | LISTING">
- ]]>
-
- <!ENTITY % list "UL | OL">
-
- <!ENTITY % blockquote "BQ">
-
- <!ENTITY % preformatted "PRE">
-
-
- <!-- The style attribute is used to subclass HTML elements for
- rendering purposes, when used with style sheets, e.g. DSSSL lite -->
-
- <!ENTITY % attrs -- common attributes for elements --
- 'id ID #IMPLIED -- as target for hrefs (link ends) --
- lang CDATA "en_us" -- ISO languages, e.g. en_uk, fr, ... --
- class NMTOKEN #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.-->
-
- <!ENTITY % needs -- Attributes for controlling text flow. Used in headers
- and other elements to guarantee sufficient room --
- 'clear CDATA "no" -- (left|right|all|no) move down past figures --
- needs CDATA #IMPLIED -- minimum width needed in em"s or pixels --
- -- e.g. "40 em" or "100 pixels" --'>
-
- <!--
- The following attributes are included where ever a URL can be given:
-
- base the id of a <BASE> element for use in resolving relative links
- this defaults to the HTML 2.0 definition.
-
- url location independent name (uniform resource name), and useful
- for checking local caches for copies of objects with different URLs
-
- 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 --
- "base IDREF #IMPLIED -- which <BASE> to resolve relative links --
- urn CDATA #IMPLIED -- location independent name for object --
- 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 | B | I | BIG | SMALL">
-
- <!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE">
-
- <!ENTITY % misc "Q | LANG | AU | DFN | PERSON | ACRONYM | ABBREV">
-
- <!ENTITY % special "TAB | MATH | A | IMG | BR | FN">
-
- <!ENTITY % notmath "%font | %phrase | %special | %misc">
-
- <!ENTITY % text "#PCDATA | SUB | SUP | %notmath">
-
-
- <!ENTITY % pre.content "#PCDATA | A | IMG | HR | BR | Q | LANG | %font | %phrase">
-
- <!ELEMENT (%font|%phrase|%misc) - - (%text)+>
- <!ATTLIST (%font|%phrase|%misc) %attrs;>
-
- <!-- Subscripts and superscripts. The ALIGN attribute is used for math -->
-
- <!ELEMENT (SUB|SUP) - - (%text)+>
- <!ATTLIST (SUB|SUP)
- %attrs;
- align (left|center|right) #IMPLIED
- >
-
- <!-- Forced line break. Use ALIGN attribute to align text before line break -->
-
- <!ELEMENT BR - O EMPTY>
- <!ATTLIST BR
- %attrs;
- align (left|center|right|justify) #IMPLIED
- %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 --
- to IDREF #IMPLIED -- jump to named tab stop --
- before NUMBER 0 -- em units before new tab stop --
- after NUMBER 0 -- em units after new tab stop --
- center (center) #IMPLIED -- center following text --
- right (right) #IMPLIED -- right-align following text --
- >
-
- <!--================== 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 % linkType "NAME"
- -- A list of these 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
- 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=style
- (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. -->
-
- <!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) top -- relative to baseline --
- baseline NUMBER #IMPLIED -- height of baseline above image bottom --
- width NUMBER #IMPLIED -- desired width in em's or pixels --
- height NUMBER #IMPLIED -- desired height in em's or pixels --
- units (em|pixels) pixels -- units for width and height --
- ismap (ismap) #IMPLIED -- pass clicks to server --
- >
-
- <!--=================== Paragraphs=========================================-->
-
- <!ELEMENT P - O (%text)+>
- <!ATTLIST P
- %attrs;
- align (left|center|right|justify) #IMPLIED
- %needs; -- for control of text flow --
- nowrap (nowrap) #IMPLIED -- disable wordwrap --
- nofold (nofold) #IMPLIED -- disable space folding --
- >
-
- <!--=================== Headings, Titles, Sections ========================-->
-
- <!ELEMENT HR - O EMPTY -- customizable horizontal rule -->
- <!ATTLIST HR
- align (left|center|right) #IMPLIED
- width NUMBER 100 -- % width of current margins --
- src %URI; #IMPLIED -- URI of custom rule graphic --
- %url.link; -- standard link attributes --
- %needs; -- for control of text flow --
- >
-
- <!ELEMENT ( %heading ) - - (%text;)+>
- <!ATTLIST ( %heading )
- %attrs;
- align (left|center|right|justify) #IMPLIED
- %needs; -- for control of text flow --
- nowrap (nowrap) #IMPLIED -- disable wordwrap --
- nofold (nofold) #IMPLIED -- disable space folding --
- >
-
- <!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
- | TABLE | FIG | NOTE">
-
- <![ %HTML.Recommended [
- <!ENTITY % flow "((%text)* | (%block)*)">
- ]]>
-
- <!ENTITY % flow "(%text | %block)*">
-
- <!ELEMENT PRE - - (%pre.content)+>
-
- <!ATTLIST PRE
- %attrs;
- width NUMBER #implied
- %needs; -- for control of text flow --
- >
-
- <![ %HTML.Deprecated [
-
- <!ENTITY % literal "CDATA"
- -- special non-conforming parsing mode where
- the only markup signal is the end tag
- in full
- -->
-
- <!ELEMENT XMP - - %literal>
- <!ELEMENT LISTING - - %literal>
- <!ELEMENT PLAINTEXT - O %literal>
-
- ]]>
-
- <!-- simple footnotes -->
-
- <!ELEMENT FN - - (%block)+>
- <!ATTLIST FN
- %attrs;
- >
-
- <!--=================== 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 ? -->
-
- <!-- sequence number style, where "local" gives numbers in local language -->
-
- <!ENTITY % ol.li "arabic|upperalpha|loweralpha|upperroman|lowerroman|local">
-
- <!ATTLIST OL
- %attrs;
- %needs; -- for control of text flow --
- type (%ol.li) #IMPLIED -- rendering style for numbers --
- inherit (inherit) #IMPLIED -- prefix from parent, eg "3.1.b" --
- continue (continue) #IMPLIED -- don't restart sequence number --
- start 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 =====================================-->
-
- <!--
- Note that multiple body sections are permitted and that you can specify
- whether the section floats (as hitherto) or is fixed to one of the window
- sides. How should the extent of fixed body sections be specified?
-
- The idea here is to allow authors to divide the browser window up into
- one or more fixed panes which don't scroll with the rest of the document.
- These can be used for navigation elements, for copyright and security
- messages (e.g. company confidential) or for brand messages/icons.
- -->
-
- <![ %HTML.Recommended [
- <!ENTITY % body.content "(%heading|%block|HR|ADDRESS)*"
- -- <h1>Heading</h1>
- <p>Text ...
- is preferred to
- <h1>Heading</h1>
- Text ...
- -->
- ]]>
-
- <!ENTITY % body.content "(%heading | %text | %block | HR | ADDRESS)*">
-
- <!ELEMENT BODY O O %body.content>
- <!ATTLIST BODY
- %attrs;
- position (left|right|top|bottom|float) float
- background %URI; #IMPLIED -- texture tile for document background --
- >
-
- <!ELEMENT (%blockquote) - - %body.content>
- <!ATTLIST (%blockquote)
- %attrs;
- %needs; -- for control of text flow --
- >
-
- <!ENTITY % address.content "((%text;)* | P*)">
-
- <!ELEMENT ADDRESS - - %address.content>
- <!ATTLIST ADDRESS
- %attrs;
- %needs; -- for control of text flow --
- >
-
- <!--================ 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) AUDIO widget for playing and recording audio samples
-
- e) SUBMIT/RESET buttons can now be customised with an image.
- This subsumes the IMAGE type which is now deprecated.
-
- f) 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
- method (%HTTP-Method) GET
- enctype %Content-Type; "application/x-www-form-urlencoded"
- >
-
- <![ %HTML.Deprecated [
- <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT | RESET
- | RANGE | AUDIO | FILE | SCRIBBLE | HIDDEN | IMAGE)">
- ]]>
-
- <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT | RESET
- | RANGE | AUDIO | FILE | SCRIBBLE | HIDDEN)">
-
- <!ELEMENT INPUT - O EMPTY>
- <!ATTLIST INPUT
- %attrs;
- type %InputType TEXT
- name CDATA #IMPLIED -- required for all but submit and reset --
- value CDATA #IMPLIED
- src %URI #IMPLIED -- for fields with background images --
- %url.link; -- standard link attributes --
- checked (checked) #IMPLIED -- for radio buttons and check boxes --
- size CDATA #IMPLIED -- like NUMBERS,
- but delimited with comma, not space --
- maxlength NUMBER #IMPLIED
- align (top|middle|bottom) top -- relative to baseline --
- >
-
- <!-- SRC, BASE and URN attributes added for graphical menus -->
-
- <!ELEMENT SELECT - - (OPTION+) -(INPUT|TEXTAREA|SELECT)>
- <!ATTLIST SELECT
- %attrs;
- name CDATA #REQUIRED
- size NUMBER #IMPLIED
- multiple (multiple) #IMPLIED
- src %URI #IMPLIED -- for graphical selection menus --
- %url.link; -- standard link attributes --
- >
-
- <!ELEMENT OPTION - O (#PCDATA)>
- <!ATTLIST OPTION
- %attrs;
- selected (selected) #IMPLIED
- value CDATA #IMPLIED -- default to element content --
- shape %SHAPE; #IMPLIED -- for graphical selection menus --
- >
-
- <!ELEMENT TEXTAREA - - (#PCDATA) -(INPUT|TEXTAREA|SELECT)>
- <!ATTLIST TEXTAREA
- %attrs;
- name CDATA #REQUIRED
- rows NUMBER #REQUIRED
- cols NUMBER #REQUIRED
- >
-
- <!--======================= Captions ======================================-->
-
- <!ELEMENT CAPTION - - (%text;)+ -- table or figure caption -->
- <!ATTLIST CAPTION
- %attrs;
- align (top|bottom) #IMPLIED
- >
- <!--======================= Tables ========================================-->
-
- <!--
- Tables and figures can be aligned in several ways:
-
- bleedleft flush left with the left (window) border
- left flush left with the left text margin
- center centered (text flow is disabled for this mode)
- right flush right with the right text margin
- bleedright flush right with the right (window) border
- justify when applicable the table/figure should stretch
- to fill space between the text margins
-
- Note: text will flow around the table or figure if the browser
- judges there is enough room and the alignment is not centered
- or justified. The table or figure may itself be part of of the
- text flow around some earlier figure. You can in this case use
- the clear or needs attributes to move the new table or figure
- down the page beyond the obstructing earlier figure. Similarly,
- you can use the clear or needs attributes with other elements
- such as headers and lists to move them further down the page.
- -->
-
- <!ENTITY % block.align
- "align (bleedleft|left|center|right|bleedright|justify) center">
-
- <!--
- The HTML 3.0 table model has been chosen for its simplicity
- and the ease in writing filters from common DTP packages.
-
- By default the table is automatically sized according to the
- cell contents and the current window size. Specifying the columns
- widths using the colspec attribute allows browsers to start
- displaying the table without having to wait for last row.
-
- The colspec attribute is a list of column widths and alignment
- specifications. The columns are listed from left to right with a
- letter followed by a number, e.g. COLSPEC="L20C8L40". The letter
- is L for left, C for center and R for right alignment of cell
- contents. The number specifies the width in em's, pixels or as
- a fractional value of the table width, as according to the
- associated units attribute. This approach is more compact than
- used with most SGML table models and chosen to speed hand entry.
-
- To assist with rendering to speech, row and column headers
- can be given short names using the AXIS attribute. The AXES
- attribute is used to explicitly specify the row and column
- names for use with each cell. Otherwise browsers can follow
- up columns and left along rows (right for some languages)
- to find the corresponding header cells.
-
- Table content model: To avoid wide cells, Braille needs some
- kind of note element. The cell content is moved to a note,
- and a reference to this is placed in the cell in question.
- Couldn't we just use foot notes (FN) here?
-
- To assist with formatting tables to paged media, we probably
- want to differentiate leading and trailing rows that are to
- be duplicated when splitting tables across page boundaries.
- A possible content model is:
-
- <!ELEMENT TABLE - - (CAPTION?, (TR* | (THEAD, TBODY, TFOOT?)))>
- <!ELEMENT (THEAD|TFOOT) - O TR*>
-
- Conventional scrolling browsers simply ignore THEAD and TFOOT.
- Paged browsers insert TFOOT rows at the bottom of the current
- page and THEAD rows at the top of the new page, followed by the
- remaining rows from TBODY.
- -->
-
- <!ELEMENT TABLE - - (CAPTION?, TR*) -- mixed headers and data -->
- <!ATTLIST TABLE
- %attrs;
- border (border) #IMPLIED -- draw borders --
- colspec CDATA #IMPLIED -- column widths and alignment --
- units (em|pixels|relative) em -- units for column widths --
- %block.align; -- horizontal alignment --
- %needs; -- for control of text flow --
- >
-
- <!ENTITY % cell "TH | TD">
-
- <!--
- Browsers should tolerate an omission of the first <TR>
- tag as it is implied by the context. Missing trailing
- <TR>s implied by rowspans should be ignored.
-
- The alignment attributes act as defaults for rows
- overriding the colspec attribute and being in turn
- overridden by alignment attributes on cell elements.
- -->
-
- <!ELEMENT TR - O (%cell)* -- acts like row separator -->
- <!ATTLIST TR
- %attrs;
- align (left|center|right|justify) #IMPLIED
- valign (top|middle|bottom) top -- vertical alignment -->
-
- <!--
- Note that table cells can include nested tables.
- Missing cells are considered to be empty, while
- missing rows should be ignored.
- -->
-
- <!ELEMENT (%cell) - O %body.content>
- <!ATTLIST (%cell)
- %attrs;
- colspan NUMBER 1 -- columns spanned --
- rowspan NUMBER 1 -- rows spanned --
- align (left|center|right|justify) #IMPLIED
- valign (top|middle|bottom) top -- vertical alignment --
- nowrap (nowrap) #IMPLIED -- don't wrap words --
- axis CDATA #IMPLIED -- axis name, defaults to element content --
- axes CDATA #IMPLIED -- comma separated list of axis names --
- >
-
- <!--====================== Figures ========================================-->
-
- <!--
- The element contains text for use in non-graphical displays. Note that
- you can use the shape attribute in anchors to specify hotzones on images.
- This provides for local processing of pointer clicks and a unified method
- for dealing with graphical and non-graphical displays.
-
- Text is flowed around figures when the figure is left or right aligned.
- You can request the browser to move down until there is enough room for
- the next element, see the CLEAR and NEED attributes (in %needs)
-
- Figures offer a path towards embedding arbitrary information formats
- via some kind of OLE/OpenDoc mechanism.
- -->
-
- <!ELEMENT FIG - - (OVERLAY*, CAPTION?, %flow;)>
- <!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 --
- width NUMBER #IMPLIED -- desired width in units --
- height NUMBER #IMPLIED -- desired height in units --
- hspace NUMBER #IMPLIED -- whitespace above/below fig in units --
- vspace NUMBER #IMPLIED -- whitespace to left/right in units --
- ismap (ismap) #IMPLIED -- pass clicks to server --
- units (em|pixels) pixels -- specifies units as em's or pixels --
- >
-
- <!--
- Figure overlays can be drawn immediately or held in a
- sequence for subsequent display. 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
- seq NUMBER 0 -- display order, 0 is immediate --
- src %URI; #REQUIRED -- URI of image overlay --
- %url.link; -- standard link attributes --
- x %FLOAT; 0 -- offset (0 - 1.0) from left --
- y %FLOAT; 0 -- offset (0 - 1.0) from top --
- width NUMBER #IMPLIED -- desired width in units --
- height NUMBER #IMPLIED -- desired height in units --
- units (em|pixels) pixels -- specifies units as em's or pixels --
- ismap (ismap) #IMPLIED -- pass clicks to server --
- >
- <!--======================== Notes ========================================-->
-
- <!ELEMENT NOTE - - %flow; -- admonishment -->
- <!ATTLIST NOTE
- %attrs;
- src %URI; #IMPLIED -- URI of custom graphic --
- %url.link; -- standard link attributes --
- role (Simple|Note|Caution|Warning) Simple
- %needs; -- for control of text flow --
- >
-
- <!--======================== Math ========================================-->
-
- <!-- Use 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 %formula and exclusion of %text is used here
- to alter the content model for the SUB and SUP elements so as
- to limit them to formulae rather than general text elements.
- Special entities %math and %notmath are needed to avoid attempting
- to include and exclude the same elements (or #PCDATA).
- -->
-
- <!ENTITY % math "BOX|ABOVE|BELOW|ROOT|ARRAY|SUB|SUP">
- <!ENTITY % formula "#PCDATA|%math">
-
- <!ELEMENT MATH - - (#PCDATA)* -(%notmath) +(%math)>
- <!ATTLIST MATH
- id ID #IMPLIED
- model CDATA #IMPLIED>
-
- <!-- 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.
-
- 1 + X
- <BOX>1 + X<OVER>Y</BOX> is _______
- Y
-
- a + b
- <BOX>a + b<ATOP>c - d</BOX> is
- c - d
-
- <BOX delim="(]">a</BOX> is (a]
-
- <BOX delim="|| ||">a</BOX> is || a ||
-
- The delimiters are represented using the LEFT and RIGHT
- elements as in:
-
- <BOX>[<LEFT>x + y<RIGHT>]</BOX> is [ x + y ]
-
- This is useful with definite integrals when you want the integral
- sign to stretch to match the integrand, e.g.
-
- <BOX>∫<SUB>0</SUB><SUP>N</SUP><LEFT>f(x) dx</BOX>
-
- Note the complex content model for BOX is a work around
- for the absence of support by SGML for infix operators.
-
- You can get oversize delimiters with the SIZE attribute.
- -->
-
- <!ELEMENT BOX - - ((%formula)*, (LEFT, (%formula)*)?,
- ((OVER|ATOP), (%formula)*)?,
- (RIGHT, (%formula)*)?)>
- <!ATTLIST BOX
- delim CDATA #IMPLIED -- optional stretchy delimiters --
- size (normal|medium|large|huge) normal -- oversize delims -->
-
- <!ELEMENT (OVER|ATOP|LEFT|RIGHT) - O EMPTY>
- <!ATTLIST OVER symbol ENTITY #IMPLIED>
-
- <!-- Horizontal line drawn ABOVE contents
- The symbol attribute allows authors to
- supply an entity name for an arrow symbol etc.
- -->
-
- <!ELEMENT ABOVE - - (%formula)+>
- <!ATTLIST ABOVE symbol ENTITY #IMPLIED>
-
- <!-- Horizontal line drawn BELOW contents
- The symbol attribute allows authors to
- supply an entity name for an arrow symbol etc.
- -->
-
- <!ELEMENT BELOW - - (%formula)+>
- <!ATTLIST BELOW symbol ENTITY #IMPLIED>
-
- <!-- Roots - default to square root. This model may be
- extended in future to use explicit radix and radicand
- elements, to allow markup to be used within the radix -->
-
- <!ELEMENT ROOT - - (%formula)*>
- <!ATTLIST ROOT root CDATA #IMPLIED -- e.g. "3" for cube root -->
-
- <!-- LaTeX like arrays. The coldef attribute specifies
- a single letter for each column, which also determines
- how the column should be aligned, e.g. coldef"=ccc"
-
- "l" left
- "c" center
- "r" right
-
- The DELIM attribute behaves the same as for BOX.
- 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; &vdots; and &ddots; for vertical, horizontal
- and diagonal ellipsis dots. Use &dotfill; to fill an array
- cell with horizontal dots.
- -->
-
- <!ELEMENT ARRAY - - (AROW)+>
- <!ATTLIST ARRAY
- coldef CDATA #REQUIRED
- delim CDATA #IMPLIED -- optional stretchy delimiters --
- labels (labels) #IMPLIED -- TeX's \bordermatrix style -->
-
- <!ELEMENT AROW - O (ITEM)*>
- <!ELEMENT ITEM - O (%formula)*>
- <!ATTLIST ITEM
- align CDATA #IMPLIED -- overide coldef alignment --
- colspan NUMBER 1 -- merge columns as per TABLE --
- rowspan NUMBER 1 -- merge rows as per TABLE -->
-
- <!--================ Document Head ========================================-->
-
- <![ %HTML.Deprecated [
- <!ENTITY % head.nextid "& NEXTID?">
- ]]>
-
- <!ENTITY % head.nextid "">
-
- <!ENTITY % head.content "TITLE & ISINDEX? & BASE? & STYLES?
- & META* & LINK* %head.nextid">
-
- <!ELEMENT HEAD O O (%head.content)>
-
- <!ELEMENT LINK - O EMPTY>
- <!ATTLIST LINK
- href %URI #REQUIRED
- %linkExtraAttributes; >
-
- <!ELEMENT ISINDEX - O EMPTY>
- <!ATTLIST ISINDEX
- href %URI #IMPLIED -- server handling queries --
- prompt CDATA #IMPLIED -- prompt message -->
-
- <!--
- Relative references reduce the maintenance burden when moving
- a set of related nodes to a new location. This isn't quite
- enough though, as sometimes you will want to move say the
- html nodes, but not the image nodes. In such cases, you would
- be forced to alter each of the links to the images. What is
- needed is a way of explicitly stating a scope for resolving
- a group of relative links. The BASE element has been extended
- to allow its use in defining multiple scopes.
-
- <BASE id=images "http://foo.com/images">
- ...
- <IMG SRC="bar.gif" base=images>
- -->
-
- <!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=stylesheet href="housestyle.dsssl">.
- Style overrides can be placed in the document head using the
- STYLES element, e.g.
-
- <styles notation=dsssl-lite>
- <style id=bigcaps>(dsssl-lite-stuff)
- <style id=para17>(more dsssl-lite-stuff)
- </styles>
-
- Later on in the document you can use:
-
- <h2 style=bigcaps>Header with bigger than normal capitals</h2>
- <p style=para17>A paragraph with a unique style of its own
- ...
- -->
-
- <!ENTITY % style-notations "dsssl-lite">
- <!NOTATION dsssl-lite PUBLIC "-//ISO//DSSSL Lite ??//EN//">
-
- <!ELEMENT STYLES - - (STYLE*)>
- <!ATTLIST STYLES
- notation NOTATION (%style-notations;) #REQUIRED
- >
-
- <!ELEMENT STYLE - O (#PCDATA)>
- <!ATTLIST STYLE id NMTOKEN #REQUIRED>
-
- <!--================ Document Structure ===================================-->
-
- <!ENTITY % html.content "HEAD, BODY+">
-
- <!ELEMENT HTML O O (%html.content)>
- <!ENTITY % version.attr 'VERSION CDATA #FIXED "%HTML.Version;"'>
-
- <!-- suggested roles are: TOC, DOC, DOCPART, HITLIST, DIALOG -->
-
- <!ATTLIST HTML
- %version.attr;-- report DTD version to application --
- urn CDATA #IMPLIED -- Universal resource name for this document --
- role NMTOKEN #IMPLIED -- role of this document, eg table of contents --
- >
-
- <!-- The END -->
- ]>
-