我正在努力了解
“Namespaces in XML 1.0 (Third Edition)”定义对不合格属性命名空间的正确解释。
“The namespace name for an unprefixed attribute name always has no value.”
后来在同一节:
“The attribute value in a default namespace declaration MAY be empty. This has the same effect,within the scope of the declaration,of there being no default namespace.”
那么如果我想为一个元素(及其子代)声明一个默认的命名空间,那么我还必须为这个命名空间中的任何属性声明一个前缀 – 命名空间映射?
例如,在这个例子中
<parent xmlns="http://example.com/foo"> <child attrib="value">text</child> <parent>
我会解释上面的定义,说attrib的命名空间是空的。
所以如果我需要属性与父母有相同的命名空间,那么我将被迫这样做?
<foo:parent xmlns:foo="http://example.com/foo"> <foo:child foo:attrib="value">text</foo:child> <foo:parent>
或这个?
<parent xmlns="http://example.com/foo" xmlns:foo="http://example.com/foo"> <child foo:attrib="value">text</child> <parent>