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

         This is XHTML 1.1, a reformulation of HTML as a modular XML application.
         Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
         Revision: $Id: xhtml11-model-1.mod,v 1.13 2001/05/29 16:37:01 ahby Exp $ SMI

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

           PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN"
           SYSTEM "http://www.w3.org/TR/xhtml11/DTD/xhtml11-model-1.mod"

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

    <!-- XHTML 1.1 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 % HeadOpts.mix"( %script.qname; | %style.qname; | %meta.qname;
      | %link.qname; | %object.qname; )*">

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

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

    <!-- script and noscript are used to contain scripts
         and alternative content
    -->
    <!ENTITY % Script.class "| %script.qname; | %noscript.qname;" >

    <!ENTITY % Misc.extra "" >

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

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

    <!ENTITY % InlStruct.class "%br.qname; | %span.qname;" >

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

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

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

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

    <!ENTITY % InlSpecial.class"| %img.qname; | %map.qname;
      | %object.qname;" >

    <!ENTITY % InlForm.class"| %input.qname; | %select.qname; | %textarea.qname;
      | %label.qname; | %button.qname;" >

    <!ENTITY % Inline.extra "" >

    <!ENTITY % Ruby.class "| %ruby.qname;" >

    <!-- %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;
      %InlForm.class;
      %Ruby.class;
      %Inline.extra;">

    <!-- %InlNoRuby.class; includes all inline elements
         except ruby, used as a component in mixes
    -->
    <!ENTITY % InlNoRuby.class"%InlStruct.class;
      %InlPhras.class;
      %InlPres.class;
      %I18n.class;
      %Anchor.class;
      %InlSpecial.class;
      %InlForm.class;
      %Inline.extra;">

    <!-- %NoRuby.content; includes all inlines except ruby
    -->
    <!ENTITY % NoRuby.content"( #PCDATA
      | %InlNoRuby.class;
      %Misc.class; )*">

    <!-- %InlNoAnchor.class; includes all non-anchor inlines,
         used as a component in mixes
    -->
    <!ENTITY % InlNoAnchor.class"%InlStruct.class;
      %InlPhras.class;
      %InlPres.class;
      %I18n.class;
      %InlSpecial.class;
      %InlForm.class;
      %Ruby.class;
      %Inline.extra;">

    <!-- %InlNoAnchor.mix; includes all non-anchor inlines
    -->
    <!ENTITY % InlNoAnchor.mix"%InlNoAnchor.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.qname; | %h2.qname; | %h3.qname;
      | %h4.qname; | %h5.qname; | %h6.qname;" >

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

    <!ENTITY % Table.class "| %table.qname;" >

    <!ENTITY % Form.class  "| %form.qname;" >

    <!ENTITY % Fieldset.class  "| %fieldset.qname;" >

    <!ENTITY % BlkStruct.class "%p.qname; | %div.qname;" >

    <!ENTITY % BlkPhras.class"| %pre.qname; | %blockquote.qname; | %address.qname;" >

    <!ENTITY % BlkPres.class "| %hr.qname;" >

    <!ENTITY % BlkSpecial.class"%Table.class;
      %Form.class;
      %Fieldset.class;">

    <!ENTITY % Block.extra "" >

    <!-- %Block.class; includes all block elements,
         used as an component in mixes
    -->
    <!ENTITY % Block.class"%BlkStruct.class;
      %BlkPhras.class;
      %BlkPres.class;
      %BlkSpecial.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 -->


