昨日挙げた2つの例を、「pの例」、「priceの例」として引用します。(ただし、通貨記号はISO 4217のコードであるJPYに変更した。)
pの例:
<p>これ<br/>とても<em>重要</em>。</p>
priceの例:
<price>2300<unit>JPY</unit></price>
これらの構文モデルを、DTDの記法で書けば次のようになるでしょう。
- pの例:
(#PCDATA|br|em)*
- priceの例:
(#PCDATA, unit)
実は、priceのような構文モデル(正規表現)は認められていません。そのへんの事情は、キマイラ・サイトの一連の記事に書いてあります。しかしここでは、(#PCDATA, unit)も認める前提で話をします。(どうしても気になる人は、(#PCDATA|unit)* として「unitの出現は最後に1回」というコンベンションがあると思ってください。)
構文だけを見ると、pもpriceも混合内容です。しかし、データ構造モデルまで考えると、この2つは異質なのです。
(続く)