我处于一种情况,我需要在输出中明确显示一个特定元素的默认命名空间,而不是根。在我当前的解决方案中,默认命名空间显示在根节点上。
在我的 XSLT 中,我已将命名空间添加到需要它的节点,但它没有显示在输出中。
<MessageParts xmlns="http://schemas.microsoft.com/dynamics/2011/01/documents/Message">
此命名空间与根相同,因此不会在输出中显示。有没有办法覆盖这个功能,所以它仍然会显示?
最佳答案
没有办法强制 XSLT 序列化程序输出冗余命名空间声明。序列化规则的一般思想是,如果解析后应用程序看不到区别,那么就没有必要担心它们。例如,这也意味着您无法控制元素上属性的顺序。
从技术上讲,在 XSLT 1.0 中,您也无法控制 namespace 前缀的选择,但实际上所有已知的 XSLT 处理器都尊重您选择的前缀。
关于xml - 在输出中的元素上显式显示默认命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50135015/