B. XHTML 1.1 Document Type Definition

Contents

This appendix is normative.

B.1. SGML Open Catalog Entry for XHTML 1.1

This section contains the SGML Open Catalog-format definition of the XHTML 1.1 FPI.

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

--  XHTML 1.1 Catalog Data File

    Revision:  @(#)xhtml11.cat 1.8 99/08/26 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.1 DTD modular driver file  ....................................... --

PUBLIC "-//W3C//DTD XHTML 1.1//EN"                                "xhtml11.dtd"

-- XHTML 1.1 framework modules .............................................. --

PUBLIC "-//W3C//ENTITIES XHTML 1.1 Modular Framework 1.0//EN"     "xhtml11-framework-1.mod"
PUBLIC "-//W3C//ENTITIES XHTML 1.1 Datatypes 1.0//EN"             "xhtml11-datatypes-1.mod"
PUBLIC "-//W3C//ENTITIES XHTML 1.1 Common Attributes 1.0//EN"     "xhtml11-attribs-1.mod"
PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN"        "xhtml11-model-1.mod"
PUBLIC "-//W3C//ENTITIES XHTML 1.1 Character Entities 1.0//EN"    "xhtml11-charent-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Redeclarations 1.0//EN"        "xhtml11-redecl-1.mod"

-- XHTML 1.1 modules ........................................................ --

PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Document Structure 1.0//EN"    "xhtml11-struct-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Basic Text 1.0//EN"            "xhtml11-text-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Hypertext 1.0//EN"             "xhtml11-hypertext-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Lists 1.0//EN"                 "xhtml11-list-1.mod"

PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Java Applets 1.0//EN"          "xhtml11-applet-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Presentation 1.0//EN"          "xhtml11-pres-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Editing Elements 1.0//EN"      "xhtml11-edit-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 BIDI Override Element 1.0//EN" "xhtml11-bdo-1.mod" 
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Basic Forms 1.0//EN"           "xhtml11-formb-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Forms 1.0//EN"                 "xhtml11-form-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Basic Tables 1.0//EN"          "xhtml11-tableb-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Tables 1.0//EN"                "xhtml11-table-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Images 1.0//EN"                "xhtml11-image-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Client-side Image Maps 1.0//EN" "xhtml11-csismap-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Server-side Image Maps 1.0//EN" "xhtml11-ssismap-1.mod"
PUBLIC "-//W3C//ENTITIES XHTML 1.1 Intrinsic Events 1.0//EN"      "xhtml11-events-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Metainformation 1.0//EN"       "xhtml11-meta-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Scripting 1.0//EN"             "xhtml11-script-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Stylesheets 1.0//EN"           "xhtml11-style-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Link Element 1.0//EN"          "xhtml11-link-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Base Element 1.0//EN"          "xhtml11-base-1.mod"

PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Inline Structural 1.0//EN"     "xhtml11-inlstruct-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Inline Presentation 1.0//EN"   "xhtml11-inlpres-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Inline Phrasal 1.0//EN"        "xhtml11-inlphras-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Block Structural 1.0//EN"      "xhtml11-blkstruct-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Block Presentation 1.0//EN"    "xhtml11-blkpres-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Block Phrasal 1.0//EN"         "xhtml11-blkphras-1.mod"

PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Object Element 1.0//EN"        "xhtml1-object-1.mod" 
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Frames 1.0//EN"                "xhtml1-frames-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML 1.0 Inline Frame Element 1.0//EN"  "xhtml1-iframe-1.mod"

-- XHTML 1.1 entity sets  ................................................... --

PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN"                   "xhtml-lat1.ent"
PUBLIC "-//W3C//ENTITIES Special for XHTML//EN"                   "xhtml-special.ent"
PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN"                   "xhtml-symbol.ent"

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


B.2. XHTML 1.1 Driver

This section contains the driver for the XHTML 1.1 document type implementation as an XML DTD. It relies upon XHTML module implementations defined in XHTML 1.1 Module Implementations.

<!-- ....................................................................... -->
<!-- XHTML 1.1 DTD  ........................................................ -->
<!-- file: xhtml11.dtd
-->

<!-- XHTML 1.1 DTD

     This is XHTML 1.1, a modular variant of XHTML 1.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.1 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:   @(#)xhtml11.dtd 1.10 99/08/26 SMI

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

     Please use this formal public identifier to identify it:

         "-//W3C//DTD XHTML 1.1//EN"

     Please use this URI to identify the default namespace:

         "http://www.w3.org/TR/xhtml1"

     For example, if you are using XHTML 1.1 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.1//EN" 
                               "xhtml11.dtd" >
         <html xmlns="http://www.w3.org/TR/xhtml1"
               xmlns:xlink="http://www.w3.org/XML/XLink/0.9"
               xml:lang="en" >
         ...
         </html>

     Revisions:
     (none)
-->

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

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

<!-- Internationalization features
     This feature-test entity is used to declare elements
     and attributes used for internationalization support.
-->
<!ENTITY % XHTML.I18n            "INCLUDE" >

<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->

<!-- Redeclaration placeholder  .................................. -->
<!ENTITY % xhtml-redecl.module "IGNORE" >
<![%xhtml-redecl.module;[
%xhtml-redecl.mod;]]>

<!ENTITY % xhtml-events.module "INCLUDE" >

<!-- Modular Framework Module  ................................... -->
<!ENTITY % xhtml-framework.mod
     PUBLIC "-//W3C//ENTITIES XHTML 1.1 Modular Framework 1.0//EN"
            "xhtml11-framework-1.mod" >
%xhtml-framework.mod;

<!-- Basic Text Module (Required)  ............................... -->
<!ENTITY % xhtml-text.module "INCLUDE" >
<![%xhtml-text.module;[
<!ENTITY % xhtml-text.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Basic Text 1.0//EN"
            "xhtml11-text-1.mod" >
%xhtml-text.mod;]]>

<!-- Hypertext Module (required) ................................. -->
<!ENTITY % xhtml-hypertext.module "INCLUDE" >
<![%xhtml-hypertext.module;[
<!ENTITY % xhtml-hypertext.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Hypertext 1.0//EN"
            "xhtml11-hypertext-1.mod" >
%xhtml-hypertext.mod;]]>

<!-- Lists Module (required)  .................................... -->
<!ENTITY % xhtml-list.module "INCLUDE" >
<![%xhtml-list.module;[
<!ENTITY % xhtml-list.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Lists 1.0//EN"
            "xhtml11-list-1.mod" >
%xhtml-list.mod;]]>

<!-- Edit Module  ................................................ -->
<!ENTITY % xhtml-edit.module "INCLUDE" >
<![%xhtml-edit.module;[
<!ENTITY % xhtml-edit.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Editing Elements 1.0//EN"
            "xhtml11-edit-1.mod" >
%xhtml-edit.mod;]]>

<!-- Presentation Module  ........................................ -->
<!ENTITY % xhtml-pres.module "INCLUDE" >
<![%xhtml-pres.module;[
<!ENTITY % xhtml-pres.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Presentation 1.0//EN"
            "xhtml11-pres-1.mod" >
%xhtml-pres.mod;]]>

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

<!-- BIDI Override Module  ....................................... -->
<!ENTITY % xhtml-bdo.module "INCLUDE" >
<![%xhtml-bdo.module;[
<!ENTITY % xhtml-bdo.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 BIDI Override Element 1.0//EN"
            "xhtml11-bdo-1.mod" >
%xhtml-bdo.mod;]]>

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

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

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

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

<!-- Server-side Image Map Module  ............................... -->
<!ENTITY % xhtml-ssismap.module "INCLUDE" >
<![%xhtml-ssismap.module;[
<!ENTITY % xhtml-ssismap.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Server-side Image Maps 1.0//EN"
            "xhtml11-ssismap-1.mod" >
%xhtml-ssismap.mod;]]>

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

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

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

<!-- Link Element Module  ........................................ -->
<!ENTITY % xhtml-link.module "INCLUDE" >
<![%xhtml-link.module;[
<!ENTITY % xhtml-link.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Link Element 1.0//EN"
            "xhtml11-link-1.mod" >
%xhtml-link.mod;]]>

<!-- Base Element Module  ........................................ -->
<!ENTITY % xhtml-base.module "INCLUDE" >
<![%xhtml-base.module;[
<!ENTITY % xhtml-base.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Base Element 1.0//EN"
            "xhtml11-base-1.mod" >
%xhtml-base.mod;]]>

<!-- Document Structure Module (required)  ....................... -->
<!ENTITY % xhtml-struct.module "INCLUDE" >
<![%xhtml-struct.module;[
<!ENTITY % xhtml-struct.mod
     PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Document Structure 1.0//EN"
            "xhtml11-struct-1.mod" >
%xhtml-struct.mod;]]>

<!-- end of XHTML 1.1 DTD  ................................................. -->
<!-- ....................................................................... -->

B.3. XHTML 1.1 Customizations

An XHTML 1.1 Family Document Type (such as XHTML 1.1) must define the content model that it uses. This is done through a separate content model module that is instantiated by the XHTML Modular Framework. The content model module and the XHTML 1.1 Driver (above) work together to customize the module implementations to the document type's specific requirements. The content model module for XHTML 1.1 is defined below:

<!-- ....................................................................... -->
<!-- XHTML 1.1 Document Model Module  ...................................... -->
<!-- file: xhtml11-model-1.mod

     This is XHTML 1.1, a modular variant of XHTML 1.0.
     Copyright 1998-1999 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: @(#)xhtml11-model-1.mod 1.9 99/08/26 SMI

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

     PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN"
     SYSTEM "xhtml11-model-1.mod"

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

<!-- Document Model

     This module describes the groupings of elements that make up
     common content models for XHTML elements.

     XHTML has three basic content models:

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

     Any parameter entities declared in this module may be used
     to create element content models, but the above three are
     considered 'global' (insofar as that term applies here).

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

     While in some cases this module may need to be rewritten to
     accommodate changes to the document model, minor extensions
     may be accomplished by redeclaring any of the three *.extra;
     parameter entities to contain extension element types as follows:

         %Misc.extra;    whose parent may be any block or
                         inline element.

         %Inline.extra;  whose parent may be any inline element.

         %Block.extra;   whose parent may be any block element.

     If used, these parameter entities must be an OR-separated
     list beginning with an OR separator ("|"), eg., "| a | b | c"

     All block and inline *.class parameter entities not part
     of the *struct.class classes begin with "| " to allow for
     exclusion from mixes.
-->

<!-- ..............  Optional Elements in head  .................. -->

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

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

<!-- ins and del are used to denote editing changes
-->
<!ENTITY % Edit.class "| ins | del" >

<!-- script and noscript are used to contain scripts
     and alternative content
-->

<!ENTITY % Misc.extra "| script | noscript" >

<!-- These elements are neither block nor inline, and can
     essentially be used anywhere in the document body.
-->
<!ENTITY % Misc.class
     "%Edit.class;
      %Misc.extra;"
>

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

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

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

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

<!ENTITY % I18n.class "| bdo" >

<!ENTITY % Anchor.class "| a" >

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

<!ENTITY % Inline.extra 
     "| input | select | textarea | label | button" >

<!-- %Inline.class; includes all inline elements,
     used as a component in mixes
-->
<!ENTITY % Inline.class
     "%Inlstruct.class;
      %Inlphras.class;
      %Inlpres.class;
      %I18n.class;
      %Anchor.class;
      %Inlspecial.class;
      %Inline.extra;"
>

<!-- %Inline-noa.class; includes all non-anchor inlines,
     used as a component in mixes
-->
<!ENTITY % Inline-noa.class
     "%Inlstruct.class;
      %Inlphras.class;
      %Inlpres.class;
      %I18n.class;
      %Inlspecial.class;
      %Inline.extra;"
>

<!-- %Inline-noa.mix; includes all non-anchor inlines
-->
<!ENTITY % Inline-noa.mix
     "%Inline-noa.class;
      %Misc.class;"
>

<!-- %Inline.mix; includes all inline elements, including %Misc.class;
-->
<!ENTITY % Inline.mix
     "%Inline.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.
-->

<!ENTITY % Heading.class "h1 | h2 | h3 | h4 | h5 | h6" >

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

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

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

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

<!ENTITY % Block.extra "| table | form | fieldset" >

<!-- %Block.class; includes all block elements,
     used as an component in mixes
-->
<!ENTITY % Block.class
     "%Blkstruct.class;
      %Blkphras.class;
      %Blkpres.class;
      %Block.extra;"
>

<!-- %Block.mix; includes all block elements plus %Misc.class;
-->
<!ENTITY % Block.mix
     "%Heading.class;
      | %List.class;
      | %Block.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 xhtml11-model-1.mod -->