2007-2-25 17:39
hinet
3.3.3.2 命名空间作用于属性
3.3.3.2 命名空间作用于属性
同样,合法名称也可用于属性。除了XML预留的属性(如我们反复用到的声明命名空间的属性)外,其它属性都应该使用"合法名称"。一个具体的例子如下:
<联系人 xmlns:企业经理 = "http://www.xml.net.cn/联系人列表.dtd">
<姓名 企业经理:文种 = "中文">李华
<电话 企业经理:城市 = "北京">62348765
上例中的"文种"、"城市"属性的命名空间是"http://www.xml.net.cn/联系人列表.dtd"
在遵循命名空间规范的XML文档中,标记不能包含这样的两个属性:属性名完全相同,或属性的本地部分完全相同,并且其前缀被绑定到相同的命名空间名。在下面例子中,“联系人”的每一个子元素所包含的属性都是不合法的。
<联系人 xmlns:企业经理 = "http://www.xml.net.cn/联系人列表.dtd"
xmlns:部门经理 = "http://www.xml.net.cn/联系人列表.dtd">
<姓名 企业经理:文种 ="中文" 企业经理:文种 ="中文">李华
<姓名 企业经理:文种 ="中文" 部门经理:文种 ="中文">王莹
但是,属性中使用缺省命名空间与元素有一点小小的区别:缺省命名空间不直接应用到属性。因此,下面例子中属性的使用是合法的。由于缺省命名空间并没有直接作用到属性"文种"上,故而"文种"和"企业经理:文种"仍可视为不同的属性。
<联系人 xmlns:企业经理 = "http://www.xml.net.cn/联系人列表.dtd"
xmlns = "http://www.xml.net.cn/联系人列表.dtd">
<姓名 文种 ="中文" 企业经理:文种 ="中文">李华