XML 属性

  • 定义和使用

    必须始终引用属性值,可以使用单引号或双引号。
    对于一个人的性别,<person>元素可以这样写:
    <person gender="female">
    
    
    或者像这样:
    <person gender='female'>
    
    
    如果属性值本身包含双引号,则可以使用单引号,如下例所示:
    <gangster name='George "Shotgun" Ziegler'>
    
    
    或者可以使用字符实体:
    <gangster name="George "Shotgun" Ziegler">
    
    
  • XML元素与属性

    看看这些例子:
    <person gender="female">
        <firstname>安娜</firstname>
        <lastname>史密斯</lastname>
    </person>
    
    
    <person>
        <gender>female</gender>
        <firstname>安娜</firstname>
        <lastname>史密斯</lastname>
    </person>
    
    
    在第一个例子中,性别是一个属性;最后,性别是一个因素。两个例子提供了相同的信息。
    XML 中,没有关于何时使用属性或何时使用元素的规则。
  • 三个XML文档方式

    以下三个XML文档包含完全相同的信息:
    在第一个示例中使用日期属性:
    <note date="2020-01-10">
        <to>Tove</to>
        <from>Jani</from>
    </note>
    
    
    在第二个示例中使用<date>元素:
    <note>
        <date>2020-01-10</date>
        <to>Tove</to>
        <from>Jani</from>
    </note>
    
    
    第三个示例中使用了展开的<date>元素:
    <note>
        <date>
            <year>2020</year>
            <month>01</month>
            <day>10</day>
        </date>
        <to>Tove</to>
        <from>Jani</from>
    </note>
    
    
  • 避免XML属性?

    使用属性时需要考虑的一些事情是:
    • 属性不能包含多个值(元素可以)
    • 属性不能包含树结构(元素可以)
    • 属性不易扩展(用于将来的更改)
    <note day="10" month="01" year="2020"
    to="Tove" from="Jani" heading="Reminder"
    body="这个周末别忘了我!"></note>
    
    
  • 元数据的XML属性

    MetadataSometimes ID 引用的 XML 属性被分配给元素。这些id可用于标识 XML 元素,其方式与 HTML 中的 id 属性基本相同。这个例子说明了这一点:
    <messages>
        <note id="501">
            <to>Tove</to>
            <from>Jani</from>
            <heading>Reminder</heading>
            <body>这个周末别忘了我!</body>
        </note>
        <note id="502">
            <to>Jani</to>
            <from>Tove</from>
            <heading>Re: Reminder</heading>
            <body>我不会忘!</body>
        </note>
    </messages>
    
    
    上面的 id 属性用于标识不同的注释。它不是音符本身的一部分。
    元数据(关于数据的数据)应该作为属性存储,而数据本身应该作为元素存储。