| <!-- ....................................................................... --> |
| <!-- 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 --> |