home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1999 November / PCONLINE_11_99.ISO / filesbbs / OS2 / APCHSSL2.ZIP / OS2HTTPD / public / htdocs / xml / xsl-html.dtd < prev   
Encoding:
Extensible Markup Language  |  1999-02-15  |  39.5 KB  |  1,445 lines

  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <!-- 
  3.      XSL (WD-19981216) DTD and HTML 4.0 Strict (REC-HTML40-19980424) DTD
  4.      This DTD allows for a XSL Stylesheet with a result-ns of html
  5.  
  6.      Credits:
  7.        Original XML DTD for HTML40 Strict by 
  8.          TAMURA, Kent <kent@trl.ibm.co.jp>, for IBM's XML4J package
  9.        Original XSL DTD from W3C XSL WD-19981216
  10.        HTML/XSL mixing by
  11.          Henrique M. Holschuh
  12.  
  13.      Caveats: It is possible to generate invalid XSL and HTML documents 
  14.      using this DTD, as the result-ns elements (HTML) must allow all possible 
  15.      xsl elements as content, and all result-ns elements had to be relaxed on
  16.      their element content rules.
  17.  
  18.      TODO:
  19.        Optimize by removing all unneeded parameter entities
  20.        Make sure errors have not been introduced during mixing
  21.        Fix the comment mess in the HTML portion
  22.  
  23.      $Id$
  24. -->
  25.  
  26. <!-- Predefined XML (REC-xml-19980210) entities -->
  27. <!ENTITY lt     "&#60;">
  28. <!ENTITY gt     ">">
  29. <!ENTITY amp    "&#38;">
  30. <!ENTITY apos   "'">
  31. <!ENTITY quot   """>
  32.  
  33. <!-- 
  34.   Result elements allowed (inside xsl elements). These are actually
  35.   all of the HTML40 Strict elements. 
  36. -->
  37.  
  38. <!ENTITY % result-elements "
  39.   | TT
  40.   | I
  41.   | B
  42.   | BIG
  43.   | SMALL
  44.   | EM
  45.   | STRONG
  46.   | DFN
  47.   | CODE
  48.   | SAMP
  49.   | KBD
  50.   | VAR
  51.   | CITE
  52.   | ABBR
  53.   | ACRONYM
  54.   | SUP
  55.   | SUB
  56.   | SPAN
  57.   | BDO
  58.   | BR
  59.   | BODY
  60.   | ADDRESS
  61.   | DIV
  62.   | A
  63.   | MAP
  64.   | AREA
  65.   | LINK
  66.   | IMG
  67.   | OBJECT
  68.   | PARAM
  69.   | HR
  70.   | P
  71.   | H1
  72.   | H2
  73.   | H3
  74.   | H4
  75.   | H5
  76.   | H6
  77.   | PRE
  78.   | Q
  79.   | BLOCKQUOTE
  80.   | INS
  81.   | DEL
  82.   | DL
  83.   | DT
  84.   | DD
  85.   | OL
  86.   | UL
  87.   | LI
  88.   | FORM
  89.   | LABEL
  90.   | INPUT
  91.   | SELECT
  92.   | OPTGROUP
  93.   | OPTION
  94.   | TEXTAREA
  95.   | FIELDSET
  96.   | LEGEND
  97.   | BUTTON
  98.   | TABLE
  99.   | CAPTION
  100.   | THEAD
  101.   | TFOOT
  102.   | TBODY
  103.   | COLGROUP
  104.   | COL
  105.   | TR
  106.   | TH
  107.   | TD
  108.   | HEAD
  109.   | TITLE
  110.   | BASE
  111.   | META
  112.   | STYLE
  113.   | SCRIPT
  114.   | NOSCRIPT
  115.   | HTML
  116. ">
  117.  
  118. <!ENTITY % instructions "
  119.   | xsl:apply-templates
  120.   | xsl:apply-imports
  121.   | xsl:for-each
  122.   | xsl:value-of
  123.   | xsl:number
  124.   | xsl:counter
  125.   | xsl:counters
  126.   | xsl:counter-increment
  127.   | xsl:counter-reset
  128.   | xsl:counter-scope
  129.   | xsl:choose
  130.   | xsl:if
  131.   | xsl:contents
  132.   | xsl:invoke
  133.   | xsl:text
  134.   | xsl:pi
  135.   | xsl:comment
  136.   | xsl:element
  137.   | xsl:attribute
  138.   | xsl:use
  139.   | xsl:copy
  140. ">
  141.  
  142. <!ENTITY % template "
  143.  (#PCDATA
  144.   %instructions;
  145.   %result-elements;)*
  146. ">
  147.  
  148. <!ENTITY % space-att "xml:space (default|preserve) #IMPLIED">
  149.  
  150. <!ELEMENT xsl:stylesheet
  151.  (xsl:import*,
  152.   (xsl:include
  153.   | xsl:id
  154.   | xsl:strip-space
  155.   | xsl:preserve-space
  156.   | xsl:macro
  157.   | xsl:attribute-set
  158.   | xsl:constant
  159.   | xsl:template)*)
  160. >
  161.  
  162. <!ATTLIST xsl:stylesheet
  163.   result-ns CDATA #IMPLIED
  164.   default-space (preserve|strip) "preserve"
  165.   indent-result (yes|no) "no"
  166.   id ID #IMPLIED
  167.   xmlns:xsl CDATA #FIXED "http://www.w3.org/TR/WD-xsl"
  168.   xmlns:html CDATA #FIXED "http://www.w3.org/TR/REC-html40"
  169.   xmlns CDATA #FIXED "http://www.w3.org/TR/REC-html40"
  170.   %space-att;
  171. >
  172.  
  173. <!-- Used for attribute values that are URIs.-->
  174. <!ENTITY % URI "CDATA">
  175.  
  176. <!-- Used for attribute values that are patterns.-->
  177. <!ENTITY % pattern "CDATA">
  178.  
  179. <!-- Used for attribute values that are a priority. -->
  180. <!ENTITY % priority "NMTOKEN">
  181.  
  182. <!ELEMENT xsl:import EMPTY>
  183. <!ATTLIST xsl:import href %URI; #REQUIRED>
  184.  
  185. <!ELEMENT xsl:include EMPTY>
  186. <!ATTLIST xsl:include href %URI; #REQUIRED>
  187.  
  188. <!ELEMENT xsl:id EMPTY>
  189. <!ATTLIST xsl:id
  190.   attribute NMTOKEN #REQUIRED
  191.   element NMTOKEN #IMPLIED
  192. >
  193.  
  194. <!ELEMENT xsl:strip-space EMPTY>
  195. <!ATTLIST xsl:strip-space element NMTOKEN #REQUIRED>
  196.  
  197. <!ELEMENT xsl:preserve-space EMPTY>
  198. <!ATTLIST xsl:preserve-space element NMTOKEN #REQUIRED>
  199.  
  200. <!ELEMENT xsl:template %template;>
  201. <!ATTLIST xsl:template
  202.   match %pattern; #REQUIRED
  203.   priority %priority; #IMPLIED
  204.   mode NMTOKEN #IMPLIED
  205.   %space-att;
  206. >
  207.  
  208. <!ELEMENT xsl:value-of EMPTY>
  209. <!ATTLIST xsl:value-of select CDATA #IMPLIED>
  210.  
  211. <!ENTITY % conversion-atts '
  212.    format CDATA "1"
  213.    xml:lang NMTOKEN #IMPLIED
  214.    letter-value (alphabetic|other) #IMPLIED
  215.    digit-group-sep CDATA #IMPLIED
  216.    n-digits-per-group NMTOKEN #IMPLIED
  217.    sequence-src %URI; #IMPLIED
  218. '>
  219.  
  220. <!ELEMENT xsl:number EMPTY>
  221. <!ATTLIST xsl:number
  222.    level (single|multi|any) "single"
  223.    count CDATA #IMPLIED
  224.    from CDATA #IMPLIED
  225.    %conversion-atts;
  226. >
  227.  
  228. <!ELEMENT xsl:counter EMPTY>
  229. <!ATTLIST xsl:counter
  230.   name NMTOKEN #REQUIRED
  231.   %conversion-atts;
  232. >
  233.  
  234. <!ELEMENT xsl:counters EMPTY>
  235. <!ATTLIST xsl:counters
  236.   name NMTOKEN #REQUIRED
  237.   %conversion-atts;
  238. >
  239.  
  240. <!ELEMENT xsl:counter-increment EMPTY>
  241. <!ATTLIST xsl:counter-increment
  242.   name NMTOKEN #REQUIRED
  243.   amount NMTOKEN #IMPLIED
  244. >
  245.  
  246. <!ELEMENT xsl:counter-reset EMPTY>
  247. <!ATTLIST xsl:counter-reset
  248.   name NMTOKEN #REQUIRED
  249.   value NMTOKEN #IMPLIED
  250. >
  251.  
  252. <!ELEMENT xsl:counter-scope %template;>
  253. <!ATTLIST xsl:counter-scope %space-att;>
  254.  
  255. <!ELEMENT xsl:apply-templates (xsl:sort*)>
  256. <!ATTLIST xsl:apply-templates
  257.   select %pattern; #IMPLIED
  258.   mode NMTOKEN #IMPLIED
  259. >
  260.  
  261. <!ELEMENT xsl:apply-imports EMPTY>
  262.  
  263. <!-- xsl:sort cannot occur after any other elements or
  264. any non-whitespace character -->
  265.  
  266. <!ELEMENT xsl:for-each
  267.  (#PCDATA
  268.   %instructions;
  269.   %result-elements;
  270.   | xsl:sort)*
  271. >
  272.  
  273. <!ATTLIST xsl:for-each
  274.   select %pattern; #REQUIRED
  275.   %space-att;
  276. >
  277.  
  278. <!ELEMENT xsl:sort EMPTY>
  279. <!ATTLIST xsl:sort
  280.   select %pattern; "."
  281.   lang CDATA #IMPLIED
  282.   data-type (text|number) "text"
  283.   order (ascending|descending) "ascending"
  284.   case-order (upper-first|lower-first) #IMPLIED
  285. >
  286.  
  287. <!ELEMENT xsl:if %template;>
  288. <!ATTLIST xsl:if
  289.   test %pattern; #REQUIRED
  290.   %space-att;
  291. >
  292.  
  293. <!ELEMENT xsl:choose (xsl:when+, xsl:otherwise?)>
  294. <!ATTLIST xsl:choose %space-att;>
  295.  
  296. <!ELEMENT xsl:when %template;>
  297. <!ATTLIST xsl:when
  298.   test %pattern; #REQUIRED
  299.   %space-att;
  300. >
  301.  
  302. <!ELEMENT xsl:otherwise %template;>
  303. <!ATTLIST xsl:otherwise %space-att;>
  304.  
  305. <!ELEMENT xsl:attribute-set (xsl:attribute|xsl:use)*>
  306. <!ATTLIST xsl:attribute-set
  307.   name NMTOKEN #REQUIRED
  308. >
  309.  
  310. <!ELEMENT xsl:constant EMPTY>
  311. <!ATTLIST xsl:constant 
  312.   name NMTOKEN #REQUIRED
  313.   value CDATA #REQUIRED
  314. >
  315.  
  316. <!-- xsl:macro-arg cannot occur after any other elements or
  317. any non-whitespace character -->
  318.  
  319. <!ELEMENT xsl:macro
  320.  (#PCDATA
  321.   %instructions;
  322.   %result-elements;
  323.   | xsl:macro-arg)*
  324. >
  325.  
  326. <!ATTLIST xsl:macro
  327.   name NMTOKEN #REQUIRED
  328.   %space-att;
  329. >
  330.  
  331. <!ELEMENT xsl:macro-arg EMPTY>
  332. <!ATTLIST xsl:macro-arg
  333.   name NMTOKEN #REQUIRED
  334.   default CDATA #IMPLIED
  335. >
  336.  
  337. <!-- This is allowed only within xsl:macro -->
  338. <!ELEMENT xsl:contents EMPTY>
  339.  
  340. <!-- xsl:arg cannot occur after any other elements or
  341. any non-whitespace character -->
  342.  
  343. <!ELEMENT xsl:invoke
  344.  (#PCDATA
  345.   %instructions;
  346.   %result-elements;
  347.   | xsl:arg)*
  348. >
  349.  
  350. <!ATTLIST xsl:invoke
  351.   macro NMTOKEN #REQUIRED
  352.   %space-att;
  353. >
  354.  
  355. <!ELEMENT xsl:arg EMPTY>
  356. <!ATTLIST xsl:arg
  357.   name NMTOKEN #REQUIRED
  358.   value CDATA #REQUIRED
  359. >
  360.  
  361. <!ELEMENT xsl:text (#PCDATA)>
  362. <!ATTLIST xsl:text %space-att;>
  363.  
  364. <!ELEMENT xsl:pi %template;>
  365. <!ATTLIST xsl:pi 
  366.   name CDATA #REQUIRED
  367.   %space-att;
  368. >
  369.  
  370. <!ELEMENT xsl:element %template;>
  371. <!ATTLIST xsl:element 
  372.   name CDATA #REQUIRED
  373.   %space-att;
  374. >
  375.  
  376. <!ELEMENT xsl:attribute %template;>
  377. <!ATTLIST xsl:attribute 
  378.   name CDATA #REQUIRED
  379.   %space-att;
  380. >
  381.  
  382. <!ELEMENT xsl:use EMPTY>
  383. <!ATTLIST xsl:use attribute-set NMTOKEN #REQUIRED>
  384.  
  385. <!ELEMENT xsl:comment %template;>
  386. <!ATTLIST xsl:comment %space-att;>
  387.  
  388. <!ELEMENT xsl:copy %template;>
  389. <!ATTLIST xsl:copy %space-att;>
  390.  
  391.  
  392. <!-- ######################################################################## -->
  393. <!--   HTML 4.0 Strict DTD   (revised to allow for xsl content)               -->
  394. <!--   Original DTD from XML4J package                                        -->
  395. <!--   Original SGML to XML conversion by TAMURA, Kent for IBM's XML4J        -->
  396.  
  397. <!-- 
  398.      Container for all xsl elements allowed inside result-elements elements,
  399.      i.e.: all xsl elements which are valid where a result-element is valid,
  400.      and therefore must be valid inside ALL non-empty HTML elements.
  401.  
  402.      You'll notice this does allow the user to create invalid XSL documents.
  403. -->
  404.  
  405. <!ENTITY % xsl-valid-in-resultns "
  406.   xsl:sort
  407.   | xsl:macro-arg
  408.   | xsl:arg
  409.   %instructions;
  410. ">
  411.  
  412.  
  413. <!-- Revision: 23 1.3 docs/data/HTML40strict.xml.dtd, xml4jdocs, xml4j-jtcsv, xml4j_1_1_9  -->
  414.  
  415. <!--
  416.     This is HTML 4.0 Strict DTD, which excludes the presentation 
  417.     attributes and elements that W3C expects to phase out as 
  418.     support for style sheets matures. Authors should use the Strict
  419.     DTD when possible, but may use the Transitional DTD when support
  420.     for presentation attribute and elements is required.
  421.     
  422.     HTML 4.0 includes mechanisms for style sheets, scripting,
  423.     embedding objects, improved support for right to left and mixed
  424.     direction text, and enhancements to forms for improved
  425.     accessibility for people with disabilities.
  426.  
  427.           Draft: $Date: 1999/01/17 19:40:31 $
  428.  
  429.           Authors:
  430.               Dave Raggett <dsr@w3.org>
  431.               Arnaud Le Hors <lehors@w3.org>
  432.               Ian Jacobs <ij@w3.org>
  433.  
  434.     Further information about HTML 4.0 is available at:
  435.  
  436.         http://www.w3.org/TR/REC-html40
  437. -->
  438.  
  439. <!--
  440.     ================================================================
  441.     Modified for XML 1.0 by:
  442.     "TAMURA, Kent" <kent@trl.ibm.co.jp>
  443.  
  444.     o HTMLspecial, HTMLsymbol, HTMLlat1 aren't included in this DTD.
  445.     o The `lang' attribute was renamed to `xml:lang'.
  446.  
  447.  
  448.     Typical usage:
  449.  
  450.     <?xml version="1.0" encoding="..."?>
  451.     <!DOCTYPE HTML SYSTEM ".../HTML40strict.xml.dtd">
  452.     <HTML>
  453.       <HEAD>
  454.         ...
  455.         <TITLE>...</TITLE>
  456.         ...
  457.       </HEAD>
  458.       <BODY>
  459.         ...
  460.       </BODY>
  461.     </HTML>
  462.  
  463.     Note: XML is case-sensitive.  So element names must be written
  464.     in uppercase and attribute names must be written in lowercase.
  465.     ================================================================
  466. -->
  467.  
  468. <!--
  469.     Typical usage:
  470.  
  471.     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
  472.             "http://www.w3.org/TR/REC-html40/strict.dtd">
  473.     <html>
  474.     <head>
  475.     ...
  476.     </head>
  477.     <body>
  478.     ...
  479.     </body>
  480.     </html>
  481.  
  482.     The URI used as a system identifier with the public identifier allows
  483.     the user agent to download the DTD and entity sets as needed.
  484.  
  485.     The FPI for the Transitional HTML 4.0 DTD is:
  486.  
  487.         "-//W3C//DTD HTML 4.0 Transitional//EN"
  488.  
  489.     and its URI is:
  490.  
  491.         http://www.w3.org/TR/REC-html40/loose.dtd
  492.  
  493.     If you are writing a document that includes frames, use 
  494.     the following FPI:
  495.  
  496.         "-//W3C//DTD HTML 4.0 Frameset//EN"
  497.  
  498.     with the URI:
  499.  
  500.         http://www.w3.org/TR/REC-html40/frameset.dtd
  501.  
  502.     The following URIs are supported in relation to HTML 4.0
  503.  
  504.     "http://www.w3.org/TR/REC-html40/strict.dtd" (Strict DTD)
  505.     "http://www.w3.org/TR/REC-html40/loose.dtd" (Loose DTD)
  506.     "http://www.w3.org/TR/REC-html40/frameset.dtd" (Frameset DTD)
  507.     "http://www.w3.org/TR/REC-html40/HTMLlat1.ent" (Latin-1 entities)
  508.     "http://www.w3.org/TR/REC-html40/HTMLsymbol.ent" (Symbol entities)
  509.     "http://www.w3.org/TR/REC-html40/HTMLspecial.ent" (Special entities)
  510.  
  511.     These URIs point to the latest version of each file. To reference
  512.     this specific revision use the following URIs:
  513.  
  514.     "http://www.w3.org/TR/REC-html40-971218/strict.dtd"
  515.     "http://www.w3.org/TR/REC-html40-971218/loose.dtd"
  516.     "http://www.w3.org/TR/REC-html40-971218/frameset.dtd"
  517.     "http://www.w3.org/TR/REC-html40-971218/HTMLlat1.ent"
  518.     "http://www.w3.org/TR/REC-html40-971218/HTMLsymbol.ent"
  519.     "http://www.w3.org/TR/REC-html40-971218/HTMLspecial.ent"
  520.  
  521. -->
  522.  
  523. <!--=== for XML ===-->
  524. <!ENTITY % Number "CDATA">
  525. <!ENTITY % Name "NMTOKEN">
  526.  
  527.  
  528. <!--================== Imported Names ====================================-->
  529.  
  530. <!ENTITY % ContentType "CDATA"
  531. > <!-- media type, as per [RFC2045]
  532.     -->
  533.  
  534. <!ENTITY % ContentTypes "CDATA"
  535. > <!-- comma-separated list of media types, as per [RFC2045]
  536.     -->
  537.  
  538. <!ENTITY % Charset "CDATA"
  539. > <!-- a character encoding, as per [RFC2045]
  540.     -->
  541.  
  542. <!ENTITY % Charsets "CDATA"
  543. > <!-- a space separated list of character encodings, as per [RFC2045]
  544.     -->
  545.  
  546. <!ENTITY % LanguageCode "NMTOKEN"
  547. > <!-- a language code, as per [RFC1766]
  548.     -->
  549.  
  550. <!ENTITY % Character "CDATA"
  551. > <!-- a single character from [ISO10646] 
  552.     -->
  553.  
  554. <!ENTITY % LinkTypes "CDATA"
  555. > <!-- space-separated list of link types
  556.     -->
  557.  
  558. <!ENTITY % MediaDesc "CDATA"
  559. > <!-- single or comma-separated list of media descriptors
  560.     -->
  561.  
  562. <!-- Defined elsewhere in this DTD
  563. <!ENTITY % URI "CDATA"
  564. > <! a Uniform Resource Identifier,
  565.        see [URI]
  566.     -->
  567.  
  568. <!ENTITY % Datetime "CDATA"><!-- date and time information. ISO date format -->
  569.  
  570.  
  571. <!ENTITY % Script "CDATA"><!-- script expression -->
  572.  
  573. <!ENTITY % StyleSheet "CDATA"><!-- style sheet data -->
  574.  
  575.  
  576.  
  577. <!ENTITY % Text "CDATA">
  578.  
  579.  
  580. <!-- Parameter Entities -->
  581.  
  582. <!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|OBJECT"><!-- repeatable head elements -->
  583. <!ENTITY % heading "H1|H2|H3|H4|H5|H6">
  584. <!ENTITY % list "UL | OL">
  585. <!ENTITY % preformatted "PRE">
  586.  
  587.  
  588. <!--================ Character mnemonic entities =========================-->
  589.  
  590. <!--ENTITY % HTMLlat1 PUBLIC
  591.    "-//W3C//ENTITIES Latin1//EN//HTML"
  592.    "HTMLlat1.ent"-->
  593. <!--   "http://www.w3.org/TR/REC-html40-971218/HTMLlat1.ent"-->
  594. <!--%HTMLlat1;-->
  595.  
  596. <!--ENTITY % HTMLsymbol PUBLIC
  597.    "-//W3C//ENTITIES Symbols//EN//HTML"
  598.    "HTMLsymbol.ent"-->
  599. <!--   "http://www.w3.org/TR/REC-html40-971218/HTMLsymbol.ent"-->
  600. <!--%HTMLsymbol;-->
  601.  
  602. <!--ENTITY % HTMLspecial PUBLIC
  603.    "-//W3C//ENTITIES Special//EN//HTML"
  604.    "HTMLspecial.ent"-->
  605. <!--   "http://www.w3.org/TR/REC-html40-971218/HTMLspecial.ent"-->
  606. <!--%HTMLspecial;-->
  607.  
  608. <!-- We define these elsewhere in this mixed DTD
  609. <!ENTITY quot """>
  610. <!ENTITY amp  "&">
  611. <!ENTITY lt   "<">
  612. <!ENTITY gt   ">">
  613. -->
  614.  
  615. <!--=================== Generic Attributes ===============================-->
  616.  
  617. <!ENTITY % coreattrs
  618.  "id          ID             #IMPLIED
  619.   class       CDATA          #IMPLIED
  620.   style       %StyleSheet;   #IMPLIED
  621.   title       %Text;         #IMPLIED"
  622.   >
  623.  
  624. <!ENTITY % i18n
  625.  "xml:lang    %LanguageCode; #IMPLIED
  626.   dir         (ltr|rtl)      #IMPLIED"
  627.   >
  628.  
  629. <!ENTITY % events
  630.  "onclick     %Script;       #IMPLIED
  631.   ondblclick  %Script;       #IMPLIED
  632.   onmousedown %Script;       #IMPLIED
  633.   onmouseup   %Script;       #IMPLIED
  634.   onmouseover %Script;       #IMPLIED
  635.   onmousemove %Script;       #IMPLIED
  636.   onmouseout  %Script;       #IMPLIED
  637.   onkeypress  %Script;       #IMPLIED
  638.   onkeydown   %Script;       #IMPLIED
  639.   onkeyup     %Script;       #IMPLIED"
  640.   >
  641.  
  642. <!-- Reserved Feature Switch -->
  643. <!ENTITY % HTML.Reserved "IGNORE">
  644.  
  645. <!-- The following attributes are reserved for possible future use -->
  646. <![ %HTML.Reserved; [
  647. <!ENTITY % reserved
  648.  "datasrc     %URI;          #IMPLIED
  649.   datafld     CDATA          #IMPLIED
  650.   dataformatas (plaintext|html) plaintext"
  651.   >
  652. ]]>
  653.  
  654. <!ENTITY % reserved "">
  655.  
  656. <!ENTITY % attrs "%coreattrs; %i18n; %events;">
  657.  
  658.  
  659. <!--=================== Text Markup ======================================-->
  660.  
  661. <!ENTITY % fontstyle
  662.  "TT | I | B | BIG | SMALL">
  663.  
  664. <!ENTITY % phrase "EM | STRONG | DFN | CODE |
  665.                    SAMP | KBD | VAR | CITE | ABBR | ACRONYM" >
  666.  
  667. <!ENTITY % special
  668.    "A | IMG | OBJECT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO">
  669. <!ENTITY % special-A
  670.    "IMG | OBJECT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO">
  671.  
  672. <!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON">
  673.  
  674. <!-- %inline; covers inline or "text-level" elements -->
  675. <!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">
  676. <!ENTITY % inline-A "#PCDATA | %fontstyle; | %phrase; | %special-A; | %formctrl;">
  677. <!ENTITY % inline-LABEL "#PCDATA | %fontstyle; | %phrase; | %special; | INPUT | SELECT | TEXTAREA | BUTTON">
  678.  
  679. <!--
  680. <!ELEMENT (%fontstyle;|%phrase;)     (%inline;)*>
  681. <!ATTLIST (%fontstyle;|%phrase;)
  682.   %attrs;
  683.   >-->
  684. <!ELEMENT TT (%inline; | %xsl-valid-in-resultns;)*>
  685. <!ATTLIST TT %attrs;>
  686. <!ELEMENT I (%inline; | %xsl-valid-in-resultns;)*>
  687. <!ATTLIST I %attrs;>
  688. <!ELEMENT B (%inline; | %xsl-valid-in-resultns;)*>
  689. <!ATTLIST B %attrs;>
  690. <!ELEMENT BIG (%inline; | %xsl-valid-in-resultns;)*>
  691. <!ATTLIST BIG %attrs;>
  692. <!ELEMENT SMALL (%inline; | %xsl-valid-in-resultns;)*>
  693. <!ATTLIST SMALL %attrs;>
  694. <!ELEMENT EM (%inline; | %xsl-valid-in-resultns;)*>
  695. <!ATTLIST EM %attrs;>
  696. <!ELEMENT STRONG (%inline; | %xsl-valid-in-resultns;)*>
  697. <!ATTLIST STRONG %attrs;>
  698. <!ELEMENT DFN (%inline; | %xsl-valid-in-resultns;)*>
  699. <!ATTLIST DFN %attrs;>
  700. <!ELEMENT CODE (%inline; | %xsl-valid-in-resultns;)*>
  701. <!ATTLIST CODE %attrs;>
  702. <!ELEMENT SAMP (%inline; | %xsl-valid-in-resultns;)*>
  703. <!ATTLIST SAMP %attrs;>
  704. <!ELEMENT KBD (%inline; | %xsl-valid-in-resultns;)*>
  705. <!ATTLIST KBD %attrs;>
  706. <!ELEMENT VAR (%inline; | %xsl-valid-in-resultns;)*>
  707. <!ATTLIST VAR %attrs;>
  708. <!ELEMENT CITE (%inline; | %xsl-valid-in-resultns;)*>
  709. <!ATTLIST CITE %attrs;>
  710. <!ELEMENT ABBR (%inline; | %xsl-valid-in-resultns;)*>
  711. <!ATTLIST ABBR %attrs;>
  712. <!ELEMENT ACRONYM (%inline; | %xsl-valid-in-resultns;)*>
  713. <!ATTLIST ACRONYM %attrs;>
  714.  
  715.  
  716. <!ELEMENT SUP (%inline; | %xsl-valid-in-resultns;)*><!-- subscript, superscript -->
  717. <!ATTLIST SUP
  718.   %attrs;
  719.   >
  720. <!ELEMENT SUB (%inline; | %xsl-valid-in-resultns;)*><!-- subscript, superscript -->
  721. <!ATTLIST SUB
  722.   %attrs;
  723.   >
  724.  
  725. <!ELEMENT SPAN (%inline; | %xsl-valid-in-resultns;)*><!-- generic language/style container -->
  726. <!ATTLIST SPAN
  727.   %attrs;
  728.   %reserved;            
  729.   >
  730.  
  731. <!ELEMENT BDO (%inline; | %xsl-valid-in-resultns;)*><!-- I18N BiDi over-ride -->
  732. <!ATTLIST BDO
  733.   %coreattrs;
  734.   lang        %LanguageCode; #IMPLIED
  735.   dir         (ltr|rtl)      #REQUIRED
  736.   >
  737.  
  738.  
  739. <!ELEMENT BR     EMPTY><!-- forced line break -->
  740. <!ATTLIST BR
  741.   %coreattrs;
  742.   >
  743.  
  744. <!--================== HTML content models ===============================-->
  745.  
  746. <!--
  747.     HTML has two basic content models:
  748.  
  749.         %inline;     character level elements and text strings
  750.         %block;      block-like elements e.g. paragraphs and lists
  751. -->
  752.  
  753. <!ENTITY % block
  754.      "P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT |
  755.       BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">
  756. <!ENTITY % block-FORM
  757.      "P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT |
  758.       BLOCKQUOTE | HR | TABLE | FIELDSET | ADDRESS">
  759. <!ENTITY % block-FORM-FIELDSET
  760.      "P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT |
  761.       BLOCKQUOTE | HR | TABLE | ADDRESS">
  762.  
  763. <!--<!ENTITY % flow "%block; | %inline;">-->
  764. <!ENTITY % flow "%inline; | %block;">
  765.  
  766. <!--=================== Document Body ====================================-->
  767.  
  768. <!--ELEMENT BODY     (%block;|SCRIPT)+ +(INS|DEL)  document body -->
  769. <!ELEMENT BODY ((INS|DEL)*, (%xsl-valid-in-resultns;|%block;|SCRIPT), (INS|DEL)*)+ ><!-- document body -->
  770. <!ATTLIST BODY
  771.   %attrs;
  772.   onload          %Script;   #IMPLIED
  773.   onunload        %Script;   #IMPLIED
  774.   >
  775.  
  776. <!ELEMENT ADDRESS (%inline; | %xsl-valid-in-resultns;)*><!-- information on author -->
  777. <!ATTLIST ADDRESS
  778.   %attrs;
  779.   >
  780.  
  781. <!ELEMENT DIV (%flow; | %xsl-valid-in-resultns;)*><!-- generic language/style container -->
  782. <!ATTLIST DIV
  783.   %attrs;
  784.   %reserved;
  785.   >
  786.  
  787.  
  788. <!--================== The Anchor Element ================================-->
  789.  
  790. <!ENTITY % Shape "(rect|circle|poly|default)">
  791. <!ENTITY % Coords "CDATA"><!-- comma separated list of lengths -->
  792.  
  793. <!ELEMENT A (%inline-A; | %xsl-valid-in-resultns;)*><!-- anchor -->
  794. <!ATTLIST A
  795.   %attrs;
  796.   charset     %Charset;      #IMPLIED
  797.   type        %ContentType;  #IMPLIED
  798.   name        CDATA          #IMPLIED
  799.   href        %URI;          #IMPLIED
  800.   hreflang    %LanguageCode; #IMPLIED
  801.   rel         %LinkTypes;    #IMPLIED
  802.   rev         %LinkTypes;    #IMPLIED
  803.   accesskey   %Character;    #IMPLIED
  804.   shape       %Shape;        "rect"
  805.   coords      %Coords;       #IMPLIED
  806.   tabindex    %Number;       #IMPLIED
  807.   onfocus     %Script;       #IMPLIED
  808.   onblur      %Script;       #IMPLIED
  809.   >
  810.  
  811. <!--================== Client-side image maps ============================-->
  812.  
  813. <!-- These can be placed in the same document or grouped in a
  814.      separate document although this isn't yet widely supported -->
  815.  
  816. <!ELEMENT MAP  ((%xsl-valid-in-resultns;|%block;)+ | (%xsl-valid-in-resultns;|AREA+))><!-- client-side image map -->
  817. <!ATTLIST MAP
  818.   %attrs;
  819.   name        CDATA          #REQUIRED
  820.   >
  821.  
  822. <!ELEMENT AREA     EMPTY><!-- client-side image map area -->
  823. <!ATTLIST AREA
  824.   %attrs;
  825.   shape       %Shape;        "rect"
  826.   coords      %Coords;       #IMPLIED
  827.   href        %URI;          #IMPLIED
  828.   nohref      (nohref)       #IMPLIED
  829.   alt         %Text;         #REQUIRED
  830.   tabindex    %Number;       #IMPLIED
  831.   accesskey   %Character;    #IMPLIED
  832.   onfocus     %Script;       #IMPLIED
  833.   onblur      %Script;       #IMPLIED
  834.   >
  835.  
  836. <!--================== The LINK Element ==================================-->
  837.  
  838. <!--
  839.   Relationship values can be used in principle:
  840.  
  841.    a) for document specific toolbars/menus when used
  842.       with the LINK element in document head e.g.
  843.         start, contents, previous, next, index, end, help
  844.    b) to link to a separate style sheet (rel=stylesheet)
  845.    c) to make a link to a script (rel=script)
  846.    d) by stylesheets to control how collections of
  847.       html nodes are rendered into printed documents
  848.    e) to make a link to a printable version of this document
  849.       e.g. a postscript or pdf version (rel=alternate media=print)
  850. -->
  851.  
  852. <!ELEMENT LINK     EMPTY><!-- a media-independent link -->
  853. <!ATTLIST LINK
  854.   %attrs;
  855.   charset     %Charset;      #IMPLIED
  856.   href        %URI;          #IMPLIED
  857.   hreflang    %LanguageCode; #IMPLIED
  858.   type        %ContentType;  #IMPLIED
  859.   rel         %LinkTypes;    #IMPLIED
  860.   rev         %LinkTypes;    #IMPLIED
  861.   media       %MediaDesc;    #IMPLIED
  862.   >
  863.  
  864. <!--=================== Images ===========================================-->
  865.  
  866. <!-- Length defined in strict DTD for cellpadding/cellspacing -->
  867. <!ENTITY % Length "CDATA"><!-- nn for pixels or nn% for percentage length -->
  868. <!ENTITY % MultiLength "CDATA"><!-- pixel, percentage, or relative -->
  869.  
  870. <!ENTITY % MultiLengths "CDATA"><!-- comma-separated list of MultiLength -->
  871.  
  872. <!ENTITY % Pixels "CDATA"><!-- integer representing length in pixels -->
  873.  
  874.  
  875. <!-- To avoid problems with text-only UAs as well as 
  876.    to make image content understandable and navigable 
  877.    to users of non-visual UAs, you need to provide
  878.    a description with ALT, and avoid server-side image maps -->
  879. <!ELEMENT IMG     EMPTY><!-- Embedded image -->
  880. <!ATTLIST IMG
  881.   %attrs;
  882.   src         %URI;          #REQUIRED
  883.   alt         %Text;         #REQUIRED
  884.   longdesc    %URI;          #IMPLIED
  885.   height      %Length;       #IMPLIED
  886.   width       %Length;       #IMPLIED
  887.   usemap      %URI;          #IMPLIED
  888.   ismap       (ismap)        #IMPLIED
  889.   >
  890.  
  891. <!-- USEMAP points to a MAP element which may be in this document
  892.   or an external document, although the latter is not widely supported -->
  893.  
  894. <!--==================== OBJECT ======================================-->
  895. <!--
  896.   OBJECT is used to embed objects as part of HTML pages 
  897.   PARAM elements should precede other content. SGML mixed content
  898.   model technicality precludes specifying this formally ...
  899. -->
  900.  
  901. <!ELEMENT OBJECT (%flow; | %xsl-valid-in-resultns; | PARAM)*
  902. ><!-- generic embedded object -->
  903. <!ATTLIST OBJECT
  904.   %attrs;
  905.   declare     (declare)      #IMPLIED
  906.   classid     %URI;          #IMPLIED
  907.   codebase    %URI;          #IMPLIED
  908.   data        %URI;          #IMPLIED
  909.   type        %ContentType;  #IMPLIED
  910.   codetype    %ContentType;  #IMPLIED
  911.   archive     %URI;          #IMPLIED
  912.   standby     %Text;         #IMPLIED
  913.   height      %Length;       #IMPLIED
  914.   width       %Length;       #IMPLIED
  915.   usemap      %URI;          #IMPLIED
  916.   name        CDATA          #IMPLIED
  917.   tabindex    %Number;       #IMPLIED
  918.   %reserved;
  919.   >
  920.  
  921. <!ELEMENT PARAM     EMPTY><!-- named property value -->
  922. <!ATTLIST PARAM
  923.   id          ID             #IMPLIED
  924.   name        CDATA          #REQUIRED
  925.   value       CDATA          #IMPLIED
  926.   valuetype   (DATA|REF|OBJECT) "DATA"
  927.   type        %ContentType;  #IMPLIED
  928.   >
  929.  
  930.  
  931. <!--=================== Horizontal Rule ==================================-->
  932.  
  933. <!ELEMENT HR     EMPTY><!-- horizontal rule -->
  934. <!ATTLIST HR
  935.   %coreattrs;
  936.   %events;
  937.   >
  938.  
  939. <!--=================== Paragraphs =======================================-->
  940.  
  941. <!ELEMENT P (%inline; | %xsl-valid-in-resultns;)*><!-- paragraph -->
  942. <!ATTLIST P
  943.   %attrs;
  944.   >
  945.  
  946. <!--=================== Headings =========================================-->
  947.  
  948. <!--
  949.   There are six levels of headings from H1 (the most important)
  950.   to H6 (the least important).
  951. -->
  952.  
  953. <!--
  954. <!ELEMENT (%heading;)      (%inline;)*>
  955. <!ATTLIST (%heading;)
  956.   %attrs;
  957.   >-->
  958. <!ELEMENT H1 (%inline; | %xsl-valid-in-resultns;)*>
  959. <!ATTLIST H1 %attrs;>
  960. <!ELEMENT H2 (%inline; | %xsl-valid-in-resultns;)*>
  961. <!ATTLIST H2 %attrs;>
  962. <!ELEMENT H3 (%inline; | %xsl-valid-in-resultns;)*>
  963. <!ATTLIST H3 %attrs;>
  964. <!ELEMENT H4 (%inline; | %xsl-valid-in-resultns;)*>
  965. <!ATTLIST H4 %attrs;>
  966. <!ELEMENT H5 (%inline; | %xsl-valid-in-resultns;)*>
  967. <!ATTLIST H5 %attrs;>
  968. <!ELEMENT H6 (%inline; | %xsl-valid-in-resultns;)*>
  969. <!ATTLIST H6 %attrs;>
  970.  
  971.  
  972. <!--=================== Preformatted Text ================================-->
  973.  
  974. <!-- excludes markup for images and changes in font size -->
  975. <!--
  976. <!ENTITY % pre.exclusion "IMG|OBJECT|BIG|SMALL|SUB|SUP">
  977.  
  978. <!ELEMENT PRE  (%inline;)* -(%pre.exclusion;)><! preformatted text -->
  979.  
  980. <!ELEMENT PRE (#PCDATA |%xsl-valid-in-resultns;| TT|I|B|%phrase;|A|BR|SCRIPT|MAP|Q|SPAN|BDO|%formctrl;)*>
  981.             <!-- preformatted text -->
  982. <!ATTLIST PRE
  983.   %attrs;>
  984. <!-- Should the attribute below be incuded in PRE?
  985.   xml:space (default|preserve) #FIXED "preserve"
  986. -->
  987.  
  988. <!--===================== Inline Quotes ==================================-->
  989.  
  990. <!ELEMENT Q  (%inline; | %xsl-valid-in-resultns;)*><!-- short inline quotation -->
  991. <!ATTLIST Q
  992.   %attrs;
  993.   cite        %URI;          #IMPLIED
  994.   >
  995.  
  996. <!--=================== Block-like Quotes ================================-->
  997.  
  998. <!ELEMENT BLOCKQUOTE  (%block;|%xsl-valid-in-resultns;|SCRIPT)+><!-- long quotation -->
  999. <!ATTLIST BLOCKQUOTE
  1000.   %attrs;
  1001.   cite        %URI;          #IMPLIED
  1002.   >
  1003.  
  1004. <!--=================== Inserted/Deleted Text ============================-->
  1005.  
  1006.  
  1007. <!-- INS/DEL are handled by inclusion on BODY -->
  1008. <!ELEMENT INS (%flow;|%xsl-valid-in-resultns;)*><!-- inserted text, deleted text -->
  1009. <!ATTLIST INS
  1010.   %attrs;
  1011.   cite        %URI;          #IMPLIED
  1012.   datetime    %Datetime;     #IMPLIED
  1013.   >
  1014. <!ELEMENT DEL (%flow;|%xsl-valid-in-resultns;)*><!-- inserted text, deleted text -->
  1015. <!ATTLIST DEL
  1016.   %attrs;
  1017.   cite        %URI;          #IMPLIED
  1018.   datetime    %Datetime;     #IMPLIED
  1019.   >
  1020.  
  1021. <!--=================== Lists ============================================-->
  1022.  
  1023. <!-- definition lists - DT for term, DD for its definition -->
  1024.  
  1025. <!ELEMENT DL  (%xsl-valid-in-resultns;| DT|DD)+><!-- definition list -->
  1026. <!ATTLIST DL
  1027.   %attrs;
  1028.   >
  1029.  
  1030. <!ELEMENT DT (%inline; | %xsl-valid-in-resultns;)*><!-- definition term -->
  1031. <!ELEMENT DD (%flow; | %xsl-valid-in-resultns;)*><!-- definition description -->
  1032. <!ATTLIST DT
  1033.   %attrs;
  1034.   >
  1035. <!ATTLIST DD
  1036.   %attrs;
  1037.   >
  1038.  
  1039.  
  1040. <!ELEMENT OL (%xsl-valid-in-resultns; | LI)+><!-- ordered list -->
  1041. <!ATTLIST OL
  1042.   %attrs;
  1043.   >
  1044.  
  1045. <!-- Unordered Lists (UL) bullet styles -->
  1046. <!ELEMENT UL (%xsl-valid-in-resultns; | LI)+><!-- unordered list -->
  1047. <!ATTLIST UL
  1048.   %attrs;
  1049.   >
  1050.  
  1051.  
  1052.  
  1053. <!ELEMENT LI (%flow; | %xsl-valid-in-resultns;)*><!-- list item -->
  1054. <!ATTLIST LI
  1055.   %attrs;
  1056.   >
  1057.  
  1058. <!--================ Forms ===============================================-->
  1059. <!ELEMENT FORM (%xsl-valid-in-resultns;|%block-FORM;|SCRIPT)+>
  1060.  
  1061. <!-- interactive form -->
  1062. <!ATTLIST FORM
  1063.   %attrs;
  1064.   action      %URI;          #REQUIRED
  1065.   method      (GET|POST)     "GET"
  1066.   enctype     %ContentType;  "application/x-www-form-urlencoded"
  1067.   onsubmit    %Script;       #IMPLIED
  1068.   onreset     %Script;       #IMPLIED
  1069.   accept-charset %Charsets;  #IMPLIED
  1070.   >
  1071.  
  1072. <!-- Each label must not contain more than ONE field -->
  1073. <!ELEMENT LABEL  (%inline-LABEL; | %xsl-valid-in-resultns;)*><!-- form field label text -->
  1074. <!ATTLIST LABEL
  1075.   %attrs;
  1076.   for         IDREF          #IMPLIED
  1077.   accesskey   %Character;    #IMPLIED
  1078.   onfocus     %Script;       #IMPLIED
  1079.   onblur      %Script;       #IMPLIED
  1080.   >
  1081.  
  1082. <!ENTITY % InputType
  1083.   "(TEXT | PASSWORD | CHECKBOX |
  1084.     RADIO | SUBMIT | RESET |
  1085.     FILE | HIDDEN | IMAGE | BUTTON)"
  1086.    >
  1087.  
  1088. <!-- attribute name required for all but submit & reset -->
  1089. <!ELEMENT INPUT     EMPTY><!-- form control -->
  1090. <!ATTLIST INPUT
  1091.   %attrs;
  1092.   type        %InputType;    "TEXT"
  1093.   name        CDATA          #IMPLIED
  1094.   value       CDATA          #IMPLIED
  1095.   checked     (checked)      #IMPLIED
  1096.   disabled    (disabled)     #IMPLIED
  1097.   readonly    (readonly)     #IMPLIED
  1098.   size        CDATA          #IMPLIED
  1099.   maxlength   %Number;       #IMPLIED
  1100.   src         %URI;          #IMPLIED
  1101.   alt         CDATA          #IMPLIED
  1102.   usemap      %URI;          #IMPLIED
  1103.   tabindex    %Number;       #IMPLIED
  1104.   accesskey   %Character;    #IMPLIED
  1105.   onfocus     %Script;       #IMPLIED
  1106.   onblur      %Script;       #IMPLIED
  1107.   onselect    %Script;       #IMPLIED
  1108.   onchange    %Script;       #IMPLIED
  1109.   accept      %ContentTypes; #IMPLIED
  1110.   %reserved;
  1111.   >
  1112.  
  1113. <!ELEMENT SELECT ((%xsl-valid-in-resultns;|OPTGROUP)|(%xsl-valid-in-resultns;|OPTION))+ ><!-- option selector -->
  1114. <!ATTLIST SELECT
  1115.   %attrs;
  1116.   name        CDATA          #IMPLIED
  1117.   size        %Number;       #IMPLIED
  1118.   multiple    (multiple)     #IMPLIED
  1119.   disabled    (disabled)     #IMPLIED
  1120.   tabindex    %Number;       #IMPLIED
  1121.   onfocus     %Script;       #IMPLIED
  1122.   onblur      %Script;       #IMPLIED
  1123.   onchange    %Script;       #IMPLIED
  1124.   %reserved;
  1125.   >
  1126.  
  1127. <!ELEMENT OPTGROUP (%xsl-valid-in-resultns;|OPTION)+>  <!-- option group -->
  1128. <!ATTLIST OPTGROUP
  1129.   %attrs;
  1130.   disabled    (disabled)     #IMPLIED
  1131.   label       %Text;         #REQUIRED
  1132.   >
  1133.  
  1134. <!ELEMENT OPTION  (#PCDATA | %xsl-valid-in-resultns;)*><!-- selectable choice -->
  1135. <!ATTLIST OPTION
  1136.   %attrs;
  1137.   selected    (selected)     #IMPLIED
  1138.   disabled    (disabled)     #IMPLIED
  1139.   label       %Text;         #IMPLIED
  1140.   value       CDATA          #IMPLIED
  1141.   >
  1142.  
  1143. <!ELEMENT TEXTAREA (#PCDATA | %xsl-valid-in-resultns;)*><!-- multi-line text field -->
  1144. <!ATTLIST TEXTAREA
  1145.   %attrs;
  1146.   name        CDATA          #IMPLIED
  1147.   rows        %Number;       #REQUIRED
  1148.   cols        %Number;       #REQUIRED
  1149.   disabled    (disabled)     #IMPLIED
  1150.   readonly    (readonly)     #IMPLIED
  1151.   tabindex    %Number;       #IMPLIED
  1152.   accesskey   %Character;    #IMPLIED
  1153.   onfocus     %Script;       #IMPLIED
  1154.   onblur      %Script;       #IMPLIED
  1155.   onselect    %Script;       #IMPLIED
  1156.   onchange    %Script;       #IMPLIED
  1157.   %reserved;
  1158.   >
  1159.  
  1160. <!--
  1161.   #PCDATA is to solve the mixed content problem,
  1162.   per specification only whitespace is allowed there!
  1163.  
  1164.   We do allow XSL inside as well
  1165.  -->
  1166. <!--ELEMENT FIELDSET     (#PCDATA,LEGEND,(%flow;)*)    form control group -->
  1167. <!ELEMENT FIELDSET  (%flow;|%xsl-valid-in-resultns;|LEGEND)*><!-- form control group -->
  1168. <!ATTLIST FIELDSET
  1169.   %attrs;
  1170.   >
  1171.  
  1172. <!ELEMENT LEGEND (%inline;|%xsl-valid-in-resultns;)*><!-- fieldset legend -->
  1173. <!ENTITY % LAlign "(top|bottom|left|right)">
  1174.  
  1175. <!ATTLIST LEGEND
  1176.   %attrs;
  1177.   accesskey   %Character;    #IMPLIED
  1178.   >
  1179.  
  1180. <!ELEMENT BUTTON
  1181.      (#PCDATA | %xsl-valid-in-resultns; | %fontstyle; | %phrase; | %special-A; | %block;)*
  1182. ><!-- push button -->
  1183. <!ATTLIST BUTTON
  1184.   %attrs;
  1185.   name        CDATA          #IMPLIED
  1186.   value       CDATA          #IMPLIED
  1187.   type        (button|submit|reset) "submit"
  1188.   disabled    (disabled)     #IMPLIED
  1189.   tabindex    %Number;       #IMPLIED
  1190.   accesskey   %Character;    #IMPLIED
  1191.   onfocus     %Script;       #IMPLIED
  1192.   onblur      %Script;       #IMPLIED
  1193.   %reserved;
  1194.   >
  1195.  
  1196. <!--======================= Tables =======================================-->
  1197.  
  1198. <!-- IETF HTML table standard, see [RFC1942] -->
  1199.  
  1200. <!--
  1201.  The BORDER attribute sets the thickness of the frame around the
  1202.  table. The default units are screen pixels.
  1203.  
  1204.  The FRAME attribute specifies which parts of the frame around
  1205.  the table should be rendered. The values are not the same as
  1206.  CALS to avoid a name clash with the VALIGN attribute.
  1207.  
  1208.  The value "border" is included for backwards compatibility with
  1209.  <TABLE BORDER> which yields frame=border and border=implied
  1210.  For <TABLE BORDER=1> you get border=1 and frame=implied. In this
  1211.  case, it is appropriate to treat this as frame=border for backwards
  1212.  compatibility with deployed browsers.
  1213. -->
  1214. <!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
  1215.  
  1216. <!--
  1217.  The RULES attribute defines which rules to draw between cells:
  1218.  
  1219.  If RULES is absent then assume:
  1220.      "none" if BORDER is absent or BORDER=0 otherwise "all"
  1221. -->
  1222.  
  1223. <!ENTITY % TRules "(none | groups | rows | cols | all)">
  1224.   
  1225. <!-- horizontal placement of table relative to document -->
  1226. <!ENTITY % TAlign "(left|center|right)">
  1227.  
  1228. <!-- horizontal alignment attributes for cell contents -->
  1229. <!ENTITY % cellhalign
  1230.   "align      (left|center|right|justify|char) #IMPLIED
  1231.    char       %Character;    #IMPLIED
  1232.    charoff    %Length;       #IMPLIED"
  1233.   >
  1234.  
  1235. <!-- vertical alignment attributes for cell contents -->
  1236. <!ENTITY % cellvalign
  1237.   "valign     (top|middle|bottom|baseline) #IMPLIED"
  1238.   >
  1239.  
  1240. <!ELEMENT TABLE 
  1241.   ((%xsl-valid-in-resultns;)*, CAPTION?, (%xsl-valid-in-resultns;)*,
  1242.    ((COL | %xsl-valid-in-resultns;)*|(COLGROUP | %xsl-valid-in-resultns;)*),
  1243.    ((THEAD?,(%xsl-valid-in-resultns;)*,TFOOT?,(%xsl-valid-in-resultns;|TBODY)+)
  1244.     | (%xsl-valid-in-resultns;|TR)+) )>
  1245.  
  1246. <!ELEMENT CAPTION   (%inline; | %xsl-valid-in-resultns;)*><!-- table caption -->
  1247. <!ELEMENT THEAD     (TR|%xsl-valid-in-resultns;)+><!-- table header -->
  1248. <!ELEMENT TFOOT     (TR|%xsl-valid-in-resultns;)+><!-- table footer -->
  1249. <!ELEMENT TBODY     (TR|%xsl-valid-in-resultns;)+><!-- table body -->
  1250. <!ELEMENT COLGROUP  (%xsl-valid-in-resultns; | col)*><!-- table column group -->
  1251. <!ELEMENT COL       EMPTY><!-- table column -->
  1252. <!ELEMENT TR (TH|TD| %xsl-valid-in-resultns;)+><!-- table row -->
  1253. <!ELEMENT TH        (%flow; | %xsl-valid-in-resultns;)*><!-- table header cell, table data cell-->
  1254. <!ELEMENT TD        (%flow; | %xsl-valid-in-resultns;)*><!-- table header cell, table data cell-->
  1255.  
  1256. <!ATTLIST TABLE
  1257.   %attrs;
  1258.   summary     %Text;         #IMPLIED
  1259.   width       %Length;       #IMPLIED
  1260.   border      %Pixels;       #IMPLIED
  1261.   frame       %TFrame;       #IMPLIED
  1262.   rules       %TRules;       #IMPLIED
  1263.   cellspacing %Length;       #IMPLIED
  1264.   cellpadding %Length;       #IMPLIED
  1265.   %reserved;
  1266.   datapagesize CDATA         #IMPLIED
  1267.   >
  1268.  
  1269. <!ENTITY % CAlign "(top|bottom|left|right)">
  1270.  
  1271. <!ATTLIST CAPTION
  1272.   %attrs;
  1273.   >
  1274.  
  1275. <!--
  1276. COLGROUP groups a set of COL elements. It allows you to group
  1277. several semantically related columns together.
  1278. -->
  1279. <!ATTLIST COLGROUP
  1280.   %attrs;
  1281.   span        %Number;       "1"
  1282.   width       %MultiLength;  #IMPLIED
  1283.   %cellhalign;
  1284.   %cellvalign;
  1285.   >
  1286.  
  1287. <!--
  1288.  COL elements define the alignment properties for cells in
  1289.  one or more columns.
  1290.  
  1291.  The WIDTH attribute specifies the width of the columns, e.g.
  1292.  
  1293.      width=64        width in screen pixels
  1294.      width=0.5*      relative width of 0.5
  1295.  
  1296.  The SPAN attribute causes the attributes of one
  1297.  COL element to apply to more than one column.
  1298. -->
  1299. <!ATTLIST COL
  1300.   %attrs;
  1301.   span        %Number;       "1"
  1302.   width       %MultiLength;  #IMPLIED
  1303.   %cellhalign;
  1304.   %cellvalign;
  1305.   >
  1306.  
  1307. <!--
  1308.     Use THEAD to duplicate headers when breaking table
  1309.     across page boundaries, or for static headers when
  1310.     TBODY sections are rendered in scrolling panel.
  1311.  
  1312.     Use TFOOT to duplicate footers when breaking table
  1313.     across page boundaries, or for static footers when
  1314.     TBODY sections are rendered in scrolling panel.
  1315.  
  1316.     Use multiple TBODY sections when rules are needed
  1317.     between groups of table rows.
  1318. -->
  1319. <!ATTLIST THEAD
  1320.   %attrs;
  1321.   %cellhalign;
  1322.   %cellvalign;
  1323.   >
  1324. <!ATTLIST TBODY
  1325.   %attrs;
  1326.   %cellhalign;
  1327.   %cellvalign;
  1328.   >
  1329. <!ATTLIST TFOOT
  1330.   %attrs;
  1331.   %cellhalign;
  1332.   %cellvalign;
  1333.   >
  1334.  
  1335. <!ATTLIST TR
  1336.   %attrs;
  1337.   %cellhalign;
  1338.   %cellvalign;
  1339.   >
  1340.  
  1341.  
  1342. <!-- Scope is simpler than axes attribute for common tables -->
  1343. <!ENTITY % Scope "(row|col|rowgroup|colgroup)">
  1344.  
  1345. <!-- TH is for headers, TD for data, but for cells acting as both use TD -->
  1346. <!ATTLIST TH
  1347.   %attrs;
  1348.   abbr        %Text;         #IMPLIED
  1349.   axis        CDATA          #IMPLIED
  1350.   headers     IDREFS         #IMPLIED
  1351.   scope       %Scope;        #IMPLIED
  1352.   rowspan     %Number;       "1"
  1353.   colspan     %Number;       "1"
  1354.   %cellhalign;
  1355.   %cellvalign;
  1356.   >
  1357. <!ATTLIST TD
  1358.   %attrs;
  1359.   abbr        %Text;         #IMPLIED
  1360.   axis        CDATA          #IMPLIED
  1361.   headers     IDREFS         #IMPLIED
  1362.   scope       %Scope;        #IMPLIED
  1363.   rowspan     %Number;       "1"
  1364.   colspan     %Number;       "1"
  1365.   %cellhalign;
  1366.   %cellvalign;
  1367.   >
  1368.  
  1369.  
  1370. <!--================ Document Head =======================================-->
  1371. <!-- %head.misc; defined earlier on as "SCRIPT|STYLE|META|LINK|OBJECT",
  1372.      extended now to allow xsl -->
  1373. <!ENTITY % head.misc-HEAD "%head.misc;|%xsl-valid-in-resultns;">
  1374.  
  1375. <!ENTITY % head.content "TITLE & BASE?">
  1376.  
  1377. <!--ELEMENT HEAD     (%head.content;) +(%head.misc;)   document head -->
  1378. <!ELEMENT HEAD
  1379.    ((%head.misc-HEAD;)*, ((BASE?,(%head.misc-HEAD;)*,TITLE?) | (TITLE?,(%head.misc-HEAD;)*,BASE?)|(%head.misc-HEAD;)*)+, (%head.misc-HEAD;)*)>
  1380. <!ATTLIST HEAD
  1381.   %i18n;
  1382.   profile     %URI;          #IMPLIED
  1383.   >
  1384.  
  1385. <!-- The TITLE element is not considered part of the flow of text.
  1386.        It should be displayed, for example as the page header or
  1387.        window title. Exactly one title is required per document.
  1388.     -->
  1389. <!--ELEMENT TITLE     (#PCDATA) -(%head.misc;)  document title -->
  1390. <!ELEMENT TITLE  (#PCDATA |  %xsl-valid-in-resultns;)*><!-- document title -->
  1391. <!ATTLIST TITLE %i18n;>
  1392.  
  1393.  
  1394. <!ELEMENT BASE     EMPTY><!-- document base URI -->
  1395. <!ATTLIST BASE
  1396.   href        %URI;          #REQUIRED
  1397.   >
  1398.  
  1399. <!ELEMENT META     EMPTY><!-- generic metainformation -->
  1400. <!ATTLIST META
  1401.   %i18n;
  1402.   http-equiv  %Name;         #IMPLIED
  1403.   name        %Name;         #IMPLIED
  1404.   content     CDATA          #REQUIRED
  1405.   scheme      CDATA          #IMPLIED
  1406.   >
  1407.  
  1408. <!--ELEMENT STYLE     %StyleSheet;  style info -->
  1409. <!ELEMENT STYLE (#PCDATA | %xsl-valid-in-resultns;)*><!-- style info -->
  1410. <!ATTLIST STYLE
  1411.   %i18n;
  1412.   type        %ContentType;  #REQUIRED
  1413.   media       %MediaDesc;    #IMPLIED
  1414.   title       %Text;         #IMPLIED
  1415.   >
  1416.  
  1417. <!--ELEMENT SCRIPT     %Script; script statements -->
  1418. <!ELEMENT SCRIPT (#PCDATA | %xsl-valid-in-resultns;)*><!-- script statements -->
  1419. <!ATTLIST SCRIPT
  1420.   charset     %Charset;      #IMPLIED
  1421.   type        %ContentType;  #REQUIRED
  1422.   language    CDATA          #IMPLIED
  1423.   src         %URI;          #IMPLIED
  1424.   defer       (defer)        #IMPLIED
  1425.   event       CDATA          #IMPLIED
  1426.   for         %URI;          #IMPLIED
  1427.   >
  1428.  
  1429. <!ELEMENT NOSCRIPT (%xsl-valid-in-resultns;|%block;)+
  1430. ><!-- alternate content container for non script-based rendering -->
  1431. <!ATTLIST NOSCRIPT
  1432.   %attrs;
  1433.   >
  1434.  
  1435. <!--================ Document Structure ==================================-->
  1436. <!ENTITY % html.content "HEAD, BODY">
  1437.  
  1438. <!--<!ELEMENT HTML     (%html.content;)> --><!-- document root element -->
  1439. <!ELEMENT HTML (((%xsl-valid-in-resultns;)*,HEAD?,(%xsl-valid-in-resultns;)*,BODY?,
  1440.                 (%xsl-valid-in-resultns;)*) | (%xsl-valid-in-resultns;)*)>
  1441. <!-- document root element -->
  1442. <!ATTLIST HTML
  1443.   %i18n;
  1444.   >
  1445.