3

假设一个元素被声明为 QName 类型:

<element name="example" type="QName" />

在实例文档中,值是否example可以不带命名空间前缀:

<example>Hello</example>

如果是,那么命名空间 URI 是Hello什么?

假设我声明了一个默认命名空间:

<document xmlns="http://www.example.org">
    <example>Hello</example>
</document>

是否Hellohttp://www.example.org命名空间中?

4

2 回答 2

1

内容遵循与元素(而不是属性)名称相同的规则。没有前缀的 QName 被解释为在实例中由最近的包含xmlns属性的元素声明的默认命名空间中,或者如果没有声明命名空间,则在 no-namepace 中。所以,是的,Hello 将被解释为 QName,表示该命名空间中的名称。

于 2012-03-18T10:37:22.417 回答
0

Hello是一个值而不是元素或属性名称,因此它没有命名空间 URI,它只是一个字符串。

宣言

<element name="example" type="QName" /> 

将 的可能值限制为example与 QName 的语法匹配的字符串(如http://www.w3.org/TR/REC-xml-names/#ns-qualnames所定义- 因此有效值可以是aa:b等等) ,但它并没有说该值是 QName。

于 2012-03-12T23:29:25.020 回答