MarkLogic修补程序和命名空间前缀

MarkLogic修补程序和命名空间前缀,marklogic,Marklogic,当提供的片段使用前缀时,有没有办法强制MarkLogic补丁保留前缀?上面说“在插入元素、文本、注释和处理指令时,指定新节点,使其在目标文档中显示”,但它并不总是保留前缀,我也看不到一种方法来告诉它 应用此修补程序: <rapi:patch xmlns:rapi="http://marklogic.com/rest-api" xmlns:t1="http://test.com/test1" xmlns:t2="http://test.com/test2"> <r

当提供的片段使用前缀时,有没有办法强制MarkLogic补丁保留前缀?上面说“在插入元素、文本、注释和处理指令时,指定新节点,使其在目标文档中显示”,但它并不总是保留前缀,我也看不到一种方法来告诉它

应用此修补程序:

<rapi:patch xmlns:rapi="http://marklogic.com/rest-api"
    xmlns:t1="http://test.com/test1" xmlns:t2="http://test.com/test2">
    <rapi:insert context="/t1:one" position="last-child">
        <t2:two t2:prefixed-attribute="foo">stuff</t2:two>
    </rapi:insert>
</rapi:patch>

东西
对本文件:

<t1:one xmlns:t1="http://test.com/test1"/>

结果:

<t1:one xmlns:t1="http://test.com/test1">
    <two t2:prefixed-attribute="foo" xmlns="http://test.com/test2"
        xmlns:t2="http://test.com/test2">stuff</two>
</t1:one>

东西
虽然这是有效的XML,但这是一种奇怪的方式,我关心的原因是它会导致一些下游处理出现问题,而这些下游处理显然不希望在节点上同时使用这两种声明

如果父节点
t1:one
声明了
xmlns:t2
,则它可以按需要工作,但我正在处理的数据并不(也不应该)总是这样。我还尝试在补丁中插入的节点上声明
xmlns:t2
,但没有帮助


使用MarkLogic 9.0-1.1版。

鉴于XML是有效的,也许最好的方法是改进下游处理。换句话说,最好依赖解析的XML模型,而不是特定的XML序列化。。。看见