[解決済み] XMLでは、要素と属性のどちらを使うべきですか?重複
質問
について学んでいます。 XML属性についてW3Schoolsで勉強しています。 .
著者は次のように言及しています(強調)。
XML 要素と属性の比較
<person sex="female"> <firstname>Anna</firstname> <lastname>Smith</lastname> </person>
<person> <sex>female</sex> <firstname>Anna</firstname> <lastname>Smith</lastname> </person>
最初の例では、sexは属性です。最後の例では、sexは要素です。どちらの例も同じ情報を提供します。
いつ属性を使い、いつ要素を使うかについてのルールはありません。属性はHTMLでは便利です。 XMLでは、私のアドバイスは、それらを避けることです。代わりに要素を使いましょう。
XML属性は避けるべきですか?
属性を使用する際の問題点として、以下のようなものがあります。
- 属性は複数の値を含むことができません(要素は可能です)。
- 属性にツリー構造を含めることはできません(要素は可能)。
- 属性は簡単に拡張できません (将来の変更のため)
属性は読みやすく、メンテナンスがしにくい。データには要素を使いましょう。データとは関係のない情報には属性を使いましょう。
では、著者の見解は有名なものなのか、それともこれがXMLのベストプラクティスなのでしょうか?
XMLにおけるAttributeは避けるべき?
W3Schoolsでは、以下のようにも言及しています(強調)。
メタデータのための XML 属性
要素にID参照が割り当てられていることがあります。これらのIDは、HTMLのID属性と同じようにXMLの要素を識別するために使うことができます。この例では、これを示しています。
<messages> <note id="501"> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> <note id="502"> <to>Jani</to> <from>Tove</from> <heading>Re: Reminder</heading> <body>I will not</body> </note> </messages>
上のIDは単なる識別子で、異なる音符を識別するためのものです。ノート自体の一部ではありません。
ここで言いたいのは、メタデータ(データに関するデータ)は属性として格納されるべきで、データそのものは要素として格納されるべきだということです。
どのように解決するのですか?
属性や要素の使い方は、通常、モデル化しようとするデータによって決まります。
例えば、あるエンティティが PART である場合、それを要素にすることをお勧めします。例えば、従業員の名前は、従業員データの重要な部分です。
さて、もしあなたが メタデータ を伝えたいが、実際にはデータの一部ではない場合、それを属性にするのがよいでしょう。 例えば、各従業員がバックエンド処理に必要なGUIDを持っているとすると、それを属性にするのが良いでしょう(GUIDはxmlを見ている人に本当に役立つ情報を伝えるものではありませんが、他の目的では必要かもしれません)。
何かが属性であるべき、あるいは要素であるべきというようなルールはありません。
属性を避ける必要はないでしょう。それは本当にあなたが表現しようとしているデータに依存します。
関連
-
[解決済み] PHPでHTML/XMLをパースして処理する方法とは?
-
[解決済み] XMLの<![CDATA[]]>は何を意味するのですか?
-
[解決済み] XMLを解析して、特定のノード属性のインスタンスをカウントするには?
-
[解決済み] XML文書でエスケープする必要がある文字は何ですか?
-
[解決済み] XMLでタグのブロックをコメントアウトするにはどうすればよいですか?
-
[解決済み] T-SQLでXML文字列の属性にある二重引用符をエスケープするにはどうすればよいですか?
-
[解決済み] IIS7:HTTP->HTTPS クリーンアップ
-
[解決済み] SVG テキストの自動改行
-
[解決済み] 特定のphpunit xmlテストスイートを実行するには?
-
[解決済み] ブーリアン値を作成するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】XML属性とXML要素
-
[解決済み] 大容量ファイルを扱える軽量なXMLビューア【終了しました
-
[解決済み] IIS7:HTTP->HTTPS クリーンアップ
-
[解決済み] Ubuntu 11.04でRパッケージがインストールできない [非公開]
-
[解決済み] XMLで一行だけコメントするにはどうしたらいいですか?
-
[解決済み] XPATHを使用して、 を含むテキストを検索する。
-
[解決済み] Visual Studio IDE における XSD を用いた XML 検証
-
[解決済み] xsl:for-eachループ内のカウンタ
-
[解決済み] XMLに改行タグを追加する [重複]。
-
[解決済み] Valid xml」と「Well Formed xml」の違いは何ですか?