Xml 如何在Marklogic中声明元素的命名空间?

Xml 如何在Marklogic中声明元素的命名空间?,xml,namespaces,xquery,element,marklogic,Xml,Namespaces,Xquery,Element,Marklogic,我想为元素声明名称空间。我试着如下- declare namespace abc="http://marklogic.com/somenamespace"; let $link := "anylink" let $Content := <content>content</content> let $result := element abc:data { element headers{}, element root { element {"element"}{

我想为元素声明名称空间。我试着如下-

declare namespace abc="http://marklogic.com/somenamespace";
let $link := "anylink"
let $Content := <content>content</content>
let $result := element abc:data  { 
element headers{},
element root {
  element {"element"}{
            attribute link {$link},
            $Content
          }
     }
}
return $result
声明命名空间abc=”http://marklogic.com/somenamespace";
let$link:=“anylink”
让$Content:=Content
让$result:=元素abc:data{
元素头{},
元素根{
元素{“元素”}{
属性链接{$link},
$Content
}
}
}
返回$result
我得到的输出是-

<abc:data xmlns:abc="http://marklogic.com/somenamespace">
<headers>
------
---------
--------
</abc:data>

------
---------
--------
我不希望“abc:”出现在我的数据节点中。我想要这样的-

<data xmlns="http://marklogic.com/somenamespace">

有什么建议吗?

这应该行得通

declare default element namespace "http://marklogic.com/somenamespace";
let $link := "anylink"
let $Content := <content>content</content>
let $result := element data  { 
element headers{},
element root {
element {"element"}{
        attribute link {$link},
        $Content
      }
 }
}
return $result
声明默认元素名称空间”http://marklogic.com/somenamespace";
let$link:=“anylink”
让$Content:=Content
让$result:=元素数据{
元素头{},
元素根{
元素{“元素”}{
属性链接{$link},
$Content
}
}
}
返回$result
这应该行得通

declare default element namespace "http://marklogic.com/somenamespace";
let $link := "anylink"
let $Content := <content>content</content>
let $result := element data  { 
element headers{},
element root {
element {"element"}{
        attribute link {$link},
        $Content
      }
 }
}
return $result
声明默认元素名称空间”http://marklogic.com/somenamespace";
let$link:=“anylink”
让$Content:=Content
让$result:=元素数据{
元素头{},
元素根{
元素{“元素”}{
属性链接{$link},
$Content
}
}
}
返回$result

为什么?你真的希望数据的所有子元素都在同一个命名空间中吗?@chrisis是的,这是一个完整的信封,“数据”只是我的“信封”节点。为什么?你真的希望数据的所有子元素都在同一个名称空间中吗?@chrisis是的,它是一个完整的信封,“数据”只是我的“信封”节点。在需要处理多个名称空间但不希望任何名称空间都有前缀的情况下,你也可以这样构造元素:
元素{fn:QName($my ns,“my elem”)}{…}
。在必须处理多个名称空间,但不希望任何名称空间都有前缀的情况下,也可以这样构造元素:
元素{fn:QName($my ns,“my elem”)}{…}