且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

xml属性中“本地名称”和“限定名称”之间的差异

更新时间:2023-10-31 15:41:34

限定名称包括命名空间前缀和本地名称: att1 foo:att2

The qualified name includes both the namespace prefix and the local name: att1 and foo:att2.

示例XML

<root 
    xmlns="http://www.example.com/DEFAULT" 
    att1="Hello" 
    xmlns:foo="http://www.example.com/FOO" 
    foo:att2="World"/>

Java代码:

att1

att1

没有名称空间前缀的属性不会选择默认名称空间。这意味着,当 root 元素的命名空间为http://www.example.com/DEFAULT时, att1 属性的命名空间是

Attributes without a namespace prefix do not pick up the default namespace. This means while the namespace for the root element is "http://www.example.com/DEFAULT", the namespace for the att1 attribute is "".

int att1Index = attributes.getIndex("", "att1");
attributes.getLocalName(att1Index);  // returns "att1"
attributes.getQName(att1Index);  // returns "att1"
attributes.getURI(att1Index);  // returns ""

att2

att2

int att2Index = attributes.getIndex("http://www.example.com/FOO", "att2");
attributes.getLocalName(att2Index);  // returns "att2"
attributes.getQName(att2Index);  // returns "foo:att2"
attributes.getURI(att2Index);  // returns "http://www.example.com/FOO"