在构造函数中使用typedef的不需要的字符串

时间:2015-09-22 11:28:06

标签: xml xquery xml-namespaces saxon

我使用Saxon HE 9.6使用XQuery将一些XML转换为Yin元素。

当我使用XQuery构造函数生成Yin分组和typedef元素时,我在输出中收到了不需要的xmlns=""个字符串。

例如,当我使用包含:

的构造函数时
typedef name="some_name"

生成的输出类似于

typedef xmlns="" name="some_name"  

请注意,构造函数和输出中的元素都小于/大于字符。

为什么生成xmlns=""以及如何预防?

1 个答案:

答案 0 :(得分:0)

xmlns =""有什么问题? ?每个XML元素和属性始终位于命名空间中。你看到的是全局命名空间。

如果您在另一个命名空间的另一个元素中看到这个,那么很可能在您创建新元素时,您没有定义与父元素的命名空间匹配的特定命名空间。在这种情况下,您将看到每个元素的特定全局命名空间。

实施例

<foo xmlns="http://www.example.com/foo">
    <bar>baz</bar>
</foo>

如果我以编程方式添加元素<bar2>baz2</bar2>,我可能最终得到:

<foo xmlns="http://www.example.com/foo">
    <bar>baz</bar>
    <bar2 xmlns="">ba2</bar2>
</foo>