##
13.5.4 内容モデルの記述

内容モデルは入れ子になったタプルを使って記述されています。 各タプルには 4 つの値: 型、限定詞 (quantifier)、名前、そして子の タプル、が収められています。子のタプルは単に内容モデルを 記述したものです。

最初の二つのフィールドの値は `xml.parsers.expat` モジュールの `model` オブジェクトで定義されている定数です。これらの定数は 二つのグループ: モデル型 (model type) グループと限定子 (quantifier) グループ、に取りまとめられます。

以下にモデル型グループにおける定数を示します:

`XML_CTYPE_ANY`
  モデル名で指定された要素は `ANY` の内容モデルを持つと 宣言されます。

`XML_CTYPE_CHOICE`
  指定されたエレメントはいくつかのオプションから選択できるようになって います; `(A | B | C)` のような内容モデルで用いられます。

`XML_CTYPE_EMPTY`
  `EMPTY` であると宣言されている要素はこのモデル型を持ちます。

`XML_CTYPE_MIXED`

`XML_CTYPE_NAME`

`XML_CTYPE_SEQ`
  順々に続くようなモデルの系列を表すモデルがこのモデル型で表されます。 `(A, B, C)` のようなモデルで用いられます。

限定子グループにおける定数を以下に示します:

`XML_CQUANT_NONE`
  修飾子 (modifier) が指定されていません。従って `A` のように、 厳密に一つだけです。

`XML_CQUANT_OPT`
  このモデルはオプションです: `A?` のように、一つか全くないかです。

`XML_CQUANT_PLUS`
  このモデルは (`A+` のように) 一つかそれ以上あります。

`XML_CQUANT_REP`
  このモデルは `A*` のようにゼロ回以上あります。