DTD: 属性リスト宣言(3) ID IDREF IDREFS

2005年09月25日(日)更新


■属性のデータ型(2) ID IDREF IDREFS

たけち: 今回も属性リスト宣言について学ぶよ。前回のCDATAに引き続いて、IDIDREF、そしてIDREFSをみてみよう。

さらら: はい。

ここでは属性リスト宣言を学びます。

たけち: まずはIDからね。

さらら: IDって、どんなものなの?

たけち: うん。IDは、XMLデータ内の要素を一意に識別するための属性なんだ。

さらら: でも、要素ってXMLのデータを区別できるものでしょ。

たけち: そうなんだけど、同じ名前の要素って複数存在することってあるよね。たとえば、万葉集の歌にはたくさんあるから・・・

さらら: あっ、そうか。XMLでなくっても歌番号でひとつずつを識別しているわね。


■属性リスト宣言とXMLインスタンスの例(IDの例)

たけち: そうだね。ここで、ID属性を使った簡単なDTDとそのDTDに従ったXMLインスタンスの例を書いてみようね。

さらら: えぇ。

IDの例

さらら: この例では、pnoという名前の属性がID型なのね?

たけち: そう。XMLインスタンスの例にあるように、3つのpoem要素の各pno属性で、歌の番号を示して、歌を識別できるようにしているね。

さらら: そっか。。。あっ、で、IDREFとIDREFSは?


■IDとIDREFS

たけち: IDREFIDREFSは、ID型の属性を参照するための属性なんだよ。

さらら: IDREFとIDREFSはどう違うの?

たけち: IDREFはひとつのID型の属性を参照してIDREFSは、複数のID型の属性を参照するための属性なんだよ。

さらら: そうなんだ。


■属性リスト宣言とXMLインスタンスの例(IDREFSの例)

たけち: ここで、はIDREFS属性を使った簡単なDTDとそのDTDに従ったXMLインスタンスの例を書いてみようね。

さらら: えぇ。

IDREFSの例

さらら: この例では、poet要素のworks属性がIDREFS型なのね?

たけち: そう。XMLインスタンスの例にあるように、額田王(ぬかたのおおきみ)の作品をworks属性で歌を参照しているね。

さらら: そっか。"m0004  m0018"って、空白で区切って書くのね。

たけち: 今回はここまで。属性リスト宣言のNMTOKEN、NMTOKENSのデータ型について学ぼうね。

さらら: あっ、はい。ありがと。

→ 次は、属性リスト宣言(4)です。 (^ ^;