blob: 4d9fcd98aaefcda67a1a45b3c1db2b49fff95113 [file] [log] [blame]
<!-- ....................................................................... -->
<!-- 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-2008 W3C (MIT, ERCIM, Keio), All Rights Reserved.
Revision: $Id: xhtml11-model-1.mod,v 1.16 2008/06/21 18:52:27 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/MarkUp/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 -->