0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

XML学習備忘録04_DTDに関する基本事項

0
Last updated at Posted at 2026-04-30

DTDとは何か

XMLの構造ルール(どんな要素があるか、要素の入れ子構造、属性の定義などなど)を定義する方法の1つ。Document Type Definition(文書型定義)の略

他にも、XML Schema(XSD)RELAX NGSchematronといった方法がある

DTDそのものはXMLの文法規則に従っているわけではない(≒整形式ではない)

※XML Schema(XSD)は、XMLの文法規則に完全に従っている

DTDを書く場所は次の2つに大きく分けられる

具体的な場所は以下のリンク先を参照

HTML&CSSと同じ感じ。要は中に直書きか外に切り出すか。

(1)内部サブセット

XML文書の中に直接直書き

サンプル
<?xml version="1.0" encoding="UTF-8"?>
<!-- ↑ XML宣言 -->

<!DOCTYPE note [  
  <!-- ↓ ここからDTD(内部サブセット) -->
  <!ELEMENT note (to,from)>
  <!ELEMENT to (#PCDATA)>
  <!ELEMENT from (#PCDATA)>
  <!-- ↑ ここまでDTD -->
]>

<!-- ↓ ここからXML本文 -->
<note>
  <to>Alice</to>
  <from>Bob</from>
</note>

(2)外部サブセット

外部ファイル(.dtd)として分離する

〇〇〇.dtdという別ファイルにDTDを書き、XML本体でそれを参照

サンプル
sample.xml
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "sample.dtd">  
<note>
  <to>Alice</to>
  <from>Bob</from>
</note>
sample.dtd
<!ELEMENT note (to,from)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>

〇〇〇.dtdとして切り出すことで、複数のXMLで使い回せる

外部サブセットとして、DTDを読み込ませる方法には次のようなものもある

SYSTEMで読み込ませるDTDのファイルを指定

SYSTEMの後ろには、sample.xmlがあるフォルダを基点とするsample.dtdまでの相対パスを書く(※絶対パスでもよい)

⇒上記の場合、以下のような配置を想定

/project/
 ├─ sample.xml
 └─ sample.dtd

※次のようなフォルダ構成の場合

/project/
 ├─ sample.xml
 └─ dtd/
     └─ sample.dtd
<!DOCTYPE root SYSTEM "dtd/sample.dtd">

とする。

※次のようなフォルダ構成の場合

/project/
 ├─ sample.dtd   ← 親フォルダ側にある
 └─ xml/
     └─ sample.xml  ← ここが基点
<!DOCTYPE root SYSTEM "../sample.dtd">

とする。

DTDの全体構造

(1)要素型宣言(element type declaration)

XML文書を構成する要素の名前、要素の内容(文字データ、親子関係)、要素が登場する順番について定義する。ELEMENTキーワードを使用して記載

(2)属性リスト宣言(attribute list declaration)

XML文書内の要素が持つ属性の名前、型、デフォルト値を定義する。ATTLISTキーワードを使用して記載

XMLそのもの(基本仕様)には、タグ名や属性名に「データ型」という概念はないが、DTDやXML Schema(XSD)で定義できる

(3)実体宣言(entity declaration)

XML文書本体やDTDから参照される実体の名前や実体の内容を定義する。ENTITYキーワードを使用して記載

(4)記法宣言(notation declaration)

外部リソース(画像データなど、XML文書以外のもの)のデータ形式を定義する。NOTATIONキーワードを使用して記載

主な参考資料

①XMLマスター教科書 ベーシックV2  森田 浩美・中原 敬子 (著)

Amazonリンク

https://www.amazon.co.jp/XML%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E6%95%99%E7%A7%91%E6%9B%B8-%E3%83%99%E3%83%BC%E3%82%B7%E3%83%83%E3%82%AFV2-%E6%A3%AE%E7%94%B0-%E6%B5%A9%E7%BE%8E/dp/4798109096

②わわわIT用語辞典「DTD」
https://wa3.i-3-i.info/word13460.html

③わわわIT用語辞典「サブセット」
https://wa3.i-3-i.info/word15233.html

④XMLマスターポイントレッスン ~ ベーシック編 ~
https://www.xmlmaster.org/article/d01/

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?