最新的Web开发教程
 

XML属性


XML元素可以有属性,就像HTML。

属性被设计为包含与特定元素的数据。


XML属性必须加引号

属性值必须加引号。 任一单引号或双引号都可以使用。

对于一个人的性别,在<person>元素可以这样写:

<person gender="female">

或者是这样的:

<person gender='female'>

如果属性值本身包含双引号,你可以使用单引号,就像这个例子:

<gangster name='George "Shotgun" Ziegler'>

或者您可以使用字符实体:

<gangster name="George &quot;Shotgun&quot; Ziegler">

XML元素与属性

看看这些例子:

<person gender="female">
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person>

<person>
  <gender>female</gender>
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person>

在第一个例子中的性别是一个属性。 在过去,性别是一个元素。 两个例子都提供相同的信息。

没有关于何时使用或当属性来使用XML元素的规则。


我最喜欢的方式

下面的三个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)应当存储为属性,而数据本身应当存储为元素。