我使用Saxon HE 9.6使用XQuery将一些XML转换为Yin元素。
当我使用XQuery构造函数生成Yin分组和typedef
元素时,我在输出中收到了不需要的xmlns=""
个字符串。
例如,当我使用包含:
的构造函数时typedef name="some_name"
生成的输出类似于
typedef xmlns="" name="some_name"
请注意,构造函数和输出中的元素都小于/大于字符。
为什么生成xmlns=""
以及如何预防?
答案 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>