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</分>
</アルバム>
お礼
お礼が遅れましてすみません。 つい先日試験を受けまして、ひとまず合格しました。これもみなさんが私の質問に答えてくれたおかげです。 ありがとうございました。まだ通過点ですので、次に試験に向けてもう少ししたら開始しようと思っています。 また何かわからないことがありましたらよろしくお願いします。
補足
回答ありがとうございます。 返事が遅くなってすみません。 ご紹介いただいたリンク先が何分英文で、さらにその先が長いので・・・。で、自分の読んでいる本にそれらしきものが書いてあったので、現在時間がかかっています。 もし本の方で分からないことがありましたら、別質問でお願いしようかと思っています。その時はよろしくお願いします。 改めてお礼の方でご報告いたします。