制作ブログ Web制作マークアップ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>
<rock id="1001" from="japan">
<name>un born baby</name>
<album>un born baby</album>
<price>
<yen>800</yen>
</price>
<description>新宿を拠点に活動する3ペースバンド。</description>
<img />
</rock>
<rock id="2001">
<name>day sweet</name>
<price>
<pond>2</pond>
</price>
<description>酔いどれが集まって結成された<em>day sweet</em>元&cgroup;のメンバー含む</description>
<img />
</rock>
</music>

解説

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE music[
文書型宣言(ルート要素名を記述、以下にxml文書の構造について取り決める)

<!ELEMENT music (rock+)>
要素型宣言(「music」要素の中に「rock」要素が出現する。また1回以上出現する)

<!ELEMENT rock (name,album?,price,description,img)>
要素型宣言(「rock」要素の中に「name」「album」「price」「description」「img」要素の順に出現する。また「album」要素は0または1回出現する)

<!ATTLIST rock id CDATA #REQUIRED>
属性リスト宣言(「rock」要素に「id」属性をつけ、属性値には通常の文字をとる。また属性値を省略することはできない)

<!ATTLIST rock from (japan|others) "japan">
属性リスト宣言(「rock」要素に「coutry」属性をつける)

<!ELEMENT name (#PCDATA)>
要素型宣言(「name」要素の中にテキストが出現する)

<!ELEMENT album (#PCDATA)>
要素型宣言(「album」要素の中にテキストが出現する)

<!ELEMENT price (yen|pond)>
要素型宣言(「price」要素の中に「yen」「pond」要素のいずれかが出現する)

<!ELEMENT yen (#PCDATA)>
要素型宣言(「yen」要素の中にテキストが出現する)

<!ELEMENT pond (#PCDATA)>
要素型宣言(「pond」要素の中にテキストが出現する)

<!ELEMENT description (#PCDATA|em)*>
要素型宣言(「description」要素の中には「em」要素とテキストを両方を含む)

<!ELEMENT em (#PCDATA)>
要素型宣言(「em」要素の中にテキストが出現する)

<!ELEMENT img EMPTY>
要素型宣言(「img」要素は空要素である)

<!ENTITY cgroup "all in the mind">
実体宣言

]>
<music>
<rock id="1001" from="japan">
<name>un born baby</name>
<album>un born baby</album>
<price>
<yen>800</yen>
</price>
<description>新宿を拠点に活動する3ペースバンド。</description>
<img />
</rock>
<rock id="2001">
<name>day sweet</name>
<price>
<pond>2</pond>
</price>
<description>酔いどれが集まって結成された<em>day sweet</em>元all in the mindのメンバー含む</description>
<img />
</rock>
</music>