相关疑难解决方法(0)

XML名称空间和属性

我试图了解命名空间如何在XML中工作.当我有一个像foo:bar这样的元素时,属性通常没有命名空间.但有时他们会.即使已声明默认命名空间,元素名称空间中的属性也是如此?查看xsd for xhtml似乎属性是模式的一部分,应该在xhtml的命名空间中,但它们永远不会以这种方式呈现......

xml xsd namespaces

42
推荐指数
4
解决办法
3万
查看次数

XML 命名空间和无前缀属性

XML 命名空间规范解释说,无前缀属性的解释由它们出现的元素决定。并且无前缀属性名称的命名空间名称始终没有值

无前缀属性名称的命名空间名称始终没有值。

jid在以下情况下,此规则如何应用于属性的命名空间。

<query xmlns="jabber:iq:roster">
  <item jid="romeo@example.com"></item>
</query>
Run Code Online (Sandbox Code Playgroud)

如果命名空间的声明和相关属性都没有前缀,则该属性jid位于命名空间中jabber:iq:roster

<q:query xmlns:q="jabber:iq:roster">
  <q:item q:jid="romeo@example.com"></q:item>
</q:query>
Run Code Online (Sandbox Code Playgroud)

如果命名空间的声明和属性具有相同的前缀,则属性jid也具有命名空间jabber:iq:roster

<q:query xmlns:q="jabber:iq:roster">
  <q:item jid="romeo@example.com"></q:item>
</q:query>
Run Code Online (Sandbox Code Playgroud)

但是,如果使用前缀声明命名空间但该属性没有前缀,则该属性位于哪个命名空间中?我假设该属性jid

  1. 具有在父元素中声明的默认名称空间,

    <parent xmlns="http://example.com">
      <q:query xmlns:q="jabber:iq:roster">
        <q:item jid="romeo@example.com"></q:item>
      </q:query>
    </parent>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 或者没有命名空间,如果没有这样的声明。

我理解得对吗?

xml xml-namespaces

5
推荐指数
1
解决办法
1858
查看次数

标签 统计

xml ×2

namespaces ×1

xml-namespaces ×1

xsd ×1