- PR -

DTDの無効な文字

1
投稿者投稿内容
けん
会議室デビュー日: 2008/01/22
投稿数: 2
投稿日時: 2008-01-22 03:01
こんにちは。
今年からXMLの勉強を始めました。
DTDでつまづいてしまい、ネットで調べてみてもわからなかったので、
教えていただけると嬉しいです。

下のXMLを実行すると、
"無効な文字が ATTLIST 列挙内に見つかりました。"
というエラーが出てしまいます。
エラーを見てみると日本語のところで
ひっかかってしまっているようなのですが、
DTDの中でマルチバイト文字は使えないのでしょうか?

※他のスレッドを読んでみましたがそんなこと無さそうでした・・・

初心者の質問で申し訳ありませんが
教えてください。

よろしくお願いします。


【書いたXML】
<?xml version="1.0" encoding="Shift_JIS" ?>
<!DOCTYPE music [
<!ELEMENT music (album*)>
<!ELEMENT album (title+)>
<!ATTLIST music category (ジャズ|ロック|ポップス) >
]>
<music>
<album category="ジャズ">
<title>Birth of cool</title>
</album>
<album category="ロック">
<title>Voodoochile</title>
</album>
<album category="ポップス">
<title>明日晴れるかな</title>
</album>
</music>


【表示されるエラー】
無効な文字が ATTLIST 列挙内に見つかりました。リソース '〜ファイルパス〜' の実行エラーです。ライン 5、位置 29

<!ATTLIST music category (ジャズ|ロック|ポップス) >
----------------------------^


MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2008-01-22 11:20
xml で使える DTD で

<!ATTLIST 要素名 属性名 属性値の候補 デフォルト値>

は使えますか?
属性値の型以外に

[ メッセージ編集済み 編集者: MMX 編集日時 2008-01-22 11:27 ]
スフレ
ぬし
会議室デビュー日: 2005/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2008-01-22 12:02
おかしいですね。IEに読ませると、平仮名や片仮名の列挙型ATTLISTがエラーになるようです。漢字だと問題ありません。規格では平仮名片仮名は間違いなく列挙型に使える文字ですので、IEのバグなのかもしれません。

あと本題ではないですが、
<!ATTLIST album category (ジャズ|ロック|ポップス) #REQUIRED>
だと思います。
けん
会議室デビュー日: 2008/01/22
投稿数: 2
投稿日時: 2008-01-23 00:29
>MMXさん、
ごめんなさい。
おっしゃっていることがわかりませんでした。。。

>スフレさん、
教えていただいてありがとうございました。
確かに漢字だとエラーになりませんでした。
IEのバグの可能性ということで覚えておきます。
勉強を進める中で何か追加情報があったら
この場で共有させていただきますね。
※#REQUIRED確かに抜けていました。。。ご指摘ありがとうございました。


1

スキルアップ/キャリアアップ(JOB@IT)