| |
DTDで属性リスト宣言を定義する | ||
|
DTDは、XML文書をある一定の構文に従ってルール付けするためのものです。ここでは属性値のデータ型やデフォルト値などを定義することができる属性リスト宣言について解説します。
|
2003/7/16
「DTDで要素型宣言を定義する」でもご紹介したように、DTD(Document Type Definition)はXML文書において使用することのできる要素や属性の種類、また、その並び(順番)、登場回数などを規定する場合に、コンパクトに構造を表現する手段を提供します。
本稿では、要素型宣言と並んで使用する機会が多い「属性リスト宣言」について、紹介することにしましょう。属性リスト宣言では、属性値のデータ型やデフォルト値、属性の種類などを定義できます。
早速、具体的なサンプルをみてみることにしましょう。
[books_dtd.xml] |
サンプル中の以下の行に注目してみましょう。
<!ATTLIST book isbn CDATA #REQUIRED> |
これは<book>要素に属するisbn属性を宣言する一文です。「CDATA」は属性値のデータ型を、「#REQUIRED」はisbn属性の特性(この場合はisbn属性が必須である)を表します。
属性リスト宣言の一般的な構文は、以下のとおりです。
<!ATTLIST 要素名 属性名 属性のデータ型 属性の特性>
属性のデータ型、特性としては、それぞれ以下のものを指定することが可能です。
|
||||||||||||||||||
| 属性のデータ型 |
NMTOKENSは別名「名前文字」とも呼ばれ、要素名や属性名で使用することのできる文字集合のことをいいます。実際には、1文字目は文字(アルファベット、ひらがな、カタカナ、漢字)、コロン、アンダースコアで始まらなければなりません。2文字目以降は上記表で示した一連の文字を使用することができます。
ただし、名前文字にコロンを使用することは推奨されません。なぜなら、コロン(:)は名前空間との区切り(<xsl:template>のように)を表す文字であり、名前そのものとしてコロンを使用することは大変紛らわしいからです。
また、NMTOKENには「xml〜」で始まる名前は使用できない点にも注意してください。なぜなら、「xml〜」で始まる名前は、今後のXML仕様の拡張のために予約されている文字列だからです。
|
|||||
| 属性の特性 |
「#FIXED」が指定された場合、該当する属性が指定された固定値以外をとれないことを意味します。たとえば、HTMLにおけるnowrap属性(<td>要素)やselected属性(<option>要素)などは「#FIXED」指定の典型的な例です。
<td nowrap="nowrap">…… |
HTMLではこうした「#FIXED」属性は属性値を省略することができましたが、XML文書においては値まできちんと記述しなければならない点に注意してください。
なお、属性リスト宣言では「リスト」とあるように、ある要素に属する複数の属性をまとめて定義することも可能です。その場合、属性名以降を列記して、以下のように記述します。
<!ATTLIST book isbn CDATA #IMPLIED |
| 「XMLテクニック集」 |
TechTargetジャパン
- QAフレームワーク:仕様ガイドラインが勧告に昇格 (2005/10/21)
データベースの急速なXML対応に後押しされてか、9月に入って「XQuery」や「XPath」に関係したドラフトが一気に11本も更新された - XML勧告を記述するXMLspecとは何か (2005/10/12)
「XML 1.0勧告」はXMLspec DTDで記述され、XSLTによって生成されている。これはXMLが本当に役立っている具体的な証である - 文字符号化方式にまつわるジレンマ (2005/9/13)
文字符号化方式(UTF-8、シフトJISなど)を自動検出するには、ニワトリと卵の関係にあるジレンマを解消する仕組みが必要となる - XMLキー管理仕様(XKMS 2.0)が勧告に昇格 (2005/8/16)
セキュリティ関連のXML仕様に進展あり。また、日本発の新しいXMLソフトウェアアーキテクチャ「xfy technology」の詳細も紹介する
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
