DTD
Document Type Definition(DTD)
XML1.0仕様の中で定義されている
-
要素型宣言
要素の名前、内容(文字データ、子要素)を定義する -
属性リスト宣言
要素に含まれる属性の名前、型、デフォルト値を定義する -
実体宣言
XML文書内やDTDの内部から参照される実体について、その実体参照名と、置換文字列かリソースの場所(URI)を定義 -
記法宣言
解析対象外実体などで用いられる外部リソースのフォーマットを定義
|
|
- 外部サブセットDTD
- 複数のXML文書から利用可能
- 複数のシステムで共通のDTDを使用可能
- 汎用的に使用できるため、特定用用途向けの標準言語の定義になどにも使用される
※外部サブセットDTDの場合は「DOCTYPEの宣言がいらない」
-
内部サブセットDTD
- そのXML文書の文書本体の構造を定義する
- DTDとXML文書を一つにまとめることができる
-
要素型宣言
要素に関する定義- 文字列型データ(#PCDATA)
- 子要素(子要素名、子要素名・・・)
記述パターン
|
|
-
子要素の指定に関する出現順序
- シーケンスの場合
(title,link,test)と並んでいていたら、その順序で出てくる
例
- シーケンスの場合
|
|
* チョイス
(title|link|test) なかからどれかを選択?
親要素—
|–title
例</p>
|
|
または
|
|
また『(a,b)|(c,d)』や『(a|b),(c|d)』などが出てくる。
時間があったら例を書こう・・・</li>
* 文字データと子要素
(#PCDATA|子要素1|子要素・・・)
必ずチョイスモデルで、出現回数は「*」になる。
#PCDATAは必ず先頭に書かなければならいない。</ul> </li> </ul>
* 子要素の指定に関する出現回数
* * 無制限
* + 1~無制限
* ? 1or 0
* 半角空白 1
例
|
|
もしELEMENTの指定で(個人情報)のあとに?だったらたぶんダメってことだと思います。2回でてきてしまっているから。
また上記の出現順序と組み合わせて『(a*)』なども出てくる
ぶっちゃけあんまり理解できていないわぁー。。