• ベストアンサー

属性の省略について

XMLの仕様について質問します。 <ex name="" /> <ex /> 何らかのアプリケーションにデータが渡される前に、XMLパーサーが、上記の2つを同一のものとみなすのは間違いでしょうか? 例えば、前者のname属性にDTDやXML Schemaのデフォルト値を適用することは間違いでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

一般的には間違いになるはずです。 デフォルトにたとえば"AAA"という文字を設定した場合、 下の場合は当然"AAA"が入りますが、うえの場合は明示的に""(空の文字)を設定しているため、""が入るはずです。

noname#37358
質問者

お礼

ご回答ありがとうございます。 要するに、「未定義値」と同じ概念という事ですね。 No.1の補足にも書いたのですが、手持ちの書籍などには、そこら辺の所が書かれてなかったので、不安になっていました。 時間があれば、手持ちのXMLパーサーを使って確認したいと思います。

その他の回答 (1)

  • nanimania
  • ベストアンサー率36% (34/93)
回答No.1

間違いかどうかは、DTDやXML Schemaによると思います。属性の省略可/不可の設定によるのでは無いでしょうか?? また、デフォルト値を適用するのは間違いではないです。間違いだとしたらDTDやXML Schemaでデフォルト値を設定する意味が無いことになりますから^^;

noname#37358
質問者

補足

ご回答ありがとうございます。 質問の仕方が悪かったのか、少し誤解されているようなので補足します。 (といっても、No.2の回答を見れば分かると思いますが。) 質問の意図としては、 <ex name="" /> の場合、name 属性は省略されていると考えるべきなのか、 それとも、""(空文字)であっても、値は存在するとみるべきなのか、 どっちが正しいのかという事です。 手持ちの参考書やW3Cの仕様書(日本語訳)をみても、そこら辺が詳しく書かれていなかったので、 ちょっと不安になって、質問をしてみました。

関連するQ&A