鍍金池/ 教程/ HTML/ XML 屬性
XML 屬性
XML 語法
XML 注釋
XML 文檔對象模型
XML 數(shù)據(jù)庫
XML 樹結(jié)構(gòu)
XML 文檔類型定義(DTDs)
XML 之 CDATA 片段
XML 解析器
XML 編輯器
XML 概述
XML 字符實體
XML 編碼
XML 驗證
XML 文檔
XML 聲明
XML 元素
XML 命名空間
XML 閱讀器
XML 處理程序
XML 模式
XML 空白
XML 標簽
XML 處理指令

XML 屬性

本章介紹了 XML 屬性。屬性是 XML 元素的一部分。一個元素可以有多個唯一屬性。屬性提供了 XML 元素的更多信息。更準確地說,它們定義了元素的屬性(property)。XML 屬性始終是一個_名-值_對。

語法

XML 屬性語法如下:

<element-name attribute1 attribute2 >
....content..
</element-name>

其中 attribute1attribute2 具有以下形式:

name = "value"

value 必須使用雙引號(" ")或單引號(' ')包裹。這里 attribute1attribute2 都是唯一的屬性標簽。

屬性被用來給元素添加一個唯一標簽,分類標簽,添加布爾值屬性或者關(guān)聯(lián)一些字符串數(shù)據(jù)。下面的示例演示了如何使用屬性:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE garden [
    <!ELEMENT garden (plants)*>
    <!ELEMENT plants (#PCDATA)>
    <!ATTLIST plants category CDATA #REQUIRED>
]>
<garden>
<plants category="flowers" />
<plants category="shrubs">
</plants>
</garden>

屬性被用來區(qū)分同名元素。當我們不希望為每種情況都創(chuàng)建一個新元素時。我們可以使用屬性添加更多的細節(jié)以區(qū)分兩個或多個類似的元素。

在上面的例子中,我們通過包含 category 屬性分類了植物,并且給每個元素分配了不同的值。因此我們就有了兩個 plants 類別,一個是 flowers,另一個是 color。這樣我們都得到了兩個帶有不同屬性的 plants 元素。

你還可以看到我們在 XML 的開頭定義了這個屬性。

屬性類型

下表列出了屬性的類型:

屬性類型 描述
StringType 接受字符串值作為值。CDATA 是一個 StringType。CDATA 也是字符數(shù)據(jù)。這也意味著任何非標記字符都是合法的屬性。
TokenizedType

這是一個限制類型。語法中指出的有效性約束會在屬性值規(guī)范化之后應(yīng)用。下面是 TokenizedType 屬性:

  • ID:用來指定元素是唯一的。
  • IDREF:用來引用一個ID,該ID命名了另一個元素。
  • IDREFS:用來引用一個元素的所有 IDs。
  • ENTITY:指示屬性將表示文檔中的一個外部實體。
  • ENTITYS:指示屬性將表示文檔中的一個外部實體。
  • NMTOKEN:類似限制哪些數(shù)據(jù)可以是屬性一部分的CDATA。
  • NMTOKENS:類似限制哪些數(shù)據(jù)可以是屬性一部分的CDATA。
EnumeratedType

在它的聲明中包含一個預(yù)定義的值列表。在這里,它必須分配一個值。有兩種類型的枚舉屬性:

  • NotationType:它聲明元素在 XML 文檔的某些地方將被引用為一個 NOTATION 聲明。
  • Enumeration:枚舉允許我們定義一個特定值列表,屬性值必須與之匹配。

元素屬性規(guī)則

以下是定義屬性需要遵循的規(guī)則:

  • 同一起始標簽或者空元素標簽中屬性名只能出現(xiàn)一次。
  • 屬性必須使用屬性屬性列表聲明(Attribute-List Declaration)定義在文檔類型定義(DTD)中。
  • 屬性值中不能直接或者間接引用包含外部實體。
  • 屬性值中被直接或間接提及的任何實體的替代文本都不能包含小于號(<)。
上一篇:XML 解析器下一篇:XML 標簽