XML - 例えば、使用方法や機能の違いは何ですか?そしてジョン・ドウ?

XML - 例えば、使用方法や機能の違いは何ですか?そしてジョン・ドウ?

1 つの括弧内に複数の属性が含まれる最初の例 (例<person name="JohnDoe" age="25">) を見たことがありますが、 と の違いが正確に何なのかよくわかりません。また、これら 2 種類のオブジェクトの名前も知りたいです (そもそも名前がわからなかったので、この質問を Google で検索できませんでした)。

どちらも同じことができることはわかっています(これが私がこれを尋ねる理由です)が、どちらかを使用するための適切なユースケースを探しています(たとえば、要素ではなく属性で API 名前空間を使用する、属性ではなく要素にデータを入れるなど)

答え1

あなたはこれを行うことができます:

<foo>
    <bar>baz</bar>
</foo>

しかし、これはできません:

<foo value="<bar>baz</bar>" />

エンティティを使用して山括弧をエンコードできます。

<foo value="&lt;bar&gt;baz&lt;/bar&gt;" />

しかし、今はネストされた XML ではなく、単なるテキスト「baz」です。これは次のものと同等です:

<foo>&lt;bar&gt;baz&lt;/bar&gt;</foo>

XML の観点から見ると、これが唯一の違いだと思います。タグ内にタグをネストすることはできませんが、属性内にはタグをネストすることはできません。

タグをネストする必要がない場合は、どちらの選択も有効です。その他の技術的な違いはありません。XML 仕様には、どちらを使用するかというセマンティック ルールはありません。

関連情報