XML要素は、単にHTMLなどの属性を有することができます。
属性は、特定の要素に関連するデータを含むように設計されています。
XMLの属性は引用符で囲む必要があります
属性値は、常に引用符で囲む必要があります。 単一または二重引用符のいずれかを使用することができます。
人の性別については、 <person>要素は次のように書くことができます。
<person gender="female">
または、このように:
<person gender='female'>
属性値自体が二重引用符が含まれている場合は、この例のように単一引用符を、使用することができます。
<gangster name='George "Shotgun" Ziegler'>
または、あなたは文字エンティティを使用することができます。
<gangster name="George "Shotgun" Ziegler">
XML要素対属性
これらの例を見てみましょう:
<person gender="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
<person>
<gender>female</gender>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
最初の例では性別が属性です。 最後に、性別は要素です。 どちらの例も、同じ情報を提供します。
XMLの要素を使用する場合、または属性を使用するときについてのルールはありません。
私の好みの方法
以下の3つのXML文書は、まったく同じ情報が含まれています。
日付属性は、最初の例で使用されます。
<note date="2008-01-10">
<to>Tove</to>
<from>Jani</from>
</note>
<date>要素は、第二の例で使用されます。
<note>
<date>2008-01-10</date>
<to>Tove</to>
<from>Jani</from>
</note>
拡大<date>要素は、第三の例で使用されます(THIS IS MY FAVORITE) :
<note>
<date>
<year>2008</year>
<month>01</month>
<day>10</day>
</date>
<to>Tove</to>
<from>Jani</from>
</note>
XML属性を避けますか?
属性を使用する際に考慮すべきいくつかのものは、次のとおりです。
- 複数の値を含めることはできません属性(elements can)
- ツリー構造を含めることはできません属性(elements can)
- 属性は、容易に拡張可能ではありません(for future changes)
このように終わるしないでください。
<note day="10" month="01" year="2008"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>
XMLはメタデータの属性
時には、ID参照は要素に割り当てられます。 これらのIDは、ほぼ同じ方法でXML要素を識別するために使用することができるid HTML内の属性。 この例では、このことを示しています。
<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上記の属性別のノートを識別するためのものです。 これは、ノート自体の一部ではありません。
私がここで言うことをしようとしていると、そのメタデータである(data about data)の属性として格納されるべきであり、データそのものを要素として格納する必要があります。