带有命名空间前缀的 Biztalk 映射
Biztalk mapping with namespace prefix
我需要在所有节点上生成带有命名空间前缀的输出消息。
有人可以帮我吗?
我的问题是在 BizTalk 中映射后,输出消息具有内联命名空间。
例如,我期望:
<ns0:root xmlns:ns0="http://www.domain1.com" xmlns:domain2="http://www.domain2.com">
<domain2:element1>abc</domain2:element1>
<ns0:element2>abc</ns0:element2>
</ns0:root>
但它是:
<root xmlns="http://www.domain1.com">
<element1 xmlns="http://www.domain2.com">abc</element1>
<element2 xmlns="http://www.domain1.com">abc</element2>
</root>
命名空间别名 ns0、domain2 对我来说不重要。
这两个 Xml 是相同的,是否使用前缀并不重要,因为 Xml 元素按照定义的方案属于命名空间。请求具有特定前缀的 xml 不是有效要求。即使你需要这样做,也使用自定义 Xslt。
将目标架构上的 ElementFormDefault
属性 设置为 Qualified
:
可以通过单击相关模式树中的 <Schema>
节点来查看此 属性;请注意,这是对架构的更改,而不是在地图中完成(尽管图像可能看起来像):
有许多依赖 ns 前缀的遗留解析器。哪怕是一样的东西。这里的解决方案是将您的模式设置为 XML 类型,您将拥有您的命名空间,如果您有一个平面文件模式,您必须如 Dan Field 所述将您的 ElementFormDefault 设置为合格,并在 XSLT 中编写您想要的内容
我需要在所有节点上生成带有命名空间前缀的输出消息。
有人可以帮我吗?
我的问题是在 BizTalk 中映射后,输出消息具有内联命名空间。
例如,我期望:
<ns0:root xmlns:ns0="http://www.domain1.com" xmlns:domain2="http://www.domain2.com">
<domain2:element1>abc</domain2:element1>
<ns0:element2>abc</ns0:element2>
</ns0:root>
但它是:
<root xmlns="http://www.domain1.com">
<element1 xmlns="http://www.domain2.com">abc</element1>
<element2 xmlns="http://www.domain1.com">abc</element2>
</root>
命名空间别名 ns0、domain2 对我来说不重要。
这两个 Xml 是相同的,是否使用前缀并不重要,因为 Xml 元素按照定义的方案属于命名空间。请求具有特定前缀的 xml 不是有效要求。即使你需要这样做,也使用自定义 Xslt。
将目标架构上的 ElementFormDefault
属性 设置为 Qualified
:
可以通过单击相关模式树中的 <Schema>
节点来查看此 属性;请注意,这是对架构的更改,而不是在地图中完成(尽管图像可能看起来像):
有许多依赖 ns 前缀的遗留解析器。哪怕是一样的东西。这里的解决方案是将您的模式设置为 XML 类型,您将拥有您的命名空间,如果您有一个平面文件模式,您必须如 Dan Field 所述将您的 ElementFormDefault 设置为合格,并在 XSLT 中编写您想要的内容