///

DTDを別ファイルにする

wrote :

DTDを別ファイルにして共有することができる。DTDの内容を外部のファイルにしたものは、外部サブセットと呼ばれる。

内部サブセット(internal subset)

sample.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE music[
<!ELEMENT music (rock+)>
<!ELEMENT rock (name,album?,price,description,img)>
<!ATTLIST rock id CDATA #REQUIRED>
<!ATTLIST rock from (japan|others) "japan">
<!ELEMENT name (#PCDATA)>
<!ELEMENT album (#PCDATA)>
<!ELEMENT price (yen|pond)>
<!ELEMENT yen (#PCDATA)>
<!ELEMENT pond (#PCDATA)>
<!ELEMENT description (#PCDATA|em)*>
<!ELEMENT em (#PCDATA)>
<!ELEMENT img EMPTY>
<!ENTITY cgroup "all in the mind">
]>
<music>
・・・
</music>

外部サブセット(exteral subset)

sample.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE music SYSTEM "dtdSample.dtd">
<music>
・・・
</music>

dtdSample.dtd(拡張子が変更されている点に注意)
<?xml version="1.0" encoding="utf-8"?>
<!ELEMENT music (rock+)>
<!ELEMENT rock (name,album?,price,description,img)>
<!ATTLIST rock id CDATA #REQUIRED>
<!ATTLIST rock from (japan|others) "japan">
<!ELEMENT name (#PCDATA)>
<!ELEMENT album (#PCDATA)>
<!ELEMENT price (yen|pond)>
<!ELEMENT yen (#PCDATA)>
<!ELEMENT pond (#PCDATA)>
<!ELEMENT description (#PCDATA|em)*>
<!ELEMENT em (#PCDATA)>
<!ELEMENT img EMPTY>
<!ENTITY cgroup "all in the mind">

外部サブセット使う構文

<!DOCTYPE ルート要素名 SYSTEM "DTDファイルのURI">

川上 武範(かわかみ たけのり)
1975年生。シンプルシンプルデザイン代表兼Webクリエイター。たびのとWebサイト運営責任者。

企画からサイト設計、正しいマークアップを意識したWebサイト制作やユーザー視点の情報設計を得意としている。

シンプルシンプルデザイン
たびのと
twitter : たけたけ@OnlyTwo

メディア掲載
2016年10月25日 レバテックフリーランスの記事「自作Webサービス記事紹介まとめ」でサイト内の記事「Webサービス「たびのとTOKYO」を作ってみました」を紹介していただきました。