XMLの属性について。
XML,DTD,XSLの勉強をしています。
最終的に写真が表示され、その下に「PM 7:30」もしくは「19:30」と表示するようなページを作ろうと思っているのですが、属性の意味がよく理解できておらず下の3つのうちどれを採用したらいいか悩んでいます。どれが正解というか、どれを選ぶのがいい方法なんでしょうか?
また、その理由(属性について)教えて頂けないでしょうか?具体的には次の2つが疑問点です。
1. 写真を表示するのに、写真のアドレスを属性にする理由はなんとなく分かるような気がするにですが、いまいちはっきりした理由が理解できていません。
DTDを<!ELEMENT アルバム (#PCDATA) >にして、XMLを<アルバム>0101.jpg</アルバム>でも写真の表示は可能なのでしょうか?
2. 一番の疑問点なのですが、時間を(#PCDATA)にするのか、EMPTYにして属性で CDATA にするべきなのかがよく分かりません。
(「分」も属性値にしてしまった方がいいのでしょうか?)
(xslは、まだ作成していません。)
よろしくお願い致します。
具体例↓ 3つ
「arubamu.dtd」
<?xml version="1.0" encoding="Shift_JIS"?>
<!ELEMENT アルバム (時,分) >
<!ATTLIST アルバム file CDATA #REQUIRED >
<!ELEMENT 時 EMPTY >
<!ATTLIST 時 ampm (am|pm) "am" >
<!ATTLIST 時 time CDATA #REQUIRED >
<!ELEMENT 分 (#PCDATA) >
「アルバム.xml」
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE アルバム SYSTEM "arubamu.dtd">
<アルバム file = "0101.jpg" >
<時 ampm = "pm" time = "7" />
<分>30</分>
</アルバム>
------------------------------------------------------------------
「arubamu2.dtd」
<?xml version="1.0" encoding="Shift_JIS"?>
<!ELEMENT アルバム (時) >
<!ATTLIST アルバム file CDATA #REQUIRED >
<!ELEMENT 時 EMPTY >
<!ATTLIST 時 ampm (am|pm) "am" >
<!ATTLIST 時 time CDATA #REQUIRED >
<!ATTLIST 時 minute CDATA #REQUIRED >
「アルバム2」
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE アルバム SYSTEM "arubamu2.dtd">
<アルバム file = "¥0101.jpg" >
<時 ampm = "pm" time = "7" minute = "30" />
</アルバム>
-------------------------------------------------------------------
「arubamu3.dtd」
<?xml version="1.0" encoding="Shift_JIS"?>
<!ELEMENT アルバム (時,分) >
<!ATTLIST アルバム file CDATA #REQUIRED >
<!ELEMENT 時 (#PCDATA) >
<!ATTLIST 時 ampm (am|pm) "am" >
<!ELEMENT 分 (#PCDATA) >
「アルバム3.xml」
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE アルバム SYSTEM "arubamu3.dtd">
<アルバム file = "0101.jpg" >
<時 ampm = "pm">7</時>
<分>30</分>
</アルバム>