条件付きセクション

conditional section

 DTDの内部において、特定の部分を、含める機能と、除外する機能がある。これをパラメタ実体と併用することで、便利に利用できる場面がある。

 以下の例は、book要素に関する定義を含め処理の対象とすることを指定している(以下の例は、XML 1.0勧告より引用)。

<![INCLUDE[
<!ELEMENT book (comments*, title, body, supplements?)>
]]>

 それに対して、以下の例は、book要素に関する定義を除外し、処理の対象としないことを指定している。

<![IGNORE[
<!ELEMENT book (comments*, title, body, supplements?)>
]]>

 これだけなら、あまり意味がある機能ではない(除外したければ最初から書かなければよい)。しかし、パラメタ実体と併用することで効果を発揮する。

 たとえば、以下のようにDTDを記述しておく。

<![%draft;[
<!ELEMENT book (comments*, title, body, supplements?)>
]]>

<![%final;[
<!ELEMENT book (title, body, supplements?)>
]]>

 このDTDを処理する際に以下のいずれかのパラメータ実体を定義する。

<!ENTITY % draft 'INCLUDE' >
<!ENTITY % final 'IGNORE' >

<!ENTITY % draft 'IGNORE' >
<!ENTITY % final 'INCLUDE' >

 どちらのパラメータ実体を定義するかによって、book要素に関する異なる定義を切り替えることができる。切り替える内容は多いときには便利なテクニックである。これを条件付きセクションという。

 しかし、条件付きセクションはDTDに強く依存したテクニックであり、DTDへの依存度が低くなりつつあるXML界において、利用される機会は多くない。

関連記事

関連用語

リンク

XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

アイティメディアの提供サービス

キャリアアップ

鬩搾スオ�ス�イ鬮」髮�スセ螽ッ蜃ー鬩幢ス「隴趣ス「�ス�ス�ス�ウ鬩幢ス「�ス�ァ�ス�ス�ス�ク鬩幢ス「隴乗��ス�ケ隴擾スエ�ス讓」蟇ー陟托スア�ス�ス�ソ�ス�ス�コ�ス�ス�ス�コ鬮ォ�イ�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ア鬩搾スオ�ス�イ驕カ荵怜款�ス�ス�ス�「髫イ�、隲幢スキ�ス�ス鬮」蛹�スス�ウ�ス�ス�ス�ュ�ス�ス�ス�ス驕カ荳橸ソス莉ーツ€髣比シ夲スス�」�ス�ス隶捺慣�ス�ク�ス�コ�ス�ス�ス�セ鬩搾スオ�ス�コ髯キ�キ�ス�カ�ス�ス�ス�ス陜ィ�ヲ�ス�ス�ス�ア鬯ッ�ッ闔ィ諛カ�ス�セ鬲�シ夲スス�ソ�ス�ス鬯ョ�エ�ス�ス�ス�ス�ス�「鬯ョ�「�ス�ィ�ス�ス�ス�キ鬮ォ�イ�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ア鬩幢ス「�ス�ァ髯句ケ「�ス�オ驛「譎「�ス�。鬩幢ス「�ス�ァ�ス�ス�ス�ァ鬩幢ス「隴趣ス「�ス�ソ�ス�ス驍オ�コ�ス�ス
�ス�ス�ス�ス髫イ蟷�か�ス�ス�ス�エ�ス�ス�ス�セ鬯ッ�ゥ陋ケ�ス�ス�ス�ス�」鬩幢ス「隴趣ス「�ス�ス�ス�サ鬩幢ス「隴趣ソス�ス�シ鬩・�ス繽搾ソス�ケ隴趣ス「�ス�ス�ス�シ鬩搾スオ�ス�コ�ス�ス�ス�ァ鬮ッ�キ陝カ譏懶スコ繧托スソ�ス�ス�・鬩幢ス「隴趣ス「�ス�ス�ス�。鬩幢ス「隴趣ス「�ス�ス�ス�ェ鬩幢ス「隴趣ス「�ス�ソ�ス�ス驛「譎「�ス�ィ鬩搾スオ�ス�コ�ス�ス�ス�ィ鬩搾スオ�ス�コ�ス�ス�ス�ッ�ス�ス�ス�ス髮狗ソォ�托ソス�ス�ス�シ髫カ轣假ス・�ス�ス�ス�ス�エ�ス�ス�ス�セ鬯ッ�ゥ陋ケ�ス�ス�ス�ス�」鬩幢ス「隴趣ス「�ス�ス�ス�サ鬮ォ�カ鬲�シ夲スス�ス�ス�ュ鬮ッ�キ隶惹シ∝ョ�ソス�ス�ス�ァ鬩募争豎夲ソス�ス�ス�ィ髯キ莨夲スス�ア驍オ�イ陞ウ螢ス窶ウ鬯ョ�ヲ�ス�ェ�ス�ス�ス�・鬩幢ス「�ス�ァ�ス�ス�ス�ィ鬩幢ス「隴趣ス「�ス�ス�ス�ウ鬩幢ス「�ス�ァ�ス�ス�ス�ク鬩幢ス「隴乗��ス�ケ隴擾スエ�ス讓」縺暦ソス�コ�ス�ス�ス�ョ鬩搾スオ�ス�コ鬯ョ�ョ�ス�ス�ス�ス�ス�ス�ス�ス�ス�ケ鬯ゥ蛹�スス�カ髣包スオ隴擾スカ髦。鬥エ蝮ソ�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ア