2010-07-16 113 views
2

BizTalk生成命名空间默认前缀为NS0。有没有一种方法可以在不使用XSLT的情况下重写它以生成不同的东西(这是架构更改时的开销,XSLT也必须更新)?喜欢的东西BizTalk命名空间默认前缀

<pidx:Invoice> 

,而不是

<ns0:Invoice> 

这应该是简单的(毕竟它只是一个命名空间前缀),但客户端,而不是分析文档使用它与命名空间的XML的,并没有预期的命名空间前缀会导致他们悲伤。

谢谢。

回答

2

不,没有。

kludgey答案是将XML转换为字符串和搜索/替换。

+0

同意。尽管我不喜欢这种方法,并且在与工作人员聊天之后,我们找到了另一种解决方案。我们可以有一个自定义管道组件,它将接收命名空间,前缀和XSLT表达式并将其应用于输出。输出的映射将被配置为根本不产生命名空间(因此ns0不存在于任何元素处),并且应该通过利用.NET XsltTransfomation以比字符串替换更高效的方式来实现。 – 2010-07-28 01:59:59

1

你可以这样做。我在调用Google API时必须这样做,它需要特定的命名空间前缀。

该方法是在您的XSD中使用<Schema>级别的Imports属性。使用Imports对话框,您可以在每个名称空间上定义特定的前缀。

您将不得不将模式分解成至少两个单独的XSD,以便您可以将一个导入到另一个中,并在此时重新定义前缀。

+0

嗨兰迪, 对不起,但看起来我似乎无法重现这一点。有没有办法设置一个简单的演示项目并在我的电子邮件中触发? Feldman.Sean at gmail.com 谢谢, Sean – 2010-08-13 03:32:42