1 つの括弧内に複数の属性が含まれる最初の例 (例<person name="JohnDoe" age="25">
) を見たことがありますが、 と の違いが正確に何なのかよくわかりません。また、これら 2 種類のオブジェクトの名前も知りたいです (そもそも名前がわからなかったので、この質問を Google で検索できませんでした)。
どちらも同じことができることはわかっています(これが私がこれを尋ねる理由です)が、どちらかを使用するための適切なユースケースを探しています(たとえば、要素ではなく属性で API 名前空間を使用する、属性ではなく要素にデータを入れるなど)
答え1
あなたはこれを行うことができます:
<foo>
<bar>baz</bar>
</foo>
しかし、これはできません:
<foo value="<bar>baz</bar>" />
エンティティを使用して山括弧をエンコードできます。
<foo value="<bar>baz</bar>" />
しかし、今はネストされた XML ではなく、単なるテキスト「baz」です。これは次のものと同等です:
<foo><bar>baz</bar></foo>
XML の観点から見ると、これが唯一の違いだと思います。タグ内にタグをネストすることはできませんが、属性内にはタグをネストすることはできません。
タグをネストする必要がない場合は、どちらの選択も有効です。その他の技術的な違いはありません。XML 仕様には、どちらを使用するかというセマンティック ルールはありません。