XML名域是一组可以用作XML文档的元素或属性名称的名称集。为了避免元素之间出现相同名称的冲突,名域限定Web中的名称必须是唯一的。名域由某些URI(Universal Resource Identifier)来进行识别,不管是URL(Uniform Resource Locator),还是URN( Uniform Resource Number)都没有关系,它并不管指向的什么内容。
URI使用简单,因为它们在Internet上是全球唯一的。
名域可以显式声明,也可以缺省声明。在显式声明中可以定义一个简写形式或是一个词头来代替整个名域,可以使用这个词头来引用属于名域的元素。当节点包含不同名域的元素时,显式声明非常有用。缺省声明声明一个可以被所有元素访问的名域,而且并不定义词头。
<BOOKS>
<bk:BOOK xmlns:bk="urn:BookLovers.org:BookInfo" xmlns:money="urn:Finance:Money">
<bk:TITLE>A Suitable Boy</bk:TITLE>
<bk:PRICE money:currency="US Dollar">22.95</bk:PRICE>
</bk:BOOK>
</BOOKS>
所有以"bk:"或"money:"开头的元素都可以看成是分别来自于名域"urn:BookLovers.org :BookInfo"或"urn:Finance:Money"。
如何声明缺省名域?
在名域声明时没有词头就属于文档的缺省名域,文档中所有没有词头的元素和属性都属于缺省名域。下面的例子声明了<BOOK>元素和<BOOK>中所有的元素(<TITLE>, <PRICE> currency)都属于名域"urn:BookLovers.org:BookInfo."。
<BOOK xmlns="urn:BookLovers.org:BookInfo">
<TITLE>A Suitable Boy</TITLE>
<PRICE currency="US Dollar">22.95</PRICE>
</BOOK>