エンジニアのためのXMLスキーマ講座
第2回:XMLの標準スキーマ表現 DTDを「読む」
(株)日本ユニテック
竹内 理
目次<全5ページ>
概要
XMLのスキーマ表現の標準ともいえるDTDを構成する4つの部分を詳しく解説します。実際にDTDを「読む」ことができるようになるのが目標です。
はじめに
前回XMLにおけるスキーマの意味と重要性について説明しました。また現在利用されているXMLのスキーマ定義言語の幾つかを簡単に取り上げました。
では、今回はXMLのスキーマ定義言語として最も汎用的に利用されているDTD(Document Type Definition)についてその中身がどんな部分で構成されているのかを詳しく見ていきましょう。みなさんもこのセクションを読み終わったときに、DTDがすらすら「読める」ようになることを目標にしてください。
DTDを読む-DTDの構成
では、実際のDTDの中身を見ることにしましょう。
次に挙げるのはDTDの一例です。このDTDは電子メールの構造を表しています(行番号は説明のためのもので実際には存在しません)。
1 <!ENTITY salut "Dear Friends">
2 <!ENTITY % personal-data "name,mail-address">
3 <!ELEMENT email (front,body) >
4 <!ELEMENT front (from,to+,cc*,title) >
5 <!ELEMENT from (%personal-data;) >
6 <!ELEMENT to (%personal-data;) >
7 <!ELEMENT cc (%personal-data;) >
8 <!ELEMENT name (#PCDATA) >
9 <!ELEMENT mail-address (#PCDATA) >
10 <!ELEMENT title (#PCDATA) >
11 <!ELEMENT body (salution?,p*)>
12 <!ELEMENT salution (#PCDATA) >
13 <!ELEMENT p (#PCDATA) >
14 <!ATTLIST email seqnum NMTOKEN #REQUIRED
15
importance (LOW|HIGH) "LOW">
|
<リスト1.email.dtd>
DTDは主に次の4つの部分から構成されています。
名称 | 説明 | 例 |
要素型宣言 | XMLインスタンスで使用できる要素を定義する部分です。要素の名前、要素の階層構造(親子関係、兄弟関係)、要素の出現ルールなどを宣言します。 | <! ELEMENT para (#PCDATA) > |
属性リスト宣言 | 要素の付加情報としての属性を定義します。どの要素にどんな属性がつくか、属性名はなにか、属性値としてどんなものを指定できるか、属性の指定は必須か任意か、デフォルト値は何かといったことを宣言します。 | <! ATTLIST id ID #IMPLIED> |
エンティティ宣言
(実体宣言) | XMLインスタンス中やDTDで使用したいエンティティの定義。置き換えたい文字列や取り込みたい外部ファイルはなにか、それを参照するときに使用するエンティティ名はなにか、といった情報を宣言します。 | <! ENTITY chapA SYSTEM "http://www.utj.co.jp/chapA.xml" > |
記法宣言 | 外部のファイルとして参照するエンティティがXML以外の記法(BMPやTeXなど)を使用している場合、その記法を識別するための名前を宣言します。 | <! NOTAION CGM PUBLIC "ISO 8632/4//NOTATION clear text encoding//EN …"> |
<表1.DTDの構成要素>
リスト1のDTDでは表1に挙げた4つの構成要素のうち、記法宣言以外の3つを使用しています。では各部分を順に詳しく見ていきましょう。
関連サービス
XMLスキーマの策定、作成業務
|