限定名

维基百科,自由的百科全书
跳转至: 导航搜索

合法名QNames)是XML命名空间引入的概念,用来作为URI引用。[1] 合法名(QName)的全称是“qualified name”(意为合法的名字)定义了元素和属性的合法的标识符。合法名通常在XML文档中用作特定元素或属性的引用。

合法名原称限定名,因与XML命名空间[2]中的表述有冲突,并且qualified译为合法也是合理的,因此对其进行了编辑。

[3]

动机[编辑]

由于URI引用可能会很长并且可能包含XML元素/属性命名中禁止的字符,因此,需要建立命名空间缩写到URI之间的映射,这样可以在XML元素/属性名中使用命名空间的缩写,这样就可以更加方便地书写XML文档。这种使用命名空间缩写的方法来给XML元素/属性命名的方式,即为“合法名”命名(参见示例)。

形式化定义[编辑]

万维网联盟给出的合法名的形式化定义如下[4]

  QName ::= PrefixedName | UnprefixedName
 
  PrefixedName   ::= Prefix ':' LocalPart
  UnprefixedName ::= LocalPart

其中Prefix(前缀)是名字空间的一个符号,而LocalPart是限定名的本地部分。本地部分可以是属性名或元素名。

维基百科“XML命名空间”词条,将合法名具体分为如下两种[5]: 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”也是一个非限定名,仅包含本地部分。它们都属于合法名。[6]

参见[编辑]

参考文献[编辑]