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

标签 xml xslt namespaces biztalk

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

在我的 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/

相关文章:

java - Spring MVC 3.2 : returning Document (xml) with @Responsebody

c# - 如果我想添加其他系统命名空间,为什么我需要调用每个命名空间?

java - 解码 JAVA Web 服务中的嵌套或复杂数据元素

php - 使用带有特殊字符的 SimpleXML 在 PHP 中创建 XML

XSLT 复制/复制而不保留命名空间

xslt - Saxon XSLT 转换后 Apache FOP 转换缓慢

java - 与使用 DOM 解析器手动解析 XML 文件相比,使用 XSLT 样式表有什么优势吗?

namespaces - clojure - 不同命名空间中的 eval 代码

templates - 在模板命名空间前缀是未声明的 xsl 1.0

带有 xml 的 Android 自定义插值器