HTML-DTD

 view release on metacpan or  search on metacpan

share/html-3-strict.dtd  view on Meta::CPAN


<!--======================== 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>
]]>



( run in 0.684 second using v1.01-cache-2.11-cpan-39bf76dae61 )