C. XHTML Document Type Definitions

Contents

    C.1.  SGML Open Catalog for XHTML
    C.2.  SGML Declaration for XHTML
    C.3.  XHTML Character Entities
        C.3.1.  XHTML Latin 1 Character Entities
        C.3.2.  XHTML Special Characters
        C.3.3.  XHTML Mathematical, Greek, and Symbolic Characters
    C.4.  Common Declaration
        C.4.1.  XHTML Common Names
        C.4.2.  XHTML Common Attribute Definitions
        C.4.3.  XHTML Transitional Attribute Definitions
        C.4.4.  XHTML Strict Content Model
        C.4.5.  XHTML Transitional Content Model
        C.4.6.  Intrinsic Events
        C.4.7.  XHTML Character Entities
    C.5.  XHTML Document Structure Modules
        C.5.1.  Structure
        C.5.2.  Frameset
        C.5.3.  Lists
    C.6.  XHTML Block Element Modules
        C.6.1.  Block Structural
        C.6.2.  Block Phrasal
        C.6.3.  Block Presentational
    C.7.  XHTML Inline Element Modules
        C.7.1.  Inline Structural
        C.7.2.  Inline Phrasal
        C.7.3.  Inline Presentational
    C.8.  XHTML Special Case Modules
        C.8.1.  Meta
        C.8.2.  Linking
        C.8.3.  Image
        C.8.4.  Client-side Image Map
        C.8.5.  Object
        C.8.6.  Applet
        C.8.7.  Scripting
        C.8.8.  Stylesheets
        C.8.9.  HTML 3.2 Tables
        C.8.10.  HTML 4.0 Tables
        C.8.11.  HTML 3.2 Forms
        C.8.12.  HTML 4.0 Forms
    C.9.  Reformulated XHTML 1.0 DTDs
        C.9.1.  XHTML 1.0 Strict
        C.9.2.  XHTML 1.0 Transitional
        C.9.3.  XHTML 1.0 Frameset

C.1. SGML Open Catalog for XHTML

This section contains the SGML Open Catalog-format definition of the various FPIs for XHTML.

-- .......................................................................... --
-- File catalog  ............................................................ --

--  XHTML 1.0 (HTML 4.0-Based XML Version) Catalog Data File

    Revision:  @(#)XHTML1.cat 1.19 99/04/01 SMI

    This is the catalog data file for various versions of the XHTML DTD.
    You do not need to use the file names listed here, and do not need 
    to use the filename method of identifying storage objects at all.

    See "Entity Management", SGML Open Technical Resolution 9401 for detailed
    information on supplying and using catalog data. This document is available
    from OASIS at URL:

        <http://www.oasis-open.org/cover/tr9401.html>
--

-- .......................................................................... --
-- SGML declaration associated with XHTML  .................................. --

OVERRIDE YES

SGMLDECL "xml1.dcl"

-- for use with non-Unicode compatible parsers: --
-- SGMLDECL "xml1n.dcl" --

-- .......................................................................... --
-- XHTML 1.0 DTD driver files  .............................................. --

PUBLIC "-//W3C//DTD XHTML 1.0//EN"                              "XHTML1-s.dtd"
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"                       "XHTML1-s.dtd"
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"                 "XHTML1-t.dtd"
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"                     "XHTML1-f.dtd"

-- .......................................................................... --
-- XHTML 1.0 modules ........................................................ --

PUBLIC "-//W3C//ENTITIES XHTML 1.0 Common Names//EN"            "XHTML1-names.mod"
PUBLIC "-//W3C//ENTITIES XHTML 1.0 Character Entities//EN"      "XHTML1-charent.mod"
PUBLIC "-//W3C//ENTITIES XHTML 1.0 Intrinsic Events//EN"        "XHTML1-events.mod"
PUBLIC "-//W3C//ENTITIES XHTML 1.0 Common Attributes//EN"       "XHTML1-attribs.mod"

PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Document Model//EN"          "XHTML1-model.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Inline Structural//EN"       "XHTML1-inlstruct.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Inline Presentational//EN"   "XHTML1-inlpres.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Inline Phrasal//EN"          "XHTML1-inlphras.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Block Structural//EN"        "XHTML1-blkstruct.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Block Presentational//EN"    "XHTML1-blkpres.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Block Phrasal//EN"           "XHTML1-blkphras.mod"

PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Scripting//EN"               "XHTML1-script.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Stylesheets//EN"             "XHTML1-style.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Object Element//EN"          "XHTML1-object.mod" 
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Client-side Image Map//EN"   "XHTML1-csismap.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Linking//EN"                 "XHTML1-linking.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Images//EN"                  "XHTML1-image.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Lists//EN"                   "XHTML1-list.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Forms//EN"                   "XHTML1-form.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Tables//EN"                  "XHTML1-table.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Metainformation//EN"         "XHTML1-meta.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Document Structure//EN"      "XHTML1-struct.mod"

-- .......................................................................... --
-- XHTML Frameset or Transitional modules ................................... --

-- (not needed for delivery of XHTML 1.0 Strict) --

PUBLIC "-//W3C//ENTITIES XHTML 1.0 Transitional Attributes//EN" "XHTML1-attribs-t.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Transitional Document Model//EN" "XHTML1-model-t.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Java Applets//EN"            "XHTML1-applet.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Frames//EN"                  "XHTML1-frames.mod"

-- .......................................................................... --
-- XHTML 1.0 entity sets  ................................................... --

PUBLIC "-//W3C//ENTITIES Latin 1//EN//XML"                      "XHTML1-lat1.ent"
PUBLIC "-//W3C//ENTITIES Special//EN//XML"                      "XHTML1-special.ent"
PUBLIC "-//W3C//ENTITIES Symbols//EN//XML"                      "XHTML1-symbol.ent"

-- .......................................................................... --
-- XHTML 1.0 Architectural Forms Module  .................................... --

PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Base Architecture//EN"       "XHTML1-arch.mod"

-- .......................................................................... --
-- XHTML 1.0 Experimental Extension DTDs and Modules  ....................... --

PUBLIC "-//W3C//DTD XHTML 1.0 Extension - MathML//EN"           "XHTML1-m.dtd"
PUBLIC "-//W3C//DTD XHTML 1.0 MathML//EN"                       "XHTML1-math.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0-Based Subset Simplified Tables//EN" "XHTML1-table32.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0-Based Subset Simplified Forms//EN"  "XHTML1-form32.mod"

-- End of catalog data  ..................................................... --
-- .......................................................................... --

C.2. SGML Declaration for XHTML

This section contains the SGML Declaration that supports the XHTML DTDs.

<!SGML "ISO 8879:1986 (WWW)"

     -- SGML Declaration for XHTML 1.0 --

     -- This SGML declaration takes advantage of the 
        Web SGML Adaptations Annex to ISO 8879.
     --

     CHARSET
         BASESET
             "ISO Registration Number 176//CHARSET
             ISO/IEC 10646-1:1993 UCS-4 with implementation
             level 3//ESC 2/5 2/15 4/6"
         DESCSET
                    0        9  UNUSED
                    9        2       9
                   11        2  UNUSED
                   13        1      13
                   14       18  UNUSED
                   32       95      32
                  127        1  UNUSED
                  128       32  UNUSED
                  160    55136     160
                55296     2048  UNUSED  -- surrogates --
                57344     8190   57344
                65534        2  UNUSED  -- FFFE and FFFF --
                65536  1048576   65536

     CAPACITY NONE  -- Capacities are not restricted in XML --

     SCOPE DOCUMENT

     SYNTAX
         SHUNCHAR NONE
         BASESET "ISO Registration Number 176//CHARSET
                 ISO/IEC 10646-1:1993 UCS-4 with implementation
                 level 3//ESC 2/5 2/15 4/6"
         DESCSET
             0 1114112 0
         FUNCTION
             RE    13
             RS    10
             SPACE 32
             TAB   SEPCHAR 9
             ITAB  SEPCHAR 12288 -- ideographic space --

         NAMING
             LCNMSTRT ""
             UCNMSTRT ""
             NAMESTRT
                 58 95 192-214 216-246 248-305 308-318 321-328
                 330-382 384-451 461-496 500-501 506-535 592-680
                 699-705 902 904-906 908 910-929 931-974 976-982
                 986 988 990 992 994-1011 1025-1036 1038-1103
                 1105-1116 1118-1153 1168-1220 1223-1224
                 1227-1228 1232-1259 1262-1269 1272-1273
                 1329-1366 1369 1377-1414 1488-1514 1520-1522
                 1569-1594 1601-1610 1649-1719 1722-1726
                 1728-1742 1744-1747 1749 1765-1766 2309-2361
                 2365 2392-2401 2437-2444 2447-2448 2451-2472
                 2474-2480 2482 2486-2489 2524-2525 2527-2529
                 2544-2545 2565-2570 2575-2576 2579-2600
                 2602-2608 2610-2611 2613-2614 2616-2617
                 2649-2652 2654 2674-2676 2693-2699 2701
                 2703-2705 2707-2728 2730-2736 2738-2739
                 2741-2745 2749 2784 2821-2828 2831-2832
                 2835-2856 2858-2864 2866-2867 2870-2873 2877
                 2908-2909 2911-2913 2949-2954 2958-2960
                 2962-2965 2969-2970 2972 2974-2975 2979-2980
                 2984-2986 2990-2997 2999-3001 3077-3084
                 3086-3088 3090-3112 3114-3123 3125-3129
                 3168-3169 3205-3212 3214-3216 3218-3240
                 3242-3251 3253-3257 3294 3296-3297 3333-3340
                 3342-3344 3346-3368 3370-3385 3424-3425
                 3585-3630 3632 3634-3635 3648-3653 3713-3714
                 3716 3719-3720 3722 3725 3732-3735 3737-3743
                 3745-3747 3749 3751 3754-3755 3757-3758 3760
                 3762-3763 3773 3776-3780 3904-3911 3913-3945
                 4256-4293 4304-4342 4352 4354-4355 4357-4359
                 4361 4363-4364 4366-4370 4412 4414 4416 4428
                 4430 4432 4436-4437 4441 4447-4449 4451 4453
                 4455 4457 4461-4462 4466-4467 4469 4510 4520
                 4523 4526-4527 4535-4536 4538 4540-4546 4587
                 4592 4601 7680-7835 7840-7929 7936-7957
                 7960-7965 7968-8005 8008-8013 8016-8023 8025
                 8027 8029 8031-8061 8064-8116 8118-8124 8126
                 8130-8132 8134-8140 8144-8147 8150-8155
                 8160-8172 8178-8180 8182-8188 8486 8490-8491
                 8494 8576-8578 12295 12321-12329 12353-12436
                 12449-12538 12549-12588 19968-40869 44032-55203

             LCNMCHAR ""
             UCNMCHAR ""
             NAMECHAR
                 45-46 183 720-721 768-837 864-865 903 1155-1158
                 1425-1441 1443-1465 1467-1469 1471 1473-1474
                 1476 1600 1611-1618 1632-1641 1648 1750-1764
                 1767-1768 1770-1773 1776-1785 2305-2307 2364
                 2366-2381 2385-2388 2402-2403 2406-2415
                 2433-2435 2492 2494-2500 2503-2504 2507-2509
                 2519 2530-2531 2534-2543 2562 2620 2622-2626
                 2631-2632 2635-2637 2662-2673 2689-2691 2748
                 2750-2757 2759-2761 2763-2765 2790-2799
                 2817-2819 2876 2878-2883 2887-2888 2891-2893
                 2902-2903 2918-2927 2946-2947 3006-3010
                 3014-3016 3018-3021 3031 3047-3055 3073-3075
                 3134-3140 3142-3144 3146-3149 3157-3158
                 3174-3183 3202-3203 3262-3268 3270-3272
                 3274-3277 3285-3286 3302-3311 3330-3331
                 3390-3395 3398-3400 3402-3405 3415 3430-3439
                 3633 3636-3642 3654-3662 3664-3673 3761
                 3764-3769 3771-3772 3782 3784-3789 3792-3801
                 3864-3865 3872-3881 3893 3895 3897 3902-3903
                 3953-3972 3974-3979 3984-3989 3991 3993-4013
                 4017-4023 4025 8400-8412 8417 12293 12330-12335
                 12337-12341 12441-12442 12445-12446 12540-12542

             NAMECASE
                 GENERAL NO
                 ENTITY  NO

         DELIM
             GENERAL SGMLREF
             HCRO  "&#38;#x" -- 38 is the number for ampersand --
             NESTC "/"
             NET   ">"
             PIC   "?>"
             SHORTREF NONE

         NAMES
             SGMLREF

         QUANTITY 
             NONE -- Quantities are not restricted in XML --

         ENTITIES
             "amp"  38
             "lt"   60
             "gt"   62
             "quot" 34
             "apos" 39

     FEATURES
         MINIMIZE
             DATATAG NO
             OMITTAG NO
             RANK    NO
             SHORTTAG  -- SHORTTAG is needed for NET --
                 STARTTAG
                     EMPTY    NO
                     UNCLOSED NO
                     NETENABL IMMEDNET
                 ENDTAG
                     EMPTY    NO
                     UNCLOSED NO
                 ATTRIB
                     DEFAULT  YES
                     OMITNAME NO
                     VALUE    NO
             EMPTYNRM  YES
             IMPLYDEF
                 ATTLIST  YES
                 DOCTYPE  YES
                 ELEMENT  YES
                 ENTITY   YES
                 NOTATION YES
         LINK
             SIMPLE   NO
             IMPLICIT NO
             EXPLICIT NO
         OTHER
             CONCUR   NO
             SUBDOC   NO
             FORMAL   NO
             URN      NO
             KEEPRSRE YES
             VALIDITY TYPE
             ENTITIES
                 REF      ANY
                 INTEGRAL YES
     APPINFO NONE
     SEEALSO "ISO 8879//NOTATION Application Requirements for XML//EN"
>
<!-- Revision: @(#)XHTML1.dcl 1.12 99/03/23 SMI -->

C.3. XHTML Character Entities

XHTML DTDs make available a standard collection of named character entities. Those entities are defined in this section.

C.3.1. XHTML Latin 1 Character Entities

<!-- XML-compatible ISO Latin 1 Character Entity Set for XHTML 1.0 

     Typical invocation:

       <!ENTITY % XHTML1-lat1 
           PUBLIC "-//W3C//ENTITIES Latin 1//EN//XML"
                  "XHTML1-lat1.ent">
       %XHTML1-lat1;

     Revision:  @(#)XHTML1-lat1.ent 1.13 99/04/01 SMI

     Portions (C) International Organization for Standardization 1986
     Permission to copy in any form is granted for use with
     conforming SGML systems and applications as defined in
     ISO 8879, provided this notice is included in all copies.
-->

<!ENTITY nbsp   "&#160;" ><!-- no-break space = non-breaking space,
                                     U+00A0 ISOnum -->
<!ENTITY iexcl  "&#161;" ><!-- inverted exclamation mark,    
                                     U+00A1 ISOnum -->
<!ENTITY cent   "&#162;" ><!-- cent sign,    
                                     U+00A2 ISOnum -->
<!ENTITY pound  "&#163;" ><!-- pound sign,    
                                     U+00A3 ISOnum -->
<!ENTITY curren "&#164;" ><!-- currency sign,    
                                     U+00A4 ISOnum -->
<!ENTITY yen    "&#165;" ><!-- yen sign = yuan sign,    
                                     U+00A5 ISOnum -->
<!ENTITY brvbar "&#166;" ><!-- broken bar = broken vertical bar,
                                     U+00A6 ISOnum -->
<!ENTITY sect   "&#167;" ><!-- section sign,    
                                     U+00A7 ISOnum -->
<!ENTITY uml    "&#168;" ><!-- diaeresis = spacing diaeresis,
                                     U+00A8 ISOdia -->
<!ENTITY copy   "&#169;" ><!-- copyright sign,    
                                     U+00A9 ISOnum -->
<!ENTITY ordf   "&#170;" ><!-- feminine ordinal indicator,    
                                     U+00AA ISOnum -->
<!ENTITY laquo  "&#171;" ><!-- left-pointing double angle quotation mark
                                     = left pointing guillemet,    
                                     U+00AB ISOnum -->
<!ENTITY not    "&#172;" ><!-- not sign,    
                                     U+00AC ISOnum -->
<!ENTITY shy    "&#173;" ><!-- soft hyphen = discretionary hyphen,
                                     U+00AD ISOnum -->
<!ENTITY reg    "&#174;" ><!-- registered sign = registered trade mark sign,
                                     U+00AE ISOnum -->
<!ENTITY macr   "&#175;" ><!-- macron = spacing macron = overline
                                     = APL overbar,    
                                     U+00AF ISOdia -->
<!ENTITY deg    "&#176;" ><!-- degree sign,    
                                     U+00B0 ISOnum -->
<!ENTITY plusmn "&#177;" ><!-- plus-minus sign = plus-or-minus sign,
                                     U+00B1 ISOnum -->
<!ENTITY sup2   "&#178;" ><!-- superscript two = superscript digit two
                                     = squared,    
                                     U+00B2 ISOnum -->
<!ENTITY sup3   "&#179;" ><!-- superscript three = superscript digit three
                                     = cubed,    
                                     U+00B3 ISOnum -->
<!ENTITY acute  "&#180;" ><!-- acute accent = spacing acute,
                                     U+00B4 ISOdia -->
<!ENTITY micro  "&#181;" ><!-- micro sign,    
                                     U+00B5 ISOnum -->
<!ENTITY para   "&#182;" ><!-- pilcrow sign = paragraph sign,
                                     U+00B6 ISOnum -->
<!ENTITY middot "&#183;" ><!-- middle dot = Georgian comma
                                     = Greek middle dot,    
                                     U+00B7 ISOnum -->
<!ENTITY cedil  "&#184;" ><!-- cedilla = spacing cedilla,    
                                     U+00B8 ISOdia -->
<!ENTITY sup1   "&#185;" ><!-- superscript one = superscript digit one,
                                     U+00B9 ISOnum -->
<!ENTITY ordm   "&#186;" ><!-- masculine ordinal indicator,
                                     U+00BA ISOnum -->
<!ENTITY raquo  "&#187;" ><!-- right-pointing double angle quotation mark
                                     = right pointing guillemet,    
                                     U+00BB ISOnum -->
<!ENTITY frac14 "&#188;" ><!-- vulgar fraction one quarter
                                     = fraction one quarter,    
                                     U+00BC ISOnum -->
<!ENTITY frac12 "&#189;" ><!-- vulgar fraction one half
                                     = fraction one half,    
                                     U+00BD ISOnum -->
<!ENTITY frac34 "&#190;" ><!-- vulgar fraction three quarters
                                     = fraction three quarters,    
                                     U+00BE ISOnum -->
<!ENTITY iquest "&#191;" ><!-- inverted question mark
                                     = turned question mark,    
                                     U+00BF ISOnum -->
<!ENTITY Agrave "&#192;" ><!-- latin capital letter A with grave
                                     = latin capital letter A grave,
                                     U+00C0 ISOlat1 -->
<!ENTITY Aacute "&#193;" ><!-- latin capital letter A with acute,
                                     U+00C1 ISOlat1 -->
<!ENTITY Acirc  "&#194;" ><!-- latin capital letter A with circumflex,
                                     U+00C2 ISOlat1 -->
<!ENTITY Atilde "&#195;" ><!-- latin capital letter A with tilde,
                                     U+00C3 ISOlat1 -->
<!ENTITY Auml   "&#196;" ><!-- latin capital letter A with diaeresis,
                                     U+00C4 ISOlat1 -->
<!ENTITY Aring  "&#197;" ><!-- latin capital letter A with ring above
                                     = latin capital letter A ring,
                                     U+00C5 ISOlat1 -->
<!ENTITY AElig  "&#198;" ><!-- latin capital letter AE
                                     = latin capital ligature AE,
                                     U+00C6 ISOlat1 -->
<!ENTITY Ccedil "&#199;" ><!-- latin capital letter C with cedilla,
                                     U+00C7 ISOlat1 -->
<!ENTITY Egrave "&#200;" ><!-- latin capital letter E with grave,
                                     U+00C8 ISOlat1 -->
<!ENTITY Eacute "&#201;" ><!-- latin capital letter E with acute,
                                     U+00C9 ISOlat1 -->
<!ENTITY Ecirc  "&#202;" ><!-- latin capital letter E with circumflex,
                                     U+00CA ISOlat1 -->
<!ENTITY Euml   "&#203;" ><!-- latin capital letter E with diaeresis,
                                     U+00CB ISOlat1 -->
<!ENTITY Igrave "&#204;" ><!-- latin capital letter I with grave,
                                     U+00CC ISOlat1 -->
<!ENTITY Iacute "&#205;" ><!-- latin capital letter I with acute,
                                     U+00CD ISOlat1 -->
<!ENTITY Icirc  "&#206;" ><!-- latin capital letter I with circumflex,
                                     U+00CE ISOlat1 -->
<!ENTITY Iuml   "&#207;" ><!-- latin capital letter I with diaeresis,
                                     U+00CF ISOlat1 -->
<!ENTITY ETH    "&#208;" ><!-- latin capital letter ETH,    
                                     U+00D0 ISOlat1 -->
<!ENTITY Ntilde "&#209;" ><!-- latin capital letter N with tilde,
                                     U+00D1 ISOlat1 -->
<!ENTITY Ograve "&#210;" ><!-- latin capital letter O with grave,
                                     U+00D2 ISOlat1 -->
<!ENTITY Oacute "&#211;" ><!-- latin capital letter O with acute,
                                     U+00D3 ISOlat1 -->
<!ENTITY Ocirc  "&#212;" ><!-- latin capital letter O with circumflex,
                                     U+00D4 ISOlat1 -->
<!ENTITY Otilde "&#213;" ><!-- latin capital letter O with tilde,
                                     U+00D5 ISOlat1 -->
<!ENTITY Ouml   "&#214;" ><!-- latin capital letter O with diaeresis,
                                     U+00D6 ISOlat1 -->
<!ENTITY times  "&#215;" ><!-- multiplication sign,    
                                     U+00D7 ISOnum -->
<!ENTITY Oslash "&#216;" ><!-- latin capital letter O with stroke
                                     = latin capital letter O slash,
                                     U+00D8 ISOlat1 -->
<!ENTITY Ugrave "&#217;" ><!-- latin capital letter U with grave,
                                     U+00D9 ISOlat1 -->
<!ENTITY Uacute "&#218;" ><!-- latin capital letter U with acute,
                                     U+00DA ISOlat1 -->
<!ENTITY Ucirc  "&#219;" ><!-- latin capital letter U with circumflex,
                                     U+00DB ISOlat1 -->
<!ENTITY Uuml   "&#220;" ><!-- latin capital letter U with diaeresis,
                                     U+00DC ISOlat1 -->
<!ENTITY Yacute "&#221;" ><!-- latin capital letter Y with acute,
                                     U+00DD ISOlat1 -->
<!ENTITY THORN  "&#222;" ><!-- latin capital letter THORN,
                                     U+00DE ISOlat1 -->
<!ENTITY szlig  "&#223;" ><!-- latin small letter sharp s = ess-zed,
                                     U+00DF ISOlat1 -->
<!ENTITY agrave "&#224;" ><!-- latin small letter a with grave
                                     = latin small letter a grave,
                                     U+00E0 ISOlat1 -->
<!ENTITY aacute "&#225;" ><!-- latin small letter a with acute,
                                     U+00E1 ISOlat1 -->
<!ENTITY acirc  "&#226;" ><!-- latin small letter a with circumflex,
                                     U+00E2 ISOlat1 -->
<!ENTITY atilde "&#227;" ><!-- latin small letter a with tilde,
                                     U+00E3 ISOlat1 -->
<!ENTITY auml   "&#228;" ><!-- latin small letter a with diaeresis,
                                     U+00E4 ISOlat1 -->
<!ENTITY aring  "&#229;" ><!-- latin small letter a with ring above
                                     = latin small letter a ring,
                                     U+00E5 ISOlat1 -->
<!ENTITY aelig  "&#230;" ><!-- latin small letter ae
                                     = latin small ligature ae,    
                                     U+00E6 ISOlat1 -->
<!ENTITY ccedil "&#231;" ><!-- latin small letter c with cedilla,
                                     U+00E7 ISOlat1 -->
<!ENTITY egrave "&#232;" ><!-- latin small letter e with grave,
                                     U+00E8 ISOlat1 -->
<!ENTITY eacute "&#233;" ><!-- latin small letter e with acute,
                                     U+00E9 ISOlat1 -->
<!ENTITY ecirc  "&#234;" ><!-- latin small letter e with circumflex,
                                     U+00EA ISOlat1 -->
<!ENTITY euml   "&#235;" ><!-- latin small letter e with diaeresis,
                                     U+00EB ISOlat1 -->
<!ENTITY igrave "&#236;" ><!-- latin small letter i with grave,
                                     U+00EC ISOlat1 -->
<!ENTITY iacute "&#237;" ><!-- latin small letter i with acute,
                                     U+00ED ISOlat1 -->
<!ENTITY icirc  "&#238;" ><!-- latin small letter i with circumflex,
                                     U+00EE ISOlat1 -->
<!ENTITY iuml   "&#239;" ><!-- latin small letter i with diaeresis,
                                     U+00EF ISOlat1 -->
<!ENTITY eth    "&#240;" ><!-- latin small letter eth,    
                                     U+00F0 ISOlat1 -->
<!ENTITY ntilde "&#241;" ><!-- latin small letter n with tilde,
                                     U+00F1 ISOlat1 -->
<!ENTITY ograve "&#242;" ><!-- latin small letter o with grave,
                                     U+00F2 ISOlat1 -->
<!ENTITY oacute "&#243;" ><!-- latin small letter o with acute,
                                     U+00F3 ISOlat1 -->
<!ENTITY ocirc  "&#244;" ><!-- latin small letter o with circumflex,
                                     U+00F4 ISOlat1 -->
<!ENTITY otilde "&#245;" ><!-- latin small letter o with tilde,
                                     U+00F5 ISOlat1 -->
<!ENTITY ouml   "&#246;" ><!-- latin small letter o with diaeresis,
                                     U+00F6 ISOlat1 -->
<!ENTITY divide "&#247;" ><!-- division sign,    
                                     U+00F7 ISOnum -->
<!ENTITY oslash "&#248;" ><!-- latin small letter o with stroke,
                                     = latin small letter o slash,
                                     U+00F8 ISOlat1 -->
<!ENTITY ugrave "&#249;" ><!-- latin small letter u with grave,
                                     U+00F9 ISOlat1 -->
<!ENTITY uacute "&#250;" ><!-- latin small letter u with acute,
                                     U+00FA ISOlat1 -->
<!ENTITY ucirc  "&#251;" ><!-- latin small letter u with circumflex,
                                     U+00FB ISOlat1 -->
<!ENTITY uuml   "&#252;" ><!-- latin small letter u with diaeresis,
                                     U+00FC ISOlat1 -->
<!ENTITY yacute "&#253;" ><!-- latin small letter y with acute,
                                     U+00FD ISOlat1 -->
<!ENTITY thorn  "&#254;" ><!-- latin small letter thorn with,
                                     U+00FE ISOlat1 -->
<!ENTITY yuml   "&#255;" ><!-- latin small letter y with diaeresis,
                                     U+00FF ISOlat1 -->

C.3.2. XHTML Special Characters

<!-- XML-compatible ISO Special Character Entity Set for XHTML 1.0 

     Typical invocation:

       <!ENTITY % XHTML1-special 
           PUBLIC "-//W3C//ENTITIES Special//EN//XML"
                  "XHTML1-special.ent">
       %XHTML1-special;

     Revision:  @(#)XHTML1-special.ent 1.13 99/04/01 SMI

     Portions (C) International Organization for Standardization 1986:
     Permission to copy in any form is granted for use with
     conforming SGML systems and applications as defined in
     ISO 8879, provided this notice is included in all copies.
-->

<!-- Relevant ISO entity set is given unless names are newly introduced.
     New names (i.e., not in ISO 8879 list) do not clash with any
     existing ISO 8879 entity names. ISO 10646 character numbers
     are given for each character, in hex. CDATA values are decimal
     conversions of the ISO 10646 values and refer to the document
     character set. Names are Unicode 2.0 names. 
-->

<!-- C0 Controls and Basic Latin -->
<!ENTITY quot    "&#34;" ><!-- quotation mark = APL quote, U+0022 ISOnum -->
<!ENTITY amp     "&#38;" ><!-- ampersand, U+0026 ISOnum -->
<!ENTITY lt      "&#60;" ><!-- less-than sign, U+003C ISOnum -->
<!ENTITY gt      "&#62;" ><!-- greater-than sign, U+003E ISOnum -->

<!-- Latin Extended-A -->
<!ENTITY OElig   "&#338;" ><!-- latin capital ligature OE, U+0152 ISOlat2 -->
<!ENTITY oelig   "&#339;" ><!-- latin small ligature oe, U+0153 ISOlat2 -->

<!-- ligature is a misnomer, this is a separate character in some languages -->
<!ENTITY Scaron  "&#352;" ><!-- latin capital letter S with caron, 
                                      U+0160 ISOlat2 -->
<!ENTITY scaron  "&#353;" ><!-- latin small letter s with caron, 
                                      U+0161 ISOlat2 -->
<!ENTITY Yuml    "&#376;" ><!-- latin capital letter Y with diaeresis,
                                      U+0178 ISOlat2 -->

<!-- Spacing Modifier Letters -->
<!ENTITY circ    "&#710;" ><!-- modifier letter circumflex accent,
                                      U+02C6 ISOpub -->
<!ENTITY tilde   "&#732;" ><!-- small tilde, U+02DC ISOdia -->

<!-- General Punctuation -->
<!ENTITY ensp    "&#8194;" ><!-- en space, U+2002 ISOpub -->
<!ENTITY emsp    "&#8195;" ><!-- em space, U+2003 ISOpub -->
<!ENTITY thinsp  "&#8201;" ><!-- thin space, U+2009 ISOpub -->
<!ENTITY zwnj    "&#8204;" ><!-- zero width non-joiner,
                                       U+200C NEW RFC 2070 -->
<!ENTITY zwj     "&#8205;" ><!-- zero width joiner, U+200D NEW RFC 2070 -->
<!ENTITY lrm     "&#8206;" ><!-- left-to-right mark, U+200E NEW RFC 2070 -->
<!ENTITY rlm     "&#8207;" ><!-- right-to-left mark, U+200F NEW RFC 2070 -->
<!ENTITY ndash   "&#8211;" ><!-- en dash, U+2013 ISOpub -->
<!ENTITY mdash   "&#8212;" ><!-- em dash, U+2014 ISOpub -->
<!ENTITY lsquo   "&#8216;" ><!-- left single quotation mark,
                                       U+2018 ISOnum -->
<!ENTITY rsquo   "&#8217;" ><!-- right single quotation mark,
                                       U+2019 ISOnum -->
<!ENTITY sbquo   "&#8218;" ><!-- single low-9 quotation mark, U+201A NEW -->
<!ENTITY ldquo   "&#8220;" ><!-- left double quotation mark,
                                       U+201C ISOnum -->
<!ENTITY rdquo   "&#8221;" ><!-- right double quotation mark,
                                       U+201D ISOnum -->
<!ENTITY bdquo   "&#8222;" ><!-- double low-9 quotation mark, U+201E NEW -->
<!ENTITY dagger  "&#8224;" ><!-- dagger, U+2020 ISOpub -->
<!ENTITY Dagger  "&#8225;" ><!-- double dagger, U+2021 ISOpub -->
<!ENTITY permil  "&#8240;" ><!-- per mille sign, U+2030 ISOtech -->

<!-- lsaquo is proposed but not yet ISO standardized -->
<!ENTITY lsaquo  "&#8249;" ><!-- single left-pointing angle quotation mark,
                                       U+2039 ISO proposed -->
<!-- rsaquo is proposed but not yet ISO standardized -->
<!ENTITY rsaquo  "&#8250;" ><!-- single right-pointing angle quotation mark,
                                       U+203A ISO proposed -->
<!ENTITY euro    "&#8364;" ><!-- euro sign, U+20AC NEW -->

C.3.3. XHTML Mathematical, Greek, and Symbolic Characters

<!-- XML-compatible ISO Mathematical, Greek and Symbolic 
     Character Entity Set for XHTML 1.0

     Typical invocation:

       <!ENTITY % XHTML1-symbol 
           PUBLIC "-//W3C//ENTITIES Symbols//EN//XML"
                  "XHTML1-symbol.ent">
       %XHTML1-symbol;

     Revision:  @(#)XHTML1-symbol.ent 1.13 99/04/01 SMI

     Portions (C) International Organization for Standardization 1986:
     Permission to copy in any form is granted for use with
     conforming SGML systems and applications as defined in
     ISO 8879, provided this notice is included in all copies.
-->

<!-- Relevant ISO entity set is given unless names are newly introduced.
     New names (i.e., not in ISO 8879 list) do not clash with any
     existing ISO 8879 entity names. ISO 10646 character numbers
     are given for each character, in hex. CDATA values are decimal
     conversions of the ISO 10646 values and refer to the document
     character set. Names are Unicode 2.0 names. 
-->

<!-- Latin Extended-B -->
<!ENTITY fnof     "&#402;" ><!-- latin small f with hook = function
                              = florin, U+0192 ISOtech -->

<!-- Greek -->
<!ENTITY Alpha    "&#913;" ><!-- greek capital letter alpha, U+0391 -->
<!ENTITY Beta     "&#914;" ><!-- greek capital letter beta, U+0392 -->
<!ENTITY Gamma    "&#915;" ><!-- greek capital letter gamma, U+0393 ISOgrk3 -->
<!ENTITY Delta    "&#916;" ><!-- greek capital letter delta, U+0394 ISOgrk3 -->
<!ENTITY Epsilon  "&#917;" ><!-- greek capital letter epsilon, U+0395 -->
<!ENTITY Zeta     "&#918;" ><!-- greek capital letter zeta, U+0396 -->
<!ENTITY Eta      "&#919;" ><!-- greek capital letter eta, U+0397 -->
<!ENTITY Theta    "&#920;" ><!-- greek capital letter theta, U+0398 ISOgrk3 -->
<!ENTITY Iota     "&#921;" ><!-- greek capital letter iota, U+0399 -->
<!ENTITY Kappa    "&#922;" ><!-- greek capital letter kappa, U+039A -->
<!ENTITY Lambda   "&#923;" ><!-- greek capital letter lambda, U+039B ISOgrk3 -->
<!ENTITY Mu       "&#924;" ><!-- greek capital letter mu, U+039C -->
<!ENTITY Nu       "&#925;" ><!-- greek capital letter nu, U+039D -->
<!ENTITY Xi       "&#926;" ><!-- greek capital letter xi, U+039E ISOgrk3 -->
<!ENTITY Omicron  "&#927;" ><!-- greek capital letter omicron, U+039F -->
<!ENTITY Pi       "&#928;" ><!-- greek capital letter pi, U+03A0 ISOgrk3 -->
<!ENTITY Rho      "&#929;" ><!-- greek capital letter rho, U+03A1 -->
<!-- there is no Sigmaf, and no U+03A2 character either -->
<!ENTITY Sigma    "&#931;" ><!-- greek capital letter sigma, U+03A3 ISOgrk3 -->
<!ENTITY Tau      "&#932;" ><!-- greek capital letter tau, U+03A4 -->
<!ENTITY Upsilon  "&#933;" ><!-- greek capital letter upsilon,
                              U+03A5 ISOgrk3 -->
<!ENTITY Phi      "&#934;" ><!-- greek capital letter phi, U+03A6 ISOgrk3 -->
<!ENTITY Chi      "&#935;" ><!-- greek capital letter chi, U+03A7 -->
<!ENTITY Psi      "&#936;" ><!-- greek capital letter psi, U+03A8 ISOgrk3 -->
<!ENTITY Omega    "&#937;" ><!-- greek capital letter omega, U+03A9 ISOgrk3 -->
<!ENTITY alpha    "&#945;" ><!-- greek small letter alpha, U+03B1 ISOgrk3 -->
<!ENTITY beta     "&#946;" ><!-- greek small letter beta, U+03B2 ISOgrk3 -->
<!ENTITY gamma    "&#947;" ><!-- greek small letter gamma, U+03B3 ISOgrk3 -->
<!ENTITY delta    "&#948;" ><!-- greek small letter delta, U+03B4 ISOgrk3 -->
<!ENTITY epsilon  "&#949;" ><!-- greek small letter epsilon, U+03B5 ISOgrk3 -->
<!ENTITY zeta     "&#950;" ><!-- greek small letter zeta, U+03B6 ISOgrk3 -->
<!ENTITY eta      "&#951;" ><!-- greek small letter eta, U+03B7 ISOgrk3 -->
<!ENTITY theta    "&#952;" ><!-- greek small letter theta, U+03B8 ISOgrk3 -->
<!ENTITY iota     "&#953;" ><!-- greek small letter iota, U+03B9 ISOgrk3 -->
<!ENTITY kappa    "&#954;" ><!-- greek small letter kappa, U+03BA ISOgrk3 -->
<!ENTITY lambda   "&#955;" ><!-- greek small letter lambda, U+03BB ISOgrk3 -->
<!ENTITY mu       "&#956;" ><!-- greek small letter mu, U+03BC ISOgrk3 -->
<!ENTITY nu       "&#957;" ><!-- greek small letter nu, U+03BD ISOgrk3 -->
<!ENTITY xi       "&#958;" ><!-- greek small letter xi, U+03BE ISOgrk3 -->
<!ENTITY omicron  "&#959;" ><!-- greek small letter omicron, U+03BF NEW -->
<!ENTITY pi       "&#960;" ><!-- greek small letter pi, U+03C0 ISOgrk3 -->
<!ENTITY rho      "&#961;" ><!-- greek small letter rho, U+03C1 ISOgrk3 -->
<!ENTITY sigmaf   "&#962;" ><!-- greek small letter final sigma,
                              U+03C2 ISOgrk3 -->
<!ENTITY sigma    "&#963;" ><!-- greek small letter sigma, U+03C3 ISOgrk3 -->
<!ENTITY tau      "&#964;" ><!-- greek small letter tau, U+03C4 ISOgrk3 -->
<!ENTITY upsilon  "&#965;" ><!-- greek small letter upsilon,
                              U+03C5 ISOgrk3 -->
<!ENTITY phi      "&#966;" ><!-- greek small letter phi, U+03C6 ISOgrk3 -->
<!ENTITY chi      "&#967;" ><!-- greek small letter chi, U+03C7 ISOgrk3 -->
<!ENTITY psi      "&#968;" ><!-- greek small letter psi, U+03C8 ISOgrk3 -->
<!ENTITY omega    "&#969;" ><!-- greek small letter omega, U+03C9 ISOgrk3 -->
<!ENTITY thetasym "&#977;" ><!-- greek small letter theta symbol,
                              U+03D1 NEW -->
<!ENTITY upsih    "&#978;" ><!-- greek upsilon with hook symbol,
                              U+03D2 NEW -->
<!ENTITY piv      "&#982;" ><!-- greek pi symbol, U+03D6 ISOgrk3 -->

<!-- General Punctuation -->
<!ENTITY bull     "&#8226;" ><!-- bullet = black small circle,
                               U+2022 ISOpub  -->
<!-- bullet is NOT the same as bullet operator, U+2219 -->
<!ENTITY hellip   "&#8230;" ><!-- horizontal ellipsis = three dot leader,
                               U+2026 ISOpub  -->
<!ENTITY prime    "&#8242;" ><!-- prime = minutes = feet, U+2032 ISOtech -->
<!ENTITY Prime    "&#8243;" ><!-- double prime = seconds = inches,
                               U+2033 ISOtech -->
<!ENTITY oline    "&#8254;" ><!-- overline = spacing overscore,
                               U+203E NEW -->
<!ENTITY frasl    "&#8260;" ><!-- fraction slash, U+2044 NEW -->

<!-- Letterlike Symbols -->
<!ENTITY weierp   "&#8472;" ><!-- script capital P = power set
                               = Weierstrass p, U+2118 ISOamso -->
<!ENTITY image    "&#8465;" ><!-- blackletter capital I = imaginary part,
                               U+2111 ISOamso -->
<!ENTITY real     "&#8476;" ><!-- blackletter capital R = real part symbol,
                               U+211C ISOamso -->
<!ENTITY trade    "&#8482;" ><!-- trade mark sign, U+2122 ISOnum -->
<!ENTITY alefsym  "&#8501;" ><!-- alef symbol = first transfinite cardinal,
                               U+2135 NEW -->
<!-- alef symbol is NOT the same as hebrew letter alef,
     U+05D0 although the same glyph could be used to depict both characters -->

<!-- Arrows -->
<!ENTITY larr     "&#8592;" ><!-- leftwards arrow, U+2190 ISOnum -->
<!ENTITY uarr     "&#8593;" ><!-- upwards arrow, U+2191 ISOnum-->
<!ENTITY rarr     "&#8594;" ><!-- rightwards arrow, U+2192 ISOnum -->
<!ENTITY darr     "&#8595;" ><!-- downwards arrow, U+2193 ISOnum -->
<!ENTITY harr     "&#8596;" ><!-- left right arrow, U+2194 ISOamsa -->
<!ENTITY crarr    "&#8629;" ><!-- downwards arrow with corner leftwards
                               = carriage return, U+21B5 NEW -->
<!ENTITY lArr     "&#8656;" ><!-- leftwards double arrow, U+21D0 ISOtech -->
<!-- Unicode does not say that lArr is the same as the 'is implied by' arrow
    but also does not have any other character for that function. So ? lArr can
    be used for 'is implied by' as ISOtech suggests -->
<!ENTITY uArr     "&#8657;" ><!-- upwards double arrow, U+21D1 ISOamsa -->
<!ENTITY rArr     "&#8658;" ><!-- rightwards double arrow,
                               U+21D2 ISOtech -->
<!-- Unicode does not say this is the 'implies' character but does not have 
     another character with this function so ?
     rArr can be used for 'implies' as ISOtech suggests -->
<!ENTITY dArr     "&#8659;" ><!-- downwards double arrow, U+21D3 ISOamsa -->
<!ENTITY hArr     "&#8660;" ><!-- left right double arrow,
                               U+21D4 ISOamsa -->

<!-- Mathematical Operators -->
<!ENTITY forall   "&#8704;" ><!-- for all, U+2200 ISOtech -->
<!ENTITY part     "&#8706;" ><!-- partial differential, U+2202 ISOtech  -->
<!ENTITY exist    "&#8707;" ><!-- there exists, U+2203 ISOtech -->
<!ENTITY empty    "&#8709;" ><!-- empty set = null set = diameter,
                               U+2205 ISOamso -->
<!ENTITY nabla    "&#8711;" ><!-- nabla = backward difference,
                               U+2207 ISOtech -->
<!ENTITY isin     "&#8712;" ><!-- element of, U+2208 ISOtech -->
<!ENTITY notin    "&#8713;" ><!-- not an element of, U+2209 ISOtech -->
<!ENTITY ni       "&#8715;" ><!-- contains as member, U+220B ISOtech -->
<!-- should there be a more memorable name than 'ni'? -->
<!ENTITY prod     "&#8719;" ><!-- n-ary product = product sign,
                               U+220F ISOamsb -->
<!-- prod is NOT the same character as U+03A0 'greek capital letter pi' though
     the same glyph might be used for both -->
<!ENTITY sum      "&#8721;" ><!-- n-ary sumation, U+2211 ISOamsb -->
<!-- sum is NOT the same character as U+03A3 'greek capital letter sigma'
     though the same glyph might be used for both -->
<!ENTITY minus    "&#8722;" ><!-- minus sign, U+2212 ISOtech -->
<!ENTITY lowast   "&#8727;" ><!-- asterisk operator, U+2217 ISOtech -->
<!ENTITY radic    "&#8730;" ><!-- square root = radical sign,
                               U+221A ISOtech -->
<!ENTITY prop     "&#8733;" ><!-- proportional to, U+221D ISOtech -->
<!ENTITY infin    "&#8734;" ><!-- infinity, U+221E ISOtech -->
<!ENTITY ang      "&#8736;" ><!-- angle, U+2220 ISOamso -->
<!ENTITY and      "&#8743;" ><!-- logical and = wedge, U+2227 ISOtech -->
<!ENTITY or       "&#8744;" ><!-- logical or = vee, U+2228 ISOtech -->
<!ENTITY cap      "&#8745;" ><!-- intersection = cap, U+2229 ISOtech -->
<!ENTITY cup      "&#8746;" ><!-- union = cup, U+222A ISOtech -->
<!ENTITY int      "&#8747;" ><!-- integral, U+222B ISOtech -->
<!ENTITY there4   "&#8756;" ><!-- therefore, U+2234 ISOtech -->
<!ENTITY sim      "&#8764;" ><!-- tilde operator = varies with = similar to,
                               U+223C ISOtech -->
<!-- tilde operator is NOT the same character as the tilde, U+007E,
     although the same glyph might be used to represent both  -->
<!ENTITY cong     "&#8773;" ><!-- approximately equal to, U+2245 ISOtech -->
<!ENTITY asymp    "&#8776;" ><!-- almost equal to = asymptotic to,
                               U+2248 ISOamsr -->
<!ENTITY ne       "&#8800;" ><!-- not equal to, U+2260 ISOtech -->
<!ENTITY equiv    "&#8801;" ><!-- identical to, U+2261 ISOtech -->
<!ENTITY le       "&#8804;" ><!-- less-than or equal to, U+2264 ISOtech -->
<!ENTITY ge       "&#8805;" ><!-- greater-than or equal to,
                               U+2265 ISOtech -->
<!ENTITY sub      "&#8834;" ><!-- subset of, U+2282 ISOtech -->
<!ENTITY sup      "&#8835;" ><!-- superset of, U+2283 ISOtech -->
<!-- note that nsup, 'not a superset of, U+2283' is not covered by the Symbol 
     font encoding and is not included. Should it be, for symmetry?
     It is in ISOamsn  --> 
<!ENTITY nsub     "&#8836;" ><!-- not a subset of, U+2284 ISOamsn -->
<!ENTITY sube     "&#8838;" ><!-- subset of or equal to, U+2286 ISOtech -->
<!ENTITY supe     "&#8839;" ><!-- superset of or equal to,
                               U+2287 ISOtech -->
<!ENTITY oplus    "&#8853;" ><!-- circled plus = direct sum,
                               U+2295 ISOamsb -->
<!ENTITY otimes   "&#8855;" ><!-- circled times = vector product,
                               U+2297 ISOamsb -->
<!ENTITY perp     "&#8869;" ><!-- up tack = orthogonal to = perpendicular,
                               U+22A5 ISOtech -->
<!ENTITY sdot     "&#8901;" ><!-- dot operator, U+22C5 ISOamsb -->
<!-- dot operator is NOT the same character as U+00B7 middle dot -->

<!-- Miscellaneous Technical -->
<!ENTITY lceil    "&#8968;" ><!-- left ceiling = apl upstile,
                               U+2308 ISOamsc  -->
<!ENTITY rceil    "&#8969;" ><!-- right ceiling, U+2309 ISOamsc  -->
<!ENTITY lfloor   "&#8970;" ><!-- left floor = apl downstile,
                               U+230A ISOamsc  -->
<!ENTITY rfloor   "&#8971;" ><!-- right floor, U+230B ISOamsc  -->
<!ENTITY lang     "&#9001;" ><!-- left-pointing angle bracket = bra,
                               U+2329 ISOtech -->
<!-- lang is NOT the same character as U+003C 'less than' 
     or U+2039 'single left-pointing angle quotation mark' -->
<!ENTITY rang     "&#9002;" ><!-- right-pointing angle bracket = ket,
                               U+232A ISOtech -->
<!-- rang is NOT the same character as U+003E 'greater than' 
     or U+203A 'single right-pointing angle quotation mark' -->

<!-- Geometric Shapes -->
<!ENTITY loz      "&#9674;" ><!-- lozenge, U+25CA ISOpub -->

<!-- Miscellaneous Symbols -->
<!ENTITY spades   "&#9824;" ><!-- black spade suit, U+2660 ISOpub -->
<!-- black here seems to mean filled as opposed to hollow -->
<!ENTITY clubs    "&#9827;" ><!-- black club suit = shamrock,
                               U+2663 ISOpub -->
<!ENTITY hearts   "&#9829;" ><!-- black heart suit = valentine,
                               U+2665 ISOpub -->
<!ENTITY diams    "&#9830;" ><!-- black diamond suit, U+2666 ISOpub -->

C.4. Common Declaration

In order to take advantage of the XHTML DTD Modules, DTD authors needs to define the content model for their DTD. XHTML provides a variety of tools to ease this effort. They are defined in the following support modules. See Extending XHTML for more information on using these and the Modules in custom DTDs

C.4.1. XHTML Common Names

<!-- ...................................................................... -->
<!-- XHTML 1.0 Document Common Names Module  .............................. -->
<!-- file: XHTML1-names.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-names.mod 1.16 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ENTITIES XHTML 1.0 Common Names//EN"
     SYSTEM "XHTML1-names.mod"

     Revisions:
# 1999-01-31  added URIs PE for multiple URI attribute values
     ....................................................................... -->

<!-- i. Common Names

     defines the following common names, many of these imported 
     from other specifications and standards.
-->

<!-- ....  Imported Names  .... -->

<!-- media type, as per [RFC2045] -->
<!ENTITY % ContentType "CDATA" >

<!-- comma-separated list of media types, as per [RFC2045] -->
<!ENTITY % ContentTypes "CDATA" >

<!-- a character encoding, as per [RFC2045] -->
<!ENTITY % Charset "CDATA" >

<!-- a space separated list of character encodings, as per [RFC2045] -->
<!ENTITY % Charsets "CDATA" >

<!-- date and time information. ISO date format -->
<!ENTITY % Datetime "CDATA" >

<!-- a single character from [ISO10646] -->
<!ENTITY % Character "CDATA" >

<!-- a language code, as per [RFC1766] -->
<!ENTITY % LanguageCode "NMTOKEN" >

<!-- space-separated list of link types -->
<!ENTITY % LinkTypes "NMTOKENS" >

<!-- single or comma-separated list of media descriptors -->
<!ENTITY % MediaDesc "CDATA" >

<!-- one or more digits (NUMBER) -->
<!ENTITY % Number "CDATA" >

<!-- a Uniform Resource Identifier, see [URI] -->
<!ENTITY % URI "CDATA" >

<!-- a space-separated list of Uniform Resource Identifiers, see [URI] -->
<!ENTITY % URIs "CDATA" >

<!-- script expression -->
<!ENTITY % Script "CDATA" >

<!-- style sheet data -->
<!ENTITY % StyleSheet "CDATA" >

<!ENTITY % Text "CDATA" >

<!-- Length defined in strict DTD for cellpadding/cellspacing -->

<!-- nn for pixels or nn% for percentage length -->
<!ENTITY % Length "CDATA" >

<!-- pixel, percentage, or relative -->
<!ENTITY % MultiLength "CDATA" >

<!-- comma-separated list of MultiLength -->
<!ENTITY % MultiLengths "CDATA" >

<!-- integer representing length in pixels -->
<!ENTITY % Pixels "CDATA" >

<!-- render in this frame --> 
<!ENTITY % FrameTarget "CDATA" >

<!-- a color using sRGB: #RRGGBB as Hex values --> 
<!ENTITY % Color "CDATA" >

<!-- end of XHTML1-names.mod -->

C.4.2. XHTML Common Attribute Definitions

<!-- ...................................................................... -->
<!-- XHTML 1.0 Common Attributes Module  .................................. -->
<!-- file: XHTML1-attribs.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0. 
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-attribs.mod 1.14 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ENTITIES XHTML 1.0 Common Attributes//EN"
     SYSTEM "XHTML1-attribs.mod"

     Revisions:
# 1999-02-24  changed PE names for attribute classes to *.attrib; 
     ....................................................................... -->

<!-- ii. Common Attributes

     This modules declares many of the common attributes for the Strict DTD.
-->

<!ENTITY % Core.attrib
     "id           ID                       #IMPLIED
      class        CDATA                    #IMPLIED
      style        %StyleSheet;             #IMPLIED
      title        %Text;                   #IMPLIED"
>

<!ENTITY % I18n.attrib
    "lang          %LanguageCode;           #IMPLIED
     xml:lang      %LanguageCode;           #IMPLIED
     dir           (ltr|rtl)                #IMPLIED"
>

<!-- HTML intrinsic event attributes declared previously -->
<!ENTITY % Events.attrib "" >

<!ENTITY % Common.attrib 
     "%Core.attrib; 
      %I18n.attrib; 
      %Events.attrib;" >

<!ENTITY % Align.attrib "" >

<!ENTITY % XLink.attribs  "INCLUDE" >
<![%XLink.attribs;[
<!-- XLink attributes for a simple 'a' style link -->

<!ENTITY % Alink.attrib
     "xml:link     CDATA                    #FIXED   'simple' 
      role         CDATA                    #IMPLIED
      inline       CDATA                    #FIXED   'true'
      content-role CDATA                    #IMPLIED
      content-title CDATA                   #IMPLIED
      show         CDATA                    #FIXED   'replace'
      activate     CDATA                    #FIXED   'user'
      behavior     CDATA                    #IMPLIED"
>
]]>
<!ENTITY % Alink.attrib  "" >

<!-- end of XHTML1-attribs.mod -->

C.4.3. XHTML Transitional Attribute Definitions

<!-- ...................................................................... -->
<!-- XHTML 1.0 Transitional Attributes Module  ............................ -->
<!-- file: XHTML1-attribs-t.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-attribs-t.mod 1.14 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Transitional Attributes//EN"
     SYSTEM "XHTML1-attribs-t.mod"

     Revisions:
# 1999-01-24  changed PE names for attribute classes to *.attrib;
     ....................................................................... -->

<!-- ii(t). Common Transitional Attributes

     This modules declares the same set of common attributes as the Strict
     version, but additionally includes ATTLIST declarations for the additional
     attribute specifications found in the Transitional DTD.
-->

<!ENTITY % Core.attrib
     "id           ID                       #IMPLIED
      class        CDATA                    #IMPLIED
      style        %StyleSheet;             #IMPLIED
      title        %Text;                   #IMPLIED"
>

<!ENTITY % I18n.attrib
     "lang         %LanguageCode;           #IMPLIED
      xml:lang     %LanguageCode;           #IMPLIED
      dir          (ltr|rtl)                #IMPLIED"
>

<!-- HTML intrinsic event attributes declared previously -->

<!ENTITY % Common.attrib 
     "%Core.attrib; 
      %I18n.attrib; 
      %Events.attrib;" 
>

<!-- horizontal text alignment -->
<!ENTITY % Align.attrib
     "align   (left|center|right|justify)   #IMPLIED" 
>

<!-- horizontal and vertical alignment -->
<!ENTITY % IAlign.attrib 
     "align   (top|middle|bottom|left|right) #IMPLIED" 
>

<!ENTITY % XLink.attribs  "INCLUDE" >
<![%XLink.attribs;[
<!-- XLink attributes for a simple anchor link -->

<!ENTITY % Alink.attrib
     "xml:link     CDATA                    #FIXED   'simple' 
      role         CDATA                    #IMPLIED
      inline       CDATA                    #FIXED   'true'
      content-role CDATA                    #IMPLIED
      content-title CDATA                   #IMPLIED
      show         CDATA                    #FIXED   'replace'
      activate     CDATA                    #FIXED   'user'
      behavior     CDATA                    #IMPLIED"
>
]]>
<!ENTITY % Alink.attrib  "" >

<!-- end of XHTML1-attribs-t.mod -->

C.4.4. XHTML Strict Content Model

<!-- ...................................................................... -->
<!-- XHTML 1.0 Document Model Module  ..................................... -->
<!-- file: XHTML1-model.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-model.mod 1.12 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Document Model//EN"
     SYSTEM "XHTML1-model.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- iii. Document Model

     This modules declares entities describing all text flow 
     elements, excluding Transitional elements. This module 
     describes the groupings of elements that make up HTML's 
     document model. 

     HTML has two basic content models:

         %Inline.mix;  character-level elements 
         %Block.mix;   block-like elements, eg., paragraphs and lists

     The reserved word '#PCDATA' (indicating a text string) is now 
     included explicitly with each element declaration, as XML requires 
     that the reserved word occur first in a content model specification..
-->

<!-- .................  Miscellaneous Elements  ................ -->

<!-- These elements are neither block nor inline, and can 
     essentially be used anywhere in the document body -->

<!ENTITY % Misc.class 
       "ins | del | script | noscript" > 

<!-- ....................  Inline Elements  .................... -->

<!ENTITY % Inlstruct.class
       "bdo | br | span" >

<!ENTITY % Inlpres.class  "tt | i | b | big | small | sub | sup" >

<!ENTITY % Inlphras.class  
     "em | strong | dfn | code | samp | kbd | var | cite | abbr | acronym | q" >

<!ENTITY % Inlspecial.class  "a | img | object | map" >

<!ENTITY % Formctrl.class  "input | select | textarea | label | button" >

<!-- %Inline.class; includes all inline elements, used as a component in mixes -->

<!ENTITY % Inline.class  
     "%Inlstruct.class; 
      | %Inlpres.class; 
      | %Inlphras.class; 
      | %Inlspecial.class; 
      | %Formctrl.class;"
>

<!-- %Inline.mix; includes all inline elements, including %Misc.class; -->

<!ENTITY % Inline.mix  
     "%Inline.class; 
      | %Misc.class;"
>

<!-- %Inline-noa.class; includes all non-anchor inlines,
     used as a component in mixes -->

<!ENTITY % Inline-noa.class  
     "%Inlstruct.class; 
      | %Inlpres.class; 
      | %Inlphras.class; 
      | img | object | map 
      | %Formctrl.class;"
>

<!-- %Inline-noa.mix; includes all non-anchor inlines -->

<!ENTITY % Inline-noa.mix  
     "%Inline-noa.class; 
      | %Misc.class;"
>

<!-- .....................  Block Elements  .................... -->

<!-- In the HTML 4.0 DTD, heading and list elements were included 
     in the %block; parameter entity. The %Heading.class; and 
     %List.class; parameter entities must now be included explicitly 
     on element declarations where desired.
-->

<!--  There are six levels of headings from H1 (the most important)
      to H6 (the least important).
  -->
<!ENTITY % Heading.class  "h1 | h2 | h3 | h4 | h5 | h6" >

<!ENTITY % List.class "ul | ol | dl" >

<!ENTITY % Blkstruct.class  "p | div" >

<!ENTITY % Blkpres.class "hr" >

<!ENTITY % Blkphras.class  "pre | blockquote | address" >

<!ENTITY % Blkform.class  "form | fieldset" >

<!ENTITY % Blkspecial.class  "table" >

<!-- %Block.class; includes all block elements, 
     used as an component in mixes -->

<!ENTITY % Block.class 
     "%Blkstruct.class; 
      | %Blkpres.class; 
      | %Blkphras.class; 
      | %Blkform.class;
      | %Blkspecial.class;"
>

<!-- %Block.mix; includes all block elements plus %Misc.class; -->

<!ENTITY % Block.mix
     "%Block.class;
      | %Misc.class;"
> 

<!-- %Block-noform.class; includes all non-form block elements,
     used as a component in mixes -->

<!ENTITY % Block-noform.class 
     "%Blkstruct.class; 
      | %Blkpres.class; 
      | %Blkphras.class; 
      | %Blkspecial.class;"
>

<!-- %Block-noform.mix; includes all non-form block elements,
     plus %Misc.class; -->

<!ENTITY % Block-noform.mix 
     "%Block-noform.class;
      | %Misc.class;"
>

<!-- ................  All Content Elements  .................. -->

<!-- %Flow.mix; includes all text content, block and inline -->

<!ENTITY % Flow.mix
       "%Heading.class; 
      | %List.class; 
      | %Block.class;
      | %Inline.class;
      | %Misc.class;"
>

<!-- end of XHTML1-model.mod -->

C.4.5. XHTML Transitional Content Model

<!-- ...................................................................... -->
<!-- XHTML 1.0 Transitional Text Markup Module  ........................... -->
<!-- file: XHTML1-model-t.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-model-t.mod 1.14 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Transitional Document Model//EN"
     SYSTEM "XHTML1-model-t.mod"

     Revisions:
#1999-01-14  rearranged forms and frames PEs, adding %Blkform.class;
     ....................................................................... -->

<!-- iii(t). Transitional Document Model

     This modules declares entities describing all text flow 
     elements, including Transitional elements. This module 
     describes the groupings of elements that make up HTML's 
     document model. 

     HTML has two basic content models:

         %Inline.mix;  character-level elements 
         %Block.mix;   block-like elements, eg., paragraphs and lists

     The reserved word '#PCDATA' (indicating a text string) is now 
     included explicitly with each element declaration, as XML requires 
     that the reserved word occur first in a content model specification..
-->

<!-- .................  Miscellaneous Elements  ................ -->

<!-- These elements are neither block nor inline, and can 
     essentially be used anywhere in the document body -->

<!ENTITY % Misc.class 
       "ins | del | script | noscript" > 

<!-- ....................  Inline Elements  .................... -->

<!ENTITY % Inlstruct.class
       "bdo | br | span" >

<!ENTITY % Inlpres.class
       "tt | i | b | u | s | strike | big | small | font | basefont | sub | sup" >

<!ENTITY % Inlphras.class 
       "em | strong | dfn | code | samp | kbd | var | cite | abbr | acronym | q" >

<![%XHTML1-frames.module;[
<!-- %Inlspecial.class; includes iframe in Frameset DTD version -->

<!ENTITY % Inlspecial.class  "a | img | applet | object | map | iframe">
]]>

<!ENTITY % Inlspecial.class  "a | img | applet | object | map">

<!ENTITY % Formctrl.class  "input | select | textarea | label | button">

<!-- %Inline.class; includes all inline elements, used as a component in mixes -->

<!ENTITY % Inline.class  
     "%Inlstruct.class; 
      | %Inlpres.class; 
      | %Inlphras.class; 
      | %Inlspecial.class; 
      | %Formctrl.class;"
>

<!-- %Inline.mix; includes all inline elements, including %Misc.class; -->

<!ENTITY % Inline.mix  
     "%Inline.class; 
      | %Misc.class;"
>

<!-- %Inline-noa.class; includes all non-anchor inlines,
     used as a component in mixes -->

<!ENTITY % Inline-noa.class  
     "%Inlstruct.class; 
      | %Inlpres.class; 
      | %Inlphras.class; 
      | img | applet | object | map 
      | %Formctrl.class;"
>

<!-- %Inline-noa.mix; includes all non-anchor inlines -->

<!ENTITY % Inline-noa.mix  
     "%Inline-noa.class; 
      | %Misc.class;"
>

<!-- .....................  Block Elements  .................... -->

<!-- In the HTML 4.0 DTD, heading and list elements were included 
     in the %block; parameter entity. The %Heading.class; and 
     %List.class; parameter entities must now be included explicitly 
     on element declarations where desired.
-->

<!--  There are six levels of headings from h1 (the most important)
      to h6 (the least important).
-->
<!ENTITY % Heading.class  "h1 | h2 | h3 | h4 | h5 | h6"> 

<!ENTITY % List.class  "ul | ol | dl | menu | dir" >

<!ENTITY % Blkstruct.class  "p | div" >

<!ENTITY % Blkpres.class  "center | hr" >

<!ENTITY % Blkphras.class  "pre | blockquote | address" >

<!ENTITY % Blkform.class  "form | fieldset" >

<![%XHTML1-frames.module;[
<!-- Blkspecial.class includes noframes in Frameset DTD version -->

<!ENTITY % Blkspecial.class  "noframes | table" >
]]>

<!ENTITY % Blkspecial.class  "table" >

<!-- %Block.class; includes all block elements, 
     used as an component in mixes -->

<!ENTITY % Block.class 
     "%Blkstruct.class; 
      | %Blkpres.class; 
      | %Blkphras.class; 
      | %Blkform.class;
      | %Blkspecial.class;"
>

<!-- %Block.mix; includes all block elements plus %Misc.class; -->

<!ENTITY % Block.mix
     "%Block.class;
      | %Misc.class;"
> 

<!-- %Block-noform.class; includes all non-form block elements,
     used as a component in mixes -->

<!ENTITY % Block-noform.class 
     "%Blkstruct.class; 
      | %Blkpres.class; 
      | %Blkphras.class; 
      | %Blkspecial.class;"
>

<!-- %Block-noform.mix; includes all non-form block elements,
     plus %Misc.class; -->

<!ENTITY % Block-noform.mix 
     "%Block-noform.class;
      | %Misc.class;"
>

<!-- ................  All Content Elements  .................. -->

<!-- %Flow.mix; includes all text content, block and inline -->

<!ENTITY % Flow.mix
       "%Heading.class; 
      | %List.class; 
      | %Block.class;
      | %Inline.class;
      | %Misc.class;"
>

<!-- end of XHTML1-model-t.mod -->

C.4.6. Intrinsic Events

<!-- ...................................................................... -->
<!-- XHTML 1.0 Intrinsic Events Module  ................................... -->
<!-- file: XHTML1-events.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-events.mod 1.16 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ENTITIES XHTML 1.0 Intrinsic Events//EN"
     SYSTEM "XHTML1-events.mod"

     Revisions:
#1999-01-14  transferred onfocus and onblur ATTLIST for 'a' from link module
#1999-04-01  transferred remaining events attributes from other modules
     ....................................................................... -->

<!-- iv. Intrinsic Event Attributes

     These are the event attributes defined in HTML 4.0,
     Section 18.2.3 "Intrinsic Events"

    "Note: Authors of HTML documents are advised that changes are likely to 
     occur in the realm of intrinsic events (e.g., how scripts are bound to 
     events). Research in this realm is carried on by members of the W3C 
     Document Object Model Working Group (see the W3C Web site at 
     http://www.w3.org/ for more information)."
-->

<!ENTITY % Events.attrib
     "onclick      %Script;                 #IMPLIED
      ondblclick   %Script;                 #IMPLIED
      onmousedown  %Script;                 #IMPLIED
      onmouseup    %Script;                 #IMPLIED
      onmouseover  %Script;                 #IMPLIED
      onmousemove  %Script;                 #IMPLIED
      onmouseout   %Script;                 #IMPLIED
      onkeypress   %Script;                 #IMPLIED
      onkeydown    %Script;                 #IMPLIED
      onkeyup      %Script;                 #IMPLIED"
>

<!-- additional attributes on anchor element -->

<!ATTLIST a
     onfocus      %Script;                  #IMPLIED
     onblur       %Script;                  #IMPLIED  
>

<!-- additional attributes on form element -->

<!ATTLIST form
      onsubmit     %Script;                 #IMPLIED
      onreset      %Script;                 #IMPLIED
>

<!-- additional attributes on label element -->

<!ATTLIST label
      onfocus      %Script;                 #IMPLIED
      onblur       %Script;                 #IMPLIED
>

<!-- additional attributes on input element -->

<!ATTLIST input
      onfocus      %Script;                 #IMPLIED
      onblur       %Script;                 #IMPLIED
      onselect     %Script;                 #IMPLIED
      onchange     %Script;                 #IMPLIED
>

<!-- additional attributes on select element -->

<!ATTLIST select
      onfocus      %Script;                 #IMPLIED
      onblur       %Script;                 #IMPLIED
      onchange     %Script;                 #IMPLIED
>

<!-- additional attributes on textarea element -->

<!ATTLIST textarea
      onfocus      %Script;                 #IMPLIED
      onblur       %Script;                 #IMPLIED
      onselect     %Script;                 #IMPLIED
      onchange     %Script;                 #IMPLIED
>

<!-- additional attributes on button element -->

<!ATTLIST button
      onfocus      %Script;                 #IMPLIED
      onblur       %Script;                 #IMPLIED
>

<!-- additional attributes on body element -->

<!ATTLIST body
      onload       %Script;                 #IMPLIED
      onunload     %Script;                 #IMPLIED
>

<!-- additional attributes on area element -->

<!ATTLIST area 
      onfocus      %Script;                 #IMPLIED
      onblur       %Script;                 #IMPLIED
>

<!ENTITY % XHTML1-frames.module "IGNORE" >
<![%XHTML1-frames.module;[
<!-- additional attributes on frameset element -->

<!ATTLIST frameset 
      onload       %Script;                 #IMPLIED
      onunload     %Script;                 #IMPLIED
>
]]>

<!-- end of XHTML1-events.mod -->

C.4.7. XHTML Character Entities

<!-- ...................................................................... -->
<!-- XHTML 1.0 Character Entities Module  ................................. -->
<!-- file: XHTML1-charent.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-charent.mod 1.16 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ENTITIES XHTML 1.0 Character Entities//EN"
     SYSTEM "XHTML1-charent.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- v. Character Entities for XHTML

     declares the set of character entities for XHTML, including Latin 1,
     symbol and special characters.
-->

<!-- to exclude character entity declarations from a normalized 
     DTD, declare %XHTML1.ents; as "IGNORE" in the internal 
     subset of the dummy XHTML file used for normalization.
-->
<!ENTITY % XHTML1.ents "INCLUDE" >

<![%XHTML1.ents;[
<!ENTITY % XHTML1-lat1 
    PUBLIC "-//W3C//ENTITIES Latin 1//EN//XML"
           "XHTML1-lat1.ent" >
%XHTML1-lat1;

<!ENTITY % XHTML1-symbol 
    PUBLIC "-//W3C//ENTITIES Symbols//EN//XML"
           "XHTML1-symbol.ent" >
%XHTML1-symbol;

<!ENTITY % XHTML1-special 
    PUBLIC "-//W3C//ENTITIES Special//EN//XML"
           "XHTML1-special.ent" >
%XHTML1-special;
]]>

<!-- end of XHTML1-charent.mod -->

C.5. XHTML Document Structure Modules

This section contains the formal definition of each XHTML Module.

C.5.1. Structure

<!-- ...................................................................... -->
<!-- XHTML 1.0 Structure Module  .......................................... -->
<!-- file: XHTML1-struct.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-struct.mod 1.15 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Document Structure//EN"
     SYSTEM "XHTML1-struct.mod"

     Revisions:
# 1998-10-27  content model on head changed to exclude multiple title or base
# 1998-11-11  ins and del inclusions on body removed, added to indiv. elements
# 1998-11-15  added head element version attribute (restoring from HTML 3.2)
# 1999-03-24  %Profile.attrib; unused, but reserved for future use
     ....................................................................... -->

<!-- a1. Document Structure 

        body, head, html
-->

<!ENTITY % Head-opts.mix  "( script | style | meta | link | object )*" > 

<!ENTITY % Head.content "( title, base?, %Head-opts.mix; )" > 

<!-- reserved for future use with document profiles -->
<!ENTITY % Profile.attrib 
     "profile      %URI;                    #FIXED '%XHTML.profile;'" >

<!ELEMENT head  %Head.content; > 
<!ATTLIST head 
      %I18n.attrib;
      profile      %URI;                    #IMPLIED
> 

<![%XHTML.Transitional;[
<!-- in Transitional, allow #PCDATA and inlines directly within body -->

<!ENTITY % Body.content  "( #PCDATA | %Flow.mix; )*" > 
]]>
<!ENTITY % Body.content
     "( %Heading.class; 
      | %List.class; 
      | %Block.class; 
      | %Misc.class; )+"
>

<!ELEMENT body  %Body.content; >
<!ATTLIST body
      %Common.attrib;
>

<![%XHTML.Transitional;[
<!-- ....  additional Transitional attributes on body .... -->

<!-- There are also 16 widely known color names with their sRGB values: 
 
    Black  = #000000   Maroon = #800000   Green  = #008000   Navy   = #000080 
    Silver = #C0C0C0   Red    = #FF0000   Lime   = #00FF00   Blue   = #0000FF 
    Gray   = #808080   Purple = #800080   Olive  = #808000   Teal   = #008080 
    White  = #FFFFFF   Fuchsia= #FF00FF   Yellow = #FFFF00   Aqua   = #00FFFF 
--> 

<!ATTLIST body
      bgcolor      %Color;                  #IMPLIED
      text         %Color;                  #IMPLIED
      link         %Color;                  #IMPLIED
      vlink        %Color;                  #IMPLIED
      alink        %Color;                  #IMPLIED
      background   %URI;                    #IMPLIED
>
]]>

<!ENTITY % Html.content  "( head, body )" >

<!-- version and namespace attribute values defined in driver -->
<!ENTITY % Version.attrib 
     "version      CDATA                    #FIXED '%HTML.version;'" >
<!ENTITY % Ns.attrib 
     "xmlns        %URI;                    #FIXED '%XHTML.ns;'" >

<!ELEMENT html  %Html.content; >
<!ATTLIST html
      %I18n.attrib;
      %Version.attrib;
      %Ns.attrib;
>

<!-- end of XHTML1-struct.mod -->

C.5.2. Frameset

<!-- ...................................................................... -->
<!-- XHTML 1.0 Frames Module  ............................................. -->
<!-- file: XHTML1-frames.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-frames.mod 1.15 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Frames//EN"
     SYSTEM "XHTML1-frames.mod"

     Revisions:
#1999-01-14  transferred 'target' attribute on 'a' from linking module
     ....................................................................... -->

<!-- a2. Frames 

        frame, frameset, iframe, noframes
-->

<!-- The content model for HTML documents depends on whether the HEAD is 
     followed by a FRAMESET or BODY element. The widespread omission of 
     the BODY start tag makes it impractical to define the content model 
     without the use of a conditional section.
--> 
 
<!ENTITY % Frameset.content  "(( frameset | frame )+, noframes? )" >
<!ELEMENT frameset  %Frameset.content; >
<!ATTLIST frameset 
      %Core.attrib;
      rows         %MultiLengths;           #IMPLIED
      cols         %MultiLengths;           #IMPLIED
> 
 
<!-- reserved frame names start with "_" otherwise starts with letter --> 

<!ENTITY % Frame.content  "EMPTY" >
<!ELEMENT frame	 %Frame.content; >
<!ATTLIST frame 
      %Core.attrib;
      longdesc     %URI;          #IMPLIED
      name         CDATA          #IMPLIED
      src          %URI;          #IMPLIED
      frameborder  (1|0)          '1'
      marginwidth  %Pixels;       #IMPLIED
      marginheight %Pixels;      #IMPLIED
      noresize     (noresize)     #IMPLIED
      scrolling    (yes|no|auto)  'auto'
> 
 
<!-- Inline Frames .................................... -->

<!ENTITY % Iframe.content  "( %Flow.mix; )*" > 
<!ELEMENT iframe  %Iframe.content; > 
<!ATTLIST iframe 
      %Core.attrib;
      longdesc     %URI;                    #IMPLIED
      name         CDATA                    #IMPLIED
      src          %URI;                    #IMPLIED
      frameborder  (1|0)                    '1'
      marginwidth  %Pixels;                 #IMPLIED
      marginheight %Pixels;                 #IMPLIED
      scrolling    (yes|no|auto)            'auto'
      %IAlign.attrib;
      height       %Length;                 #IMPLIED
      width        %Length;                 #IMPLIED
> 

<!-- changes to other declarations .................... -->

<!-- redefine content model for html element, 
     substituting frameset for body -->
<!ENTITY % Html.content "( head, frameset )" >
 
<!-- alternate content container for non frame-based rendering --> 
 
<!ENTITY % Noframes.content "( body )"> 
<!-- in HTML 4.0 was "( body ) -( noframes )" exclusion on body --> 
<!ELEMENT noframes  %Noframes.content; >
<!ATTLIST noframes 
      %Common.attrib;
> 

<!-- add 'target' attribute to 'a' element -->
<!ATTLIST a
      target       %FrameTarget;            #IMPLIED
>

<!-- end of XHTML1-frames.mod -->

C.5.3. Lists

<!-- ...................................................................... -->
<!-- XHTML 1.0 Lists Module  .............................................. -->
<!-- file: XHTML1-list.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-list.mod 1.13 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Lists//EN"
     SYSTEM "XHTML1-list.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- a3. Lists 

        dl, dt, dd, ol, ul, li

     A conditional section includes additional declarations for the Transitional DTD

        dir, menu
-->

<!-- definition lists - DT for term, DD for its definition -->

<!ENTITY % Dl.content  "( dt | dd )+" >
<!ELEMENT dl  %Dl.content; >
<!ATTLIST dl
      %Common.attrib;
>

<!ENTITY % Dt.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT dt  %Dt.content; >
<!ATTLIST dt
      %Common.attrib;
>

<!ENTITY % Dd.content  "( #PCDATA | %Flow.mix; )*" >
<!ELEMENT dd  %Dd.content; >
<!ATTLIST dd
      %Common.attrib;
>

<!-- Ordered Lists (ol) numbered styles -->

<!ENTITY % Ol.content  "( li )+" >
<!ELEMENT ol  %Ol.content; >
<!ATTLIST ol
      %Common.attrib;
>

<!-- Unordered Lists (ul) bullet styles -->

<!ENTITY % Ul.content  "( li )+" >
<!ELEMENT ul  %Ul.content; >
<!ATTLIST ul 
      %Common.attrib;
>

<!ENTITY % Li.content  "( #PCDATA | %Flow.mix; )*" >
<!ELEMENT li  %Li.content; >
<!ATTLIST li
      %Common.attrib;
>

<![%XHTML.Transitional;[
<!-- Ordered lists (ol) Numbering style 
 
    1   arabic numbers      1, 2, 3, ... 
    a   lower alpha         a, b, c, ... 
    A   upper alpha         A, B, C, ... 
    i   lower roman         i, ii, iii, ... 
    I   upper roman         I, II, III, ... 
 
    The style is applied to the sequence number which by default 
    is reset to 1 for the first list item in an ordered list. 
-->

<!ENTITY % OlStyle "CDATA" >

<!ATTLIST ol
      type         %OlStyle;                #IMPLIED
      compact      (compact)                #IMPLIED
      start        %Number;                 #IMPLIED
>

<!-- Unordered Lists (ul) bullet styles --> 
<!ENTITY % UlStyle "(disc|square|circle)" > 

<!ATTLIST ul
      type         %UlStyle;                #IMPLIED
      compact      (compact)                #IMPLIED 
>

<!ENTITY % Dir.content  "( li )+" >
<!ELEMENT dir  %Dir.content; >
<!ATTLIST dir 
      %Common.attrib; 
      compact      (compact)                #IMPLIED 
> 

<!ENTITY % Menu.content  "( li )+" >
<!ELEMENT menu  %Menu.content; >
<!ATTLIST menu 
      %Common.attrib; 
      compact      (compact)                #IMPLIED 
> 
]]>

<!-- end of XHTML1-list.mod -->

C.6. XHTML Block Element Modules

This section contains the formal definition of the Block Element Modules.

C.6.1. Block Structural

<!-- ...................................................................... -->
<!-- XHTML 1.0 Block Structural Module  ................................... -->
<!-- file: XHTML1-blkstruct.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-blkstruct.mod 1.10 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Block Structural//EN"
     SYSTEM "XHTML1-blkstruct.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- b1. Block Structural

        div, p
-->

<!ENTITY % Div.content  "( #PCDATA | %Flow.mix; )*" >
<!ELEMENT div  %Div.content; >
<!ATTLIST div
      %Common.attrib;
      %Align.attrib;
>

<!ENTITY % P.content  "( #PCDATA | %Inline.mix; )*" > 
<!ELEMENT p  %P.content; > 
<!ATTLIST p 
      %Common.attrib;
>
  
<!-- end of XHTML1-blkstruct.mod -->

C.6.2. Block Phrasal

<!-- ...................................................................... -->
<!-- XHTML 1.0 Block Phrasal Module  ...................................... -->
<!-- file: XHTML1-blkphras.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-blkphras.mod 1.13 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Block Phrasal//EN"
     SYSTEM "XHTML1-blkphras.mod"

     Revisions:
# 1998-11-10  removed pre exclusions - content model changed to mimic HTML 4.0
# 1999-01-29  moved div and p to block structural module
     ....................................................................... -->

<!-- b2. Block Phrasal

        address, blockquote, pre, h1, h2, h3, h4, h5, h6
-->

<!ENTITY % Address.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT address  %Address.content; >
<!ATTLIST address
      %Common.attrib;
>

<![%XHTML.Transitional;[
<!ENTITY % Blockquote.content  "( %Flow.mix; )*" > 
]]>
<!ENTITY % Blockquote.content
     "( %Heading.class; 
      | %List.class; 
      | %Block.mix; )+"
>

<!ELEMENT blockquote  %Blockquote.content; >
<!ATTLIST blockquote 
      %Common.attrib;
      cite         %URI;                    #IMPLIED
> 

<!ENTITY % Pre.content  
     "( #PCDATA | tt | i | b 
      | %Inlstruct.class; | %Inlphras.class; 
      | a | script | map 
      | %Formctrl.class; )*"
>

<!ELEMENT pre  %Pre.content; >
<!ATTLIST pre 
      %Common.attrib;
      xml:space    CDATA                    #FIXED "preserve"    
> 
 
<!-- ...................  Heading Elements  ................... -->

<!ENTITY % Heading.content  "( #PCDATA | %Inline.mix; )*" >

<!ELEMENT h1  %Heading.content; >
<!ATTLIST h1
      %Common.attrib;
      %Align.attrib;
>

<!ELEMENT h2  %Heading.content; >
<!ATTLIST h2
      %Common.attrib;
      %Align.attrib;
>

<!ELEMENT h3  %Heading.content; >
<!ATTLIST h3
      %Common.attrib;
      %Align.attrib;
>

<!ELEMENT h4  %Heading.content; >
<!ATTLIST h4
      %Common.attrib;
      %Align.attrib;
>

<!ELEMENT h5  %Heading.content; >
<!ATTLIST h5
      %Common.attrib;
      %Align.attrib;
>

<!ELEMENT h6  %Heading.content; >
<!ATTLIST h6
      %Common.attrib;
      %Align.attrib;
>

<!-- end of XHTML1-blkphras.mod -->

C.6.3. Block Presentational

<!-- ...................................................................... -->
<!-- XHTML 1.0 Block Presentational Module  ............................... -->
<!-- file: XHTML1-blkpres.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-blkpres.mod 1.15 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Block Presentational//EN"
     SYSTEM "XHTML1-blkpres.mod"

     Revisions:
# 1999-01-31  added I18n.attrib to hr (errata)
     ....................................................................... -->

<!-- b3. Block Presentational

        hr 

     A conditional section includes additional declarations for the Transitional DTD

        center
-->

<!ENTITY % Hr.content  "EMPTY" >
<!ELEMENT hr  %Hr.content; >
<!ATTLIST hr 
      %Core.attrib;
      %I18n.attrib;
      %Events.attrib; 
>

<![%XHTML.Transitional;[
<!ENTITY % Center.content  "( #PCDATA | %Flow.mix; )*" >
<!ELEMENT center  %Center.content; >
<!ATTLIST center 
      %Common.attrib;
> 

<!-- additional attributes on hr -->
<!ATTLIST hr 
      align        (left|center|right)      #IMPLIED 
      noshade      (noshade)                #IMPLIED 
      size         %Pixels;                 #IMPLIED 
      width        %Length;                 #IMPLIED 
>
]]>

<!-- end of XHTML1-blkpres.mod -->

C.7. XHTML Inline Element Modules

This section contains the formal definition of each XHTML Inline Element Module.

C.7.1. Inline Structural

<!-- ...................................................................... -->
<!-- XHTML 1.0 Inline Phrasal Module  ..................................... -->
<!-- file: XHTML1-inlstruct.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-inlstruct.mod 1.10 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Inline Structural//EN"
     SYSTEM "XHTML1-inlstruct.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- c1. Inline Structural 

        bdo, br, del, ins, span
-->

<!ENTITY % Bdo.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT bdo  %Bdo.content; >
<!ATTLIST bdo
      %Core.attrib;
      lang         %LanguageCode;           #IMPLIED
      dir          (ltr|rtl)                #REQUIRED
>

<!ENTITY % Br.content  "EMPTY" >
<!ELEMENT br  %Br.content; >
<!ATTLIST br
      %Core.attrib;
>

<!ENTITY % Del.content  "( #PCDATA | %Flow.mix; )*" >
<!ELEMENT del  %Del.content; >
<!ATTLIST del
      %Common.attrib;
      cite         %URI;                    #IMPLIED
      datetime     %Datetime;               #IMPLIED
>

<!ENTITY % Ins.content  "( #PCDATA | %Flow.mix; )*" >
<!ELEMENT ins  %Ins.content; >
<!ATTLIST ins
      %Common.attrib;
      cite         %URI;                    #IMPLIED
      datetime     %Datetime;               #IMPLIED
>

<!ENTITY % Span.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT span  %Span.content; >
<!ATTLIST span
      %Common.attrib;
>

<!-- end of XHTML1-inlstruct.mod -->

C.7.2. Inline Phrasal

<!-- ...................................................................... -->
<!-- XHTML 1.0 Inline Phrasal Module  ..................................... -->
<!-- file: XHTML1-inlphras.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-inlphras.mod 1.14 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Inline Phrasal//EN"
     SYSTEM "XHTML1-inlphras.mod"

     Revisions:
#1999-01-29  moved bdo, br, del, ins, span to inline structural module
     ....................................................................... -->

<!-- c2. Inline Phrasal 

        abbr, acronym, cite, code, dfn, em, kbd, q, samp, strong, var
-->

<!ENTITY % Abbr.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT abbr  %Abbr.content; >
<!ATTLIST abbr
      %Common.attrib;
>

<!ENTITY % Acronym.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT acronym  %Acronym.content; >
<!ATTLIST acronym
      %Common.attrib;
>

<!ENTITY % Cite.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT cite  %Cite.content; >
<!ATTLIST cite
      %Common.attrib;
>

<!ENTITY % Code.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT code  %Code.content; >
<!ATTLIST code
      %Common.attrib;
>

<!ENTITY % Dfn.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT dfn  %Dfn.content; >
<!ATTLIST dfn
      %Common.attrib;
>

<!ENTITY % Em.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT em  %Em.content; >
<!ATTLIST em
      %Common.attrib;
>

<!ENTITY % Kbd.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT kbd  %Kbd.content; >
<!ATTLIST kbd
      %Common.attrib;
>

<!ENTITY % Q.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT q  %Q.content; >
<!ATTLIST q 
      %Common.attrib; 
      cite         %URI;                    #IMPLIED
>

<!ENTITY % Samp.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT samp  %Samp.content; >
<!ATTLIST samp
      %Common.attrib;
>

<!ENTITY % Strong.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT strong  %Strong.content; >
<!ATTLIST strong
      %Common.attrib;
>

<!ENTITY % Var.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT var  %Var.content; >
<!ATTLIST var
      %Common.attrib;
>

<!-- end of XHTML1-inlphras.mod -->

C.7.3. Inline Presentational

<!-- ...................................................................... -->
<!-- XHTML 1.0 Inline Presentational Module  .............................. -->
<!-- file: XHTML1-inlpres.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-inlpres.mod 1.13 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Inline Presentational//EN"
     SYSTEM "XHTML1-inlpres.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- c3. Inline Presentational 

        b, big, i, small, sub, sup, tt

     A conditional section includes additional declarations for the Transitional DTD

        basefont, font, s, strike, u
-->

<!ENTITY % B.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT b  %B.content; >
<!ATTLIST b
      %Common.attrib;
>

<!ENTITY % Big.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT big  %Big.content; >
<!ATTLIST big
      %Common.attrib;
>

<!ENTITY % I.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT i  %I.content; >
<!ATTLIST i
      %Common.attrib;
>

<!ENTITY % Small.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT small  %Small.content; >
<!ATTLIST small
      %Common.attrib;
>

<!ENTITY % Sub.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT sub  %Sub.content; >
<!ATTLIST sub
      %Common.attrib;
>

<!ENTITY % Sup.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT sup  %Sup.content; >
<!ATTLIST sup
      %Common.attrib;
>

<!ENTITY % Tt.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT tt    %Tt.content; >
<!ATTLIST tt
      %Common.attrib;
>

<![%XHTML.Transitional;[

<!ENTITY % Basefont.content  "EMPTY" >
<!ELEMENT basefont  %Basefont.content; >
<!ATTLIST basefont
      id           ID                       #IMPLIED
      size         CDATA                    #REQUIRED
      color        %Color;                  #IMPLIED
      face         CDATA                    #IMPLIED
>

<!ENTITY % Font.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT font  %Font.content; >
<!ATTLIST font
      %Core.attrib;
      %I18n.attrib;
      size         CDATA                    #IMPLIED
      color        %Color;                  #IMPLIED
      face         CDATA                    #IMPLIED
>

<!ENTITY % S.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT s  %S.content; >
<!ATTLIST s
      %Common.attrib;
>

<!ENTITY % Strike.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT strike  %Strike.content; >
<!ATTLIST strike
      %Common.attrib;
>

<!ENTITY % U.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT u  %U.content; >
<!ATTLIST u
      %Common.attrib;
>

]]>

<!-- end of XHTML1-inlpres.mod -->

C.8. XHTML Special Case Modules

This section contains the formal definition of each of the XHTML Special Case Modules.

C.8.1. Meta

<!-- ...................................................................... -->
<!-- XHTML 1.0 Document Metainformation Module  ........................... -->
<!-- file: XHTML1-meta.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-meta.mod 1.14 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Metainformation//EN"
     SYSTEM "XHTML1-meta.mod"

     Revisions:
# 1998-11-11  title content model changed - exclusions no longer necessary
# 1999-02-01  removed isindex
     ....................................................................... -->

<!-- d1. Meta Information 

        meta, title
-->

<!-- 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. Exactly one title is required per document. 
--> 

<!ENTITY % Title.content  "( #PCDATA )" >
<!ELEMENT title  %Title.content; >
<!ATTLIST title
      %I18n.attrib;
>

<!ENTITY % Meta.content  "EMPTY" >
<!ELEMENT meta  %Meta.content; >
<!ATTLIST meta
      %I18n.attrib;
      http-equiv   NMTOKEN                  #IMPLIED
      name         NMTOKEN                  #IMPLIED
      content      CDATA                    #REQUIRED
      scheme       CDATA                    #IMPLIED
>

<!-- end of XHTML1-meta.mod -->

C.8.2. Linking

<!-- ...................................................................... -->
<!-- XHTML 1.0 Linking Module  ............................................ -->
<!-- file: XHTML1-linking.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-linking.mod 1.13 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Linking//EN"
     SYSTEM "XHTML1-linking.mod"

     Revisions:
# 1998-10-27  exclusion on 'a' within 'a' removed for XML
# 1998-11-15  moved shape and coords attributes on 'a' to csismap module
# 1999-01-14  moved onfocus and onblur attributes on 'a' to events module
     ....................................................................... -->

<!-- d2. Linking

        a, base, link
-->

<!-- ............  Anchor Element  ............ -->

<!ENTITY % Shape "(rect|circle|poly|default)">
<!ENTITY % Coords "CDATA" >

<!ENTITY % A.content  "( #PCDATA | %Inline-noa.mix; )*" >
<!ELEMENT a  %A.content; >
<!ATTLIST a
      %Common.attrib;
      name         CDATA                    #IMPLIED
      href         %URI;                    #IMPLIED
      %Alink.attrib;
      charset      %Charset;                #IMPLIED
      type         %ContentType;            #IMPLIED
      hreflang     %LanguageCode;           #IMPLIED
      rel          %LinkTypes;              #IMPLIED
      rev          %LinkTypes;              #IMPLIED
      accesskey    %Character;              #IMPLIED
      tabindex     %Number;                 #IMPLIED
>

<!-- ............  Base Element  ............ -->

<!ENTITY % Base.content  "EMPTY" >
<!ELEMENT base  %Base.content; >
<!ATTLIST base 
      href         %URI;                    #REQUIRED
> 

<!-- ............  Link Element  ............ -->

<!-- Relationship values can be used in principle:

   a) for document specific toolbars/menus when used
      with the LINK element in document head e.g.
      start, contents, previous, next, index, end, help
   b) to link to a separate style sheet (rel=stylesheet)
   c) to make a link to a script (rel=script)
   d) by stylesheets to control how collections of
      html nodes are rendered into printed documents
   e) to make a link to a printable version of this document
      e.g. a postscript or pdf version (rel=alternate media=print)
-->

<!ENTITY % Link.content  "EMPTY" >
<!ELEMENT link  %Link.content; >
<!ATTLIST link
      %Common.attrib;
      charset      %Charset;                #IMPLIED
      href         %URI;                    #IMPLIED
      hreflang     %LanguageCode;           #IMPLIED
      type         %ContentType;            #IMPLIED
      rel          %LinkTypes;              #IMPLIED
      rev          %LinkTypes;              #IMPLIED
      media        %MediaDesc;              #IMPLIED
>

<!-- end of XHTML1-linking.mod -->

C.8.3. Image

<!-- ...................................................................... -->
<!-- XHTML 1.0 Images Module  ............................................. -->
<!-- file: XHTML1-image.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-image.mod 1.15 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Images//EN"
     SYSTEM "XHTML1-image.mod"

     Revisions:
# 1999-01-31  corrected transitional attributes (errata)
     ....................................................................... -->

<!-- d3.1. Images 

        img
-->

<!-- To avoid problems with text-only UAs as well as 
     to make image content understandable and navigable 
     to users of non-visual UAs, you need to provide
     a description with ALT, and avoid server-side image maps 
-->

<!ENTITY % Img.content  "EMPTY" >
<!ELEMENT img  %Img.content; >
<!ATTLIST img
      %Common.attrib;
      src          %URI;                    #REQUIRED
      alt          %Text;                   #REQUIRED
      longdesc     %URI;                    #IMPLIED
      height       %Length;                 #IMPLIED
      width        %Length;                 #IMPLIED
      usemap       %URI;                    #IMPLIED
      ismap        (ismap)                  #IMPLIED
>

<!-- USEMAP points to a MAP element which may be in this document or 
     an external document, although the latter is not widely supported 
-->

<![%XHTML.Transitional;[
<!-- additional Transitional attributes -->
<!ATTLIST img
      %IAlign.attrib;
      border       %Pixels;                 #IMPLIED
      hspace       %Pixels;                 #IMPLIED
      vspace       %Pixels;                 #IMPLIED
>
]]>

<!-- end of XHTML1-image.mod -->

C.8.4. Client-side Image Map

<!-- ...................................................................... -->
<!-- XHTML 1.0 Client-side Image Map Module  .............................. -->
<!-- file: XHTML1-csismap.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-csismap.mod 1.15 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Client-side Image Maps//EN"
     SYSTEM "XHTML1-csismap.mod"

     Revisions:
# 1999-01-31  fixed map content model (errata)
     ....................................................................... -->

<!-- d3.2. Client-side Image Maps

        area, map
-->

<!-- These can be placed in the same document or grouped in a
     separate document although this isn't widely supported -->

<!ENTITY % Map.content  "(( %Heading.class; | %List.class; | %Block.mix; ) | area)+" >
<!ELEMENT map  %Map.content; >
<!ATTLIST map
      %Common.attrib;
      name         CDATA                    #REQUIRED
>

<!ENTITY % Area.content  "EMPTY" >
<!ELEMENT area  %Area.content; >
<!ATTLIST area
      %Common.attrib;
      href         %URI;                    #IMPLIED
      shape        %Shape;                  'rect'
      coords       %Coords;                 #IMPLIED
      nohref       (nohref)                 #IMPLIED
      alt          %Text;                   #REQUIRED
      tabindex     %Number;                 #IMPLIED
      accesskey    %Character;              #IMPLIED
>

<!-- modify anchor (<a>) attribute definition list to 
     allow for client-side image maps -->

<!ATTLIST a
      shape        %Shape;                  'rect'
      coords       %Coords;                 #IMPLIED
>

<!-- end of XHTML1-csismap.mod -->

C.8.5. Object

<!-- ...................................................................... -->
<!-- XHTML 1.0 External Inclusion Module  ................................. -->
<!-- file: XHTML1-object.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-object.mod 1.16 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Object Element//EN"
     SYSTEM "XHTML1-object.mod"

     Revisions:
# 1999-01-31  changed object's archive attr to allow for multiple URIs
# 1999-01-31  corrected transitional attributes (errata)
     ....................................................................... -->

<!-- d3.3. Objects

        object, param

     object is used to embed objects as part of HTML pages;
     param elements should precede other content. 
-->

<!ENTITY % Object.content  "( %Flow.mix; | param )*" >
<!ELEMENT object  %Object.content; >
<!ATTLIST object
      %Common.attrib;
      declare      (declare)                #IMPLIED
      classid      %URI;                    #IMPLIED
      codebase     %URI;                    #IMPLIED
      data         %URI;                    #IMPLIED
      type         %ContentType;            #IMPLIED
      codetype     %ContentType;            #IMPLIED
      archive      %URIs;                   #IMPLIED
      standby      %Text;                   #IMPLIED
      height       %Length;                 #IMPLIED
      width        %Length;                 #IMPLIED
      usemap       %URI;                    #IMPLIED
      name         CDATA                    #IMPLIED
      tabindex     %Number;                 #IMPLIED
>

<![%XHTML.Transitional;[
<!-- additional Transitional attributes -->
<!ATTLIST object
      %IAlign.attrib;
      border       %Pixels;                 #IMPLIED
      hspace       %Pixels;                 #IMPLIED
      vspace       %Pixels;                 #IMPLIED
>
]]>

<!ENTITY % Param.content  "EMPTY" >
<!ELEMENT param  %Param.content; >
<!ATTLIST param
      id           ID                       #IMPLIED
      name         CDATA                    #REQUIRED
      value        CDATA                    #IMPLIED
      valuetype    (data|ref|object)        'data'
      type         %ContentType;            #IMPLIED
>

<!-- end of XHTML1-object.mod -->

C.8.6. Applet

<!-- ...................................................................... -->
<!-- XHTML 1.0 Draft Document Java Applet Module  ......................... -->
<!-- file: XHTML1-applet.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-applet.mod 1.14 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML V1.0 Java Applets//EN"
     SYSTEM "XHTML1-applet.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- d4. Scripting

        applet
-->

<!-- One of code or object attributes must be present. 
     Place param elements before other content. 
-->

<!ENTITY % Applet.content  "( param | %Flow.mix; )*">
<!ELEMENT applet  %Applet.content; > 
<!ATTLIST applet 
      %Core.attrib;
      codebase     %URI;                    #IMPLIED
      archive      CDATA                    #IMPLIED
      code         CDATA                    #IMPLIED
      object       CDATA                    #IMPLIED
      alt          %Text;                   #IMPLIED
      name         CDATA                    #IMPLIED
      width        %Length;                 #REQUIRED
      height       %Length;                 #REQUIRED
      %IAlign.attrib;
      hspace       %Pixels;                 #IMPLIED
      vspace       %Pixels;                 #IMPLIED
> 

<!-- If the Object module that supplies the param element declarations
     is not used, redeclare %Param.local.module; as 'INCLUDE':  -->
<!ENTITY % Param.local.module  "IGNORE" >
<![%Param.local.module;[
<!ENTITY % Param.content  "EMPTY">
<!ELEMENT param  %Param.content; > 
<!ATTLIST param 
      id           ID                       #IMPLIED
      name         CDATA                    #REQUIRED
      value        CDATA                    #IMPLIED
      valuetype    (data|ref|object)        'data'
      type         %ContentType;            #IMPLIED
>
]]>

<!-- end of XHTML1-applet.mod -->

C.8.7. Scripting

<!-- ...................................................................... -->
<!-- XHTML 1.0 Document Scripting Module  ................................. -->
<!-- file: XHTML1-script.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-script.mod 1.13 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Scripting//EN"
     SYSTEM "XHTML1-script.mod"

     Revisions:
# 1999-01-30  added xml:space to script
# 1999-02-01  removed for and event attributes from script
     ....................................................................... -->

<!-- d4. Scripting

        script, noscript
-->

<!ENTITY % Script.content  "( #PCDATA )" >
<!ELEMENT script  %Script.content; >
<!ATTLIST script
      charset      %Charset;                #IMPLIED
      type         %ContentType;            #REQUIRED
      src          %URI;                    #IMPLIED
      defer        (defer)                  #IMPLIED
      xml:space    CDATA                    #FIXED 'preserve'
>

<!ENTITY % Noscript.content
     "( %Heading.class; 
      | %List.class; 
      | %Block.mix; )+"
>
<!ELEMENT noscript  %Noscript.content; >
<!ATTLIST noscript
      %Common.attrib;
>

<!-- end of XHTML1-script.mod -->

C.8.8. Stylesheets

<!-- ...................................................................... -->
<!-- XHTML 1.0 Document Stylesheet Module  ................................ -->
<!-- file: XHTML1-style.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-style.mod 1.13 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//DTD XHTML 1.0 Stylesheets//EN"
     SYSTEM "XHTML1-style.mod"

     Revisions:
# 1999-01-30  added xml:space to style
     ....................................................................... -->

<!-- d5. Stylesheets 

        style
-->

<!ENTITY % Style.content  "( #PCDATA )" >
<!ELEMENT style  %Style.content; >
<!ATTLIST style
      %I18n.attrib;
      type         %ContentType;            #REQUIRED
      media        %MediaDesc;              #IMPLIED
      title        %Text;                   #IMPLIED
      xml:space    CDATA                    #FIXED 'preserve'
>

<!-- end of XHTML1-style.mod -->

C.8.9. HTML 3.2 Tables

<!-- ...................................................................... -->
<!-- XHTML 1.0 Simple Table Module  ....................................... -->
<!-- file: XHTML1-table32.mod

     This module subsets XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-table32.mod 1.3 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0-Based Subset Simplified Tables//EN"
     SYSTEM "XHTML1-table32.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- Simplified (HTML 3.2) Tables 

     This table module is based on the HTML 3.2 table model, itself based 
     on a subset of the CALS table model as described in the IETF HTML
     table specification [see IETF RFC 1942]. While this module mimics the 
     content model and table attributes of HTML 3.2 tables, the element 
     types declared herein also includes all HTML 4.0 common attributes.

        table, caption, tr, th, td 
-->

<!-- horizontal alignment attributes for cell contents -->
<!ENTITY % CellHAlign.attrib
     "align        (left|center|right)      #IMPLIED" 
>

<!-- vertical alignment attributes for cell contents -->
<!ENTITY % CellVAlign.attrib
     "valign       (top|middle|bottom)      #IMPLIED" 
>

<!ENTITY % CaptionAlign  "(top|bottom)">

<!-- The border attribute sets the thickness of the frame around the
     table. The default units are screen pixels.
-->

<!ENTITY % Table.content  "( caption?, tr+ )" >
<!ELEMENT table  %Table.content; >
<!ATTLIST table
      %Common.attrib;
      width        %Length;                 #IMPLIED
      border       %Pixels;                 #IMPLIED
      cellspacing  %Length;                 #IMPLIED
      cellpadding  %Length;                 #IMPLIED
>

<!ENTITY % Caption.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT caption  %Caption.content; >
<!ATTLIST caption
      %Common.attrib;
>

<!ENTITY % Tr.content  "( th | td )+" >
<!ELEMENT tr  %Tr.content; >
<!ATTLIST tr
      %Common.attrib;
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>

<!-- th is for headers, td for data, but for cells acting as both use td -->

<!ENTITY % Th.content  "( #PCDATA | %Flow.mix; )*" >
<!ELEMENT th  %Th.content; >
<!ATTLIST th
      %Common.attrib;
      rowspan      %Number;                 '1'
      colspan      %Number;                 '1'
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>

<!ENTITY % Td.content  "( #PCDATA | %Flow.mix; )*" >
<!ELEMENT td  %Td.content; >
<!ATTLIST td
      %Common.attrib;
      rowspan      %Number;                 '1'
      colspan      %Number;                 '1'
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>

<![%XHTML.Transitional;[
<!-- additional Transitional attributes for XHTML tables -->

<!-- horizontal placement of table relative to document -->
<!ENTITY % TAlign  "(left|center|right)" >

<!ATTLIST table
      align       %TAlign;                  #IMPLIED
      bgcolor     %Color;                   #IMPLIED
>

<!ATTLIST caption
      align       %CaptionAlign;            #IMPLIED
>

<!ATTLIST tr
      bgcolor     %Color;                   #IMPLIED
>

<!-- note that 'nowrap' in XML must be expressed as nowrap="nowrap" -->

<!ATTLIST th
      nowrap      (nowrap)                  #IMPLIED
      bgcolor     %Color;                   #IMPLIED
      width       %Pixels;                  #IMPLIED
      height      %Pixels;                  #IMPLIED
>

<!ATTLIST td
      nowrap       (nowrap)                 #IMPLIED
      bgcolor      %Color;                  #IMPLIED
      width        %Pixels;                 #IMPLIED
      height       %Pixels;                 #IMPLIED
>
]]>

<!-- end of XHTML1-table.mod -->

C.8.10. HTML 4.0 Tables

<!-- ...................................................................... -->
<!-- XHTML 1.0 Table Module  .............................................. -->
<!-- file: XHTML1-table.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-table.mod 1.15 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Tables//EN"
     SYSTEM "XHTML1-table.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- d6. HTML 4.0 Tables 

        caption, col, colgroup, table, tbody, td, tfoot, th, thead, tr 

     A conditional section includes additional declarations for the Transitional DTD
-->

<!-- IETF HTML table standard, see [RFC1942] -->

<!-- The border attribute sets the thickness of the frame around the
     table. The default units are screen pixels.

     The frame attribute specifies which parts of the frame around
     the table should be rendered. The values are not the same as
     CALS to avoid a name clash with the valign attribute.

     The value "border" is included for backwards compatibility with
     <table border> which yields frame=border and border=implied
     For <table border="1"> you get border="1" and frame="implied". In 
     this case, it is appropriate to treat this as frame=border for 
     backwards compatibility with deployed browsers.
-->

<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">

<!-- The rules attribute defines which rules to draw between cells:

     If rules is absent then assume:

       "none" if border is absent or border="0" otherwise "all"
-->

<!ENTITY % TRules "(none | groups | rows | cols | all)">
  
<!-- horizontal placement of table relative to document -->
<!ENTITY % TAlign "(left|center|right)">

<!-- horizontal alignment attributes for cell contents -->
<!ENTITY % CellHAlign.attrib
     "align        (left|center|right|justify|char) #IMPLIED
      char         %Character;              #IMPLIED
      charoff      %Length;                 #IMPLIED"
>

<!-- vertical alignment attributes for cell contents -->
<!ENTITY % CellVAlign.attrib
     "valign       (top|middle|bottom|baseline) #IMPLIED"
>

<!ENTITY % CaptionAlign "(top|bottom|left|right)">

<!-- Scope is simpler than axes attribute for common tables -->

<!ENTITY % Scope "(row|col|rowgroup|colgroup)" >

<!ENTITY % Table.content
      "( caption?, ( col* | colgroup* ), (( thead?, tfoot?, tbody+ ) | ( tr+ )))"
>
<!ELEMENT table  %Table.content; >
<!ATTLIST table
      %Common.attrib;
      summary      %Text;                   #IMPLIED
      width        %Length;                 #IMPLIED
      border       %Pixels;                 #IMPLIED
      frame        %TFrame;                 #IMPLIED
      rules        %TRules;                 #IMPLIED
      cellspacing  %Length;                 #IMPLIED
      cellpadding  %Length;                 #IMPLIED
      datapagesize CDATA                    #IMPLIED
>

<!ENTITY % Caption.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT caption  %Caption.content; >
<!ATTLIST caption
      %Common.attrib;
>

<!ENTITY % Thead.content  "( tr )+" >
<!ELEMENT thead  %Thead.content; >
<!-- Use thead to duplicate headers when breaking table
     across page boundaries, or for static headers when
     TBODY sections are rendered in scrolling panel.

     Use tfoot to duplicate footers when breaking table
     across page boundaries, or for static footers when
     TBODY sections are rendered in scrolling panel.

     Use multiple tbody sections when rules are needed
     between groups of table rows.
-->
<!ATTLIST thead
      %Common.attrib;
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>

<!ENTITY % Tfoot.content  "( tr )+" >
<!ELEMENT tfoot  %Tfoot.content; >
<!ATTLIST tfoot
      %Common.attrib;
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>

<!ENTITY % Tbody.content  "( tr )+" >
<!ELEMENT tbody  %Tbody.content; >
<!ATTLIST tbody
      %Common.attrib;
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>

<!ENTITY % Colgroup.content  "( col )*" >
<!ELEMENT colgroup  %Colgroup.content; >
<!-- colgroup groups a set of col elements. It allows you to group
     several semantically related columns together.
-->
<!ATTLIST colgroup
      %Common.attrib;
      span         %Number;                 '1'
      width        %MultiLength;            #IMPLIED
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>

<!ENTITY % Col.content  "EMPTY" >
<!ELEMENT col  %Col.content; >
<!-- col elements define the alignment properties for cells in
     one or more columns.

     The width attribute specifies the width of the columns, e.g.

       width="64"        width in screen pixels
       width="0.5*"      relative width of 0.5

     The span attribute causes the attributes of one
     col element to apply to more than one column.
  -->
<!ATTLIST col
      %Common.attrib;
      span         %Number;                 '1'
      width        %MultiLength;            #IMPLIED
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>

<!ENTITY % Tr.content  "( th | td )+" >
<!ELEMENT tr  %Tr.content; >
<!ATTLIST tr
      %Common.attrib;
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>

<!-- th is for headers, td for data, but for cells acting as both use td -->

<!ENTITY % Th.content  "( #PCDATA | %Flow.mix; )*" >
<!ELEMENT th  %Th.content; >
<!ATTLIST th
      %Common.attrib;
      abbr         %Text;                   #IMPLIED
      axis         CDATA                    #IMPLIED
      headers      IDREFS                   #IMPLIED
      scope        %Scope;                  #IMPLIED
      rowspan      %Number;                 '1'
      colspan      %Number;                 '1'
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>

<!ENTITY % Td.content  "( #PCDATA | %Flow.mix; )*" >
<!ELEMENT td  %Td.content; >
<!ATTLIST td
      %Common.attrib;
      abbr         %Text;                   #IMPLIED
      axis         CDATA                    #IMPLIED
      headers      IDREFS                   #IMPLIED
      scope        %Scope;                  #IMPLIED
      rowspan      %Number;                 '1'
      colspan      %Number;                 '1'
      %CellHAlign.attrib;
      %CellVAlign.attrib;
>

<![%XHTML.Transitional;[
<!-- additional Transitional attributes for XHTML tables:
     (in XML, multiple ATTLIST declarations are merged)
-->

<!ATTLIST table
      align       %TAlign;                  #IMPLIED
      bgcolor     %Color;                   #IMPLIED
>

<!ATTLIST caption
      align       %CaptionAlign;            #IMPLIED
>

<!ATTLIST tr
      bgcolor     %Color;                   #IMPLIED
>

<!ATTLIST th
      nowrap      (nowrap)                  #IMPLIED
      bgcolor     %Color;                   #IMPLIED
      width       %Pixels;                  #IMPLIED
      height      %Pixels;                  #IMPLIED
>

<!ATTLIST td
      nowrap       (nowrap)                 #IMPLIED
      bgcolor      %Color;                  #IMPLIED
      width        %Pixels;                 #IMPLIED
      height       %Pixels;                 #IMPLIED
>
]]>

<!-- end of XHTML1-table.mod -->

C.8.11. HTML 3.2 Forms

<!-- ...................................................................... -->
<!-- XHTML 1.0 Simplified Forms Module  ................................... -->
<!-- file: XHTML1-form32.mod

     This module subsets XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-form32.mod 1.3 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0-Based Subset Simplified Forms//EN"  
     SYSTEM "XHTML1-form32.mod"

     Revisions:
# 1998-10-27  exclusion on form within form removed for XML
# 1998-11-10  changed button content model to mirror exclusions
# 1999-01-31  added 'accept' attribute on form (errata)
     ....................................................................... -->

<!-- N O T E : 

     this module is a work-in-progress, and is currently only a placeholder
-->

<!-- d7(x). Simplified (HTML 3.2) Forms

     This forms module is based on the HTML 3.2 forms model. While this 
     module mimics the content model and attributes of HTML 3.2 forms, 
     the element types declared herein also includes all HTML 4.0 
     common attributes.

        form, input, select, option, textarea
-->

<![%XHTML.Transitional;[
<!ENTITY % Form.content
     "( %Heading.class; 
      | %List.class; 
      | %Inline.class; 
      | %Block-noform.mix; )*"
>
]]>
<!ENTITY % Form.content
     "( %Heading.class; 
      | %List.class; 
      | %Block-noform.mix; )+"
>

<!ELEMENT form  %Form.content; >
<!ATTLIST form
      %Common.attrib;
      action       %URI;                    #REQUIRED
      method       (get|post)               'get'
      enctype      %ContentType;            'application/x-www-form-urlencoded'
>

<!ENTITY % InputType.class
     "( text | password | checkbox | radio | submit 
      | reset | file | hidden | image )"
>

<!-- attribute name required for all but submit & reset -->

<!ENTITY % Input.content  "EMPTY" >
<!ELEMENT input  %Input.content; >
<!ATTLIST input
      %Common.attrib;
      type         %InputType.class;        'text'
      name         CDATA                    #IMPLIED
      value        CDATA                    #IMPLIED
      checked      (checked)                #IMPLIED
      size         CDATA                    #IMPLIED
      maxlength    %Number;                 #IMPLIED
      src          %URI;                    #IMPLIED
>
<![%XHTML.Transitional;[
<!ATTLIST input
      align  (top|middle|bottom|left|right) top
>
]]>

<!ENTITY % Select.content  "( option )+" >
<!ELEMENT select  %Select.content; >
<!ATTLIST select
      %Common.attrib;
      name         CDATA                    #IMPLIED
      size         %Number;                 #IMPLIED
      multiple     (multiple)               #IMPLIED
>

<!ENTITY % Option.content  "( #PCDATA )" >
<!ELEMENT option  %Option.content; >
<!ATTLIST option
      %Common.attrib;
      selected     (selected)               #IMPLIED
      value        CDATA                    #IMPLIED
>

<!ENTITY % Textarea.content  "( #PCDATA )" >
<!ELEMENT textarea  %Textarea.content; >
<!ATTLIST textarea
      %Common.attrib;
      name         CDATA                    #IMPLIED
      rows         %Number;                 #REQUIRED
      cols         %Number;                 #REQUIRED
>

<!-- end of forms.mod -->

C.8.12. HTML 4.0 Forms

<!-- ...................................................................... -->
<!-- XHTML 1.0 Forms Module  .............................................. -->
<!-- file: XHTML1-form.mod

     This is XHTML 1.0, an XML reformulation of HTML 4.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)XHTML1-form.mod 1.18 99/04/01 SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Forms//EN"  
     SYSTEM "XHTML1-form.mod"

     Revisions:
# 1998-10-27  exclusion on form within form removed for XML
# 1998-11-10  changed button content model to mirror exclusions
# 1999-01-31  added 'accept' attribute on form (errata)
     ....................................................................... -->

<!-- d7. Forms

        form, label, input, select, optgroup, option, textarea, 
        fieldset, legend, button
-->

<![%XHTML.Transitional;[
<!ENTITY % Form.content
     "( %Heading.class; 
      | %List.class; 
      | %Inline.class; 
      | %Block-noform.mix; 
      | fieldset )*"
>
]]>
<!ENTITY % Form.content
     "( %Heading.class; 
      | %List.class; 
      | %Block-noform.mix; 
      | fieldset )+"
>

<!ELEMENT form  %Form.content; >
<!ATTLIST form
      %Common.attrib;
      action       %URI;                    #REQUIRED
      method       (get|post)               'get'
      enctype      %ContentType;            'application/x-www-form-urlencoded'
      accept-charset %Charsets;             #IMPLIED
      accept       %ContentTypes;           #IMPLIED
>

<!-- Each label must not contain more than ONE field -->

<!ENTITY % Label.content 
     "( #PCDATA 
      | %Inlstruct.class; 
      | %Inlpres.class; 
      | %Inlphras.class; 
      | %Inlspecial.class; 
      | input | select | textarea | button
      | %Misc.class; )*"
>
<!ELEMENT label  %Label.content; >
<!ATTLIST label
      %Common.attrib;
      for          IDREF                    #IMPLIED
      accesskey    %Character;              #IMPLIED
>

<!ENTITY % InputType.class
     "( text | password | checkbox | radio | submit 
      | reset | file | hidden | image | button )"
>

<!-- attribute name required for all but submit & reset -->

<!ENTITY % Input.content  "EMPTY" >
<!ELEMENT input  %Input.content; >
<!ATTLIST input
      %Common.attrib;
      type         %InputType.class;        'text'
      name         CDATA                    #IMPLIED
      value        CDATA                    #IMPLIED
      checked      (checked)                #IMPLIED
      disabled     (disabled)               #IMPLIED
      readonly     (readonly)               #IMPLIED
      size         CDATA                    #IMPLIED
      maxlength    %Number;                 #IMPLIED
      src          %URI;                    #IMPLIED
      alt          CDATA                    #IMPLIED
      usemap       %URI;                    #IMPLIED
      tabindex     %Number;                 #IMPLIED
      accesskey    %Character;              #IMPLIED
      accept       %ContentTypes;           #IMPLIED
>

<!ENTITY % Select.content  "( optgroup | option )+" >
<!ELEMENT select  %Select.content; >
<!ATTLIST select
      %Common.attrib;
      name         CDATA                    #IMPLIED
      size         %Number;                 #IMPLIED
      multiple     (multiple)               #IMPLIED
      disabled     (disabled)               #IMPLIED
      tabindex     %Number;                 #IMPLIED
>

<!ENTITY % Optgroup.content  "( option )+" >
<!ELEMENT optgroup  %Optgroup.content; >
<!ATTLIST optgroup
      %Common.attrib;
      disabled     (disabled)               #IMPLIED
      label        %Text;                   #REQUIRED
>

<!ENTITY % Option.content  "( #PCDATA )" >
<!ELEMENT option  %Option.content; >
<!ATTLIST option
      %Common.attrib;
      selected     (selected)               #IMPLIED
      disabled     (disabled)               #IMPLIED
      label        %Text;                   #IMPLIED
      value        CDATA                    #IMPLIED
>

<!ENTITY % Textarea.content  "( #PCDATA )" >
<!ELEMENT textarea  %Textarea.content; >
<!ATTLIST textarea
      %Common.attrib;
      name         CDATA                    #IMPLIED
      rows         %Number;                 #REQUIRED
      cols         %Number;                 #REQUIRED
      disabled     (disabled)               #IMPLIED
      readonly     (readonly)               #IMPLIED
      tabindex     %Number;                 #IMPLIED
      accesskey    %Character;              #IMPLIED
>

<!-- #PCDATA is to solve the mixed content problem, per
     specification only whitespace is allowed there!
 -->

<!ENTITY % Fieldset.content  "( #PCDATA | legend | %Flow.mix; )*" >
<!ELEMENT fieldset  %Fieldset.content; >
<!ATTLIST fieldset
      %Common.attrib;
>

<![%XHTML.Transitional;[
<!ENTITY % LegendAlign.attrib
     "align        (top|bottom|left|right)  #IMPLIED" >
]]>
<!ENTITY % LegendAlign.attrib  "" >

<!ENTITY % Legend.content  "( #PCDATA | %Inline.mix; )*" >
<!ELEMENT legend  %Legend.content; >
<!ATTLIST legend
      %Common.attrib;
      accesskey    %Character;              #IMPLIED
      %LegendAlign.attrib;
>

<!ENTITY % Button.content  
     "( #PCDATA 
      | %Heading.class; 
      | %List.class; 
      | %Inlpres.class; 
      | %Inlphras.class; 
      | %Block-noform.mix; 
      | img | object | map )*"
>
<!ELEMENT button  %Button.content; > 
<!ATTLIST button
      %Common.attrib;
      name         CDATA                    #IMPLIED
      value        CDATA                    #IMPLIED
      type         (button|submit|reset)    'submit'
      disabled     (disabled)               #IMPLIED
      tabindex     %Number;                 #IMPLIED
      accesskey    %Character;              #IMPLIED
>

<!-- end of forms.mod -->

C.9. Reformulated XHTML 1.0 DTDs

This section defines the three XHTML 1.0 DTDs based upon the modules defined above. The content models of these DTD do not differ from their predecessors in XHTML 1.0 [XHTML1].

C.9.1. XHTML 1.0 Strict

<!-- ...................................................................... -->
<!-- XHTML 1.0 Strict DTD  ................................................ -->
<!-- file: XHTML1-s.dtd
-->

<!--  XHTML 1.0 Strict DTD

      This is XHTML 1.0, an XML reformulation of HTML 4.0.

      Copyright 1998-1999 World Wide Web Consortium
         (Massachusetts Institute of Technology, Institut National de 
          Recherche en Informatique et en Automatique, Keio University).
          All Rights Reserved.

      Permission to use, copy, modify and distribute the XHTML 1.0 DTD and
      its accompanying documentation for any purpose and without fee is
      hereby granted in perpetuity, provided that the above copyright notice
      and this paragraph appear in all copies.  The copyright holders make 
      no representation about the suitability of the DTD for any purpose.  

      It is provided "as is" without expressed or implied warranty.

        Author:     Murray M. Altheim <altheim@eng.sun.com>
        Revision:   @(#)XHTML1-s.dtd 1.14 99/04/01 SMI

      The XHTML 1.0 DTD is an XML variant based on the W3C HTML 4.0 DTD:

        Draft:      $Date: 1999/04/06 22:18:48 $

        Authors:    Dave Raggett <dsr@w3.org>
                    Arnaud Le Hors <lehors@w3.org>
                    Ian Jacobs <ij@w3.org>

-->
<!--  This is the driver file for version 1.0 of the XHTML Strict DTD.

      Please use this formal public identifier to identify it:

          "-//W3C//DTD XHTML 1.0 Strict//EN"

      Please use this URI to identify the default namespace:   

          "http://www.w3.org/TR/1999/REC-html-in-xml"

      For example, if you are using XHTML 1.0 directly, use the FPI 
      in the DOCTYPE declaration, with the xmlns attribute on the 
      document element to identify the default namespace:

        <?xml version="1.0" ?>
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                              "XHTML1-s.dtd" >
        <html xmlns="http://www.w3.org/TR/1999/REC-html-in-xml"
              xml:lang="en" lang="en" >
        ...
        </html>
-->

<!-- The version attribute has historically been a container for the 
     DTD's public identifier (an FPI), but is unused in Strict:  -->
<!ENTITY % HTML.version  "" >
<!ENTITY % Version.attrib "" >

<!-- The xmlns attribute on <html> identifies the 
     default namespace to namespace-aware applications:  -->
<!ENTITY % XHTML.ns  "http://www.w3.org/TR/1999/REC-html-in-xml" >

<!-- reserved for future use with document profiles -->
<!ENTITY % XHTML.profile  "" >

<!-- used to ignore Transitional features within modules -->
<!ENTITY % XHTML.Transitional    "IGNORE" >


<!-- XHTML Base Architecture Module (optional) ......... -->
<!ENTITY % XHTML1-arch.module "IGNORE" >
<![%XHTML1-arch.module;[
<!ENTITY % XHTML1-arch.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Base Architecture//EN"
            "XHTML1-arch.mod" >
%XHTML1-arch.mod;
]]>

<!-- Common Names Module ............................... -->
<!ENTITY % XHTML1-names.module "INCLUDE" >
<![%XHTML1-names.module;[
<!ENTITY % XHTML1-names.mod 
     PUBLIC "-//W3C//ENTITIES XHTML 1.0 Common Names//EN" 
            "XHTML1-names.mod" > 
%XHTML1-names.mod; 
]]>

<!-- Character Entities Module ......................... -->
<!ENTITY % XHTML1-charent.module "INCLUDE" >
<![%XHTML1-charent.module;[
<!ENTITY % XHTML1-charent.mod
     PUBLIC "-//W3C//ENTITIES XHTML 1.0 Character Entities//EN"
            "XHTML1-charent.mod" >
%XHTML1-charent.mod;
]]>

<!-- Intrinsic Events Module ........................... --> 
<!ENTITY % XHTML1-events.module "INCLUDE" >
<![%XHTML1-events.module;[
<!ENTITY % XHTML1-events.mod
     PUBLIC "-//W3C//ENTITIES XHTML 1.0 Intrinsic Events//EN" 
            "XHTML1-events.mod" > 
%XHTML1-events.mod; 
]]>

<!-- Common Attributes Module .......................... --> 
<!ENTITY % XHTML1-attribs.module "INCLUDE" >
<![%XHTML1-attribs.module;[
<!ENTITY % align "" >
<!ENTITY % XHTML1-attribs.mod
     PUBLIC "-//W3C//ENTITIES XHTML 1.0 Common Attributes//EN" 
            "XHTML1-attribs.mod" > 
%XHTML1-attribs.mod; 
]]>

<!-- Document Model Module ............................. -->
<!ENTITY % XHTML1-model.module "INCLUDE" >
<![%XHTML1-model.module;[
<!ENTITY % XHTML1-model.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Document Model//EN"
            "XHTML1-model.mod" >
%XHTML1-model.mod;
]]>

<!-- Inline Structural Module .......................... -->
<!ENTITY % XHTML1-inlstruct.module "INCLUDE" >
<![%XHTML1-inlstruct.module;[
<!ENTITY % XHTML1-inlstruct.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Inline Structural//EN"
            "XHTML1-inlstruct.mod" >
%XHTML1-inlstruct.mod;
]]>

<!-- Inline Presentational Module ...................... -->
<!ENTITY % XHTML1-inlpres.module "INCLUDE" >
<![%XHTML1-inlpres.module;[
<!ENTITY % XHTML1-inlpres.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Inline Presentational//EN"
            "XHTML1-inlpres.mod" >
%XHTML1-inlpres.mod;
]]>

<!-- Inline Phrasal Module ............................. -->
<!ENTITY % XHTML1-inlphras.module "INCLUDE" >
<![%XHTML1-inlphras.module;[
<!ENTITY % XHTML1-inlphras.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Inline Phrasal//EN"
            "XHTML1-inlphras.mod" >
%XHTML1-inlphras.mod;
]]>

<!-- Block Structural Module ........................... -->
<!ENTITY % XHTML1-blkstruct.module "INCLUDE" >
<![%XHTML1-blkstruct.module;[
<!ENTITY % XHTML1-blkstruct.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Block Structural//EN"
            "XHTML1-blkstruct.mod" >
%XHTML1-blkstruct.mod;
]]>

<!-- Block Presentational Module ....................... -->
<!ENTITY % XHTML1-blkpres.module "INCLUDE" >
<![%XHTML1-blkpres.module;[
<!ENTITY % XHTML1-blkpres.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Block Presentational//EN"
            "XHTML1-blkpres.mod" >
%XHTML1-blkpres.mod;
]]>

<!-- Block Phrasal Module .............................. -->
<!ENTITY % XHTML1-blkphras.module "INCLUDE" >
<![%XHTML1-blkphras.module;[
<!ENTITY % XHTML1-blkphras.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Block Phrasal//EN"
            "XHTML1-blkphras.mod" >
%XHTML1-blkphras.mod;
]]>

<!-- Scripting Module .................................. -->
<!ENTITY % XHTML1-script.module "INCLUDE" >
<![%XHTML1-script.module;[
<!ENTITY % XHTML1-script.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Scripting//EN"
            "XHTML1-script.mod" >
%XHTML1-script.mod;
]]>

<!-- Stylesheets Module ................................ -->
<!ENTITY % XHTML1-style.module "INCLUDE" >
<![%XHTML1-style.module;[
<!ENTITY % XHTML1-style.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Stylesheets//EN"
            "XHTML1-style.mod" >
%XHTML1-style.mod;
]]>

<!-- Image Module ...................................... -->
<!ENTITY % XHTML1-image.module "INCLUDE" >
<![%XHTML1-image.module;[
<!ENTITY % XHTML1-image.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Images//EN"
            "XHTML1-image.mod" >
%XHTML1-image.mod;
]]>

<!-- Frames Module ..................................... -->
<!ENTITY % XHTML1-frames.module  "IGNORE" >
<![%XHTML1-frames.module;[
<!ENTITY % XHTML1-frames.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Frames//EN"
            "XHTML1-frames.mod" >
%XHTML1-frames.mod;
]]>

<!-- Linking Module .................................... -->
<!ENTITY % XHTML1-linking.module "INCLUDE" >
<![%XHTML1-linking.module;[
<!ENTITY % XHTML1-linking.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Linking//EN"
            "XHTML1-linking.mod" >
%XHTML1-linking.mod;
]]>

<!-- Client-side Image Map Module ...................... -->
<!ENTITY % XHTML1-csismap.module "INCLUDE" >
<![%XHTML1-csismap.module;[
<!ENTITY % XHTML1-csismap.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Client-side Image Map//EN"
            "XHTML1-csismap.mod" >
%XHTML1-csismap.mod;
]]>

<!-- Object Element Module ............................. -->
<!ENTITY % XHTML1-object.module "INCLUDE" >
<![%XHTML1-object.module;[
<!ENTITY % XHTML1-object.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Object Element//EN"
            "XHTML1-object.mod" >
%XHTML1-object.mod;
]]>

<!-- Lists Module ...................................... -->
<!ENTITY % XHTML1-list.module "INCLUDE" >
<![%XHTML1-list.module;[
<!ENTITY % XHTML1-list.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Lists//EN"
            "XHTML1-list.mod" >
%XHTML1-list.mod;
]]>

<!-- Forms Module ...................................... -->
<!ENTITY % XHTML1-form.module "INCLUDE" >
<![%XHTML1-form.module;[
<!ENTITY % XHTML1-form.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Forms//EN"
            "XHTML1-form.mod" >
%XHTML1-form.mod;
]]>

<!-- Tables Module ..................................... -->
<!ENTITY % XHTML1-table.module "INCLUDE" >
<![%XHTML1-table.module;[
<!ENTITY % XHTML1-table.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Tables//EN"
            "XHTML1-table.mod" >
%XHTML1-table.mod;
]]>

<!-- Document Metainformation Module ................... -->
<!ENTITY % XHTML1-meta.module "INCLUDE" >
<![%XHTML1-meta.module;[
<!ENTITY % XHTML1-meta.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Metainformation//EN"
            "XHTML1-meta.mod" >
%XHTML1-meta.mod;
]]>

<!-- Document Structure Module ......................... -->
<!ENTITY % XHTML1-struct.module "INCLUDE" >
<![%XHTML1-struct.module;[
<!ENTITY % XHTML1-struct.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Document Structure//EN"
            "XHTML1-struct.mod" >
%XHTML1-struct.mod;
]]>

<!-- end of XHTML 1.0 Strict DTD  ......................................... -->
<!-- ...................................................................... -->

C.9.2. XHTML 1.0 Transitional

<!-- ...................................................................... -->
<!-- XHTML 1.0 Transitional DTD  .......................................... -->
<!-- file: XHTML1-t.dtd
-->

<!--  XHTML 1.0 Transitional DTD

      This is XHTML 1.0, an XML reformulation of HTML 4.0.

      Copyright 1998-1999 World Wide Web Consortium
         (Massachusetts Institute of Technology, Institut National de 
          Recherche en Informatique et en Automatique, Keio University).
          All Rights Reserved.

      Permission to use, copy, modify and distribute the XHTML 1.0 DTD and
      its accompanying documentation for any purpose and without fee is
      hereby granted in perpetuity, provided that the above copyright notice
      and this paragraph appear in all copies.  The copyright holders make 
      no representation about the suitability of the DTD for any purpose.  

      It is provided "as is" without expressed or implied warranty.

        Author:     Murray M. Altheim <altheim@eng.sun.com>
        Revision:   @(#)XHTML1-t.dtd 1.14 99/04/01 SMI

      The XHTML 1.0 DTD is an XML variant based on the W3C HTML 4.0 DTD:

        Draft:      $Date: 1999/04/06 22:18:48 $

        Authors:    Dave Raggett <dsr@w3.org>
                    Arnaud Le Hors <lehors@w3.org>
                    Ian Jacobs <ij@w3.org>

-->
<!--  This is the driver file for version 1.0 of the XHTML Transitional DTD.

      Please use this formal public identifier to identify it:

          "-//W3C//DTD XHTML 1.0 Transitional//EN"

      Please use this URI to identify the default namespace:   

          "http://www.w3.org/TR/1999/REC-html-in-xml"

      For example, if you are using XHTML 1.0 directly, use the FPI 
      in the DOCTYPE declaration, with the xmlns attribute on the 
      document element to identify the default namespace:

        <?xml version="1.0" ?>
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                              "XHTML1-t.dtd" >
        <html xmlns="http://www.w3.org/TR/1999/REC-html-in-xml"
              xml:lang="en" lang="en" >
        ...
        </html>
-->

<!-- The version attribute has historically been a container 
     for the DTD's public identifier (an FPI):  -->
<!ENTITY % HTML.version  "-//W3C//DTD XHTML 1.0 Transitional//EN" >

<!-- The xmlns attribute on <html> identifies the 
     default namespace to namespace-aware applications:  -->
<!ENTITY % XHTML.ns  "http://www.w3.org/TR/1999/REC-html-in-xml" >

<!-- reserved for future use with document profiles -->
<!ENTITY % XHTML.profile  "" >

<!ENTITY % XHTML1-frames.module  "IGNORE" >
<!ENTITY % XHTML.Transitional    "INCLUDE" >


<!-- XHTML Base Architecture Module (optional) ......... -->
<!ENTITY % XHTML1-arch.module "IGNORE" >
<![%XHTML1-arch.module;[
<!ENTITY % XHTML1-arch.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Base Architecture//EN"
            "XHTML1-arch.mod" >
%XHTML1-arch.mod;
]]>

<!-- Common Names Module ............................... -->
<!ENTITY % XHTML1-names.module "INCLUDE" >
<![%XHTML1-names.module;[
<!ENTITY % XHTML1-names.mod
     PUBLIC "-//W3C//ENTITIES XHTML 1.0 Common Names//EN" 
            "XHTML1-names.mod" > 
%XHTML1-names.mod; 
]]>

<!-- Character Entities Module ......................... -->
<!ENTITY % XHTML1-charent.module "INCLUDE" >
<![%XHTML1-charent.module;[
<!ENTITY % XHTML1-charent.mod
     PUBLIC "-//W3C//ENTITIES XHTML 1.0 Character Entities//EN"
            "XHTML1-charent.mod" >
%XHTML1-charent.mod;
]]>

<!-- Intrinsic Events Module ........................... --> 
<!ENTITY % XHTML1-events.module "INCLUDE" >
<![%XHTML1-events.module;[
<!ENTITY % XHTML1-events.mod
     PUBLIC "-//W3C//ENTITIES XHTML 1.0 Intrinsic Events//EN" 
            "XHTML1-events.mod" > 
%XHTML1-events.mod;
]]>

<!-- Transitional Attributes Module .................... --> 
<!ENTITY % XHTML1-attribs-t.module "INCLUDE" >
<![%XHTML1-attribs-t.module;[
<!ENTITY % XHTML1-attribs-t.mod
     PUBLIC "-//W3C//ENTITIES XHTML 1.0 Transitional Attributes//EN" 
            "XHTML1-attribs-t.mod" > 
%XHTML1-attribs-t.mod;
]]>

<!-- Transitional Document Model Module ................ -->
<!ENTITY % XHTML1-model-t.module "INCLUDE" >
<![%XHTML1-model-t.module;[
<!ENTITY % XHTML1-model-t.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Transitional Document Model//EN"
            "XHTML1-model-t.mod" >
%XHTML1-model-t.mod;
]]>

<!-- Inline Structural Module .......................... -->
<!ENTITY % XHTML1-inlstruct.module "INCLUDE" >
<![%XHTML1-inlstruct.module;[
<!ENTITY % XHTML1-inlstruct.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Inline Structural//EN"
            "XHTML1-inlstruct.mod" >
%XHTML1-inlstruct.mod;
]]>

<!-- Inline Presentational Module ...................... -->
<!ENTITY % XHTML1-inlpres.module "INCLUDE" >
<![%XHTML1-inlpres.module;[
<!ENTITY % XHTML1-inlpres.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Inline Presentational//EN"
            "XHTML1-inlpres.mod" >
%XHTML1-inlpres.mod;
]]>

<!-- Inline Phrasal Module ............................. -->
<!ENTITY % XHTML1-inlphras.module "INCLUDE" >
<![%XHTML1-inlphras.module;[
<!ENTITY % XHTML1-inlphras.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Inline Phrasal//EN"
            "XHTML1-inlphras.mod" >
%XHTML1-inlphras.mod;
]]>

<!-- Block Structural Module ........................... -->
<!ENTITY % XHTML1-blkstruct.module "INCLUDE" >
<![%XHTML1-blkstruct.module;[
<!ENTITY % XHTML1-blkstruct.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Block Structural//EN"
            "XHTML1-blkstruct.mod" >
%XHTML1-blkstruct.mod;
]]>

<!-- Block Presentational Module ....................... -->
<!ENTITY % XHTML1-blkpres.module "INCLUDE" >
<![%XHTML1-blkpres.module;[
<!ENTITY % XHTML1-blkpres.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Block Presentational//EN"
            "XHTML1-blkpres.mod" >
%XHTML1-blkpres.mod;
]]>

<!-- Block Phrasal Module .............................. -->
<!ENTITY % XHTML1-blkphras.module "INCLUDE" >
<![%XHTML1-blkphras.module;[
<!ENTITY % XHTML1-blkphras.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Block Phrasal//EN"
            "XHTML1-blkphras.mod" >
%XHTML1-blkphras.mod;
]]>

<!-- Scripting Module .................................. -->
<!ENTITY % XHTML1-script.module "INCLUDE" >
<![%XHTML1-script.module;[
<!ENTITY % XHTML1-script.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Scripting//EN"
            "XHTML1-script.mod" >
%XHTML1-script.mod;
]]>

<!-- Stylesheets Module ................................ -->
<!ENTITY % XHTML1-style.module "INCLUDE" >
<![%XHTML1-style.module;[
<!ENTITY % XHTML1-style.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Stylesheets//EN"
            "XHTML1-style.mod" >
%XHTML1-style.mod;
]]>

<!-- Image Module ...................................... -->
<!ENTITY % XHTML1-image.module "INCLUDE" >
<![%XHTML1-image.module;[
<!ENTITY % XHTML1-image.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Images//EN"
            "XHTML1-image.mod" >
%XHTML1-image.mod;
]]>

<!-- Frames Module ..................................... -->
<![%XHTML1-frames.module;[
<!ENTITY % XHTML1-frames.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Frames//EN"
            "XHTML1-frames.mod" >
%XHTML1-frames.mod;
]]>

<!-- Linking Module .................................... -->
<!ENTITY % XHTML1-linking.module "INCLUDE" >
<![%XHTML1-linking.module;[
<!ENTITY % XHTML1-linking.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Linking//EN"
            "XHTML1-linking.mod" >
%XHTML1-linking.mod;
]]>

<!-- Client-side Image Map Module ...................... -->
<!ENTITY % XHTML1-csismap.module "INCLUDE" >
<![%XHTML1-csismap.module;[
<!ENTITY % XHTML1-csismap.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Client-side Image Map//EN"
            "XHTML1-csismap.mod" >
%XHTML1-csismap.mod;
]]>

<!-- Object Element Module ............................. -->
<!ENTITY % XHTML1-object.module "INCLUDE" >
<![%XHTML1-object.module;[
<!ENTITY % XHTML1-object.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Object Element//EN"
            "XHTML1-object.mod" >
%XHTML1-object.mod;
]]>

<!-- Java Applet Element Module ........................ -->
<!ENTITY % XHTML1-applet.module "INCLUDE" >
<![%XHTML1-applet.module;[
<!ENTITY % XHTML1-applet.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Java Applets//EN"
            "XHTML1-applet.mod" >
%XHTML1-applet.mod;
]]>

<!-- Lists Module ...................................... -->
<!ENTITY % XHTML1-list.module "INCLUDE" >
<![%XHTML1-list.module;[
<!ENTITY % XHTML1-list.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Lists//EN"
            "XHTML1-list.mod" >
%XHTML1-list.mod;
]]>

<!-- Forms Module ...................................... -->
<!ENTITY % XHTML1-form.module "INCLUDE" >
<![%XHTML1-form.module;[
<!ENTITY % XHTML1-form.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Forms//EN"
            "XHTML1-form.mod" >
%XHTML1-form.mod;
]]>

<!-- Tables Module ..................................... -->
<!ENTITY % XHTML1-table.module "INCLUDE" >
<![%XHTML1-table.module;[
<!ENTITY % XHTML1-table.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Tables//EN"
            "XHTML1-table.mod" >
%XHTML1-table.mod;
]]>

<!-- Document Metainformation Module ................... -->
<!ENTITY % XHTML1-meta.module "INCLUDE" >
<![%XHTML1-meta.module;[
<!ENTITY % XHTML1-meta.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Metainformation//EN"
            "XHTML1-meta.mod" >
%XHTML1-meta.mod;
]]>

<!-- Document Structure Module ......................... -->
<!ENTITY % XHTML1-struct.module "INCLUDE" >
<![%XHTML1-struct.module;[
<!ENTITY % XHTML1-struct.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Document Structure//EN"
            "XHTML1-struct.mod" >
%XHTML1-struct.mod;
]]>

<!-- end of XHTML 1.0 Transitional DTD  ................................... -->
<!-- ...................................................................... -->

C.9.3. XHTML 1.0 Frameset

<!-- ...................................................................... -->
<!-- XHTML 1.0 Frameset DTD  .............................................. -->
<!-- file: XHTMl1-f.dtd
-->

<!--  XHTML 1.0 Frameset DTD

      This is XHTML 1.0, an XML reformulation of HTML 4.0.

      Copyright 1998-1999 World Wide Web Consortium
         (Massachusetts Institute of Technology, Institut National de 
          Recherche en Informatique et en Automatique, Keio University).
          All Rights Reserved.

      Permission to use, copy, modify and distribute the XHTML 1.0 DTD and
      its accompanying documentation for any purpose and without fee is
      hereby granted in perpetuity, provided that the above copyright notice
      and this paragraph appear in all copies.  The copyright holders make 
      no representation about the suitability of the DTD for any purpose.  

      It is provided "as is" without expressed or implied warranty.

        Author:     Murray M. Altheim <altheim@eng.sun.com>
        Revision:   @(#)XHTML1-f.dtd 1.17 99/04/01 SMI

      The XHTML 1.0 DTD is an XML variant based on the W3C HTML 4.0 DTD:

        Draft:      $Date: 1999/04/06 22:18:48 $

        Authors:    Dave Raggett <dsr@w3.org>
                    Arnaud Le Hors <lehors@w3.org>
                    Ian Jacobs <ij@w3.org>

-->
<!--  This is the driver file for version 1.0 of the XHTML Frameset DTD.

      Please use this formal public identifier to identify it:

          "-//W3C//DTD XHTML 1.0 Frameset//EN"

      Please use this URI to identify the default namespace:   

          "http://www.w3.org/TR/1999/REC-html-in-xml"

      For example, if you are using XHTML 1.0 directly, use the FPI 
      in the DOCTYPE declaration, with the xmlns attribute on the 
      document element to identify the default namespace:

        <?xml version="1.0" ?>
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
                              "XHTML1-f.dtd" >
        <html xmlns="http://www.w3.org/TR/1999/REC-html-in-xml"
              xml:lang="en" lang="en" >
        ...
        </html>
-->

<!-- The version attribute has historically been a container 
     for the DTD's public identifier (an FPI):  -->
<!ENTITY % HTML.version  "-//W3C//DTD XHTML 1.0 Frameset//EN" >

<!-- The xmlns attribute on <html> identifies the 
     default namespace to namespace-aware applications:  -->
<!ENTITY % XHTML.ns  "http://www.w3.org/TR/1999/REC-html-in-xml" >

<!-- reserved for future use with document profiles -->
<!ENTITY % XHTML.profile  "" >

<!ENTITY % XHTML1-frames.module  "INCLUDE" >
<!ENTITY % XHTML.Transitional    "INCLUDE" >


<!-- declare and instantiate the XHTML Transitional DTD  -->
<!ENTITY % XHTML1-t.dtd
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
            "XHTML1-t.dtd" >
%XHTML1-t.dtd;

<!-- end of XHTML 1.0 Frameset DTD  ....................................... -->
<!-- ...................................................................... -->