限定名
合法名(英語:QNames),又譯限定名,是XML命名空間引入的概念,用來作為URI引用。[1] 其名稱來自於英語:qualified name(意為合法的名字)定義了元素和屬性的合法的標識符。合法名通常在XML文檔中用作特定元素或屬性的引用。
合法名原稱限定名,因與XML命名空間[2]中的表述有衝突,並且qualified譯為合法也是合理的,因此對其進行了編輯。
動機
編輯由於URI引用可能會很長並且可能包含XML元素/屬性命名中禁止的字符,因此,需要建立命名空間縮寫到URI之間的映射,這樣可以在XML元素/屬性名中使用命名空間的縮寫,這樣就可以更加方便地書寫XML文檔。這種使用命名空間縮寫的方法來給XML元素/屬性命名的方式,即為「合法名」命名(參見示例)。
形式化定義
編輯 QName ::= PrefixedName | UnprefixedName
PrefixedName ::= Prefix ':' LocalPart
UnprefixedName ::= LocalPart
其中Prefix(前綴)是名字空間的一個符號,而LocalPart是限定名的本地部分。本地部分可以是屬性名或元素名。
維基百科「XML名字空間」詞條,將合法名具體分為如下兩種[2]: XML文檔中的元素名和屬性名可以使用限定名或非限定名,限定名由命名空間的前綴和局部名組合而成,例如"xhtml:hr"。非限定名只有局部名,沒有前綴。非限定名被認為屬於缺省命名空間,如果缺省命名空間沒有定義,則屬於無命名空間。 限定名即對應上例中的PrefixedName。非限定名即對應上例中的UnprefixedName。
示例
編輯 <?xml version='1.0'?>
<doc xmlns:x="http://example.com/ns/foo">
<x:p/>
</doc>
在第二行中,前綴「x」被聲明與URI"http://example.com/ns/foo"相關聯。這個前綴後面可用作名字空間的縮寫。後面的標籤「x:p」是一個限定名,「x」是命名空間引用,「p」是本地部分。而標籤「doc」也是一個非限定名,僅包含本地部分。它們都屬於合法名。[5]
參見
編輯參考文獻
編輯- ^ Namespaces in XML 1.0 (Second Edition). [2011-03-08]. (原始內容存檔於2011-03-16).
- ^ 2.0 2.1 存档副本. [2014-06-27]. (原始內容存檔於2014-07-02).
- ^ Using Qualified Names (QNames) as Identifiers in XML Content. [2011-03-08]. (原始內容存檔於2011-09-05).
- ^ Namespaces in XML 1.0 (Second Edition). [2011-03-08]. (原始內容存檔於2011-03-16).
- ^ Namespaces in XML 1.0 (Second Edition). [2011-03-08]. (原始內容存檔於2011-03-16).