XHTML1.1は豊富な構造の設計が可能です。現在、様々なプラットフォーム(デスクトップやノートパソコン、携帯電話、PDA)の違いで正確な情報の伝達に困難を極める中で、XHTML1.1のモジュール化は、それぞれ異なった環境に適した文書構造を定義することが可能です。
XHTMLは、HTML4.01を継承しつつも、XHTML1.1文書は XMLに分類され、一方で、XHTML4.01で非推奨とされた要素、属性などは、すべて廃止されております。このような特徴をもつ XHTML1.1 仕様は、将来の文書型のテンプレートとして設計されています。
XHTML1.0 が公開された後、W3Cではその内容を基にして関連する機能別のモジュールに分割する作業が行われました。それに加えて新しいモジュールの定義方法や、それらを組み合わせて新しい文書型を定義する方法なども定義した仕様が、「XHTML1.1のモジュール化」です。
XHTML1.1は、複数のモジュールを取り込むことで定義されています。このモジュールは、一般にファイル単位で存在し、その内容は DTD の書式で記述されています。
引用出典先 http://www.w3.org/TR/xhtml-modularization/ (英文)
| 要素 | 属性 | 最小内容 |
| body | - | Heading,List,Table |
| head | profile (URI) | title |
| html | version (CDATA), xmlns, xml:lang | head, body |
| title | - | #PCDATA(text) |
このモジュールは、 XHTML1.1コンテンツの基礎的な構造定義です。html要素は、すべての要素のルート(root 最上位要素) として機能しています。
xmlns属性の値は "http://www.w3.org/1999/xhtml" のみ定義されていますので注意してください。また、xml:lang の属性値は使用言語コードを用います。
| 要素 | 属性 | 最小内容 |
| abbr | - | #PCDATA(inline-level) |
| acronym | - | #PCDATA(inline-level) |
| address | - | #PCDATA(inline-level) |
| blockquote | cite(URI) | #PCDATA(block-level) |
| br | - | empty |
| cite | - | #PCDATA(inline-level) |
| code | - | #PCDATA(inline-level) |
| dfn | - | #PCDATA(inline-level) |
| div | - | #PCDATA(block-level Flow) |
| em | - | #PCDATA(inline-level) |
| h1〜h6 | - | #PCDATA(block-level)Heading |
| kbd | - | #PCDATA(inline-level) |
| p | - | #PCDATA(block-level)Paraglagh |
| pre | - | #PCDATA(block-level) |
| q | cite(URI) | #PCDATA(inline-level) |
| samp | - | #PCDATA(inline-level) |
| span | - | #PCDATA(inline-level) |
| strong | - | #PCDATA(inline-level) |
| var | - | #PCDATA(inline-level) |
ここで定義されている要素のコンテンツは、すべてが #PCDATA であることに注意してください。実体参照は実体参照符号で記述しなければなりません。
| 要素 | 属性 | 最小内容 |
| a | href(URI) | #PCDATA(inline-level) |
| accesskey(CDATA) | #PCDATA(inline-level) | |
| tabindex(Number) | #PCDATA(inline-level) | |
| charset(charset) | #PCDATA(inline-level) | |
| id(id) | #PCDATA(inline-level) | |
| hreflang(LanguageCode) | #PCDATA(inline-level) | |
| rel (LinkTypes) | #PCDATA(inline-level) | |
| rev (LinkTypes), | #PCDATA(inline-level) | |
| type (ContentType) | #PCDATA(inline-level) |
ハイパーテキスト・モジュールは、他のリソース (URI) へのハイパーテキストリンクを定義するために使われます。
| 要素 | 属性 | 最小内容 |
| dl | - | dt, dl |
| dt | - | #PCDATA(inline-level) |
| dd | - | #PCDATA(inline-level)Flow |
| ol | - | li |
| ul | - | li |
| li | - | #PCDATA(inline-level)Flow |
このモジュールは、リストであることを定義し、その最小内容モデルは dl ol ul の各要素です。
| 要素 | 属性 | 最小内容 |
| applet | alt(text), etc | #PCDATA(inline-level) |
| param | id(id), name(name) etc | empty (#PCDATA) |
アプレット・モジュールは、外部アプリケーションを参照する要素をサポートします。XHTML1.1では非推奨モジュールと定義されています。
| 要素 | 属性 | 最小内容 |
| b | - | #PCDATA(inline-level) |
| big | - | #PCDATA(inline-level) |
| hr | - | empty |
| i | - | #PCDATA(inline-level) |
| small | - | #PCDATA(inline-level) |
| sub | - | #PCDATA(inline-level) |
| sup | - | #PCDATA(inline-level) |
| tt | - | #PCDATA(inline-level) |
このモジュールは、単純なプレゼンテーション関係のマークアップのための要素、属性、最小内容モデルを定義しています。近い将来の XHTML1.1モジュール定義 (XHTML2.0) では廃止が予定されています。むしろ、今でも存続していること自体が不思議でもあります。
| 要素 | 属性 | 最小内容 |
| del | cite(URI),datetime(datetime) | #PCDATA Flow |
| ins | cite(URI),datetime(datetime) | #PCDATA Flow |
このモジュールは、インライン、およびブロックレベル双方の性格を持っています。
| 要素 | 属性 | 最小内容 |
| bdo | dir(ltr or rtl) | #PCDATA(inline-level) |
このモジュールは、要素の内容に双方向規則を宣言できる要素を定義します。つまり、コンテンツ・テキストが左から右へ、あるいは右から左へのどちらかを定義するものです。
| 要素 | 属性 | 最小内容 |
| form | action(URI), method(get or post) | #PCDATA(block-level) |
| input | accesskey(CDATA),tabindex(number),etc | empty |
| label | tabindex(number),for(id) | #PCDATA(inline-level) |
| select | tabindex(number),name(CDATA) | option |
| option | selected,value(CDATA) | #PCDATA |
| textarea | accesskey(CDATA),tabindex(number),etc | #PCDATA |
| button | accesskey(CDATA),tabindex(number),etc | #PCDATA(inline-level) |
| fieldset | - | #PCDATA(inline-level) |
| legend | accesskey(CDATA) | #PCDATA(inline-level) |
| optgroup | label(text),disabled | option |
フォーム・モジュールは、基本的に HTML4.01仕様書に見られる全ての機能をサポートしています。フォーム・モジュールは、基本フォーム・モジュールを包含するセットであるため、単一の文書型の中で、一緒に使うことを避けなければなりません。
このモジュールは、次の二つの内容セットを定義します。
Form: form
Form control: input、label、select、textarea、button
| 要素 | 属性 | 最小内容 |
| caption | - | #PCDATA(inline-level) |
| table | boeder,rules,frame,summary(CDATA),etc | caption,tr,tbody,thead,colgroup,etc |
| td | abbr(text),align,axis(CDATA),etc | #PCDATA Flow |
| th | abbr(text),align,axis(CDATA),etc | #PCDATA Flow |
| tr | abbr(text),char(charset),etc | td, th |
| col | width(multi-length),align,etc | empty |
| colgroup | width(multi-length),span(number),etc | col |
| tbody | char(charset),align,etc | tr |
| thead | char(charset),align,etc | tr |
| tfoot | char(charset),align,etc | tr |
表モジュールは、非視覚系ブラウザに対するアクセシビリティをサポートする属性が盛り込まれています。
| 要素 | 属性 | 最小内容 |
| img | alt(text),width(multi-length),etc | empty(inline-level) |
画像モジュールは、基本的な静止画像の表示をサポートし、クライアント・サイド・イメージマップも含まれています。
| 要素 | 属性 | 最小内容 |
| a | coords(CDATA),shape,etc | - |
| area | accesskey(CDATA),alt(text),etc | empty |
| img | usemap(id) | empty(inline-level) |
| input | usemap(id) | empty(inline-level) |
| map | title(CDATA),id(id),etc(id) | (block-level) |
| object | usemap(id) | Only object module |
このモジュールは、クライアント・サイド・イメージマップをサポートするために定義されています。画像中における選択領域を定義します。
| 要素 | 属性 | 最小内容 |
| img | ismap(id) | empty(inline-level) |
| input | ismap(id) | empty(inline-level) |
このモジュールは、サーバ・サイド・イメージマップ (CGI必須) をサポートするために定義されています。画像中における選択領域を定義します。
| 要素 | 属性 | 最小内容 |
| object | archive(URI),classid(URI),etc | #PCDATA Flow |
| param | name(CDATA),type(ContentType),etc | empty(inline-level) |
このモジュールは、多様なオブジェクトの利用を定義しサポートしています。
| 要素 | 属性 | 最小内容 |
| meta | content(CDATA),http-equiv(MIME),etc | empty |
このモジュールは、文書情報を記述する要素で、HTTPヘッダ (あるいはユーザ・エージェンシー) に送られるものを定義します。
| 要素 | 属性 | 最小内容 |
| script | type(content),src(URI),etc | #PCDATA(block-level) |
| noscript | - | #PCDATA |
このモジュールは、実行可能なスクリプトに関する情報やデータ、またスクリプトのサポートの欠如に属する情報を含むときに用いる要素を定義します。ただし、XHTML1.1では内容が #PCDATA であるために、外部に置くことが推奨されています。 (noscript要素を除く)
| 要素 | 属性 | 最小内容 |
| style | type(content),media,etc | #PCDATA |
このモジュールは、内部スタイルシートを宣言するときに使う要素を定義します。このモジュールはヘッダ部に使用されます。ただし、XHTML1.1では内容が #PCDATA であるために、外部に置くことが推奨されています。
| 要素 | 属性 | 最小内容 |
| link | charset(charset),href(URI),etc | empty |
このモジュールは、外部文書へのリンクを定義するために用いる要素を定義します。これらのリソースは、ブラウザが、XHTML文書を処理する能力を向上させるために、度々用いられています。
| 要素 | 属性 | 最小内容 |
| a | onmouseover,onmouseout,onclick,etc | - |
| area | onblur(script),onfocus(script) | Client-Image-Map |
| body | onload(script),onunload(script) | - |
| form | onrest(script),onsubmit(script) | form |
| label | onblur(script),onfocus(script) | form |
| select | onblur(script),onfocus(script) | form |
| textarea | onblur(script),onfocus(script) | form |
| button | onblur(script),onfocus(script) | form |
このモジュールは、ユーザがある動作を行った時に、特定のイベントが発生する要素と共に用いる属性です。
その他に、レガシー、フレーム、ターゲットなどのモジュールがありますが、いずれも XHTML1.1では廃止されておりますので、割愛させていただきます、あしからず。