在输出中的元素上显式显示默认命名空间

时间:2018-05-02 12:46:49

标签: xml xslt namespaces biztalk

我处于这样一种情况,我需要在输出中显式显示一个特定元素的默认命名空间,而不是root。在我当前的解决方案中,默认命名空间显示在根节点上。

在我的XSLT中,我已将命名空间添加到需要它的节点,但它没有显示在输出中。

<MessageParts xmlns="http://schemas.microsoft.com/dynamics/2011/01/documents/Message">

此命名空间与根相同,因此未在输出中显示。有没有办法覆盖这个功能,所以它仍会显示?

1 个答案:

答案 0 :(得分:1)

无法强制XSLT序列化程序输出冗余的名称空间声明。序列化规则的一般思想是,如果解析后应用程序看不到区别,那么就没有必要担心它们。这也意味着,例如,您无法控制元素上属性的顺序。

从技术上讲,在XSLT 1.0中,您也无法控制名称空间前缀的选择,但实际上所有已知的XSLT处理器都尊重您选择的前缀。