* 抽象モジュール (XHTML 式マーク付け言語定義)
[1]
> [[XHTML]] [[文書型]]は抽象モジュールの[[集合]]として定義します。
抽象モジュールは他の全てと意味的に異なるある種のデータを定義します。
抽象モジュールは、そのモジュールを定義する [[schema]]
に関する深い理解がなくとも[[文書型]]に[[結合]]することができます。
[SRC[XHTML m12n Intro]
[3]
> 抽象モジュールは、[[自然言語]]の[[文章]]と少々の非公式なマーク表記法を使った
[[XHTML]] [[モジュール]]の定義です。この定義は[[文書型]]の機械処理には通常便利とはいえませんが、
人間が[[モジュール]]に何が含まれているのかを理解しやすくするためには重要です。[INS[(略)]]
[[XHTML]] 適合[[モジュール]]が[[抽象モジュール]]定義を提供することは''必須ではありません''。
しかし、 [[XHTML]] [[モジュール]]の開発者は[[モジュール]]が使いやすいように抽象化することを推奨します。
[SRC[XHTML m12n AbsMod]]
* 定義
[2]
> [[内容]]の種類の区分に対応し、その区分を反映したマーク構造に対応する、
[[文書型]]指定の単位。 [SRC[XHTML m12n Term、>>10]]
* 仕様書
- [8] [[XHTML m12n]]
--[XHTML m12n Intro] [CSECTION[1.3.1. Abstract modules]]
--[XHTML m12n Term] [CSECTION[2. Terms and Definitions]]
--[XHTML m12n AbsMod] [CSECTION[4. Defining Abstract Modules]]
- [10] [CITE@en[XHTML™ 2.0 - Terms and Definitions]] ([TIME[2010-12-17 00:44:37 +09:00]] 版)
- [6] で、その実際の XHTML 抽象モジュールは ''Modularization of XHTML - XHTML Abstract Modules'' で定義されています。
[[#comment]]
* 内容モデルの表記
[4] XHTML m12n では、 [[XML]] の[[内容モデル]]表記法を拡張したようなものを定義しています。
:[CODE[[VAR[要素型名]]]]:[[要素]]を表します。
:[CODE[[VAR[内容集合名]]]]:[[内容集合]]を表します。
[[内容集合]]は[[要素型名]]の[[並び]]です。
:[CODE[[VAR[式]]?]]:[VAR[式]]の[[実現値]]が零個または一個認められることを示します。
:[CODE[[VAR[式]]+]]:[VAR[式]]の[[実現値]]が一個以上認められることを示します。
:[CODE[[VAR[式]]*]]:[VAR[式]]の[[実現値]]が零個以上認められることを示します。
:[CODE[[VAR[a]], [VAR[b]]]]:式 [VAR[a]] の後に式 [VAR[b]]。
:[CODE[[VAR[a]] | [VAR[b]]]]:式 [VAR[a]] または式 [VAR[b]]。
:[CODE[[VAR[a]] - [VAR[b]]]]:式 [VAR[a]]、ただし [VAR[b]]
の[[要素型]]を除く。
:[CODE[([VAR[式]])]]:括弧内を先に評価。
:[CODE[[VAR[要素型名]]&]]:定義済みの[[要素型]]に[[属性]]を追加することを示します。
:[CODE[[VAR[属性名]]*]]:[[属性]]が必須であることを示します。
:[CODE[[VAR[属性名]] ([VAR[型名]])]]:[[属性]]の[[型]]を示します。
:[CODE[[VAR[属性名]] ("[VAR[属性値]]" | "[VAR[属性値]]")]]:
[[属性]]の[[合法]]な値を示します。
:[CODE["[VAR[属性値]]"*]]:既定の[[属性値]]を示します。
:[CODE[[VAR[属性名]]="[VAR[属性値]]"]]:[[固定属性]]を示します。
- [7] m12n では、要素型名は小文字、内容集合は最初の文字だけ大文字、 [CODE(XML)[[[PCDATA]]]] と [CODE(XML)[[[EMPTY]]]] は全て大文字で内容モデル中で区別しています。
[[#comment]]
* 内容型
[9] [[内容模型]]で使われる記号 [SRC[XHTML m12n 4.2]]:
:[CODE(XML)[[[PCDATA]]]]:[[文章]]が使えることを表します。
:[CODE(XML)[[[EMPTY]]]]:[[最小内容模型]]で[[内容]]を持たないことを表します。
[[#comment]]
* 属性の型
[5] 抽象モジュール定義で使う[[属性型]]として次のものが定義されています
[SRC[XHTML m12n 4.3]]。
:[CODE(XML)[[[CDATA]]]]:[[文字データ]] [SRC[XML 1.0]]
:[CODE[[[Character]]]]:[[ISO/IEC 10646]] の1[[文字]]
:[CODE[[[Charset]]]]:[[RFC 2045]] による [[charset]]
:[CODE[[[Charsets]]]]:[[間隔]]区切りの [[RFC 2045]] による [[charset]]
の[[並び]]
:[CODE[[[Color]]]]:[[sRGB]] 色指定 (十六進数または基本16色名)
:[CODE[[[ContentType]]]]:[[RFC 2045]] による[[媒体型]]
:[CODE[[[ContentTypes]]]]:[[読点]]区切りの [[RFC 2045]]
による[[媒体型]]の[[並び]]
:[CODE[[[Coords]]]]:[[読点]]区切りの[[座標]]の[[並び]]
:[CODE[[[Datetime]]]]:[[日時]]
:[CODE[[[FPI]]]]:[[SGML]] [[公式公開識別子]]
:[CODE[[[FrameTarget]]]]:[[枠]]名
:[CODE(XML)[[[ID]]]]:[[文書]]内[[固有識別子]] [SRC[XML 1.0]]
:[CODE(XML)[[[IDREF]]]]:[[文書]]内[[固有識別子]]への[[参照]]
[SRC[XML 1.0]]
:[CODE(XML)[[[IDREFS]]]]:[[文書]]内[[固有識別子]]への[[参照]]の[[間隔]]区切りの[[並び]]
[SRC[XML 1.0]]
:[CODE[[[LanguageCode]]]]:[[RFC 3066]] [[言語札]]
:[CODE[[[Length]]]]:[[画素]]値または[[百分率]]値
:[CODE[[[LinkTypes]]]]:[[間隔]]区切りの[[リンク型]]の[[並び]]
:[CODE[[[MediaDesc]]]]:[[読点]]区切りの[[媒体記述子]]の[[並び]]
:[CODE[[[MultiLength]]]]:[CODE[[[Length]]]] または相対長
:[CODE[[[MultiLengths]]]]:[[読点]]区切りの [CODE[[[MultiLength]]]]
の[[並び]]
:[CODE[[[NAME]]]]:[CODE(XML)[[[ID]]]] と同じ[[文字]]制約の[[名前]]
:[CODE(XML)[[[NMTOKEN]]]]:[[名前字句]] [SRC[XML 1.0]]
:[CODE(XML)[[[NMTOKENS]]]]:[[空白]]区切りの[[名前字句]]の[[並び]]
[SRC[XML 1.0]]
:[CODE[[[Number]]]]:1桁以上の[[数字]]
:[CODE(XML)[[[PCDATA]]]]:処理済文字データ [SRC[XML 1.0]]
(ここに含まれているのは XHTML m12n の間違い?)
:[CODE[[[Pixels]]]]:[[画素]]数
:[CODE[[[Script]]]]:[[スクリプト]]・データ
:[CODE[[[Shape]]]]:範囲の形
:[CODE[[[Text]]]]:任意の多分[[人間可読]]な[[文章]]データ
:[CODE[[[URI]]]]:[[RFC 2396]] [[URI]]
:[CODE[[[URIs]]]]:[[間隔]]区切りの [[RFC 2396]] [[URI]]
の[[並び]]
;; [[XHTML M12N 1.1]] や [[XHTML 2.0]] では定義が変更されたり、新しい[[属性型]]が追加されたりしています。