File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / test / valid / dtds / xhtml1-strict.dtd
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:38:00 2012 UTC (12 years, 5 months ago) by misho
Branches: libxml2, MAIN
CVS tags: v2_9_1p0, v2_9_1, v2_8_0p0, v2_8_0, v2_7_8, HEAD
libxml2

    1: <!--
    2:    Extensible HTML version 1.0 Strict DTD
    3: 
    4:    This is the same as HTML 4.0 Strict except for
    5:    changes due to the differences between XML and SGML.
    6: 
    7:    Namespace = http://www.w3.org/1999/xhtml
    8: 
    9:    For further information, see: http://www.w3.org/TR/xhtml1
   10: 
   11:    Copyright (c) 1998-1999 W3C (MIT, INRIA, Keio),
   12:    All Rights Reserved. 
   13: 
   14:    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
   15: 
   16:    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   17:    SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
   18: 
   19: 
   20: -->
   21: 
   22: <!--================ Character mnemonic entities =========================-->
   23: 
   24: <!ENTITY % HTMLlat1 PUBLIC
   25:    "-//W3C//ENTITIES Latin 1 for XHTML//EN"
   26:    "xhtml-lat1.ent">
   27: %HTMLlat1;
   28: 
   29: <!ENTITY % HTMLsymbol PUBLIC
   30:    "-//W3C//ENTITIES Symbols for XHTML//EN"
   31:    "xhtml-symbol.ent">
   32: %HTMLsymbol;
   33: 
   34: <!ENTITY % HTMLspecial PUBLIC
   35:    "-//W3C//ENTITIES Special for XHTML//EN"
   36:    "xhtml-special.ent">
   37: %HTMLspecial;
   38: 
   39: <!--================== Imported Names ====================================-->
   40: 
   41: <!ENTITY % ContentType "CDATA">
   42:     <!-- media type, as per [RFC2045] -->
   43: 
   44: <!ENTITY % ContentTypes "CDATA">
   45:     <!-- comma-separated list of media types, as per [RFC2045] -->
   46: 
   47: <!ENTITY % Charset "CDATA">
   48:     <!-- a character encoding, as per [RFC2045] -->
   49: 
   50: <!ENTITY % Charsets "CDATA">
   51:     <!-- a space separated list of character encodings, as per [RFC2045] -->
   52: 
   53: <!ENTITY % LanguageCode "NMTOKEN">
   54:     <!-- a language code, as per [RFC1766] -->
   55: 
   56: <!ENTITY % Character "CDATA">
   57:     <!-- a single character from [ISO10646] -->
   58: 
   59: <!ENTITY % Number "CDATA">
   60:     <!-- one or more digits -->
   61: 
   62: <!ENTITY % LinkTypes "CDATA">
   63:     <!-- space-separated list of link types -->
   64: 
   65: <!ENTITY % MediaDesc "CDATA">
   66:     <!-- single or comma-separated list of media descriptors -->
   67: 
   68: <!ENTITY % URI "CDATA">
   69:     <!-- a Uniform Resource Identifier, see [RFC2396] -->
   70: 
   71: <!ENTITY % UriList "CDATA">
   72:     <!-- a space separated list of Uniform Resource Identifiers -->
   73: 
   74: <!ENTITY % Datetime "CDATA">
   75:     <!-- date and time information. ISO date format -->
   76: 
   77: <!ENTITY % Script "CDATA">
   78:     <!-- script expression -->
   79: 
   80: <!ENTITY % StyleSheet "CDATA">
   81:     <!-- style sheet data -->
   82: 
   83: <!ENTITY % Text "CDATA">
   84:     <!-- used for titles etc. -->
   85: 
   86: <!ENTITY % FrameTarget "NMTOKEN">
   87:     <!-- render in this frame -->
   88: 
   89: <!ENTITY % Length "CDATA">
   90:     <!-- nn for pixels or nn% for percentage length -->
   91: 
   92: <!ENTITY % MultiLength "CDATA">
   93:     <!-- pixel, percentage, or relative -->
   94: 
   95: <!ENTITY % MultiLengths "CDATA">
   96:     <!-- comma-separated list of MultiLength -->
   97: 
   98: <!ENTITY % Pixels "CDATA">
   99:     <!-- integer representing length in pixels -->
  100: 
  101: <!-- these are used for image maps -->
  102: 
  103: <!ENTITY % Shape "(rect|circle|poly|default)">
  104: 
  105: <!ENTITY % Coords "CDATA">
  106:     <!-- comma separated list of lengths -->
  107: 
  108: <!--=================== Generic Attributes ===============================-->
  109: 
  110: <!-- core attributes common to most elements
  111:   id       document-wide unique id
  112:   class    space separated list of classes
  113:   style    associated style info
  114:   title    advisory title/amplification
  115: -->
  116: <!ENTITY % coreattrs
  117:  "id          ID             #IMPLIED
  118:   class       CDATA          #IMPLIED
  119:   style       %StyleSheet;   #IMPLIED
  120:   title       %Text;         #IMPLIED"
  121:   >
  122: 
  123: <!-- internationalization attributes
  124:   lang        language code (backwards compatible)
  125:   xml:lang    language code (as per XML 1.0 spec)
  126:   dir         direction for weak/neutral text
  127: -->
  128: <!ENTITY % i18n
  129:  "lang        %LanguageCode; #IMPLIED
  130:   xml:lang    %LanguageCode; #IMPLIED
  131:   dir         (ltr|rtl)      #IMPLIED"
  132:   >
  133: 
  134: <!-- attributes for common UI events
  135:   onclick     a pointer button was clicked
  136:   ondblclick  a pointer button was double clicked
  137:   onmousedown a pointer button was pressed down
  138:   onmouseup   a pointer button was released
  139:   onmousemove a pointer was moved onto the element
  140:   onmouseout  a pointer was moved away from the element
  141:   onkeypress  a key was pressed and released
  142:   onkeydown   a key was pressed down
  143:   onkeyup     a key was released
  144: -->
  145: <!ENTITY % events
  146:  "onclick     %Script;       #IMPLIED
  147:   ondblclick  %Script;       #IMPLIED
  148:   onmousedown %Script;       #IMPLIED
  149:   onmouseup   %Script;       #IMPLIED
  150:   onmouseover %Script;       #IMPLIED
  151:   onmousemove %Script;       #IMPLIED
  152:   onmouseout  %Script;       #IMPLIED
  153:   onkeypress  %Script;       #IMPLIED
  154:   onkeydown   %Script;       #IMPLIED
  155:   onkeyup     %Script;       #IMPLIED"
  156:   >
  157: 
  158: <!-- attributes for elements that can get the focus
  159:   accesskey   accessibility key character
  160:   tabindex    position in tabbing order
  161:   onfocus     the element got the focus
  162:   onblur      the element lost the focus
  163: -->
  164: <!ENTITY % focus
  165:  "accesskey   %Character;    #IMPLIED
  166:   tabindex    %Number;       #IMPLIED
  167:   onfocus     %Script;       #IMPLIED
  168:   onblur      %Script;       #IMPLIED"
  169:   >
  170: 
  171: <!ENTITY % attrs "%coreattrs; %i18n; %events;">
  172: 
  173: <!--=================== Text Elements ====================================-->
  174: 
  175: <!ENTITY % special
  176:    "br | span | bdo | object | img | map">
  177: 
  178: <!ENTITY % fontstyle "tt | i | b | big | small">
  179: 
  180: <!ENTITY % phrase "em | strong | dfn | code | q | sub | sup |
  181:                    samp | kbd | var | cite | abbr | acronym">
  182: 
  183: <!ENTITY % inline.forms "input | select | textarea | label | button">
  184: 
  185: <!-- these can occur at block or inline level -->
  186: <!ENTITY % misc "ins | del | script | noscript">
  187: 
  188: <!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
  189: 
  190: <!-- %Inline; covers inline or "text-level" elements -->
  191: <!ENTITY % Inline "(#PCDATA | %inline; | %misc;)*">
  192: 
  193: <!--================== Block level elements ==============================-->
  194: 
  195: <!ENTITY % heading "h1|h2|h3|h4|h5|h6">
  196: <!ENTITY % lists "ul | ol | dl">
  197: <!ENTITY % blocktext "pre | hr | blockquote | address">
  198: 
  199: <!ENTITY % block
  200:      "p | %heading; | div | %lists; | %blocktext; | fieldset | table">
  201: 
  202: <!ENTITY % Block "(%block; | form | %misc;)*">
  203: 
  204: <!-- %Flow; mixes Block and Inline and is used for list items etc. -->
  205: <!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
  206: 
  207: <!--================== Content models for exclusions =====================-->
  208: 
  209: <!-- a elements use %Inline; excluding a -->
  210: 
  211: <!ENTITY % a.content
  212:    "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc;)*">
  213: 
  214: <!-- pre uses %Inline excluding img, object, big, small, sup or sup -->
  215: 
  216: <!ENTITY % pre.content
  217:    "(#PCDATA | a | br | span | bdo | map | tt | i | b |
  218:       %phrase; | %inline.forms;)*">
  219: 
  220: <!-- form uses %Block; excluding form -->
  221: 
  222: <!ENTITY % form.content "(%block; | %misc;)*">
  223: 
  224: <!-- button uses %Flow; but excludes a, form and form controls -->
  225: 
  226: <!ENTITY % button.content
  227:    "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
  228:     table | %special; | %fontstyle; | %phrase; | %misc;)*">
  229: 
  230: <!--================ Document Structure ==================================-->
  231: 
  232: <!-- the namespace URI designates the document profile -->
  233: 
  234: <!ELEMENT html (head, body)>
  235: <!ATTLIST html
  236:   %i18n;
  237:   xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
  238:   >
  239: 
  240: <!--================ Document Head =======================================-->
  241: 
  242: <!ENTITY % head.misc "(script|style|meta|link|object)*">
  243: 
  244: <!-- content model is %head.misc; combined with a single
  245:      title and an optional base element in any order -->
  246: 
  247: <!ELEMENT head (%head.misc;,
  248:      ((title, %head.misc;, (base, %head.misc;)?) |
  249:       (base, %head.misc;, (title, %head.misc;))))>
  250: 
  251: <!ATTLIST head
  252:   %i18n;
  253:   profile     %URI;          #IMPLIED
  254:   >
  255: 
  256: <!-- The title element is not considered part of the flow of text.
  257:        It should be displayed, for example as the page header or
  258:        window title. Exactly one title is required per document.
  259:     -->
  260: <!ELEMENT title (#PCDATA)>
  261: <!ATTLIST title %i18n;>
  262: 
  263: <!-- document base URI -->
  264: 
  265: <!ELEMENT base EMPTY>
  266: <!ATTLIST base
  267:   href        %URI;          #IMPLIED
  268:   >
  269: 
  270: <!-- generic metainformation -->
  271: <!ELEMENT meta EMPTY>
  272: <!ATTLIST meta
  273:   %i18n;
  274:   http-equiv  CDATA          #IMPLIED
  275:   name        CDATA          #IMPLIED
  276:   content     CDATA          #REQUIRED
  277:   scheme      CDATA          #IMPLIED
  278:   >
  279: 
  280: <!--
  281:   Relationship values can be used in principle:
  282: 
  283:    a) for document specific toolbars/menus when used
  284:       with the link element in document head e.g.
  285:         start, contents, previous, next, index, end, help
  286:    b) to link to a separate style sheet (rel="stylesheet")
  287:    c) to make a link to a script (rel="script")
  288:    d) by stylesheets to control how collections of
  289:       html nodes are rendered into printed documents
  290:    e) to make a link to a printable version of this document
  291:       e.g. a PostScript or PDF version (rel="alternate" media="print")
  292: -->
  293: 
  294: <!ELEMENT link EMPTY>
  295: <!ATTLIST link
  296:   %attrs;
  297:   charset     %Charset;      #IMPLIED
  298:   href        %URI;          #IMPLIED
  299:   hreflang    %LanguageCode; #IMPLIED
  300:   type        %ContentType;  #IMPLIED
  301:   rel         %LinkTypes;    #IMPLIED
  302:   rev         %LinkTypes;    #IMPLIED
  303:   media       %MediaDesc;    #IMPLIED
  304:   >
  305: 
  306: <!-- style info, which may include CDATA sections -->
  307: <!ELEMENT style (#PCDATA)>
  308: <!ATTLIST style
  309:   %i18n;
  310:   type        %ContentType;  #REQUIRED
  311:   media       %MediaDesc;    #IMPLIED
  312:   title       %Text;         #IMPLIED
  313:   xml:space   (preserve)     #FIXED 'preserve'
  314:   >
  315: 
  316: <!-- script statements, which may include CDATA sections -->
  317: <!ELEMENT script (#PCDATA)>
  318: <!ATTLIST script
  319:   charset     %Charset;      #IMPLIED
  320:   type        %ContentType;  #REQUIRED
  321:   src         %URI;          #IMPLIED
  322:   defer       (defer)        #IMPLIED
  323:   xml:space   (preserve)     #FIXED 'preserve'
  324:   >
  325: 
  326: <!-- alternate content container for non script-based rendering -->
  327: 
  328: <!ELEMENT noscript %Block;>
  329: <!ATTLIST noscript
  330:   %attrs;
  331:   >
  332: 
  333: <!--=================== Document Body ====================================-->
  334: 
  335: <!ELEMENT body %Block;>
  336: <!ATTLIST body
  337:   %attrs;
  338:   onload          %Script;   #IMPLIED
  339:   onunload        %Script;   #IMPLIED
  340:   >
  341: 
  342: <!ELEMENT div %Flow;>  <!-- generic language/style container -->
  343: <!ATTLIST div
  344:   %attrs;
  345:   >
  346: 
  347: <!--=================== Paragraphs =======================================-->
  348: 
  349: <!ELEMENT p %Inline;>
  350: <!ATTLIST p
  351:   %attrs;
  352:   >
  353: 
  354: <!--=================== Headings =========================================-->
  355: 
  356: <!--
  357:   There are six levels of headings from h1 (the most important)
  358:   to h6 (the least important).
  359: -->
  360: 
  361: <!ELEMENT h1  %Inline;>
  362: <!ATTLIST h1
  363:    %attrs;
  364:    >
  365: 
  366: <!ELEMENT h2 %Inline;>
  367: <!ATTLIST h2
  368:    %attrs;
  369:    >
  370: 
  371: <!ELEMENT h3 %Inline;>
  372: <!ATTLIST h3
  373:    %attrs;
  374:    >
  375: 
  376: <!ELEMENT h4 %Inline;>
  377: <!ATTLIST h4
  378:    %attrs;
  379:    >
  380: 
  381: <!ELEMENT h5 %Inline;>
  382: <!ATTLIST h5
  383:    %attrs;
  384:    >
  385: 
  386: <!ELEMENT h6 %Inline;>
  387: <!ATTLIST h6
  388:    %attrs;
  389:    >
  390: 
  391: <!--=================== Lists ============================================-->
  392: 
  393: <!-- Unordered list -->
  394: 
  395: <!ELEMENT ul (li)+>
  396: <!ATTLIST ul
  397:   %attrs;
  398:   >
  399: 
  400: <!-- Ordered (numbered) list -->
  401: 
  402: <!ELEMENT ol (li)+>
  403: <!ATTLIST ol
  404:   %attrs;
  405:   >
  406: 
  407: <!-- list item -->
  408: 
  409: <!ELEMENT li %Flow;>
  410: <!ATTLIST li
  411:   %attrs;
  412:   >
  413: 
  414: <!-- definition lists - dt for term, dd for its definition -->
  415: 
  416: <!ELEMENT dl (dt|dd)+>
  417: <!ATTLIST dl
  418:   %attrs;
  419:   >
  420: 
  421: <!ELEMENT dt %Inline;>
  422: <!ATTLIST dt
  423:   %attrs;
  424:   >
  425: 
  426: <!ELEMENT dd %Flow;>
  427: <!ATTLIST dd
  428:   %attrs;
  429:   >
  430: 
  431: <!--=================== Address ==========================================-->
  432: 
  433: <!-- information on author -->
  434: 
  435: <!ELEMENT address %Inline;>
  436: <!ATTLIST address
  437:   %attrs;
  438:   >
  439: 
  440: <!--=================== Horizontal Rule ==================================-->
  441: 
  442: <!ELEMENT hr EMPTY>
  443: <!ATTLIST hr
  444:   %attrs;
  445:   >
  446: 
  447: <!--=================== Preformatted Text ================================-->
  448: 
  449: <!-- content is %Inline; excluding "img|object|big|small|sub|sup" -->
  450: 
  451: <!ELEMENT pre %pre.content;>
  452: <!ATTLIST pre
  453:   %attrs;
  454:   xml:space (preserve) #FIXED 'preserve'
  455:   >
  456: 
  457: <!--=================== Block-like Quotes ================================-->
  458: 
  459: <!ELEMENT blockquote %Block;>
  460: <!ATTLIST blockquote
  461:   %attrs;
  462:   cite        %URI;          #IMPLIED
  463:   >
  464: 
  465: <!--=================== Inserted/Deleted Text ============================-->
  466: 
  467: <!--
  468:   ins/del are allowed in block and inline content, but its
  469:   inappropriate to include block content within an ins element
  470:   occurring in inline content.
  471: -->
  472: <!ELEMENT ins %Flow;>
  473: <!ATTLIST ins
  474:   %attrs;
  475:   cite        %URI;          #IMPLIED
  476:   datetime    %Datetime;     #IMPLIED
  477:   >
  478: 
  479: <!ELEMENT del %Flow;>
  480: <!ATTLIST del
  481:   %attrs;
  482:   cite        %URI;          #IMPLIED
  483:   datetime    %Datetime;     #IMPLIED
  484:   >
  485: 
  486: <!--================== The Anchor Element ================================-->
  487: 
  488: <!-- content is %Inline; except that anchors shouldn't be nested -->
  489: 
  490: <!ELEMENT a %a.content;>
  491: <!ATTLIST a
  492:   %attrs;
  493:   charset     %Charset;      #IMPLIED
  494:   type        %ContentType;  #IMPLIED
  495:   name        NMTOKEN        #IMPLIED
  496:   href        %URI;          #IMPLIED
  497:   hreflang    %LanguageCode; #IMPLIED
  498:   rel         %LinkTypes;    #IMPLIED
  499:   rev         %LinkTypes;    #IMPLIED
  500:   accesskey   %Character;    #IMPLIED
  501:   shape       %Shape;        "rect"
  502:   coords      %Coords;       #IMPLIED
  503:   tabindex    %Number;       #IMPLIED
  504:   onfocus     %Script;       #IMPLIED
  505:   onblur      %Script;       #IMPLIED
  506:   >
  507: 
  508: <!--===================== Inline Elements ================================-->
  509: 
  510: <!ELEMENT span %Inline;> <!-- generic language/style container -->
  511: <!ATTLIST span
  512:   %attrs;
  513:   >
  514: 
  515: <!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->
  516: <!ATTLIST bdo
  517:   %coreattrs;
  518:   %events;
  519:   lang        %LanguageCode; #IMPLIED
  520:   xml:lang    %LanguageCode; #IMPLIED
  521:   dir         (ltr|rtl)      #REQUIRED
  522:   >
  523: 
  524: <!ELEMENT br EMPTY>   <!-- forced line break -->
  525: <!ATTLIST br
  526:   %coreattrs;
  527:   >
  528: 
  529: <!ELEMENT em %Inline;>   <!-- emphasis -->
  530: <!ATTLIST em %attrs;>
  531: 
  532: <!ELEMENT strong %Inline;>   <!-- strong emphasis -->
  533: <!ATTLIST strong %attrs;>
  534: 
  535: <!ELEMENT dfn %Inline;>   <!-- definitional -->
  536: <!ATTLIST dfn %attrs;>
  537: 
  538: <!ELEMENT code %Inline;>   <!-- program code -->
  539: <!ATTLIST code %attrs;>
  540: 
  541: <!ELEMENT samp %Inline;>   <!-- sample -->
  542: <!ATTLIST samp %attrs;>
  543: 
  544: <!ELEMENT kbd %Inline;>  <!-- something user would type -->
  545: <!ATTLIST kbd %attrs;>
  546: 
  547: <!ELEMENT var %Inline;>   <!-- variable -->
  548: <!ATTLIST var %attrs;>
  549: 
  550: <!ELEMENT cite %Inline;>   <!-- citation -->
  551: <!ATTLIST cite %attrs;>
  552: 
  553: <!ELEMENT abbr %Inline;>   <!-- abbreviation -->
  554: <!ATTLIST abbr %attrs;>
  555: 
  556: <!ELEMENT acronym %Inline;>   <!-- acronym -->
  557: <!ATTLIST acronym %attrs;>
  558: 
  559: <!ELEMENT q %Inline;>   <!-- inlined quote -->
  560: <!ATTLIST q
  561:   %attrs;
  562:   cite        %URI;          #IMPLIED
  563:   >
  564: 
  565: <!ELEMENT sub %Inline;> <!-- subscript -->
  566: <!ATTLIST sub %attrs;>
  567: 
  568: <!ELEMENT sup %Inline;> <!-- superscript -->
  569: <!ATTLIST sup %attrs;>
  570: 
  571: <!ELEMENT tt %Inline;>   <!-- fixed pitch font -->
  572: <!ATTLIST tt %attrs;>
  573: 
  574: <!ELEMENT i %Inline;>   <!-- italic font -->
  575: <!ATTLIST i %attrs;>
  576: 
  577: <!ELEMENT b %Inline;>   <!-- bold font -->
  578: <!ATTLIST b %attrs;>
  579: 
  580: <!ELEMENT big %Inline;>   <!-- bigger font -->
  581: <!ATTLIST big %attrs;>
  582: 
  583: <!ELEMENT small %Inline;>   <!-- smaller font -->
  584: <!ATTLIST small %attrs;>
  585: 
  586: <!--==================== Object ======================================-->
  587: <!--
  588:   object is used to embed objects as part of HTML pages.
  589:   param elements should precede other content. Parameters
  590:   can also be expressed as attribute/value pairs on the
  591:   object element itself when brevity is desired.
  592: -->
  593: 
  594: <!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
  595: <!ATTLIST object
  596:   %attrs;
  597:   declare     (declare)      #IMPLIED
  598:   classid     %URI;          #IMPLIED
  599:   codebase    %URI;          #IMPLIED
  600:   data        %URI;          #IMPLIED
  601:   type        %ContentType;  #IMPLIED
  602:   codetype    %ContentType;  #IMPLIED
  603:   archive     %UriList;      #IMPLIED
  604:   standby     %Text;         #IMPLIED
  605:   height      %Length;       #IMPLIED
  606:   width       %Length;       #IMPLIED
  607:   usemap      %URI;          #IMPLIED
  608:   name        NMTOKEN        #IMPLIED
  609:   tabindex    %Number;       #IMPLIED
  610:   >
  611: 
  612: <!--
  613:   param is used to supply a named property value.
  614:   In XML it would seem natural to follow RDF and support an
  615:   abbreviated syntax where the param elements are replaced
  616:   by attribute value pairs on the object start tag.
  617: -->
  618: <!ELEMENT param EMPTY>
  619: <!ATTLIST param
  620:   id          ID             #IMPLIED
  621:   name        CDATA          #IMPLIED
  622:   value       CDATA          #IMPLIED
  623:   valuetype   (data|ref|object) "data"
  624:   type        %ContentType;  #IMPLIED
  625:   >
  626: 
  627: <!--=================== Images ===========================================-->
  628: 
  629: <!--
  630:    To avoid accessibility problems for people who aren't
  631:    able to see the image, you should provide a text
  632:    description using the alt and longdesc attributes.
  633:    In addition, avoid the use of server-side image maps.
  634:    Note that in this DTD there is no name attribute. That
  635:    is only available in the transitional and frameset DTD.
  636: -->
  637: 
  638: <!ELEMENT img EMPTY>
  639: <!ATTLIST img
  640:   %attrs;
  641:   src         %URI;          #REQUIRED
  642:   alt         %Text;         #REQUIRED
  643:   longdesc    %URI;          #IMPLIED
  644:   height      %Length;       #IMPLIED
  645:   width       %Length;       #IMPLIED
  646:   usemap      %URI;          #IMPLIED
  647:   ismap       (ismap)        #IMPLIED
  648:   >
  649: 
  650: <!-- usemap points to a map element which may be in this document
  651:   or an external document, although the latter is not widely supported -->
  652: 
  653: <!--================== Client-side image maps ============================-->
  654: 
  655: <!-- These can be placed in the same document or grouped in a
  656:      separate document although this isn't yet widely supported -->
  657: 
  658: <!ELEMENT map ((%block; | form | %misc;)+ | area+)>
  659: <!ATTLIST map
  660:   %i18n;
  661:   %events;
  662:   id          ID             #REQUIRED
  663:   class       CDATA          #IMPLIED
  664:   style       %StyleSheet;   #IMPLIED
  665:   title       %Text;         #IMPLIED
  666:   name        NMTOKEN        #IMPLIED
  667:   >
  668: 
  669: <!ELEMENT area EMPTY>
  670: <!ATTLIST area
  671:   %attrs;
  672:   shape       %Shape;        "rect"
  673:   coords      %Coords;       #IMPLIED
  674:   href        %URI;          #IMPLIED
  675:   nohref      (nohref)       #IMPLIED
  676:   alt         %Text;         #REQUIRED
  677:   tabindex    %Number;       #IMPLIED
  678:   accesskey   %Character;    #IMPLIED
  679:   onfocus     %Script;       #IMPLIED
  680:   onblur      %Script;       #IMPLIED
  681:   >
  682: 
  683: <!--================ Forms ===============================================-->
  684: <!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->
  685: 
  686: <!ATTLIST form
  687:   %attrs;
  688:   action      %URI;          #REQUIRED
  689:   method      (get|post)     "get"
  690:   enctype     %ContentType;  "application/x-www-form-urlencoded"
  691:   onsubmit    %Script;       #IMPLIED
  692:   onreset     %Script;       #IMPLIED
  693:   accept      %ContentTypes; #IMPLIED
  694:   accept-charset %Charsets;  #IMPLIED
  695:   >
  696: 
  697: <!--
  698:   Each label must not contain more than ONE field
  699:   Label elements shouldn't be nested.
  700: -->
  701: <!ELEMENT label %Inline;>
  702: <!ATTLIST label
  703:   %attrs;
  704:   for         IDREF          #IMPLIED
  705:   accesskey   %Character;    #IMPLIED
  706:   onfocus     %Script;       #IMPLIED
  707:   onblur      %Script;       #IMPLIED
  708:   >
  709: 
  710: <!ENTITY % InputType
  711:   "(text | password | checkbox |
  712:     radio | submit | reset |
  713:     file | hidden | image | button)"
  714:    >
  715: 
  716: <!-- the name attribute is required for all but submit & reset -->
  717: 
  718: <!ELEMENT input EMPTY>     <!-- form control -->
  719: <!ATTLIST input
  720:   %attrs;
  721:   type        %InputType;    "text"
  722:   name        CDATA          #IMPLIED
  723:   value       CDATA          #IMPLIED
  724:   checked     (checked)      #IMPLIED
  725:   disabled    (disabled)     #IMPLIED
  726:   readonly    (readonly)     #IMPLIED
  727:   size        CDATA          #IMPLIED
  728:   maxlength   %Number;       #IMPLIED
  729:   src         %URI;          #IMPLIED
  730:   alt         CDATA          #IMPLIED
  731:   usemap      %URI;          #IMPLIED
  732:   tabindex    %Number;       #IMPLIED
  733:   accesskey   %Character;    #IMPLIED
  734:   onfocus     %Script;       #IMPLIED
  735:   onblur      %Script;       #IMPLIED
  736:   onselect    %Script;       #IMPLIED
  737:   onchange    %Script;       #IMPLIED
  738:   accept      %ContentTypes; #IMPLIED
  739:   >
  740: 
  741: <!ELEMENT select (optgroup|option)+>  <!-- option selector -->
  742: <!ATTLIST select
  743:   %attrs;
  744:   name        CDATA          #IMPLIED
  745:   size        %Number;       #IMPLIED
  746:   multiple    (multiple)     #IMPLIED
  747:   disabled    (disabled)     #IMPLIED
  748:   tabindex    %Number;       #IMPLIED
  749:   onfocus     %Script;       #IMPLIED
  750:   onblur      %Script;       #IMPLIED
  751:   onchange    %Script;       #IMPLIED
  752:   >
  753: 
  754: <!ELEMENT optgroup (option)+>   <!-- option group -->
  755: <!ATTLIST optgroup
  756:   %attrs;
  757:   disabled    (disabled)     #IMPLIED
  758:   label       %Text;         #REQUIRED
  759:   >
  760: 
  761: <!ELEMENT option (#PCDATA)>     <!-- selectable choice -->
  762: <!ATTLIST option
  763:   %attrs;
  764:   selected    (selected)     #IMPLIED
  765:   disabled    (disabled)     #IMPLIED
  766:   label       %Text;         #IMPLIED
  767:   value       CDATA          #IMPLIED
  768:   >
  769: 
  770: <!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->
  771: <!ATTLIST textarea
  772:   %attrs;
  773:   name        CDATA          #IMPLIED
  774:   rows        %Number;       #REQUIRED
  775:   cols        %Number;       #REQUIRED
  776:   disabled    (disabled)     #IMPLIED
  777:   readonly    (readonly)     #IMPLIED
  778:   tabindex    %Number;       #IMPLIED
  779:   accesskey   %Character;    #IMPLIED
  780:   onfocus     %Script;       #IMPLIED
  781:   onblur      %Script;       #IMPLIED
  782:   onselect    %Script;       #IMPLIED
  783:   onchange    %Script;       #IMPLIED
  784:   >
  785: 
  786: <!--
  787:   The fieldset element is used to group form fields.
  788:   Only one legend element should occur in the content
  789:   and if present should only be preceded by whitespace.
  790: -->
  791: <!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
  792: <!ATTLIST fieldset
  793:   %attrs;
  794:   >
  795: 
  796: <!ELEMENT legend %Inline;>     <!-- fieldset label -->
  797: <!ATTLIST legend
  798:   %attrs;
  799:   accesskey   %Character;    #IMPLIED
  800:   >
  801: 
  802: <!--
  803:  Content is %Flow; excluding a, form and form controls
  804: --> 
  805: <!ELEMENT button %button.content;>  <!-- push button -->
  806: <!ATTLIST button
  807:   %attrs;
  808:   name        CDATA          #IMPLIED
  809:   value       CDATA          #IMPLIED
  810:   type        (button|submit|reset) "submit"
  811:   disabled    (disabled)     #IMPLIED
  812:   tabindex    %Number;       #IMPLIED
  813:   accesskey   %Character;    #IMPLIED
  814:   onfocus     %Script;       #IMPLIED
  815:   onblur      %Script;       #IMPLIED
  816:   >
  817: 
  818: <!--======================= Tables =======================================-->
  819: 
  820: <!-- Derived from IETF HTML table standard, see [RFC1942] -->
  821: 
  822: <!--
  823:  The border attribute sets the thickness of the frame around the
  824:  table. The default units are screen pixels.
  825: 
  826:  The frame attribute specifies which parts of the frame around
  827:  the table should be rendered. The values are not the same as
  828:  CALS to avoid a name clash with the valign attribute.
  829: -->
  830: <!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
  831: 
  832: <!--
  833:  The rules attribute defines which rules to draw between cells:
  834: 
  835:  If rules is absent then assume:
  836:      "none" if border is absent or border="0" otherwise "all"
  837: -->
  838: 
  839: <!ENTITY % TRules "(none | groups | rows | cols | all)">
  840:   
  841: <!-- horizontal placement of table relative to document -->
  842: <!ENTITY % TAlign "(left|center|right)">
  843: 
  844: <!-- horizontal alignment attributes for cell contents
  845: 
  846:   char        alignment char, e.g. char=':'
  847:   charoff     offset for alignment char
  848: -->
  849: <!ENTITY % cellhalign
  850:   "align      (left|center|right|justify|char) #IMPLIED
  851:    char       %Character;    #IMPLIED
  852:    charoff    %Length;       #IMPLIED"
  853:   >
  854: 
  855: <!-- vertical alignment attributes for cell contents -->
  856: <!ENTITY % cellvalign
  857:   "valign     (top|middle|bottom|baseline) #IMPLIED"
  858:   >
  859: 
  860: <!ELEMENT table
  861:      (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
  862: <!ELEMENT caption  %Inline;>
  863: <!ELEMENT thead    (tr)+>
  864: <!ELEMENT tfoot    (tr)+>
  865: <!ELEMENT tbody    (tr)+>
  866: <!ELEMENT colgroup (col)*>
  867: <!ELEMENT col      EMPTY>
  868: <!ELEMENT tr       (th|td)+>
  869: <!ELEMENT th       %Flow;>
  870: <!ELEMENT td       %Flow;>
  871: 
  872: <!ATTLIST table
  873:   %attrs;
  874:   summary     %Text;         #IMPLIED
  875:   width       %Length;       #IMPLIED
  876:   border      %Pixels;       #IMPLIED
  877:   frame       %TFrame;       #IMPLIED
  878:   rules       %TRules;       #IMPLIED
  879:   cellspacing %Length;       #IMPLIED
  880:   cellpadding %Length;       #IMPLIED
  881:   >
  882: 
  883: <!ENTITY % CAlign "(top|bottom|left|right)">
  884: 
  885: <!ATTLIST caption
  886:   %attrs;
  887:   >
  888: 
  889: <!--
  890: colgroup groups a set of col elements. It allows you to group
  891: several semantically related columns together.
  892: -->
  893: <!ATTLIST colgroup
  894:   %attrs;
  895:   span        %Number;       "1"
  896:   width       %MultiLength;  #IMPLIED
  897:   %cellhalign;
  898:   %cellvalign;
  899:   >
  900: 
  901: <!--
  902:  col elements define the alignment properties for cells in
  903:  one or more columns.
  904: 
  905:  The width attribute specifies the width of the columns, e.g.
  906: 
  907:      width=64        width in screen pixels
  908:      width=0.5*      relative width of 0.5
  909: 
  910:  The span attribute causes the attributes of one
  911:  col element to apply to more than one column.
  912: -->
  913: <!ATTLIST col
  914:   %attrs;
  915:   span        %Number;       "1"
  916:   width       %MultiLength;  #IMPLIED
  917:   %cellhalign;
  918:   %cellvalign;
  919:   >
  920: 
  921: <!--
  922:     Use thead to duplicate headers when breaking table
  923:     across page boundaries, or for static headers when
  924:     tbody sections are rendered in scrolling panel.
  925: 
  926:     Use tfoot to duplicate footers when breaking table
  927:     across page boundaries, or for static footers when
  928:     tbody sections are rendered in scrolling panel.
  929: 
  930:     Use multiple tbody sections when rules are needed
  931:     between groups of table rows.
  932: -->
  933: <!ATTLIST thead
  934:   %attrs;
  935:   %cellhalign;
  936:   %cellvalign;
  937:   >
  938: 
  939: <!ATTLIST tfoot
  940:   %attrs;
  941:   %cellhalign;
  942:   %cellvalign;
  943:   >
  944: 
  945: <!ATTLIST tbody
  946:   %attrs;
  947:   %cellhalign;
  948:   %cellvalign;
  949:   >
  950: 
  951: <!ATTLIST tr
  952:   %attrs;
  953:   %cellhalign;
  954:   %cellvalign;
  955:   >
  956: 
  957: 
  958: <!-- Scope is simpler than headers attribute for common tables -->
  959: <!ENTITY % Scope "(row|col|rowgroup|colgroup)">
  960: 
  961: <!-- th is for headers, td for data and for cells acting as both -->
  962: 
  963: <!ATTLIST th
  964:   %attrs;
  965:   abbr        %Text;         #IMPLIED
  966:   axis        CDATA          #IMPLIED
  967:   headers     IDREFS         #IMPLIED
  968:   scope       %Scope;        #IMPLIED
  969:   rowspan     %Number;       "1"
  970:   colspan     %Number;       "1"
  971:   %cellhalign;
  972:   %cellvalign;
  973:   >
  974: 
  975: <!ATTLIST td
  976:   %attrs;
  977:   abbr        %Text;         #IMPLIED
  978:   axis        CDATA          #IMPLIED
  979:   headers     IDREFS         #IMPLIED
  980:   scope       %Scope;        #IMPLIED
  981:   rowspan     %Number;       "1"
  982:   colspan     %Number;       "1"
  983:   %cellhalign;
  984:   %cellvalign;
  985:   >
  986: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>