XML属性
XML 要素には、HTML と同様の属性があります。
属性は、要素に関する追加情報を提供します。
XML 属性
HTML では、属性は要素に関する追加情報を提供します:
<a href="demo. html ">
属性は、データの一部ではない情報を提供することがよくあります。次の例では、ファイル タイプはデータとは関係ありませんが、この要素を処理する必要があるソフトウェアにとっては重要です:
XML 属性は引用符で囲む必要があります
属性値は引用符で囲む必要がありますが、一重引用符と二重引用符の両方を使用できます。たとえば、人の性別の person 要素は次のように書くことができます:
または次のように書くこともできます:
属性値自体に二重引用符が含まれている場合は、次の例のように一重引用符を使用できます:
または文字エンティティを使用できます。
XML要素と属性これらの例を参照してください:
<姓>スミス</姓>
</人>
<名>アンナ</名>
<姓>スミス</姓>
</人>
第一に、性別は属性です。 2番目の例では、セックスは要素です。どちらのインスタンスも同じ情報を提供します。
いつ属性を使用するか、いつ要素を使用するかを指示するルールはありません。私の経験では、HTML では属性を使用すると便利ですが、XML では属性の使用を避ける必要があります。情報がデータによく似ている場合は、要素を使用します。
私のお気に入りの方法
次の 3 つの XML ドキュメントにはまったく同じ情報が含まれています:
date 属性は最初の例で使用されています:
<to>トーベ</to>
<from>ジャニ</from>
<Heading>リマインダー</Heading>
<body>今週末は私を忘れないでください!</body>
</note>
2 番目の例では、日付要素を使用します:
<日付>2008/10/01</日付>
<to>トーベ</to>
<from>ジャニ</from>
<Heading>リマインダー</Heading>
<body>今週末は私を忘れないでください!</body>
</note>
3 番目の例では、拡張日付要素を使用しています (これは私のお気に入りです):
<日付>
<日>10日>
<月>01月>
<年>2008年年>
</日付>
<to>トーベ</to>
<from>ジャニ</from>
<Heading>リマインダー</Heading>
<body>今週末は私を忘れないでください!</body>
</note>
XML 属性を避けますか?
属性の使用によって生じるいくつかの問題:
属性には複数の値を含めることはできない(要素には含めることができる)
属性にはツリー構造を含めることはできない(要素には含めることができる)
属性は簡単に拡張できない(将来の変更に備えて) )
プロパティは読み取りと保守が困難です。要素を使用してデータを記述するようにしてください。代わりに、属性を使用してデータに依存しない情報を提供します。
次のような愚かなことはしないでください (これは XML の使用方法ではありません):
to="Tove" from= "ジャニ"Heading="リマインダー"
body="今週末は私を忘れないでください!">
</note>
メタデータの XML 属性
場合によっては、ID 参照が要素に割り当てられます。これらの ID インデックスは、HTML の id 属性と同じ方法で XML 要素を識別するために使用できます。この例は、これを示しています:
<note id="501">
<to>トーベ</to>
<from>ジャニ</from>
<Heading>リマインダー</Heading>
<body>今週末は私を忘れないでください!</body>
</note>
<note id="502">
<to>ジャニ</to>
<from>トーベ</from>
<Heading>Re: リマインダー</Heading>
<body>しません</body>
</note>
</messages>
上記の id 属性は単なる識別子であり、さまざまなメモを識別するために使用されます。ノートデータの一部ではありません。
ここで私たちが伝えようとしている考え方は、メタデータ (データに関するデータ) は属性として保存され、データ自体は要素として保存されるべきであるということです。